Skip to content

Commit b808fdb

Browse files
authored
[PWGLF] Omegahm (#12962)
1 parent a5ff3b9 commit b808fdb

File tree

2 files changed

+48
-16
lines changed

2 files changed

+48
-16
lines changed

PWGLF/DataModel/LFNonPromptCascadeTables.h

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@ DECLARE_SOA_COLUMN(CentFT0A, centFT0A, float);
121121
DECLARE_SOA_COLUMN(CentFT0M, centFT0M, float);
122122
DECLARE_SOA_COLUMN(MultNTracksGlobal, multNTracksGlobal, int);
123123
DECLARE_SOA_COLUMN(ToiMask, toiMask, uint32_t);
124+
DECLARE_SOA_COLUMN(RunNumber, runNumber, int);
125+
DECLARE_SOA_COLUMN(NoSameBunchPileup, noSameBunchPileup, bool);
124126

125127
} // namespace NPCascadeTable
126128
DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
129+
NPCascadeTable::RunNumber,
127130
NPCascadeTable::MatchingChi2,
128131
NPCascadeTable::DeltaPtITSCascade,
129132
NPCascadeTable::DeltaPtCascade,
@@ -187,9 +190,11 @@ DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
187190
NPCascadeTable::CentFT0A,
188191
NPCascadeTable::CentFT0M,
189192
NPCascadeTable::MultNTracksGlobal,
190-
NPCascadeTable::ToiMask)
193+
NPCascadeTable::ToiMask,
194+
NPCascadeTable::NoSameBunchPileup)
191195

192196
DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
197+
NPCascadeTable::RunNumber,
193198
NPCascadeTable::MatchingChi2,
194199
NPCascadeTable::DeltaPtITSCascade,
195200
NPCascadeTable::DeltaPtCascade,
@@ -253,9 +258,11 @@ DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
253258
NPCascadeTable::CentFT0A,
254259
NPCascadeTable::CentFT0M,
255260
NPCascadeTable::MultNTracksGlobal,
256-
NPCascadeTable::ToiMask)
261+
NPCascadeTable::ToiMask,
262+
NPCascadeTable::NoSameBunchPileup)
257263

258264
DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
265+
NPCascadeTable::RunNumber,
259266
NPCascadeTable::MatchingChi2,
260267
NPCascadeTable::DeltaPtITSCascade,
261268
NPCascadeTable::DeltaPtCascade,
@@ -338,9 +345,11 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
338345
NPCascadeTable::HasFakeReassociation,
339346
NPCascadeTable::MotherDecayDaughters,
340347
NPCascadeTable::MultNTracksGlobal,
341-
NPCascadeTable::ToiMask)
348+
NPCascadeTable::ToiMask,
349+
NPCascadeTable::NoSameBunchPileup)
342350

343351
DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
352+
NPCascadeTable::RunNumber,
344353
NPCascadeTable::MatchingChi2,
345354
NPCascadeTable::DeltaPtITSCascade,
346355
NPCascadeTable::DeltaPtCascade,
@@ -423,7 +432,8 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
423432
NPCascadeTable::HasFakeReassociation,
424433
NPCascadeTable::MotherDecayDaughters,
425434
NPCascadeTable::MultNTracksGlobal,
426-
NPCascadeTable::ToiMask)
435+
NPCascadeTable::ToiMask,
436+
NPCascadeTable::NoSameBunchPileup)
427437

428438
DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
429439
NPCascadeTable::gPt,

PWGLF/Tasks/Strangeness/nonPromptCascade.cxx

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ using namespace o2::framework::expressions;
5252
namespace
5353
{
5454
struct NPCascCandidate {
55+
int runNumber;
5556
int64_t mcParticleId;
5657
int64_t trackGlobID;
5758
int64_t trackITSID;
@@ -127,6 +128,7 @@ struct NPCascCandidate {
127128
float centFT0M;
128129
int multNTracksGlobal;
129130
uint32_t toiMask;
131+
bool noSameBunchPileup;
130132
};
131133
std::array<bool, 2> isFromHF(auto& particle)
132134
{
@@ -211,6 +213,16 @@ struct NonPromptCascadeTask {
211213
o2::vertexing::DCAFitterN<2> mDCAFitter;
212214
std::array<int, 2> mProcessCounter = {0, 0}; // {Tracked, All}
213215
std::map<uint64_t, uint32_t> mToiMap;
216+
std::unordered_set<int> mRuns;
217+
std::shared_ptr<TH2> mHistPointer1;
218+
std::shared_ptr<TH2> mHistPointer2;
219+
std::shared_ptr<TH2> mHistPointer3;
220+
std::shared_ptr<TH2> mHistPointer4;
221+
AxisSpec multAxis = {10000, 0, 10000, "Multiplicity FT0M"};
222+
AxisSpec centAxis = {2021, -0.025, 101.025, "Centrality"};
223+
AxisSpec centAxisZoom = {2000, -0.0025, 10.0025, "Centrality"};
224+
AxisSpec multAxisZoom = {7000, 3000, 10000, "Multiplicity FT0M"};
225+
AxisSpec nTracksAxis = {100, 0., 100., "NTracksGlobal"};
214226

215227
void initCCDB(aod::BCsWithTimestamps::iterator const& bc)
216228
{
@@ -248,11 +260,6 @@ struct NonPromptCascadeTask {
248260

249261
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};
250262
// AxisSpec ptAxis = {ptBinning, "#it{p}_{T} (GeV/#it{c})"};
251-
AxisSpec centAxis = {101, 0., 101., "Centrality"};
252-
AxisSpec centAxisZoom = {100, 0., 10., "Centrality"};
253-
AxisSpec multAxis = {10000, 0, 10000, "Multiplicity FT0M"};
254-
AxisSpec multAxisZoom = {7000, 3000, 10000, "Multiplicity FT0M"};
255-
AxisSpec nTracksAxis = {100, 0., 100., "NTracksGlobal"};
256263

257264
std::array<std::string, 7> cutsNames{"# candidates", "hasTOF", "nClusTPC", "nSigmaTPCbach", "nSigmaTPCprotontrack", "nSigmaTPCpiontrack", "cosPA"};
258265
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}}))};
@@ -331,7 +338,22 @@ struct NonPromptCascadeTask {
331338
{
332339
// std::cout << "Filling mult histos" << std::endl;
333340
for (const auto& coll : collisions) {
334-
// std::cout << coll.centFT0M() << " mult, cent " << coll.multNTracksGlobal() << std::endl;
341+
if (!mRuns.count(mRunNumber)) {
342+
std::string histName = "mult/hMultVsCent_run" + std::to_string(mRunNumber);
343+
mHistPointer1 = std::get<std::shared_ptr<TH2>>(mRegistry.add(histName.c_str(), histName.c_str(), HistType::kTH2F, {centAxis, multAxis}));
344+
histName = "mult/hMultVsCentZoom_run" + std::to_string(mRunNumber);
345+
mHistPointer2 = std::get<std::shared_ptr<TH2>>(mRegistry.add(histName.c_str(), histName.c_str(), HistType::kTH2F, {centAxisZoom, multAxisZoom}));
346+
histName = "mult/hNTracksVsCent_run" + std::to_string(mRunNumber);
347+
mHistPointer3 = std::get<std::shared_ptr<TH2>>(mRegistry.add(histName.c_str(), histName.c_str(), HistType::kTH2F, {centAxis, nTracksAxis}));
348+
histName = "mult/hNTracksVsCentZoom_run" + std::to_string(mRunNumber);
349+
mHistPointer4 = std::get<std::shared_ptr<TH2>>(mRegistry.add(histName.c_str(), histName.c_str(), HistType::kTH2F, {centAxisZoom, nTracksAxis}));
350+
mRuns.insert(mRunNumber);
351+
}
352+
mHistPointer1->Fill(coll.centFT0M(), coll.multFT0M());
353+
mHistPointer2->Fill(coll.centFT0M(), coll.multFT0M());
354+
mHistPointer3->Fill(coll.centFT0M(), coll.multNTracksGlobal());
355+
mHistPointer4->Fill(coll.centFT0M(), coll.multNTracksGlobal());
356+
335357
mRegistry.fill(HIST("hMultVsCent"), coll.centFT0M(), coll.multFT0M());
336358
mRegistry.fill(HIST("hMultVsCentZoom"), coll.centFT0M(), coll.multFT0M());
337359
mRegistry.fill(HIST("hNTracksVsCent"), coll.centFT0M(), (float)coll.multNTracksGlobal());
@@ -548,7 +570,7 @@ struct NonPromptCascadeTask {
548570
if (mToiMap.count(bc.globalBC())) {
549571
toiMask = mToiMap[bc.globalBC()];
550572
}
551-
candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
573+
candidates.emplace_back(NPCascCandidate{mRunNumber, mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
552574
collision.numContrib(), cascPVContribs, collision.collisionTimeRes(), primaryVertex.getX(), primaryVertex.getY(), primaryVertex.getZ(),
553575
cascadeLvector.pt(), cascadeLvector.eta(), cascadeLvector.phi(),
554576
protonTrack.pt(), protonTrack.eta(), pionTrack.pt(), pionTrack.eta(), bachelor.pt(), bachelor.eta(),
@@ -558,15 +580,15 @@ struct NonPromptCascadeTask {
558580
cascITSclusters, protonTrack.itsNCls(), pionTrack.itsNCls(), bachelor.itsNCls(), protonTrack.tpcNClsFound(), pionTrack.tpcNClsFound(), bachelor.tpcNClsFound(),
559581
protonTrack.tpcNSigmaPr(), pionTrack.tpcNSigmaPi(), bachelor.tpcNSigmaKa(), bachelor.tpcNSigmaPi(),
560582
protonTrack.hasTOF(), pionTrack.hasTOF(), bachelor.hasTOF(),
561-
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});
583+
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, collision.selection_bit(aod::evsel::kNoSameBunchPileup)});
562584
}
563585
}
564586

565587
template <typename CascadeType>
566588
void fillDataTable(auto const& candidates)
567589
{
568590
for (const auto& c : candidates) {
569-
getDataTable<CascadeType>()(c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster,
591+
getDataTable<CascadeType>()(mRunNumber, c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster,
570592
c.pvContributors, c.cascPVContribs, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ,
571593
c.cascPt, c.cascEta, c.cascPhi,
572594
c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta,
@@ -578,7 +600,7 @@ struct NonPromptCascadeTask {
578600
c.protonTPCNSigma, c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma,
579601
c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
580602
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma,
581-
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M, c.multNTracksGlobal, c.toiMask);
603+
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M, c.multNTracksGlobal, c.toiMask, c.noSameBunchPileup);
582604
}
583605
}
584606

@@ -606,7 +628,7 @@ struct NonPromptCascadeTask {
606628
auto mcCollision = particle.template mcCollision_as<aod::McCollisions>();
607629
auto recCollision = collisions.iteratorAt(c.collisionID);
608630

609-
getMCtable<CascadeType>()(c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm,
631+
getMCtable<CascadeType>()(mRunNumber, c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm,
610632
c.pvContributors, c.cascPVContribs, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, c.cascPt, c.cascEta, c.cascPhi,
611633
c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta,
612634
c.cascDCAxy, c.cascDCAz, c.protonDCAxy, c.protonDCAz, c.pionDCAxy, c.pionDCAz, c.bachDCAxy, c.bachDCAz,
@@ -617,7 +639,7 @@ struct NonPromptCascadeTask {
617639
c.sel8, c.multFT0C, c.multFT0A, c.multFT0M, c.centFT0C, c.centFT0A, c.centFT0M,
618640
particle.pt(), particle.eta(), particle.phi(), mcCollision.posX(), mcCollision.posY(), mcCollision.posZ(),
619641
particle.pdgCode(), mcCollision.posX() - particle.vx(), mcCollision.posY() - particle.vy(),
620-
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters, c.multNTracksGlobal, c.toiMask);
642+
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters, c.multNTracksGlobal, c.toiMask, c.noSameBunchPileup);
621643
}
622644
}
623645

0 commit comments

Comments
 (0)