From 24f83827efc4d75664c18c36168753b675e672bd Mon Sep 17 00:00:00 2001 From: Kaare Endrup Date: Tue, 28 Jul 2026 13:19:37 +0200 Subject: [PATCH 1/7] Change ccdb url form test --- PWGDQ/Tasks/jPsiMuonCorrelations.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx index 8cdbeca1dd0..a17213404b9 100644 --- a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx +++ b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx @@ -104,7 +104,7 @@ struct DqJPsiMuonCorrelations { // Connect to ccdb Service ccdb{}; Configurable ccdbNoLaterThan{"ccdbNoLaterThan", std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(), "latest acceptable timestamp of creation for the object"}; - Configurable ccdbUrl{"ccdbUrl", "http://ccdb-test.cern.ch:8080", "url of the ccdb repository"}; + Configurable ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; // Define the filter for events Filter eventFilter = aod::dqanalysisflags::isEventSelected == 1; From ccfcc13a82f5d185356c2d05be79a1ef93a7b660 Mon Sep 17 00:00:00 2001 From: Kaare Endrup Date: Sat, 1 Aug 2026 17:41:42 +0200 Subject: [PATCH 2/7] Change manual dilepton cut to aod filtering --- PWGDQ/Tasks/jPsiMuonCorrelations.cxx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx index a17213404b9..62c6198dfb5 100644 --- a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx +++ b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx @@ -110,7 +110,8 @@ struct DqJPsiMuonCorrelations { Filter eventFilter = aod::dqanalysisflags::isEventSelected == 1; // Define the filter for the dileptons - Filter dileptonFilter = aod::reducedpair::sign == 0; + Filter dileptonFilter = aod::reducedpair::pt > fConfigDileptonPtMin && aod::reducedpair::pt < fConfigDileptonPtMax && + aod::reducedpair::eta > fConfigDileptonEtaMin && aod::reducedpair::eta < fConfigDileptonEtaMax; constexpr static uint32_t FgDimuonsFillMap = VarManager::ObjTypes::ReducedMuon | VarManager::ObjTypes::Pair; // fill map @@ -174,11 +175,6 @@ struct DqJPsiMuonCorrelations { for (const auto& dilepton : dileptons) { VarManager::FillTrack(dilepton, fValuesDilepton.data()); - // Dilepton kinematic cuts - if ((dilepton.eta() < fConfigDileptonEtaMin || dilepton.eta() > fConfigDileptonEtaMax) || - (dilepton.pt() < fConfigDileptonPtMin || dilepton.pt() > fConfigDileptonPtMax)) { - continue; - } // Dilepton leg kinematic cuts if ((dilepton.eta1() < fConfigMuonEtaMin || dilepton.eta1() > fConfigMuonEtaMax) || (dilepton.pt1() < axisPt.value[1] || dilepton.pt1() > axisPt.value.back()) || From c47a76f6a6126cfa96dcbdc98fc40a6260fb7d12 Mon Sep 17 00:00:00 2001 From: Kaare Endrup Date: Sat, 1 Aug 2026 17:42:42 +0200 Subject: [PATCH 3/7] Define and fill histogrmas for SS/OS dileptons --- PWGDQ/Tasks/jPsiMuonCorrelations.cxx | 45 +++++++++++++++++++--------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx index 62c6198dfb5..9794d2b370f 100644 --- a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx +++ b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx @@ -140,14 +140,16 @@ struct DqJPsiMuonCorrelations { // Define trigger histograms ConfigurableAxis axisTriggerMass{"axisTriggerMass", {VARIABLE_WIDTH, fConfigBackgroundLowMass, fConfigDileptonLowMass, fConfigDileptonHighMass, fConfigBackgroundHighMass}, "Invariant Mass (GeV/c^{2}) for trigger counting"}; - registry.add("h2dDimuonPtInvVsInvMass", "h2dDimuonPtInvVsInvMass", kTH2D, {axisInvMass, axisPt}); - registry.add("h2dTriggersPtInvVsInvMassRegion", "h2dTriggersPtInvVsInvMassRegion", kTH2D, {axisTriggerMass, axisPt}); - - // Define histograms for the dilepton-muon correlations - registry.add("h2dDimuonMuonDeltaEtaVsMuonPtSignal", "h2dDimuonMuonDeltaEtaVsMuonPtSignal", kTH2D, {axisDeltaEta, axisPt}); - registry.add("h2dDimuonMuonDeltaPhiVsMuonPtSignal", "h2dDimuonMuonDeltaPhiVsMuonPtSignal", kTH2D, {axisDeltaPhi, axisPt}); - registry.add("h2dDimuonMuonDeltaEtaVsMuonPtBackground", "h2dDimuonMuonDeltaEtaVsMuonPtBackground", kTH2D, {axisDeltaEta, axisPt}); - registry.add("h2dDimuonMuonDeltaPhiVsMuonPtBackground", "h2dDimuonMuonDeltaPhiVsMuonPtBackground", kTH2D, {axisDeltaPhi, axisPt}); + for (const auto& signDilepton : {"dileptonOS", "dileptonSS"}) { + registry.add(Form("%s/h2dDimuonPtInvVsInvMass", signDilepton), "h2dDimuonPtInvVsInvMass", kTH2D, {axisInvMass, axisPt}); + registry.add(Form("%s/h2dTriggersPtInvVsInvMassRegion", signDilepton), "h2dTriggersPtInvVsInvMassRegion", kTH2D, {axisTriggerMass, axisPt}); + + // Define histograms for the dilepton-muon correlations + registry.add(Form("%s/h2dDimuonMuonDeltaEtaVsMuonPtSignal", signDilepton), "h2dDimuonMuonDeltaEtaVsMuonPtSignal", kTH2D, {axisDeltaEta, axisPt}); + registry.add(Form("%s/h2dDimuonMuonDeltaPhiVsMuonPtSignal", signDilepton), "h2dDimuonMuonDeltaPhiVsMuonPtSignal", kTH2D, {axisDeltaPhi, axisPt}); + registry.add(Form("%s/h2dDimuonMuonDeltaEtaVsMuonPtBackground", signDilepton), "h2dDimuonMuonDeltaEtaVsMuonPtBackground", kTH2D, {axisDeltaEta, axisPt}); + registry.add(Form("%s/h2dDimuonMuonDeltaPhiVsMuonPtBackground", signDilepton), "h2dDimuonMuonDeltaPhiVsMuonPtBackground", kTH2D, {axisDeltaPhi, axisPt}); + } // QA histograms registry.add("hEventPosZMuon", "hEventPosZMuon", kTH1D, {{50, -25, 25}}); @@ -186,8 +188,13 @@ struct DqJPsiMuonCorrelations { // Fill invariant mass vs pT histogram for the dileptons and for trigger counting double weightDilepton = getWeight(dilepton.pt(), axisPt.value, fConfigBinEffJPsi.value, fConfigDileptonEtaMin, fConfigDileptonEtaMax); - registry.fill(HIST("h2dDimuonPtInvVsInvMass"), dilepton.mass(), dilepton.pt(), weightDilepton); - registry.fill(HIST("h2dTriggersPtInvVsInvMassRegion"), dilepton.mass(), dilepton.pt(), weightDilepton); + if (dilepton.sign() == 0) { + registry.fill(HIST("dileptonOS/h2dDimuonPtInvVsInvMass"), dilepton.mass(), dilepton.pt(), weightDilepton); + registry.fill(HIST("dileptonOS/h2dTriggersPtInvVsInvMassRegion"), dilepton.mass(), dilepton.pt(), weightDilepton); + } else { + registry.fill(HIST("dileptonSS/h2dDimuonPtInvVsInvMass"), dilepton.mass(), dilepton.pt(), weightDilepton); + registry.fill(HIST("dileptonSS/h2dTriggersPtInvVsInvMassRegion"), dilepton.mass(), dilepton.pt(), weightDilepton); + } for (const auto& assoc : assocs) { // Check selection bit @@ -217,11 +224,21 @@ struct DqJPsiMuonCorrelations { double weightMuon = getWeight(track.pt(), axisPt.value, fConfigBinEffMuon.value, fConfigMuonEtaMin, fConfigMuonEtaMax); if (dilepton.mass() > fConfigDileptonLowMass && dilepton.mass() < fConfigDileptonHighMass) { - registry.fill(HIST("h2dDimuonMuonDeltaEtaVsMuonPtSignal"), deltaEta, track.pt(), weightDilepton * weightMuon); - registry.fill(HIST("h2dDimuonMuonDeltaPhiVsMuonPtSignal"), deltaPhi, track.pt(), weightDilepton * weightMuon); + if (dilepton.sign() == 0) { + registry.fill(HIST("dileptonOS/h2dDimuonMuonDeltaEtaVsMuonPtSignal"), deltaEta, track.pt(), weightDilepton * weightMuon); + registry.fill(HIST("dileptonOS/h2dDimuonMuonDeltaPhiVsMuonPtSignal"), deltaPhi, track.pt(), weightDilepton * weightMuon); + } else { + registry.fill(HIST("dileptonSS/h2dDimuonMuonDeltaEtaVsMuonPtSignal"), deltaEta, track.pt(), weightDilepton * weightMuon); + registry.fill(HIST("dileptonSS/h2dDimuonMuonDeltaPhiVsMuonPtSignal"), deltaPhi, track.pt(), weightDilepton * weightMuon); + } } else if (dilepton.mass() > fConfigBackgroundLowMass && dilepton.mass() < fConfigBackgroundHighMass) { - registry.fill(HIST("h2dDimuonMuonDeltaEtaVsMuonPtBackground"), deltaEta, track.pt(), weightDilepton * weightMuon); - registry.fill(HIST("h2dDimuonMuonDeltaPhiVsMuonPtBackground"), deltaPhi, track.pt(), weightDilepton * weightMuon); + if (dilepton.sign() == 0) { + registry.fill(HIST("dileptonOS/h2dDimuonMuonDeltaEtaVsMuonPtBackground"), deltaEta, track.pt(), weightDilepton * weightMuon); + registry.fill(HIST("dileptonOS/h2dDimuonMuonDeltaPhiVsMuonPtBackground"), deltaPhi, track.pt(), weightDilepton * weightMuon); + } else { + registry.fill(HIST("dileptonSS/h2dDimuonMuonDeltaEtaVsMuonPtBackground"), deltaEta, track.pt(), weightDilepton * weightMuon); + registry.fill(HIST("dileptonSS/h2dDimuonMuonDeltaPhiVsMuonPtBackground"), deltaPhi, track.pt(), weightDilepton * weightMuon); + } } } } From b2786f00389b20d2f36cd32a391242ef496fb6fa Mon Sep 17 00:00:00 2001 From: Kaare Endrup Date: Sun, 2 Aug 2026 22:36:14 +0200 Subject: [PATCH 4/7] One line filter to avoid confusing the linter --- PWGDQ/Tasks/jPsiMuonCorrelations.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx index 9794d2b370f..5855d034c46 100644 --- a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx +++ b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx @@ -110,8 +110,7 @@ struct DqJPsiMuonCorrelations { Filter eventFilter = aod::dqanalysisflags::isEventSelected == 1; // Define the filter for the dileptons - Filter dileptonFilter = aod::reducedpair::pt > fConfigDileptonPtMin && aod::reducedpair::pt < fConfigDileptonPtMax && - aod::reducedpair::eta > fConfigDileptonEtaMin && aod::reducedpair::eta < fConfigDileptonEtaMax; + Filter dileptonFilter = aod::reducedpair::pt > fConfigDileptonPtMin && aod::reducedpair::pt < fConfigDileptonPtMax && aod::reducedpair::eta > fConfigDileptonEtaMin && aod::reducedpair::eta < fConfigDileptonEtaMax; constexpr static uint32_t FgDimuonsFillMap = VarManager::ObjTypes::ReducedMuon | VarManager::ObjTypes::Pair; // fill map From 00ff06a5f1f9f005ce58c1e787e110b3dba9ecbe Mon Sep 17 00:00:00 2001 From: Kaare Endrup Date: Sun, 2 Aug 2026 22:43:32 +0200 Subject: [PATCH 5/7] Brackets to avoid confusing the linter --- PWGDQ/Tasks/jPsiMuonCorrelations.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx index 5855d034c46..9fb4f6aa12f 100644 --- a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx +++ b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx @@ -110,7 +110,7 @@ struct DqJPsiMuonCorrelations { Filter eventFilter = aod::dqanalysisflags::isEventSelected == 1; // Define the filter for the dileptons - Filter dileptonFilter = aod::reducedpair::pt > fConfigDileptonPtMin && aod::reducedpair::pt < fConfigDileptonPtMax && aod::reducedpair::eta > fConfigDileptonEtaMin && aod::reducedpair::eta < fConfigDileptonEtaMax; + Filter dileptonFilter = (aod::reducedpair::pt > fConfigDileptonPtMin && aod::reducedpair::pt < fConfigDileptonPtMax) && (aod::reducedpair::eta > fConfigDileptonEtaMin && aod::reducedpair::eta < fConfigDileptonEtaMax); constexpr static uint32_t FgDimuonsFillMap = VarManager::ObjTypes::ReducedMuon | VarManager::ObjTypes::Pair; // fill map From fd2bd978d4d0fce01802e1020c521a73258062fb Mon Sep 17 00:00:00 2001 From: Kaare Endrup Date: Mon, 3 Aug 2026 11:23:03 +0200 Subject: [PATCH 6/7] Include TString --- PWGDQ/Tasks/jPsiMuonCorrelations.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx index 9fb4f6aa12f..0a0cbcf8f62 100644 --- a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx +++ b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx @@ -36,6 +36,7 @@ #include #include #include +#include using std::string; From 1fbed8deed95b598b0930539bc8b0c5b7a3b223e Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 3 Aug 2026 09:23:56 +0000 Subject: [PATCH 7/7] Please consider the following formatting changes --- PWGDQ/Tasks/jPsiMuonCorrelations.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx index 0a0cbcf8f62..f53f4229b9f 100644 --- a/PWGDQ/Tasks/jPsiMuonCorrelations.cxx +++ b/PWGDQ/Tasks/jPsiMuonCorrelations.cxx @@ -30,13 +30,14 @@ #include #include +#include + #include #include #include #include #include #include -#include using std::string;