From 7ea883f8897e2d5ecdee3638150e675565d14074 Mon Sep 17 00:00:00 2001 From: Daiki Sekihata Date: Sat, 10 Jan 2026 21:27:36 +0100 Subject: [PATCH] PWGEM/Dilepton: fix in matchingMFT.cxx --- PWGEM/Dilepton/Tasks/matchingMFT.cxx | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/PWGEM/Dilepton/Tasks/matchingMFT.cxx b/PWGEM/Dilepton/Tasks/matchingMFT.cxx index 3a980efe756..706c0c98213 100644 --- a/PWGEM/Dilepton/Tasks/matchingMFT.cxx +++ b/PWGEM/Dilepton/Tasks/matchingMFT.cxx @@ -692,7 +692,9 @@ struct matchingMFT { } float deta = 999.f, dphi = 999.f; - getDeltaEtaDeltaPhiAtMatchingPlane(collision, muon_tmp, mftCovs, deta, dphi); + if constexpr (withMFTCov) { + getDeltaEtaDeltaPhiAtMatchingPlane(collision, muon_tmp, mftCovs, deta, dphi); + } float dr = std::sqrt(deta * deta + dphi * dphi); // auto mcParticle_MFTMCHMID = muon_tmp.template mcParticle_as(); // this is identical to mcParticle_MCHMID @@ -750,6 +752,17 @@ struct matchingMFT { void processWithoutFTTCA(FilteredMyCollisions const& collisions, MyFwdTracks const& fwdtracks, MyMFTTracks const& mfttracks, aod::BCsWithTimestamps const&, aod::McParticles const&) { + vec_min_chi2MatchMCHMFT.reserve(fwdtracks.size()); + vec_min_dr.reserve(fwdtracks.size()); + for (const auto& collision : collisions) { + auto bc = collision.template bc_as(); + initCCDB(bc); + auto fwdtracks_per_coll = fwdtracks.sliceBy(perCollision, collision.globalIndex()); + for (const auto& fwdtrack : fwdtracks_per_coll) { + findBestMatchPerMCHMID(collision, fwdtrack, fwdtracks, mfttracks, nullptr); + } // end of fwdtrack loop + } // end of collision loop + for (const auto& collision : collisions) { auto bc = collision.template bc_as(); initCCDB(bc); @@ -786,6 +799,18 @@ struct matchingMFT { void processWithFTTCA(FilteredMyCollisions const& collisions, MyFwdTracks const& fwdtracks, MyMFTTracks const& mfttracks, aod::BCsWithTimestamps const&, aod::FwdTrackAssoc const& fwdtrackIndices, aod::McParticles const&) { + vec_min_chi2MatchMCHMFT.reserve(fwdtracks.size()); + vec_min_dr.reserve(fwdtracks.size()); + for (const auto& collision : collisions) { + auto bc = collision.template bc_as(); + initCCDB(bc); + auto fwdtrackIdsThisCollision = fwdtrackIndices.sliceBy(fwdtrackIndicesPerCollision, collision.globalIndex()); + for (const auto& fwdtrackId : fwdtrackIdsThisCollision) { + auto fwdtrack = fwdtrackId.template fwdtrack_as(); + findBestMatchPerMCHMID(collision, fwdtrack, fwdtracks, mfttracks, nullptr); + } // end of fwdtrack loop + } // end of collision loop + for (const auto& collision : collisions) { auto bc = collision.template bc_as(); initCCDB(bc);