diff --git a/PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx b/PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx index 8b38982c477..9734cf40148 100644 --- a/PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx +++ b/PWGHF/D2H/TableProducer/dataCreatorCharmHadPiReduced.cxx @@ -1241,7 +1241,7 @@ struct HfDataCreatorCharmHadPiReduced { trackParCov1.propagateTo(secondaryVertexCharm[0], bz); df2.getTrack(0).getPxPyPzGlo(pVec0); df2.getTrack(1).getPxPyPzGlo(pVec1); - pVecCharm = RecoDecay::pVec(pVec0, pVec1); + pVecCharm = RecoDecay::pVec(pVec0, pVec1, pVec2); trackParCovCharmHad = df2.createParentTrackParCov(); trackParCovCharmHad.setAbsCharge(0); // to be sure } @@ -1279,7 +1279,7 @@ struct HfDataCreatorCharmHadPiReduced { } // reject pi D with same sign as D - if constexpr (decChannel == DecayChannel::B0ToDminusPi || decChannel == DecayChannel::BsToDsminusPi || decChannel == DecayChannel::LbToLcplusPi || decChannel == DecayChannel::B0ToDstarPi) { // D∓ → π∓ K± π∓ and Ds∓ → K∓ K± π∓ and Lc∓ → p∓ K± π∓ and D*+ → D0 π+ + if constexpr (decChannel == DecayChannel::B0ToDminusPi || decChannel == DecayChannel::BsToDsminusPi || decChannel == DecayChannel::LbToLcplusPi) { // D∓ → π∓ K± π∓ and Ds∓ → K∓ K± π∓ and Lc∓ → p∓ K± π∓ if (trackPion.sign() * charmHadDauTracks[0].sign() > 0) { continue; } @@ -1287,6 +1287,10 @@ struct HfDataCreatorCharmHadPiReduced { if (!((candC.isSelD0() >= hfflagConfigurations.selectionFlagD0 && trackPion.sign() < 0) || (candC.isSelD0bar() >= hfflagConfigurations.selectionFlagD0bar && trackPion.sign() > 0))) { continue; } + } else if constexpr (decChannel == DecayChannel::B0ToDstarPi) { // D*+ → D0 π+ + if (trackPion.sign() * charmHadDauTracks.back().sign() > 0) { + continue; + } } // apply selections on pion tracks diff --git a/PWGHF/D2H/Tasks/taskB0Reduced.cxx b/PWGHF/D2H/Tasks/taskB0Reduced.cxx index e79e77278fb..fefbd739f11 100644 --- a/PWGHF/D2H/Tasks/taskB0Reduced.cxx +++ b/PWGHF/D2H/Tasks/taskB0Reduced.cxx @@ -616,7 +616,7 @@ struct HfTaskB0Reduced { candidate.decayLengthXY(), candidate.decayLengthNormalised(), candidate.decayLengthXYNormalised(), - candidate.impactParameterProngSqSum(), + candidate.impactParameterProduct(), candidate.maxNormalisedDeltaIP(), candidateMlScoreSig, candidate.isSelB0ToDPi(), @@ -644,12 +644,12 @@ struct HfTaskB0Reduced { prong0MlScorePrompt, prong0MlScoreNonprompt, // pion features - candidate.ptProng1(), + candidate.ptProng2(), std::abs(RecoDecay::eta(prongBachPi.pVector())), prongBachPi.itsNCls(), prongBachPi.tpcNClsCrossedRows(), prongBachPi.tpcChi2NCl(), - candidate.impactParameter1(), + candidate.impactParameter2(), prongBachPi.tpcNSigmaPi(), prongBachPi.tofNSigmaPi(), prongBachPi.tpcTofNSigmaPi(), diff --git a/PWGHF/DataModel/CandidateReconstructionTables.h b/PWGHF/DataModel/CandidateReconstructionTables.h index 9fddeb3551d..c24c9badbc3 100644 --- a/PWGHF/DataModel/CandidateReconstructionTables.h +++ b/PWGHF/DataModel/CandidateReconstructionTables.h @@ -2257,7 +2257,8 @@ DECLARE_SOA_TABLE(HfCandB0Base, "AOD", "HFCANDB0BASE", DECLARE_SOA_TABLE(HfCandB0DStar, "AOD", "HFCANDB0DSTAR", // general columns HFCAND_COLUMNS, - /* prong 2 */ hf_cand::ImpactParameterNormalised2, + /* prong 2 */ + hf_cand::ImpactParameterNormalised2, hf_cand::PtProng2, hf_cand::Pt2Prong2, hf_cand::PVectorProng2, @@ -2270,6 +2271,7 @@ DECLARE_SOA_TABLE(HfCandB0DStar, "AOD", "HFCANDB0DSTAR", /* dynamic columns */ hf_cand_3prong::M, hf_cand_3prong::M2, + hf_cand_2prong::ImpactParameterProduct, hf_cand_3prong::ImpactParameterProngSqSum, /* dynamic columns that use candidate momentum components */ hf_cand::Pt,