From c2644355181c4119a647c4b5a50bec847e111fbf Mon Sep 17 00:00:00 2001 From: Archita-Dash Date: Tue, 9 Sep 2025 19:55:46 +0200 Subject: [PATCH 1/3] added deltaEta and deltaPhi columns to the EMCALMatchedTracks table + modified the usage of dEta and dPhi accordingly in the EMCAL Hadronic correction task --- PWGJE/DataModel/JetReducedData.h | 6 +++++- PWGJE/TableProducer/derivedDataProducer.cxx | 2 +- PWGJE/TableProducer/derivedDataWriter.cxx | 2 +- .../emcalClusterHadronicCorrectionTask.cxx | 13 +++++++------ 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/PWGJE/DataModel/JetReducedData.h b/PWGJE/DataModel/JetReducedData.h index fcc3d581862..507b0af1f24 100644 --- a/PWGJE/DataModel/JetReducedData.h +++ b/PWGJE/DataModel/JetReducedData.h @@ -315,12 +315,16 @@ namespace jemctrack DECLARE_SOA_INDEX_COLUMN(JTrack, track); DECLARE_SOA_COLUMN(EtaEMCAL, etaEmcal, float); DECLARE_SOA_COLUMN(PhiEMCAL, phiEmcal, float); +DECLARE_SOA_COLUMN(DeltaEta, deltaEta, float); +DECLARE_SOA_COLUMN(DeltaPhi, deltaPhi, float); } // namespace jemctrack DECLARE_SOA_TABLE_STAGED(JEMCTracks, "JEMCTrack", jemctrack::JTrackId, jemctrack::EtaEMCAL, - jemctrack::PhiEMCAL); + jemctrack::PhiEMCAL, + jemctrack::DeltaEta, + jemctrack::DeltaPhi); namespace jmcparticle { diff --git a/PWGJE/TableProducer/derivedDataProducer.cxx b/PWGJE/TableProducer/derivedDataProducer.cxx index c3de10e5e90..4178bd680d7 100644 --- a/PWGJE/TableProducer/derivedDataProducer.cxx +++ b/PWGJE/TableProducer/derivedDataProducer.cxx @@ -468,7 +468,7 @@ struct JetDerivedDataProducerTask { auto JClusterID = trackCollisionMapping.find({clusterTrack.trackId(), cluster.collisionId()}); // does EMCal use its own associator? clusterTrackIDs.push_back(JClusterID->second); auto emcTrack = clusterTrack.track_as>(); - products.jTracksEMCalTable(JClusterID->second, emcTrack.trackEtaEmcal(), emcTrack.trackPhiEmcal()); + products.jTracksEMCalTable(JClusterID->second, emcTrack.trackEtaEmcal(), emcTrack.trackPhiEmcal(), clusterTrack.deltaEta(), clusterTrack.deltaPhi()); } products.jClustersMatchedTracksTable(clusterTrackIDs); } diff --git a/PWGJE/TableProducer/derivedDataWriter.cxx b/PWGJE/TableProducer/derivedDataWriter.cxx index 0a73a14b24b..88c15054606 100644 --- a/PWGJE/TableProducer/derivedDataWriter.cxx +++ b/PWGJE/TableProducer/derivedDataWriter.cxx @@ -512,7 +512,7 @@ struct JetDerivedDataWriter { clusterStoredJTrackIDs.push_back(trackMapping[clusterTrack.globalIndex()]); auto emcTracksPerTrack = emcTracks.sliceBy(preslices.EMCTrackPerTrack, clusterTrack.globalIndex()); auto emcTrackPerTrack = emcTracksPerTrack.iteratorAt(0); - products.storedJTracksEMCalTable(trackMapping[clusterTrack.globalIndex()], emcTrackPerTrack.etaEmcal(), emcTrackPerTrack.phiEmcal()); + products.storedJTracksEMCalTable(trackMapping[clusterTrack.globalIndex()], emcTrackPerTrack.etaEmcal(), emcTrackPerTrack.phiEmcal(), emcTrackPerTrack.deltaEta(), emcTrackPerTrack.deltaPhi()); } products.storedJClustersMatchedTracksTable(clusterStoredJTrackIDs); } diff --git a/PWGJE/TableProducer/emcalClusterHadronicCorrectionTask.cxx b/PWGJE/TableProducer/emcalClusterHadronicCorrectionTask.cxx index 67672c53222..7ff494d6237 100644 --- a/PWGJE/TableProducer/emcalClusterHadronicCorrectionTask.cxx +++ b/PWGJE/TableProducer/emcalClusterHadronicCorrectionTask.cxx @@ -161,11 +161,12 @@ struct EmcalClusterHadronicCorrectionTask { if (matchedTrack.pt() < minTrackPt) { continue; } - double mom = abs(matchedTrack.p()); + double mom = std::abs(matchedTrack.p()); registry.fill(HIST("h_matchedtracks"), 1); // CASE 1: skip tracks with a very low pT - if (mom < 1e-6) { + constexpr double kMinMom = 1e-6; + if (mom < kMinMom) { continue; } // end CASE 1 @@ -176,8 +177,8 @@ struct EmcalClusterHadronicCorrectionTask { // Perform dEta/dPhi matching auto emcTrack = (emcTracks.sliceBy(perTrackMatchedTrack, matchedTrack.globalIndex())).iteratorAt(0); - double dEta = emcTrack.etaEmcal() - cluster.eta(); - double dPhi = TVector2::Phi_mpi_pi(emcTrack.phiEmcal() - cluster.phi()); + double dEta = emcTrack.deltaEta(); + double dPhi = emcTrack.deltaPhi(); // Apply the eta and phi matching thresholds // dEta and dPhi cut : ensures that the matched track is within the desired eta/phi window @@ -188,7 +189,7 @@ struct EmcalClusterHadronicCorrectionTask { auto trackPhiHigh = +funcPtDepPhi.Eval(mom); auto trackPhiLow = -funcPtDepPhi.Eval(mom); - if ((dPhi < trackPhiHigh && dPhi > trackPhiLow) && fabs(dEta) < trackEtaMax) { + if ((dPhi < trackPhiHigh && dPhi > trackPhiLow) && std::fabs(dEta) < trackEtaMax) { if (nMatches == 0) { closestTrkP = mom; } @@ -197,7 +198,7 @@ struct EmcalClusterHadronicCorrectionTask { } } else { // Do fixed dEta/dPhi matching (non-pT dependent) - if (fabs(dEta) >= minDEta || fabs(dPhi) >= minDPhi) { + if (std::fabs(dEta) >= minDEta || std::fabs(dPhi) >= minDPhi) { continue; // Skip this track if outside the fixed cut region } From 8ec6fe3a43aa6e146682effd67a41a6c9832476e Mon Sep 17 00:00:00 2001 From: Archita-Dash Date: Tue, 9 Sep 2025 19:57:13 +0200 Subject: [PATCH 2/3] fixed Sumw2 issue + other minor bugs --- PWGJE/Tasks/fullJetSpectra.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PWGJE/Tasks/fullJetSpectra.cxx b/PWGJE/Tasks/fullJetSpectra.cxx index 80450cc1fa1..457715e679a 100644 --- a/PWGJE/Tasks/fullJetSpectra.cxx +++ b/PWGJE/Tasks/fullJetSpectra.cxx @@ -135,7 +135,7 @@ struct FullJetSpectra { // Instantiate the Zorro processor for skimmed data and define an output object Zorro zorro; OutputObj zorroSummary{"zorroSummary"}; - const bool doSumw2 = doMBGapTrigger; + bool doSumw2 = false; // Multiplicity Utilities // struct CentClass { @@ -334,7 +334,7 @@ struct FullJetSpectra { triggerMaskBits = jetderiveddatautilities::initialiseTriggerMaskBits(triggerMasks); particleSelection = static_cast(particleSelections); jetRadiiValues = (std::vector)jetRadii; - + doSumw2 = doMBGapTrigger; /* if (doMcClosure) { // randGen.SetSeed(mcSplitSeed); // randGen.SetSeed(static_cast(std::time(nullptr))); @@ -508,7 +508,7 @@ struct FullJetSpectra { registry.add("h2_full_jet_energyscaleChargedVsFullPart", "Jet Energy Scale (charged part, vs. full jet pt); p_{T,part} (GeV/c); (p_{T,det} - p_{T,part})/p_{T,part}", {HistType::kTH2F, {{400, 0., 400.}, {200, -1., 1.}}}, doSumw2); registry.add("h2_full_jet_energyscaleNeutralVsFullPart", "Jet Energy Scale (neutral part, vs. full jet pt); p_{T,part} (GeV/c); (p_{T,det} - p_{T,part})/p_{T,part}", {HistType::kTH2F, {{400, 0., 400.}, {200, -1., 1.}}}, doSumw2); registry.add("h2_full_fakemcdjets", "Fake MCD Jets; p_{T,det} (GeV/c); NCounts", {HistType::kTH2F, {{350, 0., 350.}, {100, 0., 100.}}}, doSumw2); - registry.add("h2FullfakeMcpJets", "Fake MCP Jets; p_{T,part} (GeV/c); NCounts", {HistType::kTH2F, {{350, 0., 350.}, {100, 0., 100.}}}, doSumw2); + registry.add("h2_full_fakemcpjets", "Fake MCP Jets; p_{T,part} (GeV/c); NCounts", {HistType::kTH2F, {{350, 0., 350.}, {100, 0., 100.}}}, doSumw2); registry.add("h2_full_matchedmcpjet_pt", "Matched MCP jet in EMC Fiducial Acceptance #it{p}_{T,part};#it{p}_{T,part} (GeV/c); Ncounts", {HistType::kTH2F, {{350, 0., 350.}, {10000, 0., 10000.}}}, doSumw2); // Response Matrix @@ -1740,7 +1740,7 @@ struct FullJetSpectra { // apply emcal fiducial cuts to the matched particle level jets - if the matched mcp jet lies outside of the EMCAL fiducial, flag it as a fake jet if (mcpjet.eta() > jetEtaMax || mcpjet.eta() < jetEtaMin || mcpjet.phi() > jetPhiMax || mcpjet.phi() < jetPhiMin) { fakeMcpJet++; - registry.fill(HIST("h2FullfakeMcpJets"), mcpjet.pt(), fakeMcpJet, eventWeight); + registry.fill(HIST("h2_full_fakemcpjets"), mcpjet.pt(), fakeMcpJet, eventWeight); continue; } else { NPartJetFid++; From 83a575bb086b85dcddd5fb97bcac85a7588950f2 Mon Sep 17 00:00:00 2001 From: Archita-Dash Date: Mon, 22 Sep 2025 20:11:41 +0200 Subject: [PATCH 3/3] renamed deltaEta and deltaPhi to etaDiff and phiDiff in JE framework --- PWGJE/DataModel/JetReducedData.h | 8 ++++---- PWGJE/TableProducer/derivedDataWriter.cxx | 2 +- .../TableProducer/emcalClusterHadronicCorrectionTask.cxx | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/PWGJE/DataModel/JetReducedData.h b/PWGJE/DataModel/JetReducedData.h index 507b0af1f24..f119d843c49 100644 --- a/PWGJE/DataModel/JetReducedData.h +++ b/PWGJE/DataModel/JetReducedData.h @@ -315,16 +315,16 @@ namespace jemctrack DECLARE_SOA_INDEX_COLUMN(JTrack, track); DECLARE_SOA_COLUMN(EtaEMCAL, etaEmcal, float); DECLARE_SOA_COLUMN(PhiEMCAL, phiEmcal, float); -DECLARE_SOA_COLUMN(DeltaEta, deltaEta, float); -DECLARE_SOA_COLUMN(DeltaPhi, deltaPhi, float); +DECLARE_SOA_COLUMN(EtaDiff, etaDiff, float); +DECLARE_SOA_COLUMN(PhiDiff, phiDiff, float); } // namespace jemctrack DECLARE_SOA_TABLE_STAGED(JEMCTracks, "JEMCTrack", jemctrack::JTrackId, jemctrack::EtaEMCAL, jemctrack::PhiEMCAL, - jemctrack::DeltaEta, - jemctrack::DeltaPhi); + jemctrack::EtaDiff, + jemctrack::PhiDiff); namespace jmcparticle { diff --git a/PWGJE/TableProducer/derivedDataWriter.cxx b/PWGJE/TableProducer/derivedDataWriter.cxx index 88c15054606..0ee9242ebac 100644 --- a/PWGJE/TableProducer/derivedDataWriter.cxx +++ b/PWGJE/TableProducer/derivedDataWriter.cxx @@ -512,7 +512,7 @@ struct JetDerivedDataWriter { clusterStoredJTrackIDs.push_back(trackMapping[clusterTrack.globalIndex()]); auto emcTracksPerTrack = emcTracks.sliceBy(preslices.EMCTrackPerTrack, clusterTrack.globalIndex()); auto emcTrackPerTrack = emcTracksPerTrack.iteratorAt(0); - products.storedJTracksEMCalTable(trackMapping[clusterTrack.globalIndex()], emcTrackPerTrack.etaEmcal(), emcTrackPerTrack.phiEmcal(), emcTrackPerTrack.deltaEta(), emcTrackPerTrack.deltaPhi()); + products.storedJTracksEMCalTable(trackMapping[clusterTrack.globalIndex()], emcTrackPerTrack.etaEmcal(), emcTrackPerTrack.phiEmcal(), emcTrackPerTrack.etaDiff(), emcTrackPerTrack.phiDiff()); } products.storedJClustersMatchedTracksTable(clusterStoredJTrackIDs); } diff --git a/PWGJE/TableProducer/emcalClusterHadronicCorrectionTask.cxx b/PWGJE/TableProducer/emcalClusterHadronicCorrectionTask.cxx index 7ff494d6237..588030e132c 100644 --- a/PWGJE/TableProducer/emcalClusterHadronicCorrectionTask.cxx +++ b/PWGJE/TableProducer/emcalClusterHadronicCorrectionTask.cxx @@ -177,8 +177,8 @@ struct EmcalClusterHadronicCorrectionTask { // Perform dEta/dPhi matching auto emcTrack = (emcTracks.sliceBy(perTrackMatchedTrack, matchedTrack.globalIndex())).iteratorAt(0); - double dEta = emcTrack.deltaEta(); - double dPhi = emcTrack.deltaPhi(); + double dEta = emcTrack.etaDiff(); + double dPhi = emcTrack.phiDiff(); // Apply the eta and phi matching thresholds // dEta and dPhi cut : ensures that the matched track is within the desired eta/phi window