Skip to content

Commit f6b8056

Browse files
authored
[PWGLF] feat(DataModel): Add MotherDecayDaughters column to NPCascadeTable (#10492)
1 parent 1def060 commit f6b8056

File tree

2 files changed

+34
-5
lines changed

2 files changed

+34
-5
lines changed

PWGLF/DataModel/LFNonPromptCascadeTables.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ DECLARE_SOA_COLUMN(DCAxMC, dcaXmc, float);
103103
DECLARE_SOA_COLUMN(DCAyMC, dcaYmc, float);
104104
DECLARE_SOA_COLUMN(DCAzMC, dcaZmc, float);
105105
DECLARE_SOA_COLUMN(MCcollisionMatch, mcCollisionMatch, bool);
106+
DECLARE_SOA_COLUMN(MotherDecayDaughters, motherDecayDaughters, int8_t);
106107

107108
} // namespace NPCascadeTable
108109
DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
@@ -282,7 +283,8 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
282283
NPCascadeTable::DCAxMC,
283284
NPCascadeTable::DCAyMC,
284285
NPCascadeTable::DCAzMC,
285-
NPCascadeTable::MCcollisionMatch)
286+
NPCascadeTable::MCcollisionMatch,
287+
NPCascadeTable::MotherDecayDaughters)
286288

287289
DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
288290
NPCascadeTable::MatchingChi2,
@@ -351,7 +353,8 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
351353
NPCascadeTable::DCAxMC,
352354
NPCascadeTable::DCAyMC,
353355
NPCascadeTable::DCAzMC,
354-
NPCascadeTable::MCcollisionMatch)
356+
NPCascadeTable::MCcollisionMatch,
357+
NPCascadeTable::MotherDecayDaughters)
355358

356359
DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
357360
NPCascadeTable::gPt,
@@ -363,7 +366,8 @@ DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
363366
NPCascadeTable::DCAyMC,
364367
NPCascadeTable::DCAzMC,
365368
NPCascadeTable::IsFromBeauty,
366-
NPCascadeTable::IsFromCharm)
369+
NPCascadeTable::IsFromCharm,
370+
NPCascadeTable::MotherDecayDaughters)
367371

368372
} // namespace o2::aod
369373

PWGLF/Tasks/Strangeness/nonPromptCascade.cxx

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,18 @@ struct NonPromptCascadeTask {
481481
continue;
482482
}
483483
auto particle = mcParticles.iteratorAt(c.mcParticleId);
484+
int motherDecayDaughters{0};
485+
if (c.isFromBeauty || c.isFromCharm) {
486+
auto mom = particle.template mothers_as<aod::McParticles>()[0];
487+
auto daughters = mom.template daughters_as<aod::McParticles>();
488+
motherDecayDaughters = daughters.size();
489+
for (const auto& d : daughters) {
490+
if (std::abs(d.pdgCode()) == 11 || std::abs(d.pdgCode()) == 13) {
491+
motherDecayDaughters *= -1;
492+
break;
493+
}
494+
}
495+
}
484496
auto mcCollision = particle.template mcCollision_as<aod::McCollisions>();
485497
auto recCollision = collisions.iteratorAt(c.collisionID);
486498

@@ -493,7 +505,7 @@ struct NonPromptCascadeTask {
493505
c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma, c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
494506
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma,
495507
particle.pt(), particle.eta(), particle.phi(), particle.pdgCode(), mcCollision.posX() - particle.vx(), mcCollision.posY() - particle.vy(),
496-
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId());
508+
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), motherDecayDaughters);
497509
}
498510
}
499511

@@ -547,7 +559,20 @@ struct NonPromptCascadeTask {
547559
int pdgCodeMom = p.has_mothers() ? p.template mothers_as<aod::McParticles>()[0].pdgCode() : 0;
548560
auto mcCollision = p.template mcCollision_as<aod::McCollisions>();
549561

550-
NPCTableGen(p.pt(), p.eta(), p.phi(), p.pdgCode(), pdgCodeMom, mcCollision.posX() - p.vx(), mcCollision.posY() - p.vy(), mcCollision.posZ() - p.vz(), fromHF[0], fromHF[1]);
562+
int motherDecayDaughters{0};
563+
if (fromHF[0] || fromHF[1]) {
564+
auto mom = p.template mothers_as<aod::McParticles>()[0];
565+
auto daughters = mom.template daughters_as<aod::McParticles>();
566+
motherDecayDaughters = daughters.size();
567+
for (const auto& d : daughters) {
568+
if (std::abs(d.pdgCode()) == 11 || std::abs(d.pdgCode()) == 13) {
569+
motherDecayDaughters *= -1;
570+
break;
571+
}
572+
}
573+
}
574+
575+
NPCTableGen(p.pt(), p.eta(), p.phi(), p.pdgCode(), pdgCodeMom, mcCollision.posX() - p.vx(), mcCollision.posY() - p.vy(), mcCollision.posZ() - p.vz(), fromHF[0], fromHF[1], motherDecayDaughters);
551576
}
552577
}
553578
PROCESS_SWITCH(NonPromptCascadeTask, processGenParticles, "process gen cascades: MC analysis", false);

0 commit comments

Comments
 (0)