@@ -95,6 +95,7 @@ struct qaMatchEff {
9595 Configurable<bool > isCentralityRequired{" isCentralityRequired" , false , " Boolean to switch the centrality selection on/off." };
9696 Configurable<bool > isRejectNearByEvent{" isRejectNearByEvent" , false , " Boolean to switch the rejection of near by events on/off." };
9797 Configurable<bool > isEnableOccupancyCut{" isEnableOccupancyCut" , false , " Boolean to switch the occupancy cut on/off." };
98+ Configurable<bool > disableITSROFCut{" disableITSROFCut" , false , " Disable ITS ROC cut for event selection" };
9899 struct : ConfigurableGroup {
99100 Configurable<float > centralityMinCut{" centralityMinCut" , 0 .0f , " Minimum centrality" };
100101 Configurable<float > centralityMaxCut{" centralityMaxCut" , 100 .0f , " Maximum centrality" };
@@ -3295,10 +3296,18 @@ struct qaMatchEff {
32953296 // ////////////////////////////////////////////
32963297 void processMC (CollisionsEvSel::iterator const & collision, soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::McTrackLabels> const & tracks, aod::McParticles const & mcParticles)
32973298 {
3298- if (isEnableEventSelection && !collision.sel8 ()) {
3299- if (doDebug)
3300- LOGF (info, " Event selection not passed, skipping..." );
3301- return ;
3299+ if (isEnableEventSelection) {
3300+
3301+ if (!collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && !disableITSROFCut) {
3302+ if (doDebug)
3303+ LOGF (info, " Event selection not passed to ITSROFrame border, skipping..." );
3304+ return ;
3305+ }
3306+ if (!collision.selection_bit (aod::evsel::kIsTriggerTVX ) && !collision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
3307+ if (doDebug)
3308+ LOGF (info, " Event selection not passed to TriggerTVX and TFBorder, skipping..." );
3309+ return ;
3310+ }
33023311 }
33033312 fillHistograms<true >(tracks, mcParticles, mcParticles); // / 3rd argument non-sense in this case
33043313 fillGeneralHistos<true >(collision);
@@ -3315,10 +3324,18 @@ struct qaMatchEff {
33153324 LOGF (warning, " Centrality not defined for pp collision type, return..." );
33163325 return ;
33173326 }
3318- if (isEnableEventSelection && !collision.sel8 ()) {
3319- if (doDebug)
3320- LOGF (info, " Event selection not passed, skipping..." );
3321- return ;
3327+ if (isEnableEventSelection) {
3328+
3329+ if (!collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && !disableITSROFCut) {
3330+ if (doDebug)
3331+ LOGF (info, " Event selection not passed to ITSROFrame border, skipping..." );
3332+ return ;
3333+ }
3334+ if (!collision.selection_bit (aod::evsel::kIsTriggerTVX ) && !collision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
3335+ if (doDebug)
3336+ LOGF (info, " Event selection not passed to TriggerTVX and TFBorder, skipping..." );
3337+ return ;
3338+ }
33223339 }
33233340 float centrality = collision.centFT0C ();
33243341 if (isCentralityRequired) {
@@ -3338,10 +3355,18 @@ struct qaMatchEff {
33383355 // //////////////////////////////////////////////////////////
33393356 void processTrkIUMC (CollisionsMCEvSel::iterator const & collision, MCTracksIU const & tracks, aod::McParticles const & mcParticles)
33403357 {
3341- if (isEnableEventSelection && !collision.sel8 ()) {
3342- if (doDebug)
3343- LOGF (info, " Event selection not passed, skipping..." );
3344- return ;
3358+ if (isEnableEventSelection) {
3359+
3360+ if (!collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && !disableITSROFCut) {
3361+ if (doDebug)
3362+ LOGF (info, " Event selection not passed to ITSROFrame border, skipping..." );
3363+ return ;
3364+ }
3365+ if (!collision.selection_bit (aod::evsel::kIsTriggerTVX ) && !collision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
3366+ if (doDebug)
3367+ LOGF (info, " Event selection not passed to TriggerTVX and TFBorder, skipping..." );
3368+ return ;
3369+ }
33453370 }
33463371 fillHistograms<true >(tracks, mcParticles, mcParticles); // / 3rd argument non-sense in this case
33473372 fillGeneralHistos<true >(collision);
@@ -3366,10 +3391,18 @@ struct qaMatchEff {
33663391 // tracks.rawIteratorAt(0).collision().bc_as<BCsWithTimeStamp>().timestamp(); /// NB: in ms
33673392 setUpTimeMonitoring (bcs);
33683393 }
3369- if (isEnableEventSelection && !collision.sel8 ()) {
3370- if (doDebug)
3371- LOGF (info, " Event selection not passed, skipping..." );
3372- return ;
3394+ if (isEnableEventSelection) {
3395+
3396+ if (!collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && !disableITSROFCut) {
3397+ if (doDebug)
3398+ LOGF (info, " Event selection not passed to ITSROFrame border, skipping..." );
3399+ return ;
3400+ }
3401+ if (!collision.selection_bit (aod::evsel::kIsTriggerTVX ) && !collision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
3402+ if (doDebug)
3403+ LOGF (info, " Event selection not passed to TriggerTVX and TFBorder, skipping..." );
3404+ return ;
3405+ }
33733406 }
33743407 fillHistograms<false >(tracks, tracks, bcs); // 2nd argument not used in this case
33753408 fillGeneralHistos<false >(collision);
@@ -3389,10 +3422,18 @@ struct qaMatchEff {
33893422 if (enableMonitorVsTime) {
33903423 setUpTimeMonitoring (bcs);
33913424 }
3392- if (isEnableEventSelection && !collision.sel8 ()) {
3393- if (doDebug)
3394- LOGF (info, " Event selection not passed, skipping..." );
3395- return ;
3425+ if (isEnableEventSelection) {
3426+
3427+ if (!collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && !disableITSROFCut) {
3428+ if (doDebug)
3429+ LOGF (info, " Event selection not passed to ITSROFrame border, skipping..." );
3430+ return ;
3431+ }
3432+ if (!collision.selection_bit (aod::evsel::kIsTriggerTVX ) && !collision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
3433+ if (doDebug)
3434+ LOGF (info, " Event selection not passed to TriggerTVX and TFBorder, skipping..." );
3435+ return ;
3436+ }
33963437 }
33973438 const float centrality = collision.centFT0C ();
33983439 const int occupancy = collision.trackOccupancyInTimeRange ();
@@ -3427,10 +3468,18 @@ struct qaMatchEff {
34273468 // ///////////////////////////////////////////////////////////
34283469 void processTrkIUData (CollisionsEvSel::iterator const & collision, TracksIUPID const & tracks)
34293470 {
3430- if (isEnableEventSelection && !collision.sel8 ()) {
3431- if (doDebug)
3432- LOGF (info, " Event selection not passed, skipping..." );
3433- return ;
3471+ if (isEnableEventSelection) {
3472+
3473+ if (!collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && !disableITSROFCut) {
3474+ if (doDebug)
3475+ LOGF (info, " Event selection not passed to ITSROFrame border, skipping..." );
3476+ return ;
3477+ }
3478+ if (!collision.selection_bit (aod::evsel::kIsTriggerTVX ) && !collision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
3479+ if (doDebug)
3480+ LOGF (info, " Event selection not passed to TriggerTVX and TFBorder, skipping..." );
3481+ return ;
3482+ }
34343483 }
34353484 fillHistograms<false >(tracks, tracks, tracks); // 2nd and 3rd arguments not used in this case
34363485 fillGeneralHistos<false >(collision);
0 commit comments