|
31 | 31 | using namespace o2; |
32 | 32 | using namespace o2::framework; |
33 | 33 | using namespace o2::framework::expressions; |
| 34 | +using namespace o2::aod::rctsel; |
34 | 35 |
|
35 | 36 | struct JFlucEfficiencyTask { |
36 | 37 | Service<o2::framework::O2DatabasePDG> pdg; |
@@ -70,7 +71,12 @@ struct JFlucEfficiencyTask { |
70 | 71 | Configurable<bool> cfgEvtCollInTimeRangeStandard{"cfgEvtCollInTimeRangeStandard", true, "Evt sel: apply NoCollInTimeRangeStandard"}; |
71 | 72 | Configurable<bool> cfgEvtRun2AliEventCuts{"cfgEvtRun2AliEventCuts", true, "Evt sel: apply Run2 Ali event cuts"}; |
72 | 73 | Configurable<bool> cfgEvtRun2INELgtZERO{"cfgEvtRun2INELgtZERO", false, "Evt sel: apply Run2 INEL>0 event cuts"}; |
| 74 | + Configurable<bool> cfgEvtUseRCTFlagChecker{"cfgEvtUseRCTFlagChecker", false, "Evt sel: use RCT flag checker"}; |
| 75 | + Configurable<std::string> cfgEvtRCTFlagCheckerLabel{"cfgEvtRCTFlagCheckerLabel", "CBT_hadronPID", "Evt sel: RCT flag checker label"}; |
| 76 | + Configurable<bool> cfgEvtRCTFlagCheckerZDCCheck{"cfgEvtRCTFlagCheckerZDCCheck", false, "Evt sel: RCT flag checker ZDC check"}; |
| 77 | + Configurable<bool> cfgEvtRCTFlagCheckerLimitAcceptAsBad{"cfgEvtRCTFlagCheckerLimitAcceptAsBad", false, "Evt sel: RCT flag checker treat Limited Acceptance As Bad"}; |
73 | 78 | } EventCuts; |
| 79 | + RCTFlagsChecker rctChecker; |
74 | 80 |
|
75 | 81 | // Track selections |
76 | 82 | struct : ConfigurableGroup { |
@@ -159,6 +165,8 @@ struct JFlucEfficiencyTask { |
159 | 165 | colCuts.setApplyRun2INELgtZERO(EventCuts.cfgEvtRun2INELgtZERO); |
160 | 166 | colCuts.printCuts(); |
161 | 167 |
|
| 168 | + rctChecker.init(EventCuts.cfgEvtRCTFlagCheckerLabel, EventCuts.cfgEvtRCTFlagCheckerZDCCheck, EventCuts.cfgEvtRCTFlagCheckerLimitAcceptAsBad); |
| 169 | + |
162 | 170 | if (doprocessDerivedMC || doprocessMC || doprocessMCRun2) { |
163 | 171 | registry.add("hPtGen", "Generated p_{T} (all);p_{T} (GeV/c);Centrality (%);Counts", |
164 | 172 | o2::framework::HistType::kTH2F, {AxisSpec(axisPt), AxisSpec(axisMultiplicity)}); |
@@ -349,6 +357,9 @@ struct JFlucEfficiencyTask { |
349 | 357 | for (const auto& collision : collisions) { // Anayway only 1 collision per mcCollision will be selected |
350 | 358 | if (!colCuts.isSelected(collision)) // Default event selection |
351 | 359 | return; |
| 360 | + if (EventCuts.cfgEvtUseRCTFlagChecker && !rctChecker(collision)) { |
| 361 | + return; |
| 362 | + } |
352 | 363 | colCuts.fillQA(collision); |
353 | 364 | centrality = collision.centFT0C(); |
354 | 365 | } |
@@ -478,6 +489,9 @@ struct JFlucEfficiencyTask { |
478 | 489 | { |
479 | 490 | if (!colCuts.isSelected(collision)) // Default event selection |
480 | 491 | return; |
| 492 | + if (EventCuts.cfgEvtUseRCTFlagChecker && !rctChecker(collision)) { |
| 493 | + return; |
| 494 | + } |
481 | 495 | colCuts.fillQA(collision); |
482 | 496 | auto centrality = collision.centFT0C(); |
483 | 497 | if (centrality < EventCuts.cfgCentMin || centrality > EventCuts.cfgCentMax) { |
|
0 commit comments