Skip to content

Commit 8f77153

Browse files
committed
str-upd
### Summary - Added FV0 detector to RCT checks. - Removed the collision iterator to fix event ordering issues.
1 parent 4139c47 commit 8f77153

File tree

2 files changed

+248
-160
lines changed

2 files changed

+248
-160
lines changed

PWGLF/TableProducer/Strangeness/cascqaanalysis.cxx

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
using namespace o2;
3535
using namespace o2::framework;
3636
using namespace o2::framework::expressions;
37+
using namespace o2::aod::rctsel;
3738

3839
// using DauTracks = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::TracksDCA, aod::pidTPCPi, aod::pidTPCPr, aod::pidTPCKa, aod::pidTOFPi, aod::pidTOFPr>;
3940
using TrkPidInfo = soa::Join<aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTPCFullKa, aod::pidTOFPi, aod::pidTOFPr, aod::pidTOFKa>;
@@ -79,6 +80,14 @@ struct Cascqaanalysis {
7980
Configurable<bool> isNoITSROFrameBorder{"isNoITSROFrameBorder", 1, "ITS ROF border cut"};
8081
Configurable<bool> isNoCollInTimeRangeNarrow{"isNoCollInTimeRangeNarrow", 1, "No collisions in +-2us window"};
8182

83+
Configurable<bool> requireRCTFlagChecker{"requireRCTFlagChecker", true, "Check event quality in run condition table"};
84+
Configurable<std::string> cfgEvtRCTFlagCheckerLabel{"cfgEvtRCTFlagCheckerLabel", "CBT_hadronPID", "Evt sel: RCT flag checker label"};
85+
Configurable<bool> cfgEvtRCTFlagCheckerZDCCheck{"cfgEvtRCTFlagCheckerZDCCheck", false, "Evt sel: RCT flag checker ZDC check"};
86+
Configurable<bool> cfgEvtRCTFlagCheckerFV0Check{"cfgEvtRCTFlagCheckerFV0Check", false, "Evt sel: RCT flag checker FV0 check"};
87+
Configurable<bool> cfgEvtRCTFlagCheckerLimitAcceptAsBad{"cfgEvtRCTFlagCheckerLimitAcceptAsBad", false, "Evt sel: RCT flag checker treat Limited Acceptance As Bad"};
88+
89+
RCTFlagsChecker rctChecker;
90+
8291
// Cascade selection criteria
8392
Configurable<float> scalefactor{"scalefactor", 1.0, "Scaling factor"};
8493
Configurable<double> casccospa{"casccospa", 0.97, "Casc CosPA"};
@@ -119,9 +128,9 @@ struct Cascqaanalysis {
119128
{
120129
TString hCandidateCounterLabels[4] = {"All candidates", "passed topo cuts", "has associated MC particle", "associated with Xi(Omega)"};
121130
TString hNEventsMCLabels[6] = {"All", "z vrtx", "INEL", "INEL>0", "INEL>1", "Associated with rec. collision"};
122-
TString hNEventsLabels[13] = {"All", "kIsTriggerTVX", "kNoTimeFrameBorder", "kNoITSROFrameBorder", "kIsVertexITSTPC", "kNoSameBunchPileup", "kIsGoodZvtxFT0vsPV", "isVertexTOFmatched", "kNoCollInTimeRangeNarrow", "z vrtx", "INEL", "INEL>0", "INEL>1"};
131+
TString hNEventsLabels[14] = {"All", "kIsTriggerTVX", "kNoTimeFrameBorder", "kNoITSROFrameBorder", "kIsVertexITSTPC", "kNoSameBunchPileup", "kIsGoodZvtxFT0vsPV", "isVertexTOFmatched", "kNoCollInTimeRangeNarrow", "z vrtx", "RCTFlagsChecker", "INEL", "INEL>0", "INEL>1"};
123132

124-
registry.add("hNEvents", "hNEvents", {HistType::kTH1D, {{13, 0.f, 13.f}}});
133+
registry.add("hNEvents", "hNEvents", {HistType::kTH1D, {{14, 0.f, 14.f}}});
125134

126135
for (int n = 1; n <= registry.get<TH1>(HIST("hNEvents"))->GetNbinsX(); n++) {
127136
registry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(n, hNEventsLabels[n - 1]);
@@ -169,6 +178,13 @@ struct Cascqaanalysis {
169178
registry.add("hFT0MFV0Asignal", "hFT0MFV0Asignal", {HistType::kTH2D, {signalFT0MAxis, signalFV0AAxis}});
170179
registry.add("hFT0MsignalPVContr", "hFT0MsignalPVContr", {HistType::kTH3D, {signalFT0MAxis, multNTracksAxis, eventTypeAxis}});
171180
}
181+
182+
183+
rctChecker.init(cfgEvtRCTFlagCheckerLabel, cfgEvtRCTFlagCheckerZDCCheck, cfgEvtRCTFlagCheckerLimitAcceptAsBad);
184+
if (cfgEvtRCTFlagCheckerFV0Check) {
185+
rctChecker.set(o2::aod::rctsel::kFV0Bad);
186+
}
187+
172188
}
173189

174190
Filter preFilter =
@@ -256,14 +272,14 @@ struct Cascqaanalysis {
256272
{
257273
// 0 - INEL, 1 - INEL>0, 2 - INEL>1
258274
int evFlag = 0;
259-
registry.fill(HIST("hNEvents"), 10.5); // INEL
275+
registry.fill(HIST("hNEvents"), 11.5); // INEL
260276
if (collision.isInelGt0()) {
261277
evFlag += 1;
262-
registry.fill(HIST("hNEvents"), 11.5); // INEL>0
278+
registry.fill(HIST("hNEvents"), 12.5); // INEL>0
263279
}
264280
if (collision.isInelGt1()) {
265281
evFlag += 1;
266-
registry.fill(HIST("hNEvents"), 12.5); // INEL>1
282+
registry.fill(HIST("hNEvents"), 13.5); // INEL>1
267283
}
268284
return evFlag;
269285
}
@@ -347,6 +363,14 @@ struct Cascqaanalysis {
347363
registry.fill(HIST("hZCollision"), collision.posZ());
348364
}
349365

366+
// RCTFlagChecker selection
367+
if (requireRCTFlagChecker && !rctChecker(collision)) {
368+
return false;
369+
}
370+
if (isFillEventSelectionQA) {
371+
registry.fill(HIST("hNEvents"), 10.5);
372+
}
373+
350374
return true;
351375
}
352376

@@ -483,15 +507,15 @@ struct Cascqaanalysis {
483507
uint16_t nchFV0 = getGenNchInFV0Aregion(mcPartSlice);
484508

485509
int evType = 0;
486-
registry.fill(HIST("hNEvents"), 10.5); // INEL
510+
registry.fill(HIST("hNEvents"), 11.5); // INEL
487511
// Rec. collision associated with INEL>0 gen. one
488512
if (pwglf::isINELgtNmc(mcPartSlice, 0, pdgDB)) {
489-
registry.fill(HIST("hNEvents"), 11.5); // INEL
513+
registry.fill(HIST("hNEvents"), 12.5); // INEL
490514
evType++;
491515
}
492516
// Rec. collision associated with INEL>1 gen. one
493517
if (pwglf::isINELgtNmc(mcPartSlice, 1, pdgDB)) {
494-
registry.fill(HIST("hNEvents"), 12.5); // INEL
518+
registry.fill(HIST("hNEvents"), 13.5); // INEL
495519
evType++;
496520
}
497521

0 commit comments

Comments
 (0)