From 9aeab250c3f5222a532f22725a0cedf971590558 Mon Sep 17 00:00:00 2001 From: Gyula Bencedi Date: Wed, 14 Oct 2026 17:27:05 +0200 Subject: [PATCH 1/3] Update phi selection for data and mc --- PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx | 77 ++++++++++++++++++------------ 1 file changed, 46 insertions(+), 31 deletions(-) diff --git a/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx b/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx index 00ff92651f5..195dfddc5fb 100644 --- a/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx +++ b/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx @@ -108,6 +108,7 @@ enum class TrkSel { trkSelNCls, trkSelChi2Ncl, trkSelEta, + trkSelPhi, trkSelPhiCut, trkSelPt, trkSelCA, @@ -449,6 +450,7 @@ struct DndetaMFTPbPb { "Ncls", "Chi2", "Eta", + "Phi", "Phi cut", "Pt", "CA"}; @@ -977,8 +979,15 @@ struct DndetaMFTPbPb { if constexpr (fillHis) { registryQC.fill(HIST("Tracks/hTrkSel"), static_cast(TrkSel::trkSelEta)); } + float phi = track.phi(); + o2::math_utils::bringTo02Pi(phi); + if (phi < trackCuts.minPhi || trackCuts.maxPhi < phi) { + return false; + } + if constexpr (fillHis) { + registryQC.fill(HIST("Tracks/hTrkSel"), static_cast(TrkSel::trkSelPhi)); + } if (trackCuts.usephiCut) { - float phi = track.phi(); if ((phi < trackCuts.phiCut) || ((phi > PI - trackCuts.phiCut) && (phi < PI + trackCuts.phiCut)) || (phi > TwoPI - trackCuts.phiCut) || @@ -1023,14 +1032,16 @@ struct DndetaMFTPbPb { continue; } if (fillHis) { + float phi = track.phi(); + o2::math_utils::bringTo02Pi(phi); if constexpr (has_reco_cent) { registryData.fill(HIST("Tracks/Centrality/EtaZvtx"), track.eta(), z, c, occ); - registryData.fill(HIST("Tracks/Centrality/PhiEta"), track.phi(), track.eta(), c, occ); + registryData.fill(HIST("Tracks/Centrality/PhiEta"), phi, track.eta(), c, occ); registryData.fill(HIST("Tracks/Centrality/TanLambda"), track.tgl(), c, occ); registryData.fill(HIST("Tracks/Centrality/InvQPt"), track.signed1Pt(), c, occ); } else { registryData.fill(HIST("Tracks/EtaZvtx"), track.eta(), z, occ); - registryData.fill(HIST("Tracks/PhiEta"), track.phi(), track.eta(), occ); + registryData.fill(HIST("Tracks/PhiEta"), phi, track.eta(), occ); registryData.fill(HIST("Tracks/TanLambda"), track.tgl(), occ); registryData.fill(HIST("Tracks/InvQPt"), track.signed1Pt(), occ); } @@ -1062,16 +1073,18 @@ struct DndetaMFTPbPb { } ++nATrk; if (fillHis) { + float phi = itrack.phi(); + o2::math_utils::bringTo02Pi(phi); if constexpr (has_reco_cent) { registryData.fill(HIST("Tracks/Centrality/EtaZvtx"), itrack.eta(), z, c, occ); - registryData.fill(HIST("Tracks/Centrality/PhiEta"), itrack.phi(), itrack.eta(), c, occ); + registryData.fill(HIST("Tracks/Centrality/PhiEta"), phi, itrack.eta(), c, occ); registryData.fill(HIST("Tracks/Centrality/TanLambda"), itrack.tgl(), c, occ); registryData.fill(HIST("Tracks/Centrality/InvQPt"), itrack.signed1Pt(), c, occ); registryData.fill(HIST("Tracks/Centrality/DCA3d"), itrack.pt(), itrack.eta(), atrack.bestDCAXY(), bestDcaZ, c, occ); registryData.fill(HIST("Tracks/Centrality/TrackAmbDegree"), atrack.ambDegree(), c, occ); } else { registryData.fill(HIST("Tracks/EtaZvtx"), itrack.eta(), z, occ); - registryData.fill(HIST("Tracks/PhiEta"), itrack.phi(), itrack.eta(), occ); + registryData.fill(HIST("Tracks/PhiEta"), phi, itrack.eta(), occ); registryData.fill(HIST("Tracks/TanLambda"), itrack.tgl(), occ); registryData.fill(HIST("Tracks/InvQPt"), itrack.signed1Pt(), occ); registryData.fill(HIST("Tracks/DCA3d"), itrack.pt(), itrack.eta(), atrack.bestDCAXY(), bestDcaZ, occ); @@ -1080,13 +1093,15 @@ struct DndetaMFTPbPb { } if (itrack.has_collision() && itrack.collisionId() != atrack.bestCollisionId()) { if (fillHis) { + float phi = itrack.phi(); + o2::math_utils::bringTo02Pi(phi); registryQC.fill(HIST("Tracks/hBestTrkSel"), static_cast(TrkBestSel::trkBestSelNumReassoc)); if constexpr (has_reco_cent) { registryData.fill(HIST("Tracks/Centrality/ReTracksEtaZvtx"), itrack.eta(), itrack.template collision_as().posZ(), c, occ); - registryData.fill(HIST("Tracks/Centrality/ReTracksPhiEta"), itrack.phi(), itrack.eta(), c, occ); + registryData.fill(HIST("Tracks/Centrality/ReTracksPhiEta"), phi, itrack.eta(), c, occ); } else { registryData.fill(HIST("Tracks/ReTracksEtaZvtx"), itrack.eta(), itrack.template collision_as().posZ(), occ); - registryData.fill(HIST("Tracks/ReTracksPhiEta"), itrack.phi(), itrack.eta(), occ); + registryData.fill(HIST("Tracks/ReTracksPhiEta"), phi, itrack.eta(), occ); } } } @@ -1175,8 +1190,12 @@ struct DndetaMFTPbPb { if (particle.eta() < trackCuts.minEta || particle.eta() > trackCuts.maxEta) { return false; } + float phi = particle.phi(); + o2::math_utils::bringTo02Pi(phi); + if (phi < trackCuts.minPhi || trackCuts.maxPhi < phi) { + return false; + } if (trackCuts.usephiCut) { - float phi = particle.phi(); if ((phi < trackCuts.phiCut) || ((phi > PI - trackCuts.phiCut) && (phi < PI + trackCuts.phiCut)) || (phi > TwoPI - trackCuts.phiCut) || @@ -1188,16 +1207,6 @@ struct DndetaMFTPbPb { return true; } - template - bool cutInPhi(P const& particle) - { - if (!trackCuts.usephiCut) { - return true; - } - auto phi = particle.phi(); - return (phi < trackCuts.phiCut) || ((phi > PI - trackCuts.phiCut) && (phi < PI + trackCuts.phiCut)) || (phi > TwoPI - trackCuts.phiCut) || ((phi > ((PIHalf - 0.1) * PI) - trackCuts.phiCut) && (phi < ((PIHalf - 0.1) * PI) + trackCuts.phiCut)); - } - template float getOccupancy(C const& collision, uint occEstimator) { @@ -1358,20 +1367,22 @@ struct DndetaMFTPbPb { if (gConf.useParticleSel && !isParticleSelected(particle)) { continue; } + float phi = particle.phi(); + o2::math_utils::bringTo02Pi(phi); if constexpr (isCent) { registryMC.fill(HIST("Tracks/Centrality/EtaZvtxGen_t"), particle.eta(), zvtx, c, occ); - registryMC.fill(HIST("Tracks/Centrality/PhiEtaGen_t"), particle.phi(), particle.eta(), c, occ); + registryMC.fill(HIST("Tracks/Centrality/PhiEtaGen_t"), phi, particle.eta(), c, occ); } else { registryMC.fill(HIST("Tracks/EtaZvtxGen_t"), particle.eta(), zvtx, occ); - registryMC.fill(HIST("Tracks/PhiEtaGen_t"), particle.phi(), particle.eta(), occ); + registryMC.fill(HIST("Tracks/PhiEtaGen_t"), phi, particle.eta(), occ); } if (gtZeroColl) { if constexpr (isCent) { registryMC.fill(HIST("Tracks/Centrality/EtaZvtxGen"), particle.eta(), zvtx, c, occ); - registryMC.fill(HIST("Tracks/Centrality/PhiEtaGen"), particle.phi(), particle.eta(), c, occ); + registryMC.fill(HIST("Tracks/Centrality/PhiEtaGen"), phi, particle.eta(), c, occ); } else { registryMC.fill(HIST("Tracks/EtaZvtxGen"), particle.eta(), zvtx, occ); - registryMC.fill(HIST("Tracks/PhiEtaGen"), particle.phi(), particle.eta(), occ); + registryMC.fill(HIST("Tracks/PhiEtaGen"), phi, particle.eta(), occ); } } } @@ -1702,6 +1713,8 @@ struct DndetaMFTPbPb { if (!isTrackSelected(track)) { continue; } + float phi = track.phi(); + o2::math_utils::bringTo02Pi(phi); if (track.has_mcParticle() && (!trackCuts.removeFakeByMcMask || (track.mcMask() == trackCuts.selMcMask))) { const auto& particle = track.template mcParticle_as(); if (!isChrgParticle(particle.pdgCode())) { @@ -1715,11 +1728,11 @@ struct DndetaMFTPbPb { } if constexpr (has_reco_cent) { registryMC.fill(HIST("Tracks/Centrality/EtaZvtx"), track.eta(), collision.posZ(), cRec, occRec); - registryMC.fill(HIST("Tracks/Centrality/PhiEta"), track.phi(), track.eta(), cRec, occRec); + registryMC.fill(HIST("Tracks/Centrality/PhiEta"), phi, track.eta(), cRec, occRec); registryMC.fill(HIST("Tracks/Centrality/NclustersEta"), track.nClusters(), track.eta(), cRec, occRec); } else { registryMC.fill(HIST("Tracks/EtaZvtx"), track.eta(), collision.posZ(), occRec); - registryMC.fill(HIST("Tracks/PhiEta"), track.phi(), track.eta(), occRec); + registryMC.fill(HIST("Tracks/PhiEta"), phi, track.eta(), occRec); registryMC.fill(HIST("Tracks/NclustersEta"), track.nClusters(), track.eta(), occRec); } ++nTrkRec; @@ -1890,6 +1903,8 @@ struct DndetaMFTPbPb { if (!isTrackSelected(itrack)) { continue; } + float phi = itrack.phi(); + o2::math_utils::bringTo02Pi(phi); if constexpr (has_reco_cent) { registryMC.fill(HIST("Tracks/Centrality/hMcTrackStatus"), static_cast(McTrackStatus::kTrkAsBestSel), cRec, occRec); } else { @@ -1939,13 +1954,13 @@ struct DndetaMFTPbPb { } if constexpr (has_reco_cent) { registryMC.fill(HIST("Tracks/Centrality/EtaZvtx"), itrack.eta(), collision.posZ(), cRec, occRec); - registryMC.fill(HIST("Tracks/Centrality/PhiEta"), itrack.phi(), itrack.eta(), cRec, occRec); + registryMC.fill(HIST("Tracks/Centrality/PhiEta"), phi, itrack.eta(), cRec, occRec); registryMC.fill(HIST("Tracks/Centrality/NclustersEta"), itrack.nClusters(), itrack.eta(), cRec, occRec); registryMC.fill(HIST("Tracks/Centrality/DCA3d"), itrack.pt(), itrack.eta(), atrack.bestDCAXY(), bestDcaZ, cRec, occRec); registryMC.fill(HIST("Tracks/Centrality/TrackAmbDegree"), atrack.ambDegree(), cRec, occRec); } else { registryMC.fill(HIST("Tracks/EtaZvtx"), itrack.eta(), collision.posZ(), occRec); - registryMC.fill(HIST("Tracks/PhiEta"), itrack.phi(), itrack.eta(), occRec); + registryMC.fill(HIST("Tracks/PhiEta"), phi, itrack.eta(), occRec); registryMC.fill(HIST("Tracks/NclustersEta"), itrack.nClusters(), itrack.eta(), occRec); registryMC.fill(HIST("Tracks/DCA3d"), itrack.pt(), itrack.eta(), atrack.bestDCAXY(), bestDcaZ, occRec); registryMC.fill(HIST("Tracks/TrackAmbDegree"), atrack.ambDegree(), occRec); @@ -2313,7 +2328,7 @@ struct DndetaMFTPbPb { if constexpr (has_reco_cent) { registryMC.fill(HIST("Tracks/Centrality/hEffRec"), itrack.pt(), itrack.eta(), collision.posZ(), static_cast(RecTrkType::kRecFake), getRecoCent(collision), getOccupancy(collision, eventCuts.occupancyEstimator)); } else { - registryMC.fill(HIST("Tracks/hEffRec"), itrack.pt(), itrack.phi(), itrack.eta(), collision.posZ(), static_cast(RecTrkType::kRecFake), getOccupancy(collision, eventCuts.occupancyEstimator)); + registryMC.fill(HIST("Tracks/hEffRec"), itrack.pt(), itrack.eta(), collision.posZ(), static_cast(RecTrkType::kRecFake), getOccupancy(collision, eventCuts.occupancyEstimator)); } } } @@ -2389,13 +2404,13 @@ struct DndetaMFTPbPb { } // MC gen if constexpr (has_reco_cent) { - if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta && cutInPhi(particle)) { + if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) { if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) { registryMC.fill(HIST("Tracks/Centrality/hEffIdxGen"), particle.pt(), particle.eta(), static_cast(GenIdxTrkType::kGenIdxAll), cGen, occRec); } } } else { - if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta && cutInPhi(particle)) { + if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) { if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) { registryMC.fill(HIST("Tracks/hEffIdxGen"), particle.pt(), particle.eta(), static_cast(GenIdxTrkType::kGenIdxAll), occRec); } @@ -2548,13 +2563,13 @@ struct DndetaMFTPbPb { } // MC gen if constexpr (has_reco_cent) { - if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta && cutInPhi(particle)) { + if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) { if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) { registryMC.fill(HIST("Tracks/Centrality/hEffIdxGen"), particle.pt(), particle.eta(), static_cast(GenIdxTrkType::kGenIdxAll), cGen, occRec); } } } else { - if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta && cutInPhi(particle)) { + if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) { if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) { registryMC.fill(HIST("Tracks/hEffIdxGen"), particle.pt(), particle.eta(), static_cast(GenIdxTrkType::kGenIdxAll), occRec); } From b981a802c5c601dfe2c23842be2d6ebce3fe3eb3 Mon Sep 17 00:00:00 2001 From: Gyula Bencedi Date: Fri, 16 Oct 2026 13:29:13 +0200 Subject: [PATCH 2/3] retrigger checks --- PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx | 1 - 1 file changed, 1 deletion(-) diff --git a/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx b/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx index 195dfddc5fb..61653cd9ce4 100644 --- a/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx +++ b/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx @@ -773,7 +773,6 @@ struct DndetaMFTPbPb { using CollsCorr = soa::Join; using CollsMCExtra = soa::Join; using CollsMCExtraMult = soa::Join; - /// Tracks using MftTracksLabeled = soa::Join; using MftBestTracksLabeled = soa::Join; From 26e12af6b7e270c461cc4fa280e56561bb270249 Mon Sep 17 00:00:00 2001 From: Gyula Bencedi Date: Fri, 16 Oct 2026 17:00:18 +0200 Subject: [PATCH 3/3] fix code-checker error included MathUtils/Utils.h --- PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx b/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx index 61653cd9ce4..ab57a5da14e 100644 --- a/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx +++ b/PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx @@ -43,6 +43,7 @@ #include #include #include +#include #include #include