From f91985f7405f75df568520a96e8609058cbc163f Mon Sep 17 00:00:00 2001 From: fchinu Date: Thu, 19 Feb 2026 17:54:42 +0100 Subject: [PATCH 1/2] Fix B mass determination --- .../TableProducer/dataCreatorJpsiHadReduced.cxx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx b/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx index e6d73f4141e..fb2677bcf50 100644 --- a/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx +++ b/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx @@ -803,8 +803,7 @@ struct HfDataCreatorJpsiHadReduced { // --------------------------------- // reconstruct J/Psi candidate secondary vertex - o2::track::TrackParCov const trackParCovJpsi{}; // FIXME: unused - std::array const pVecJpsi{}; // FIXME: unused + std::array pVecJpsi{}; registry.fill(HIST("hFitCandidatesJpsi"), SVFitting::BeforeFit); try { if (df2.process(trackPosParCov, trackNegParCov) == 0) { @@ -858,12 +857,6 @@ struct HfDataCreatorJpsiHadReduced { if constexpr (DecChannel == DecayChannel::BplusToJpsiK) { registry.fill(HIST("hPtKaon"), trackParCovBach.getPt()); - // compute invariant mass square and apply selection - invMass2JpsiHad = RecoDecay::m2(std::array{pVecJpsi, pVecBach}, std::array{MassJPsi, MassKPlus}); - if ((invMass2JpsiHad < invMass2JpsiHadMin) || (invMass2JpsiHad > invMass2JpsiHadMax)) { - continue; - } - registry.fill(HIST("hMassJpsiKaon"), std::sqrt(invMass2JpsiHad)); registry.fill(HIST("hFitCandidatesBPlus"), SVFitting::BeforeFit); try { @@ -885,12 +878,19 @@ struct HfDataCreatorJpsiHadReduced { df3.getTrack(1).getPxPyPzGlo(pVec1); df3.getTrack(2).getPxPyPzGlo(pVec2); pVecBPlus = RecoDecay::pVec(pVec0, pVec1, pVec2); + pVecJpsi = RecoDecay::pVec(pVec0, pVec1); trackParCovBPlus = df3.createParentTrackParCov(); trackParCovBPlus.setAbsCharge(0); // to be sure + registry.fill(HIST("hMassJpsiKaon"), std::sqrt(invMass2JpsiHad)); if (!isBSelected(pVecBPlus, secondaryVertexBPlus, collision)) { continue; } + // compute invariant mass square and apply selection + invMass2JpsiHad = RecoDecay::m2(std::array{pVecJpsi, pVecBach}, std::array{MassJPsi, MassKPlus}); + if ((invMass2JpsiHad < invMass2JpsiHadMin) || (invMass2JpsiHad > invMass2JpsiHadMax)) { + continue; + } // fill Kaon tracks table // if information on track already stored, go to next track @@ -973,6 +973,7 @@ struct HfDataCreatorJpsiHadReduced { df4.getTrack(2).getPxPyPzGlo(pVec2); df4.getTrack(3).getPxPyPzGlo(pVec3); pVecBS = RecoDecay::pVec(pVec0, pVec1, pVec2, pVec3); + pVecJpsi = RecoDecay::pVec(pVec0, pVec1); pVecPhi = RecoDecay::pVec(pVec2, pVec3); trackParCovBS = df4.createParentTrackParCov(); trackParCovBS.setAbsCharge(0); // to be sure From f97b3736abffb2fc5f635ffe9b205765c3ab9bff Mon Sep 17 00:00:00 2001 From: fchinu Date: Thu, 19 Feb 2026 21:32:14 +0100 Subject: [PATCH 2/2] Fix histogram filling --- PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx b/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx index fb2677bcf50..c6ab8136c26 100644 --- a/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx +++ b/PWGHF/D2H/TableProducer/dataCreatorJpsiHadReduced.cxx @@ -881,7 +881,6 @@ struct HfDataCreatorJpsiHadReduced { pVecJpsi = RecoDecay::pVec(pVec0, pVec1); trackParCovBPlus = df3.createParentTrackParCov(); trackParCovBPlus.setAbsCharge(0); // to be sure - registry.fill(HIST("hMassJpsiKaon"), std::sqrt(invMass2JpsiHad)); if (!isBSelected(pVecBPlus, secondaryVertexBPlus, collision)) { continue; @@ -891,6 +890,7 @@ struct HfDataCreatorJpsiHadReduced { if ((invMass2JpsiHad < invMass2JpsiHadMin) || (invMass2JpsiHad > invMass2JpsiHadMax)) { continue; } + registry.fill(HIST("hMassJpsiKaon"), std::sqrt(invMass2JpsiHad)); // fill Kaon tracks table // if information on track already stored, go to next track