Skip to content

Commit 19a1fcf

Browse files
committed
dev: adding track multiplicity
1 parent ee37b1e commit 19a1fcf

File tree

2 files changed

+32
-8
lines changed

2 files changed

+32
-8
lines changed

PWGLF/DataModel/LFNonPromptCascadeTables.h

Lines changed: 5 additions & 0 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(MultNTracksGlobal, multNTracksGlobal, int);
122123
DECLARE_SOA_COLUMN(ToiMask, toiMask, uint32_t);
123124

124125
} // namespace NPCascadeTable
@@ -185,6 +186,7 @@ DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
185186
NPCascadeTable::CentFT0C,
186187
NPCascadeTable::CentFT0A,
187188
NPCascadeTable::CentFT0M,
189+
NPCascadeTable::MultNTracksGlobal,
188190
NPCascadeTable::ToiMask)
189191

190192
DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
@@ -250,6 +252,7 @@ DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
250252
NPCascadeTable::CentFT0C,
251253
NPCascadeTable::CentFT0A,
252254
NPCascadeTable::CentFT0M,
255+
NPCascadeTable::MultNTracksGlobal,
253256
NPCascadeTable::ToiMask)
254257

255258
DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
@@ -334,6 +337,7 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
334337
NPCascadeTable::MCcollisionMatch,
335338
NPCascadeTable::HasFakeReassociation,
336339
NPCascadeTable::MotherDecayDaughters,
340+
NPCascadeTable::MultNTracksGlobal,
337341
NPCascadeTable::ToiMask)
338342

339343
DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
@@ -418,6 +422,7 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
418422
NPCascadeTable::MCcollisionMatch,
419423
NPCascadeTable::HasFakeReassociation,
420424
NPCascadeTable::MotherDecayDaughters,
425+
NPCascadeTable::MultNTracksGlobal,
421426
NPCascadeTable::ToiMask)
422427

423428
DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",

PWGLF/Tasks/Strangeness/nonPromptCascade.cxx

Lines changed: 27 additions & 8 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+
int multNTracksGlobal;
128129
uint32_t toiMask;
129130
};
130131
std::array<bool, 2> isFromHF(auto& particle)
@@ -174,12 +175,14 @@ struct NonPromptCascadeTask {
174175

175176
using TracksExtData = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
176177
using TracksExtMC = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
177-
using CollisionCandidatesRun3 = soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms>;
178-
using CollisionCandidatesRun3MC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::FT0Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms>;
178+
using CollisionCandidatesRun3 = soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::MultsGlobal>;
179+
using CollisionCandidatesRun3MC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::FT0Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::MultsGlobal>;
179180

180181
Preslice<TracksExtData> perCollision = aod::track::collisionId;
181182
Preslice<TracksExtMC> perCollisionMC = aod::track::collisionId;
182183

184+
HistogramRegistry mRegistry;
185+
183186
Configurable<std::string> ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
184187
Configurable<bool> cfgPropToPCA{"cfgPropToPCA", true, "create tracks version propagated to PCA"};
185188
Configurable<bool> cfgRedoPV{"cfgRedoPV", true, "redo PV"};
@@ -207,8 +210,6 @@ struct NonPromptCascadeTask {
207210
float mBz = 0.f;
208211
o2::vertexing::DCAFitterN<2> mDCAFitter;
209212

210-
HistogramRegistry mRegistry;
211-
212213
void initCCDB(aod::BCsWithTimestamps::iterator const& bc)
213214
{
214215
if (mRunNumber == bc.runNumber()) {
@@ -244,11 +245,17 @@ struct NonPromptCascadeTask {
244245
mDCAFitter.setUseAbsDCA(cfgUseAbsDCA);
245246

246247
std::vector<double> ptBinning = {0.4, 0.8, 1.2, 1.6, 2.0, 2.4, 2.8, 3.2, 3.6, 4.0, 4.4, 4.8, 5.2, 5.6, 6.0};
247-
AxisSpec ptAxis = {ptBinning, "#it{p}_{T} (GeV/#it{c})"};
248+
// AxisSpec ptAxis = {ptBinning, "#it{p}_{T} (GeV/#it{c})"};
249+
AxisSpec centAxis = {101, 0., 101., "Centrality"};
250+
AxisSpec centAxisZoom = {100, 0., 1., "Centrality"};
251+
AxisSpec multAxis = {10000, 0, 10000, "Multiplicity"};
252+
AxisSpec multAxisZoom = {1000, 0, 1000, "Multiplicity"};
248253

249254
std::array<std::string, 7> cutsNames{"# candidates", "hasTOF", "nClusTPC", "nSigmaTPCbach", "nSigmaTPCprotontrack", "nSigmaTPCpiontrack", "cosPA"};
250255
auto cutsOmega{std::get<std::shared_ptr<TH2>>(mRegistry.add("h_PIDcutsOmega", ";;Invariant mass (GeV/#it{c}^{2})", HistType::kTH2D, {{cutsNames.size(), -0.5, -0.5 + cutsNames.size()}, {125, 1.650, 1.700}}))};
251256
auto cutsXi{std::get<std::shared_ptr<TH2>>(mRegistry.add("h_PIDcutsXi", ";;Invariant mass (GeV/#it{c}^{2})", HistType::kTH2D, {{6, -0.5, 5.5}, {125, 1.296, 1.346}}))};
257+
mRegistry.add("hMultVsCent", "hMultVsCent", HistType::kTH2F, {centAxis, multAxis});
258+
mRegistry.add("hMultVsCentZoom", "hMultVsCentZoom", HistType::kTH2F, {centAxisZoom, multAxisZoom});
252259

253260
for (size_t iBin{0}; iBin < cutsNames.size(); ++iBin) {
254261
cutsOmega->GetYaxis()->SetBinLabel(iBin + 1, cutsNames[iBin].c_str());
@@ -300,6 +307,7 @@ struct NonPromptCascadeTask {
300307
LOG(fatal) << "N TOIs:" << mZorro.getNTOIs() << " Max 32 TOIs possible.";
301308
}
302309
mZorro.populateHistRegistry(mRegistry, bc.runNumber());
310+
mZorro.getZorroSummary()->printTOInames();
303311
runNumber = bc.runNumber();
304312
}
305313
bool sel = mZorro.isSelected(bc.globalBC()); /// Just let Zorro do the accounting
@@ -314,6 +322,16 @@ struct NonPromptCascadeTask {
314322
}
315323
}
316324
}
325+
void fillMultHistos(const auto& collisions)
326+
{
327+
std::cout << "Filling mult histos" << std::endl;
328+
for (const auto& coll : collisions) {
329+
// std::cout << coll.centFT0M() << " mult, cent " << coll.multFT0M() << std::endl;
330+
mRegistry.fill(HIST("hMultVsCent"), coll.centFT0M(), coll.multFT0M());
331+
mRegistry.fill(HIST("hMultVsCentZoom"), coll.centFT0M(), coll.multFT0M());
332+
}
333+
};
334+
317335
template <typename TrackType, typename CollisionType>
318336
void fillCandidatesVector(CollisionType const&, TrackType const& tracks, auto const& cascades, auto& candidates, std::map<uint64_t, uint32_t> toiMap = {})
319337
{
@@ -533,7 +551,7 @@ struct NonPromptCascadeTask {
533551
cascITSclusters, protonTrack.itsNCls(), pionTrack.itsNCls(), bachelor.itsNCls(), protonTrack.tpcNClsFound(), pionTrack.tpcNClsFound(), bachelor.tpcNClsFound(),
534552
protonTrack.tpcNSigmaPr(), pionTrack.tpcNSigmaPi(), bachelor.tpcNSigmaKa(), bachelor.tpcNSigmaPi(),
535553
protonTrack.hasTOF(), pionTrack.hasTOF(), bachelor.hasTOF(),
536-
protonTrack.tofNSigmaPr(), pionTrack.tofNSigmaPi(), bachelor.tofNSigmaKa(), bachelor.tofNSigmaPi(), collision.sel8(), collision.multFT0C(), collision.multFT0A(), collision.multFT0M(), collision.centFT0C(), collision.centFT0A(), collision.centFT0M(), toiMask});
554+
protonTrack.tofNSigmaPr(), pionTrack.tofNSigmaPi(), bachelor.tofNSigmaKa(), bachelor.tofNSigmaPi(), collision.sel8(), collision.multFT0C(), collision.multFT0A(), collision.multFT0M(), collision.centFT0C(), collision.centFT0A(), collision.centFT0M(), collision.multNTracksGlobal(), toiMask});
537555
}
538556
}
539557

@@ -553,7 +571,7 @@ struct NonPromptCascadeTask {
553571
c.protonTPCNSigma, c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma,
554572
c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
555573
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma,
556-
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M, c.toiMask);
574+
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M, c.multNTracksGlobal, c.toiMask);
557575
}
558576
}
559577

@@ -592,7 +610,7 @@ struct NonPromptCascadeTask {
592610
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M,
593611
particle.pt(), particle.eta(), particle.phi(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
594612
particle.pdgCode(), mcCollision.posX() - particle.vx(), mcCollision.posY() - particle.vy(),
595-
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters, c.toiMask);
613+
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters, c.multNTracksGlobal, c.toiMask);
596614
}
597615
}
598616

@@ -669,6 +687,7 @@ struct NonPromptCascadeTask {
669687
aod::V0s const& /*v0s*/, TracksExtData const& tracks,
670688
aod::BCsWithTimestamps const&)
671689
{
690+
fillMultHistos(collisions);
672691
std::map<uint64_t, uint32_t> toiMap;
673692
zorroAccounting(collisions, toiMap);
674693
fillCandidatesVector<TracksExtData>(collisions, tracks, trackedCascades, gCandidates, toiMap);

0 commit comments

Comments
 (0)