@@ -78,6 +78,7 @@ using namespace o2::framework;
7878using namespace o2 ::framework::expressions;
7979using namespace o2 ::soa;
8080using namespace o2 ::constants::physics;
81+ using namespace o2 ::aod::rctsel;
8182
8283struct Chk892Flow {
8384 enum BinType : unsigned int {
@@ -148,7 +149,12 @@ struct Chk892Flow {
148149 Configurable<bool > cfgEvtCollInTimeRangeStandard{" cfgEvtCollInTimeRangeStandard" , true , " Evt sel: apply NoCollInTimeRangeStandard" };
149150 Configurable<float > cfgEventCentralityMin{" cfgEventCentralityMin" , 0 .0f , " Event sel: minimum centrality" };
150151 Configurable<float > cfgEventCentralityMax{" cfgEventCentralityMax" , 80 .0f , " Event sel: maximum centrality" };
152+ Configurable<bool > cfgEvtUseRCTFlagChecker{" cfgEvtUseRCTFlagChecker" , false , " Evt sel: use RCT flag checker" };
153+ Configurable<std::string> cfgEvtRCTFlagCheckerLabel{" cfgEvtRCTFlagCheckerLabel" , " CBT_hadronPID" , " Evt sel: RCT flag checker label" };
154+ Configurable<bool > cfgEvtRCTFlagCheckerZDCCheck{" cfgEvtRCTFlagCheckerZDCCheck" , false , " Evt sel: RCT flag checker ZDC check" };
155+ Configurable<bool > cfgEvtRCTFlagCheckerLimitAcceptAsBad{" cfgEvtRCTFlagCheckerLimitAcceptAsBad" , false , " Evt sel: RCT flag checker treat Limited Acceptance As Bad" };
151156 } EventCuts;
157+ RCTFlagsChecker rctChecker;
152158
153159 // / PID Selections, pion
154160 struct : ConfigurableGroup {
@@ -262,6 +268,8 @@ struct Chk892Flow {
262268 colCuts.setApplyCollInTimeRangeStandard (EventCuts.cfgEvtCollInTimeRangeStandard );
263269 colCuts.printCuts ();
264270
271+ rctChecker.init (EventCuts.cfgEvtRCTFlagCheckerLabel , EventCuts.cfgEvtRCTFlagCheckerZDCCheck , EventCuts.cfgEvtRCTFlagCheckerLimitAcceptAsBad );
272+
265273 AxisSpec centAxis = {AxisConfig.cfgBinsCent , " T0M (%)" };
266274 AxisSpec vtxzAxis = {AxisConfig.cfgBinsVtxZ , " Z Vertex (cm)" };
267275 AxisSpec epAxis = {100 , -1.0 * constants::math::PI, constants::math::PI};
@@ -1066,12 +1074,15 @@ struct Chk892Flow {
10661074 {
10671075 if (!colCuts.isSelected (collision)) // Default event selection
10681076 return ;
1077+ if (EventCuts.cfgEvtUseRCTFlagChecker && !rctChecker (collision)) {
1078+ return ;
1079+ }
10691080 if (AnalysisConfig.cfgQvecSel && (collision.qvecAmp ()[lDetId] < 1e-4 || collision.qvecAmp ()[lRefAId] < 1e-4 || collision.qvecAmp ()[lRefBId] < 1e-4 ))
10701081 return ; // If we don't have a Q-vector
1071- colCuts.fillQA (collision);
10721082 lCentrality = getCentrality (collision);
10731083 if (lCentrality < EventCuts.cfgEventCentralityMin || lCentrality > EventCuts.cfgEventCentralityMax )
10741084 return ;
1085+ colCuts.fillQA (collision);
10751086
10761087 fillHistograms<false , false >(collision, tracks, v0s, EventPlaneConfig.cfgnMods ); // second order
10771088 }
@@ -1082,6 +1093,9 @@ struct Chk892Flow {
10821093 MCTrackCandidates const & tracks,
10831094 MCV0Candidates const & v0s)
10841095 {
1096+ if (EventCuts.cfgEvtUseRCTFlagChecker && !rctChecker (collision)) {
1097+ return ;
1098+ }
10851099 fillHistograms<true , false >(collision, tracks, v0s, EventPlaneConfig.cfgnMods );
10861100 }
10871101 PROCESS_SWITCH (Chk892Flow, processMC, " Process Event for MC" , false );
0 commit comments