Skip to content

Commit b020bf7

Browse files
committed
Mechanism to choose uniquely reconstructed D0bars
1 parent 938a932 commit b020bf7

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

PWGCF/DataModel/CorrelationsDerived.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ DECLARE_SOA_COLUMN(InvMass, invMass, float);
139139
DECLARE_SOA_COLUMN(Decay, decay, uint8_t); //! Particle decay
140140
enum ParticleDecay {
141141
D0ToPiK,
142-
D0barToKPi,
142+
D0barToKPi, // note: often duplicate to D0ToPiK. Choose D0barToKPiExclusive to select uniquely reconstructed D0bars
143143
JPsiToEE,
144144
JPsiToMuMu,
145145
Generic2Prong,
@@ -156,7 +156,8 @@ enum ParticleDecay {
156156
LambdaToPPiLoose,
157157
LambdaToPPiTight,
158158
AntiLambdaToPiPLoose,
159-
AntiLambdaToPiPTight
159+
AntiLambdaToPiPTight,
160+
D0barToKPiExclusive
160161
};
161162
} // namespace cf2prongtrack
162163
DECLARE_SOA_TABLE(CF2ProngTracks, "AOD", "CF2PRONGTRACK", //! Reduced track table

PWGCF/TableProducer/filter2Prong.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,8 @@ struct Filter2Prong {
236236

237237
if (c.isSelD0bar() > 0) {
238238
output2ProngTracks(cfcollisions.begin().globalIndex(),
239-
prongCFId[0], prongCFId[1], c.pt(), c.eta(), c.phi(), hfHelper.invMassD0barToKPi(c), aod::cf2prongtrack::D0barToKPi);
239+
prongCFId[0], prongCFId[1], c.pt(), c.eta(), c.phi(), hfHelper.invMassD0barToKPi(c),
240+
c.isSelD0() > 0 ? aod::cf2prongtrack::D0barToKPi : aod::cf2prongtrack::D0barToKPiExclusive);
240241
if constexpr (std::experimental::is_detected<HasMLProb, typename HFCandidatesType::iterator>::value) {
241242
mlvecd.clear();
242243
for (const float val : c.mlProbD0())
@@ -288,7 +289,7 @@ struct Filter2Prong {
288289
}
289290
}
290291
output2ProngMcParts(prongCFId[0], prongCFId[1],
291-
(mcParticle.pdgCode() >= 0 ? aod::cf2prongtrack::D0ToPiK : aod::cf2prongtrack::D0barToKPi) | ((mcParticle.originMcGen() == RecoDecay::OriginType::Prompt) ? aod::cf2prongmcpart::Prompt : 0));
292+
(mcParticle.pdgCode() >= 0 ? aod::cf2prongtrack::D0ToPiK : aod::cf2prongtrack::D0barToKPiExclusive) | ((mcParticle.originMcGen() == RecoDecay::OriginType::Prompt) ? aod::cf2prongmcpart::Prompt : 0));
292293
}
293294
}
294295
PROCESS_SWITCH(Filter2Prong, processMC, "Process MC 2-prong daughters", false);

PWGCF/Tasks/correlations.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -570,7 +570,7 @@ struct CorrelationTask {
570570
}
571571

572572
if constexpr (std::experimental::is_detected<HasMcDecay, typename TTracks1::iterator>::value) {
573-
if (((track1.mcDecay() != aod::cf2prongtrack::D0ToPiK) && (track1.mcDecay() != aod::cf2prongtrack::D0barToKPi)) || (track1.decay() & aod::cf2prongmcpart::Prompt) == 0)
573+
if (((track1.mcDecay() != aod::cf2prongtrack::D0ToPiK) && (track1.mcDecay() != aod::cf2prongtrack::D0barToKPiExclusive)) || (track1.decay() & aod::cf2prongmcpart::Prompt) == 0)
574574
continue;
575575
} else if constexpr (std::experimental::is_detected<HasDecay, typename TTracks1::iterator>::value) {
576576
if (cfgDecayParticleMask != 0 && (cfgDecayParticleMask & (1u << static_cast<uint32_t>(track1.decay()))) == 0u) {
@@ -653,7 +653,7 @@ struct CorrelationTask {
653653

654654
// If decay attributes are found for the second track/particle, we assume 2p-2p correlation
655655
if constexpr (std::experimental::is_detected<HasMcDecay, typename TTracks2::iterator>::value) {
656-
if ((((track2.mcDecay()) != aod::cf2prongtrack::D0ToPiK) && ((track2.mcDecay()) != aod::cf2prongtrack::D0barToKPi)) || (track2.decay() & aod::cf2prongmcpart::Prompt) == 0)
656+
if ((((track2.mcDecay()) != aod::cf2prongtrack::D0ToPiK) && ((track2.mcDecay()) != aod::cf2prongtrack::D0barToKPiExclusive)) || (track2.decay() & aod::cf2prongmcpart::Prompt) == 0)
657657
continue;
658658
} else if constexpr (std::experimental::is_detected<HasDecay, typename TTracks2::iterator>::value) {
659659
if (cfgDecayParticleMask != 0 && (cfgDecayParticleMask & (1u << static_cast<uint32_t>(track2.decay()))) == 0u) {
@@ -1180,7 +1180,7 @@ struct CorrelationTask {
11801180
p2indexCache.clear();
11811181
for (const auto& mcParticle : mcParticles) {
11821182
if (std::find(cfgMcTriggerPDGs->begin(), cfgMcTriggerPDGs->end(), mcParticle.pdgCode()) != cfgMcTriggerPDGs->end()) {
1183-
if (((mcParticle.mcDecay() != aod::cf2prongtrack::D0ToPiK) && (mcParticle.mcDecay() != aod::cf2prongtrack::D0barToKPi)) || (mcParticle.decay() & aod::cf2prongmcpart::Prompt) == 0)
1183+
if (((mcParticle.mcDecay() != aod::cf2prongtrack::D0ToPiK) && (mcParticle.mcDecay() != aod::cf2prongtrack::D0barToKPiExclusive)) || (mcParticle.decay() & aod::cf2prongmcpart::Prompt) == 0)
11841184
continue; // wrong decay channel
11851185
if (mcParticle.cfParticleDaugh0Id() < 0 && mcParticle.cfParticleDaugh1Id() < 0)
11861186
continue; // daughters not found

0 commit comments

Comments
 (0)