From 81931a2dd3eb1ebe4f316620bd6bbe318b0fa61d Mon Sep 17 00:00:00 2001 From: wulbyu Date: Thu, 28 May 2026 16:38:55 +0200 Subject: [PATCH 1/2] Add the number of tracks into the charm-bulk correlation --- PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx b/PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx index 4b1b6362692..6f4bfd91532 100644 --- a/PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx +++ b/PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx @@ -186,7 +186,7 @@ struct HfTaskPtFlucCharmHadrons { // charm-bulk correlations (optional) if (saveCharmBulkCorrelations) { - registry.add("hCharmBulkCorrelations", "Charm-bulk correlations", HistType::kTHnSparseF, {aInvMass, aCent, aPt, aSign, aMlOne, aMlTwo, aCandEta, aMPtTrkA, aMPtTrkB, aPtCandProduct}, true); + registry.add("hCharmBulkCorrelations", "Charm-bulk correlations", HistType::kTHnSparseF, {aInvMass, aCent, aPt, aSign, aMlOne, aMlTwo, aCandEta, aMPtTrkA, aMPtTrkB, aPtCandProduct, aNTrkA, aNTrkB}, true); registry.add("hMeanPtTrkAllColls", "Mean pT of charged hadrons for all collisions", HistType::kTHnSparseF, {aCent, aMPtTrkA, aMPtTrkB, aPtTrkProduct, aNTrkA, aNTrkB}, true); } @@ -250,7 +250,7 @@ struct HfTaskPtFlucCharmHadrons { /// remove candidate daughters from the mean pT of tracks in A and B (if they are in the respective subevent) template - float removeDaughtersFromMeanPt(const CandT& cand, float rawMeanPt, int n, const std::vector& trkIDs) + std::pair removeDaughtersFromMeanPt(const CandT& cand, float rawMeanPt, int n, const std::vector& trkIDs) { int removedCount = 0; float removedSumPt = 0.f; @@ -270,9 +270,9 @@ struct HfTaskPtFlucCharmHadrons { } if (removedCount > 0) { double totalSum = static_cast(rawMeanPt) * n; - return static_cast((totalSum - removedSumPt) / (n - removedCount)); + return {static_cast((totalSum - removedSumPt) / (n - removedCount)), n - removedCount}; } - return rawMeanPt; + return {rawMeanPt, n}; } // --------------------------------------------------------------------------- @@ -421,11 +421,11 @@ struct HfTaskPtFlucCharmHadrons { float meanPtA{0.f}; float meanPtB{0.f}; if (eta > etaAMin.value && eta < etaAMax.value) { - meanPtB = removeDaughtersFromMeanPt(cand, RawMeanPtB, nB, trkIDB); + std::tie(meanPtB, nB) = removeDaughtersFromMeanPt(cand, RawMeanPtB, nB, trkIDB); meanPtA = RawMeanPtA; // no need to remove daughters from A if candidate is in A candPtProduct = pt * meanPtB; } else if (eta > etaBMin.value && eta < etaBMax.value) { - meanPtA = removeDaughtersFromMeanPt(cand, RawMeanPtA, nA, trkIDA); + std::tie(meanPtA, nA) = removeDaughtersFromMeanPt(cand, RawMeanPtA, nA, trkIDA); meanPtB = RawMeanPtB; // no need to remove daughters from B if candidate is in B candPtProduct = pt * meanPtA; } @@ -434,7 +434,7 @@ struct HfTaskPtFlucCharmHadrons { auto [invMass, sign] = getCandMassAndSign(cand); // fill charm-bulk correlation thnsparse - registry.fill(HIST("hCharmBulkCorrelations"), invMass, cent, pt, sign, ml1, ml2, eta, meanPtA, meanPtB, candPtProduct); + registry.fill(HIST("hCharmBulkCorrelations"), invMass, cent, pt, sign, ml1, ml2, eta, meanPtA, meanPtB, candPtProduct, nA, nB); } } else { int nDcandTotA = 0; From 69c51137a72e13d0d92aa9724919dc03f180f1fe Mon Sep 17 00:00:00 2001 From: wulbyu Date: Thu, 28 May 2026 16:45:23 +0200 Subject: [PATCH 2/2] Using the intermediate variable for N tracks --- PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx b/PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx index 6f4bfd91532..0f53b2ab63e 100644 --- a/PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx +++ b/PWGHF/D2H/Tasks/taskPtFlucCharmHadrons.cxx @@ -420,12 +420,14 @@ struct HfTaskPtFlucCharmHadrons { float candPtProduct{0.f}; float meanPtA{0.f}; float meanPtB{0.f}; + int nATrk{nA}; + int nBTrk{nB}; if (eta > etaAMin.value && eta < etaAMax.value) { - std::tie(meanPtB, nB) = removeDaughtersFromMeanPt(cand, RawMeanPtB, nB, trkIDB); + std::tie(meanPtB, nBTrk) = removeDaughtersFromMeanPt(cand, RawMeanPtB, nB, trkIDB); meanPtA = RawMeanPtA; // no need to remove daughters from A if candidate is in A candPtProduct = pt * meanPtB; } else if (eta > etaBMin.value && eta < etaBMax.value) { - std::tie(meanPtA, nA) = removeDaughtersFromMeanPt(cand, RawMeanPtA, nA, trkIDA); + std::tie(meanPtA, nATrk) = removeDaughtersFromMeanPt(cand, RawMeanPtA, nA, trkIDA); meanPtB = RawMeanPtB; // no need to remove daughters from B if candidate is in B candPtProduct = pt * meanPtA; } @@ -434,7 +436,7 @@ struct HfTaskPtFlucCharmHadrons { auto [invMass, sign] = getCandMassAndSign(cand); // fill charm-bulk correlation thnsparse - registry.fill(HIST("hCharmBulkCorrelations"), invMass, cent, pt, sign, ml1, ml2, eta, meanPtA, meanPtB, candPtProduct, nA, nB); + registry.fill(HIST("hCharmBulkCorrelations"), invMass, cent, pt, sign, ml1, ml2, eta, meanPtA, meanPtB, candPtProduct, nATrk, nBTrk); } } else { int nDcandTotA = 0;