From 5140f0850d99f4d72847b935620f67e5d5fe51e4 Mon Sep 17 00:00:00 2001 From: YazhenLin Date: Wed, 28 Jan 2026 20:56:36 +0800 Subject: [PATCH 1/4] Add files via upload --- PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx b/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx index 349dc3d9813..520ff5cf370 100644 --- a/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx +++ b/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx @@ -2068,6 +2068,7 @@ struct AnalysisDileptonTrack { Configurable fConfigApplyMassEC{"cfgApplyMassEC", false, "Apply fit mass for sideband for the energy correlator study"}; Configurable> fConfigSavelessevents{"cfgSavelessevents", std::vector{1, 0}, "Save less events for the energy correlator study"}; Configurable> fConfigTransRange{"cfgTransRange", std::vector{0.333333, 0.666667}, "Transverse region for the energy correlstor analysis"}; + Configurable fConfigEnergycorrelator{"cfgEnergycorrelator", false, "Add some hist for energy correlator study"}; } fConfigOptions; struct : ConfigurableGroup { @@ -2385,7 +2386,11 @@ struct AnalysisDileptonTrack { fLegCutNames.push_back(pairLegCutName); // define dilepton histograms - DefineHistograms(fHistMan, Form("DileptonsSelected_%s", pairLegCutName.Data()), "barrel,vertexing"); + if (!fConfigOptions.fConfigEnergycorrelator) { + DefineHistograms(fHistMan, Form("DileptonsSelected_%s", pairLegCutName.Data()), "barrel,vertexing"); + } else { + DefineHistograms(fHistMan, Form("DileptonsSelected_%s", pairLegCutName.Data()), ""); + } // loop over track cuts and create dilepton - track histogram directories for (int iCutTrack = 0; iCutTrack < fNCuts; iCutTrack++) { From aaa546050ed259db63ba8bcb494144fd884d401a Mon Sep 17 00:00:00 2001 From: YazhenLin Date: Wed, 28 Jan 2026 21:57:13 +0800 Subject: [PATCH 2/4] Add files via upload --- PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx b/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx index 520ff5cf370..b884136a607 100644 --- a/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx +++ b/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx @@ -3310,7 +3310,7 @@ void DefineHistograms(HistogramManager* histMan, TString histClasses, const char // } if (classStr.Contains("DileptonsSelected")) { - dqhistograms::DefineHistograms(histMan, objArray->At(iclass)->GetName(), "pair", "barrel,vertexing"); + dqhistograms::DefineHistograms(histMan, objArray->At(iclass)->GetName(), "pair", histName); } if (classStr.Contains("DileptonTrack") && !classStr.Contains("ME")) { From 13041892d23797e191f56577529c3bf5b2bdd827 Mon Sep 17 00:00:00 2001 From: YazhenLin Date: Thu, 29 Jan 2026 19:25:48 +0800 Subject: [PATCH 3/4] Add files via upload --- PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx b/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx index b884136a607..5b5639404eb 100644 --- a/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx +++ b/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx @@ -2892,6 +2892,8 @@ struct AnalysisDileptonTrack { auto trackMC = track.mcParticle(); // for the energy correlator analysis auto motherParticle = lepton1MC.template mothers_first_as(); + std::vector fTransRange = fConfigOptions.fConfigTransRange; + VarManager::FillEnergyCorrelator(dilepton, track, VarManager::fgValues, fTransRange[0], fTransRange[1], fConfigOptions.fConfigApplyMassEC); VarManager::FillEnergyCorrelatorsMCUnfolding(dilepton, track, motherParticle, trackMC, VarManager::fgValues); mcDecision = 0; isig = 0; From feda8af9a42d044fcf07f68b6c3766bd99fff986 Mon Sep 17 00:00:00 2001 From: YazhenLin Date: Mon, 23 Feb 2026 17:01:01 +0800 Subject: [PATCH 4/4] Add files via upload --- PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx b/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx index 3a9c27cb956..eefc7e1852a 100644 --- a/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx +++ b/PWGDQ/Tasks/dqEfficiency_withAssoc_direct.cxx @@ -3152,13 +3152,21 @@ struct AnalysisDileptonTrack { // for the energy correlators for (auto& t2 : groupedMCTracks) { auto t2_raw = groupedMCTracks.rawIteratorAt(t2.globalIndex()); - if (TMath::Abs(t2_raw.pdgCode()) == 443 || TMath::Abs(t2_raw.pdgCode()) == 11 || TMath::Abs(t2_raw.pdgCode()) == 22) + if (!t2_raw.isPhysicalPrimary()) { continue; + } + + if (t2_raw.has_mothers()) { + auto mother_raw = t2_raw.template mothers_first_as(); + if (mother_raw.globalIndex() == t1_raw.globalIndex()) { + continue; + } + } + if (t2_raw.pt() < fConfigMCOptions.fConfigMCGenHadronPtMin.value || std::abs(t2_raw.eta()) > fConfigMCOptions.fConfigMCGenHadronEtaAbs.value) { continue; } - if (t2_raw.getGenStatusCode() <= 0) - continue; + std::vector fTransRange = fConfigOptions.fConfigTransRange; VarManager::FillEnergyCorrelatorsMC(t1_raw, t2_raw, VarManager::fgValues, fTransRange[0], fTransRange[1]); for (auto& sig : fGenMCSignals) { @@ -3229,15 +3237,21 @@ struct AnalysisDileptonTrack { // for the energy correlators for (auto& t2 : groupedMCTracks2) { auto t2_raw = groupedMCTracks2.rawIteratorAt(t2.globalIndex()); - if (TMath::Abs(t2_raw.pdgCode()) == 443 || TMath::Abs(t2_raw.pdgCode()) == 11 || TMath::Abs(t2_raw.pdgCode()) == 22) { + if (!t2_raw.isPhysicalPrimary()) { continue; } - if (t2_raw.pt() < fConfigMCOptions.fConfigMCGenHadronPtMin.value || std::abs(t2_raw.eta()) > fConfigMCOptions.fConfigMCGenHadronEtaAbs.value) { - continue; + + if (t2_raw.has_mothers()) { + auto mother_raw = t2_raw.template mothers_first_as(); + if (mother_raw.globalIndex() == t1_raw.globalIndex()) { + continue; + } } - if (t2_raw.getGenStatusCode() <= 0) { + + if (t2_raw.pt() < fConfigMCOptions.fConfigMCGenHadronPtMin.value || std::abs(t2_raw.eta()) > fConfigMCOptions.fConfigMCGenHadronEtaAbs.value) { continue; } + for (auto& sig : fGenMCSignals) { if (sig->CheckSignal(true, t1_raw)) { VarManager::FillEnergyCorrelatorsMC(t1_raw, t2_raw, VarManager::fgValues);