Skip to content

Commit 82c7408

Browse files
authored
[PWGLF] dev: adding track multiplicity (AliceO2Group#11745)
1 parent 8ac448f commit 82c7408

File tree

2 files changed

+31
-8
lines changed

2 files changed

+31
-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: 26 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());
@@ -314,6 +321,16 @@ struct NonPromptCascadeTask {
314321
}
315322
}
316323
}
324+
void fillMultHistos(const auto& collisions)
325+
{
326+
std::cout << "Filling mult histos" << std::endl;
327+
for (const auto& coll : collisions) {
328+
// std::cout << coll.centFT0M() << " mult, cent " << coll.multFT0M() << std::endl;
329+
mRegistry.fill(HIST("hMultVsCent"), coll.centFT0M(), coll.multFT0M());
330+
mRegistry.fill(HIST("hMultVsCentZoom"), coll.centFT0M(), coll.multFT0M());
331+
}
332+
};
333+
317334
template <typename TrackType, typename CollisionType>
318335
void fillCandidatesVector(CollisionType const&, TrackType const& tracks, auto const& cascades, auto& candidates, std::map<uint64_t, uint32_t> toiMap = {})
319336
{
@@ -533,7 +550,7 @@ struct NonPromptCascadeTask {
533550
cascITSclusters, protonTrack.itsNCls(), pionTrack.itsNCls(), bachelor.itsNCls(), protonTrack.tpcNClsFound(), pionTrack.tpcNClsFound(), bachelor.tpcNClsFound(),
534551
protonTrack.tpcNSigmaPr(), pionTrack.tpcNSigmaPi(), bachelor.tpcNSigmaKa(), bachelor.tpcNSigmaPi(),
535552
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});
553+
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});
537554
}
538555
}
539556

@@ -553,7 +570,7 @@ struct NonPromptCascadeTask {
553570
c.protonTPCNSigma, c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma,
554571
c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
555572
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);
573+
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M, c.multNTracksGlobal, c.toiMask);
557574
}
558575
}
559576

@@ -592,7 +609,7 @@ struct NonPromptCascadeTask {
592609
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M,
593610
particle.pt(), particle.eta(), particle.phi(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
594611
particle.pdgCode(), mcCollision.posX() - particle.vx(), mcCollision.posY() - particle.vy(),
595-
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters, c.toiMask);
612+
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters, c.multNTracksGlobal, c.toiMask);
596613
}
597614
}
598615

@@ -669,6 +686,7 @@ struct NonPromptCascadeTask {
669686
aod::V0s const& /*v0s*/, TracksExtData const& tracks,
670687
aod::BCsWithTimestamps const&)
671688
{
689+
fillMultHistos(collisions);
672690
std::map<uint64_t, uint32_t> toiMap;
673691
zorroAccounting(collisions, toiMap);
674692
fillCandidatesVector<TracksExtData>(collisions, tracks, trackedCascades, gCandidates, toiMap);

0 commit comments

Comments
 (0)