diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx index 5b1c433baf9..dc75f4fbe07 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx @@ -586,10 +586,18 @@ struct HfProducerCharmHadronsTrackFemtoDream { bdtScoreFd); } else if constexpr (Channel == DecayChannel::D0ToPiK) { + int signD0 = 0; + if (candFlag == 0) { + signD0 = +1; // D0 + } else if (candFlag == 1) { + signD0 = -1; // anti-D0 + } else { + LOG(error) << "Unexpected candFlag = " << candFlag; + } rowCandCharm2Prong( outputCollision.lastIndex(), timeStamp, - trackPos1.sign() + trackNeg.sign(), + signD0, trackPos1.globalIndex(), trackNeg.globalIndex(), trackPos1.pt(), diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx index 122196f54e7..e4deb4835d6 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx @@ -767,7 +767,30 @@ struct HfTaskCharmHadronsTrackFemtoDream { : NegativeCharge; timeStamp = part.timeStamp(); - + float tpcNSigma = 999.f; + float tofNSigma = 999.f; + switch (trackSel.pdgCodeTrack1.value) { + case kProton: + tpcNSigma = part.tpcNSigmaPr(); + tofNSigma = part.tofNSigmaPr(); + break; + case kPiPlus: + tpcNSigma = part.tpcNSigmaPi(); + tofNSigma = part.tofNSigmaPi(); + break; + case kKPlus: + tpcNSigma = part.tpcNSigmaKa(); + tofNSigma = part.tofNSigmaKa(); + break; + case kDeuteron: + tpcNSigma = part.tpcNSigmaDe(); + tofNSigma = part.tofNSigmaDe(); + break; + default: + LOG(fatal) << "Unhandled PDG code in PID switch: " + << trackSel.pdgCodeTrack1.value; + break; + } rowFemtoResultTrk( col.globalIndex(), timeStamp, @@ -779,8 +802,8 @@ struct HfTaskCharmHadronsTrackFemtoDream { part.tpcNClsFound(), part.tpcNClsFindable(), part.tpcNClsCrossedRows(), - part.tpcNSigmaPr(), - part.tofNSigmaPr()); + tpcNSigma, + tofNSigma); } // ---- Fill Collision Table ---- @@ -874,9 +897,12 @@ struct HfTaskCharmHadronsTrackFemtoDream { auto sliceCharmHad = partitionCharmHadron2Prong->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache); if (fillTableWithCharm.value && sliceCharmHad.size() == 0) { continue; + } else { + fillTables(col, sliceTrk1, sliceCharmHad); + } + if (sliceCharmHad.size() > 0 && sliceTrk1.size() > 0) { + doSameEvent(sliceCharmHad, sliceTrk1, parts, col); } - fillTables(col, sliceTrk1, sliceCharmHad); - doSameEvent(sliceCharmHad, sliceTrk1, parts, col); } if (mixSetting.doMixEvent) { switch (mixSetting.mixingBinPolicy) { @@ -906,9 +932,12 @@ struct HfTaskCharmHadronsTrackFemtoDream { auto sliceCharmHad = partitionCharmHadronDstar->sliceByCached(aod::femtodreamparticle::fdCollisionId, col.globalIndex(), cache); if (fillTableWithCharm.value && sliceCharmHad.size() == 0) { continue; + } else { + fillTables(col, sliceTrk1, sliceCharmHad); + } + if (sliceCharmHad.size() > 0 && sliceTrk1.size() > 0) { + doSameEvent(sliceCharmHad, sliceTrk1, parts, col); } - fillTables(col, sliceTrk1, sliceCharmHad); - doSameEvent(sliceCharmHad, sliceTrk1, parts, col); } if (mixSetting.doMixEvent) { switch (mixSetting.mixingBinPolicy) {