@@ -67,6 +67,7 @@ using namespace o2;
6767using namespace o2 ::framework;
6868using namespace o2 ::framework::expressions;
6969using namespace o2 ::constants::physics;
70+ using namespace o2 ::aod::rctsel;
7071
7172using BCsRun3 = soa::Join<aod::BCsWithTimestamps, aod::Run3MatchedToBCSparse>;
7273
@@ -187,9 +188,21 @@ struct spvector {
187188 return 1;
188189 }
189190 */
191+
192+ struct : ConfigurableGroup {
193+ Configurable<bool > requireRCTFlagChecker{" requireRCTFlagChecker" , true , " Check event quality in run condition table" };
194+ Configurable<std::string> cfgEvtRCTFlagCheckerLabel{" cfgEvtRCTFlagCheckerLabel" , " CBT_hadronPID" , " Evt sel: RCT flag checker label" };
195+ Configurable<bool > cfgEvtRCTFlagCheckerZDCCheck{" cfgEvtRCTFlagCheckerZDCCheck" , true , " Evt sel: RCT flag checker ZDC check" };
196+ Configurable<bool > cfgEvtRCTFlagCheckerLimitAcceptAsBad{" cfgEvtRCTFlagCheckerLimitAcceptAsBad" , false , " Evt sel: RCT flag checker treat Limited Acceptance As Bad" };
197+ } rctCut;
198+
199+ RCTFlagsChecker rctChecker;
200+
190201 void init (o2::framework::InitContext&)
191202 {
192203
204+ rctChecker.init (rctCut.cfgEvtRCTFlagCheckerLabel , rctCut.cfgEvtRCTFlagCheckerZDCCheck , rctCut.cfgEvtRCTFlagCheckerLimitAcceptAsBad );
205+
193206 AxisSpec channelZDCAxis = {8 , 0.0 , 8.0 , " ZDC tower" };
194207 AxisSpec qxZDCAxis = {QxyNbins, lbinQxy, hbinQxy, " Qx" };
195208 AxisSpec phiAxis = {PhiNbins, -6.28 , 6.28 , " phi" };
@@ -440,6 +453,12 @@ struct spvector {
440453 return ;
441454 }
442455
456+ if (rctCut.requireRCTFlagChecker && !rctChecker (collision)) {
457+ triggerevent = false ;
458+ spcalibrationtable (triggerevent, currentRunNumber, centrality, vx, vy, vz, znaEnergycommon, zncEnergycommon, znaEnergy[0 ], znaEnergy[1 ], znaEnergy[2 ], znaEnergy[3 ], zncEnergy[0 ], zncEnergy[1 ], zncEnergy[2 ], zncEnergy[3 ], qxZDCA, qxZDCC, qyZDCA, qyZDCC, psiZDCC, psiZDCA);
459+ return ;
460+ }
461+
443462 // if (collision.sel8() && centrality > cfgCutCentralityMin && centrality < cfgCutCentralityMax && TMath::Abs(vz) < cfgCutVertex && collision.has_foundFT0() && eventSelected(collision, centrality) && collision.selection_bit(aod::evsel::kNoTimeFrameBorder) && collision.selection_bit(aod::evsel::kNoITSROFrameBorder)) {
444463 if (collision.sel8 () && centrality > cfgCutCentralityMin && centrality < cfgCutCentralityMax && TMath::Abs (vz) < cfgCutVertex && collision.has_foundFT0 () && collision.selection_bit (aod::evsel::kNoTimeFrameBorder ) && collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV )) {
445464 triggerevent = true ;
0 commit comments