Skip to content

Commit ecb37c8

Browse files
[PWGLF] str-in-pp-and-upc-update (#13373)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 894709e commit ecb37c8

File tree

2 files changed

+292
-194
lines changed

2 files changed

+292
-194
lines changed

PWGLF/TableProducer/Strangeness/cascqaanalysis.cxx

Lines changed: 47 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,33 @@
1313
/// \brief Analysis of cascades in pp collisions
1414
/// \author Roman Nepeivoda (roman.nepeivoda@cern.ch)
1515

16-
#include <algorithm>
17-
#include <vector>
18-
#include <TPDGCode.h>
16+
#include "PWGLF/DataModel/cascqaanalysis.h"
1917

20-
#include "Framework/runDataProcessing.h"
21-
#include "Framework/AnalysisTask.h"
22-
#include "Common/DataModel/TrackSelectionTables.h"
2318
#include "PWGLF/DataModel/LFStrangenessTables.h"
19+
#include "PWGLF/DataModel/mcCentrality.h"
20+
#include "PWGLF/Utils/inelGt.h"
21+
22+
#include "Common/DataModel/Centrality.h"
2423
#include "Common/DataModel/EventSelection.h"
25-
#include "Common/DataModel/PIDResponse.h"
2624
#include "Common/DataModel/Multiplicity.h"
27-
#include "Common/DataModel/Centrality.h"
28-
#include "PWGLF/DataModel/cascqaanalysis.h"
29-
#include "TRandom2.h"
25+
#include "Common/DataModel/PIDResponse.h"
26+
#include "Common/DataModel/TrackSelectionTables.h"
27+
28+
#include "Framework/AnalysisTask.h"
3029
#include "Framework/O2DatabasePDGPlugin.h"
31-
#include "PWGLF/Utils/inelGt.h"
32-
#include "PWGLF/DataModel/mcCentrality.h"
30+
#include "Framework/runDataProcessing.h"
31+
32+
#include "TRandom2.h"
33+
#include <TPDGCode.h>
34+
35+
#include <algorithm>
36+
#include <string>
37+
#include <vector>
3338

3439
using namespace o2;
3540
using namespace o2::framework;
3641
using namespace o2::framework::expressions;
42+
using namespace o2::aod::rctsel;
3743

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

88+
Configurable<bool> requireRCTFlagChecker{"requireRCTFlagChecker", true, "Check event quality in run condition table"};
89+
Configurable<std::string> cfgEvtRCTFlagCheckerLabel{"cfgEvtRCTFlagCheckerLabel", "CBT_hadronPID", "Evt sel: RCT flag checker label"};
90+
Configurable<bool> cfgEvtRCTFlagCheckerZDCCheck{"cfgEvtRCTFlagCheckerZDCCheck", false, "Evt sel: RCT flag checker ZDC check"};
91+
Configurable<bool> cfgEvtRCTFlagCheckerFV0Check{"cfgEvtRCTFlagCheckerFV0Check", false, "Evt sel: RCT flag checker FV0 check"};
92+
Configurable<bool> cfgEvtRCTFlagCheckerLimitAcceptAsBad{"cfgEvtRCTFlagCheckerLimitAcceptAsBad", false, "Evt sel: RCT flag checker treat Limited Acceptance As Bad"};
93+
94+
RCTFlagsChecker rctChecker;
95+
8296
// Cascade selection criteria
8397
Configurable<float> scalefactor{"scalefactor", 1.0, "Scaling factor"};
8498
Configurable<double> casccospa{"casccospa", 0.97, "Casc CosPA"};
@@ -119,9 +133,9 @@ struct Cascqaanalysis {
119133
{
120134
TString hCandidateCounterLabels[4] = {"All candidates", "passed topo cuts", "has associated MC particle", "associated with Xi(Omega)"};
121135
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"};
136+
TString hNEventsLabels[14] = {"All", "kIsTriggerTVX", "kNoTimeFrameBorder", "kNoITSROFrameBorder", "kIsVertexITSTPC", "kNoSameBunchPileup", "kIsGoodZvtxFT0vsPV", "isVertexTOFmatched", "kNoCollInTimeRangeNarrow", "z vrtx", "RCTFlagsChecker", "INEL", "INEL>0", "INEL>1"};
123137

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

126140
for (int n = 1; n <= registry.get<TH1>(HIST("hNEvents"))->GetNbinsX(); n++) {
127141
registry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(n, hNEventsLabels[n - 1]);
@@ -169,6 +183,11 @@ struct Cascqaanalysis {
169183
registry.add("hFT0MFV0Asignal", "hFT0MFV0Asignal", {HistType::kTH2D, {signalFT0MAxis, signalFV0AAxis}});
170184
registry.add("hFT0MsignalPVContr", "hFT0MsignalPVContr", {HistType::kTH3D, {signalFT0MAxis, multNTracksAxis, eventTypeAxis}});
171185
}
186+
187+
rctChecker.init(cfgEvtRCTFlagCheckerLabel, cfgEvtRCTFlagCheckerZDCCheck, cfgEvtRCTFlagCheckerLimitAcceptAsBad);
188+
if (cfgEvtRCTFlagCheckerFV0Check) {
189+
rctChecker.set(o2::aod::rctsel::kFV0Bad);
190+
}
172191
}
173192

174193
Filter preFilter =
@@ -256,14 +275,14 @@ struct Cascqaanalysis {
256275
{
257276
// 0 - INEL, 1 - INEL>0, 2 - INEL>1
258277
int evFlag = 0;
259-
registry.fill(HIST("hNEvents"), 10.5); // INEL
278+
registry.fill(HIST("hNEvents"), 11.5); // INEL
260279
if (collision.isInelGt0()) {
261280
evFlag += 1;
262-
registry.fill(HIST("hNEvents"), 11.5); // INEL>0
281+
registry.fill(HIST("hNEvents"), 12.5); // INEL>0
263282
}
264283
if (collision.isInelGt1()) {
265284
evFlag += 1;
266-
registry.fill(HIST("hNEvents"), 12.5); // INEL>1
285+
registry.fill(HIST("hNEvents"), 13.5); // INEL>1
267286
}
268287
return evFlag;
269288
}
@@ -347,6 +366,14 @@ struct Cascqaanalysis {
347366
registry.fill(HIST("hZCollision"), collision.posZ());
348367
}
349368

369+
// RCTFlagChecker selection
370+
if (requireRCTFlagChecker && !rctChecker(collision)) {
371+
return false;
372+
}
373+
if (isFillEventSelectionQA) {
374+
registry.fill(HIST("hNEvents"), 10.5);
375+
}
376+
350377
return true;
351378
}
352379

@@ -483,15 +510,15 @@ struct Cascqaanalysis {
483510
uint16_t nchFV0 = getGenNchInFV0Aregion(mcPartSlice);
484511

485512
int evType = 0;
486-
registry.fill(HIST("hNEvents"), 10.5); // INEL
513+
registry.fill(HIST("hNEvents"), 11.5); // INEL
487514
// Rec. collision associated with INEL>0 gen. one
488515
if (pwglf::isINELgtNmc(mcPartSlice, 0, pdgDB)) {
489-
registry.fill(HIST("hNEvents"), 11.5); // INEL
516+
registry.fill(HIST("hNEvents"), 12.5); // INEL
490517
evType++;
491518
}
492519
// Rec. collision associated with INEL>1 gen. one
493520
if (pwglf::isINELgtNmc(mcPartSlice, 1, pdgDB)) {
494-
registry.fill(HIST("hNEvents"), 12.5); // INEL
521+
registry.fill(HIST("hNEvents"), 13.5); // INEL
495522
evType++;
496523
}
497524

0 commit comments

Comments
 (0)