Skip to content

Commit 1e53943

Browse files
authored
[PWGLF,Trigger] Omegamult: added toi mask (#11619)
1 parent 7ba64f6 commit 1e53943

File tree

3 files changed

+44
-15
lines changed

3 files changed

+44
-15
lines changed

EventFiltering/Zorro.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111
//
12-
// Zero Obstacles Results Retriever for Offline trigger selections
12+
13+
///
14+
/// \file Zorro.h
15+
/// \brief Zero Obstacles Results Retriever for Offline trigger selections
16+
/// \author M Puccio
17+
///
1318

1419
#ifndef EVENTFILTERING_ZORRO_H_
1520
#define EVENTFILTERING_ZORRO_H_
@@ -54,6 +59,7 @@ class Zorro
5459
std::vector<int> getTOIcounters() const { return mTOIcounts; }
5560
std::vector<bool> getTriggerOfInterestResults(uint64_t bcGlobalId, uint64_t tolerance = 100);
5661
std::vector<bool> getTriggerOfInterestResults() const;
62+
int getNTOIs() const { return mTOIs.size(); }
5763

5864
void setCCDBpath(std::string path) { mBaseCCDBPath = path; }
5965
void setBaseCCDBPath(std::string path) { mBaseCCDBPath = path; }

PWGLF/DataModel/LFNonPromptCascadeTables.h

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ DECLARE_SOA_COLUMN(MultFT0M, multFT0M, float);
119119
DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float);
120120
DECLARE_SOA_COLUMN(CentFT0A, centFT0A, float);
121121
DECLARE_SOA_COLUMN(CentFT0M, centFT0M, float);
122+
DECLARE_SOA_COLUMN(ToiMask, toiMask, uint32_t);
122123

123124
} // namespace NPCascadeTable
124125
DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
@@ -183,7 +184,8 @@ DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
183184
NPCascadeTable::MultFT0M,
184185
NPCascadeTable::CentFT0C,
185186
NPCascadeTable::CentFT0A,
186-
NPCascadeTable::CentFT0M)
187+
NPCascadeTable::CentFT0M,
188+
NPCascadeTable::ToiMask)
187189

188190
DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
189191
NPCascadeTable::MatchingChi2,
@@ -247,7 +249,8 @@ DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
247249
NPCascadeTable::MultFT0M,
248250
NPCascadeTable::CentFT0C,
249251
NPCascadeTable::CentFT0A,
250-
NPCascadeTable::CentFT0M)
252+
NPCascadeTable::CentFT0M,
253+
NPCascadeTable::ToiMask)
251254

252255
DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
253256
NPCascadeTable::MatchingChi2,
@@ -330,7 +333,8 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
330333
NPCascadeTable::DCAzMC,
331334
NPCascadeTable::MCcollisionMatch,
332335
NPCascadeTable::HasFakeReassociation,
333-
NPCascadeTable::MotherDecayDaughters)
336+
NPCascadeTable::MotherDecayDaughters,
337+
NPCascadeTable::ToiMask)
334338

335339
DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
336340
NPCascadeTable::MatchingChi2,
@@ -413,7 +417,8 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
413417
NPCascadeTable::DCAzMC,
414418
NPCascadeTable::MCcollisionMatch,
415419
NPCascadeTable::HasFakeReassociation,
416-
NPCascadeTable::MotherDecayDaughters)
420+
NPCascadeTable::MotherDecayDaughters,
421+
NPCascadeTable::ToiMask)
417422

418423
DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
419424
NPCascadeTable::gPt,

PWGLF/Tasks/Strangeness/nonPromptCascade.cxx

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ struct NPCascCandidate {
125125
float centFT0C;
126126
float centFT0A;
127127
float centFT0M;
128+
uint32_t toiMask;
128129
};
129130
std::array<bool, 2> isFromHF(auto& particle)
130131
{
@@ -287,23 +288,34 @@ struct NonPromptCascadeTask {
287288
return true;
288289
}
289290

290-
void zorroAccounting(const auto& collisions)
291+
void zorroAccounting(const auto& collisions, auto& toiMap)
291292
{
292293
if (cfgSkimmedProcessing) {
293294
int runNumber{-1};
294295
for (const auto& coll : collisions) {
295296
auto bc = coll.template bc_as<aod::BCsWithTimestamps>();
296297
if (runNumber != bc.runNumber()) {
297298
mZorro.initCCDB(mCCDB.service, bc.runNumber(), bc.timestamp(), cfgTriggersOfInterest.value);
299+
if (mZorro.getNTOIs() > 32) {
300+
LOG(fatal) << "N TOIs:" << mZorro.getNTOIs() << " Max 32 TOIs possible.";
301+
}
298302
mZorro.populateHistRegistry(mRegistry, bc.runNumber());
299303
runNumber = bc.runNumber();
300304
}
301-
mZorro.isSelected(bc.globalBC()); /// Just let Zorro do the accounting
305+
bool sel = mZorro.isSelected(bc.globalBC()); /// Just let Zorro do the accounting
306+
if (sel) {
307+
std::vector<bool> toivect = mZorro.getTriggerOfInterestResults();
308+
uint32_t toiMask = 0;
309+
for (size_t i{0}; i < toivect.size(); i++) {
310+
toiMask += toivect[i] << i;
311+
}
312+
toiMap[bc.globalBC()] = toiMask;
313+
}
302314
}
303315
}
304316
}
305317
template <typename TrackType, typename CollisionType>
306-
void fillCandidatesVector(CollisionType const&, TrackType const& tracks, auto const& cascades, auto& candidates)
318+
void fillCandidatesVector(CollisionType const&, TrackType const& tracks, auto const& cascades, auto& candidates, std::map<uint64_t, uint32_t> toiMap = {})
307319
{
308320

309321
const auto& getCascade = [](auto const& candidate) {
@@ -507,6 +519,10 @@ struct NonPromptCascadeTask {
507519
} else {
508520
o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, ntCascadeTrack, mBz, 2.f, matCorr, &motherDCA);
509521
}
522+
uint32_t toiMask = 0x0;
523+
if (toiMap.count(bc.globalBC())) {
524+
toiMask = toiMap[bc.globalBC()];
525+
}
510526
candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
511527
collision.numContrib(), cascPVContribs, collision.collisionTimeRes(), primaryVertex.getX(), primaryVertex.getY(), primaryVertex.getZ(),
512528
cascadeLvector.pt(), cascadeLvector.eta(), cascadeLvector.phi(),
@@ -517,7 +533,7 @@ struct NonPromptCascadeTask {
517533
cascITSclusters, protonTrack.itsNCls(), pionTrack.itsNCls(), bachelor.itsNCls(), protonTrack.tpcNClsFound(), pionTrack.tpcNClsFound(), bachelor.tpcNClsFound(),
518534
protonTrack.tpcNSigmaPr(), pionTrack.tpcNSigmaPi(), bachelor.tpcNSigmaKa(), bachelor.tpcNSigmaPi(),
519535
protonTrack.hasTOF(), pionTrack.hasTOF(), bachelor.hasTOF(),
520-
protonTrack.tofNSigmaPr(), pionTrack.tofNSigmaPi(), bachelor.tofNSigmaKa(), bachelor.tofNSigmaPi(), collision.sel8(), collision.multFT0C(), collision.multFT0A(), collision.multFT0M(), collision.centFT0C(), collision.centFT0A(), collision.centFT0M()});
536+
protonTrack.tofNSigmaPr(), pionTrack.tofNSigmaPi(), bachelor.tofNSigmaKa(), bachelor.tofNSigmaPi(), collision.sel8(), collision.multFT0C(), collision.multFT0A(), collision.multFT0M(), collision.centFT0C(), collision.centFT0A(), collision.centFT0M(), toiMask});
521537
}
522538
}
523539

@@ -537,7 +553,7 @@ struct NonPromptCascadeTask {
537553
c.protonTPCNSigma, c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma,
538554
c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
539555
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma,
540-
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M);
556+
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M, c.toiMask);
541557
}
542558
}
543559

@@ -576,7 +592,7 @@ struct NonPromptCascadeTask {
576592
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M,
577593
particle.pt(), particle.eta(), particle.phi(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
578594
particle.pdgCode(), mcCollision.posX() - particle.vx(), mcCollision.posY() - particle.vy(),
579-
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters);
595+
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters, c.toiMask);
580596
}
581597
}
582598

@@ -653,8 +669,9 @@ struct NonPromptCascadeTask {
653669
aod::V0s const& /*v0s*/, TracksExtData const& tracks,
654670
aod::BCsWithTimestamps const&)
655671
{
656-
zorroAccounting(collisions);
657-
fillCandidatesVector<TracksExtData>(collisions, tracks, trackedCascades, gCandidates);
672+
std::map<uint64_t, uint32_t> toiMap;
673+
zorroAccounting(collisions, toiMap);
674+
fillCandidatesVector<TracksExtData>(collisions, tracks, trackedCascades, gCandidates, toiMap);
658675
fillDataTable<aod::AssignedTrackedCascades>(gCandidates);
659676
}
660677
PROCESS_SWITCH(NonPromptCascadeTask, processTrackedCascadesData, "process cascades from strangeness tracking: Data analysis", false);
@@ -663,8 +680,9 @@ struct NonPromptCascadeTask {
663680
aod::V0s const& /*v0s*/, TracksExtData const& tracks,
664681
aod::BCsWithTimestamps const&)
665682
{
666-
zorroAccounting(collisions);
667-
fillCandidatesVector<TracksExtData>(collisions, tracks, cascades, gCandidatesNT);
683+
std::map<uint64_t, uint32_t> toiMap;
684+
zorroAccounting(collisions, toiMap);
685+
fillCandidatesVector<TracksExtData>(collisions, tracks, cascades, gCandidatesNT, toiMap);
668686
fillDataTable<aod::Cascades>(gCandidatesNT);
669687
}
670688
PROCESS_SWITCH(NonPromptCascadeTask, processCascadesData, "process cascades: Data analysis", false);

0 commit comments

Comments
 (0)