From 28931415c3ce546cb80fcc5387e1671cbe415ec0 Mon Sep 17 00:00:00 2001 From: Florian Jonas Date: Thu, 4 Jun 2026 15:58:36 +0200 Subject: [PATCH 1/2] [PWGHF] add number of primary vertex contributors to data processing DPlus task --- PWGHF/D2H/Tasks/taskDplus.cxx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskDplus.cxx b/PWGHF/D2H/Tasks/taskDplus.cxx index fb4102b48a1..029f7459fd6 100644 --- a/PWGHF/D2H/Tasks/taskDplus.cxx +++ b/PWGHF/D2H/Tasks/taskDplus.cxx @@ -233,6 +233,9 @@ struct HfTaskDplus { if (storeIR) { axes.push_back(thnAxisIR); } + if (storePvContributors) { + axes.push_back(thnAxisPvContributors); + } if (doprocessDataWithMlWithUpc || doprocessDataWithUpc) { axes.push_back(thnAxisGapType); axes.push_back(thnAxisFT0A); @@ -410,10 +413,16 @@ struct HfTaskDplus { } } } else { // Data - if (storeCentrality && storeOccupancy) { + if (storeCentrality && storeOccupancy && storePvContributors) { + registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy, numPvContributors); + } else if (storeCentrality && storeOccupancy && !storePvContributors) { registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, occupancy); + } else if (storeCentrality && !storeOccupancy && storePvContributors) { + registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality, numPvContributors); } else if (storeCentrality && !storeOccupancy) { registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], centrality); + } else if (!storeCentrality && storeOccupancy && storePvContributors) { + registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy, numPvContributors); } else if (!storeCentrality && storeOccupancy) { registry.fill(HIST("hSparseMass"), HfHelper::invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1], outputMl[2], occupancy); } else if (!storeCentrality && !storeOccupancy && storePvContributors) { @@ -559,7 +568,7 @@ struct HfTaskDplus { continue; } - if (storeCentrality || storeOccupancy) { + if (storeCentrality || storeOccupancy || storePvContributors) { auto collision = candidate.template collision_as(); if (storeCentrality && centEstimator != CentralityEstimator::None) { cent = getCentralityColl(collision, centEstimator); @@ -771,7 +780,8 @@ struct HfTaskDplus { int const nAxesCent = storeCentrality ? 1 : 0; // centrality if storeCentrality int const nAxesOcc = storeOccupancy ? 1 : 0; // occupancy if storeOccupancy int const nAxesIR = storeIR ? 1 : 0; // IR if storeIR - int const nAxesTotal = NAxesBase + NAxesMl + nAxesCent + nAxesOcc + nAxesIR; + int const nAxesPv = storePvContributors ? 1 : 0; + int const nAxesTotal = NAxesBase + NAxesMl + nAxesCent + nAxesOcc + nAxesIR + nAxesPv; std::vector valuesToFill; valuesToFill.reserve(nAxesTotal); @@ -797,6 +807,9 @@ struct HfTaskDplus { if (storeIR) { valuesToFill.push_back(ir); } + if (storePvContributors) { + valuesToFill.push_back(static_cast(collision.numContrib())); + } valuesToFill.push_back(static_cast(gap)); valuesToFill.push_back(static_cast(fitInfo.ampFT0A)); valuesToFill.push_back(static_cast(fitInfo.ampFT0C)); From 86da69d23dbcbd098a2c8601f777eb98d0792d88 Mon Sep 17 00:00:00 2001 From: Florian Jonas Date: Tue, 9 Jun 2026 12:45:53 +0200 Subject: [PATCH 2/2] increase PV contributor axis range --- PWGHF/D2H/Tasks/taskDplus.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGHF/D2H/Tasks/taskDplus.cxx b/PWGHF/D2H/Tasks/taskDplus.cxx index 029f7459fd6..d2d0f0279dd 100644 --- a/PWGHF/D2H/Tasks/taskDplus.cxx +++ b/PWGHF/D2H/Tasks/taskDplus.cxx @@ -126,7 +126,7 @@ struct HfTaskDplus { ConfigurableAxis thnConfigAxisCent{"thnConfigAxisCent", {110, 0., 110.}, "axis for centrality"}; ConfigurableAxis thnConfigAxisOccupancy{"thnConfigAxisOccupancy", {14, 0, 14000}, "axis for occupancy"}; ConfigurableAxis thnConfigAxisIR{"thnConfigAxisIR", {5000, 0, 500}, "Interaction rate (kHz)"}; - ConfigurableAxis thnConfigAxisPvContributors{"thnConfigAxisPvContributors", {100, 0., 100.}, "axis for PV contributors"}; + ConfigurableAxis thnConfigAxisPvContributors{"thnConfigAxisPvContributors", {200, 0., 200.}, "axis for PV contributors"}; ConfigurableAxis thnConfigAxisPtBHad{"thnConfigAxisPtBHad", {25, 0., 50}, "axis for pt of B hadron decayed into D candidate"}; ConfigurableAxis thnConfigAxisFlagBHad{"thnConfigAxisFlagBHad", {5, 0., 5}, "axis for PDG of B hadron"}; ConfigurableAxis thnConfigAxisMlScore0{"thnConfigAxisMlScore0", {100, 0., 1.}, "axis for ML output score 0"};