From 52da2c2d871d9bfe155c3b82c2472945189fe7fd Mon Sep 17 00:00:00 2001 From: KaiCui Date: Fri, 21 Nov 2025 12:34:15 +0100 Subject: [PATCH 1/2] BugFix --- .../Strangeness/hStrangeCorrelationFilter.cxx | 23 +- .../Tasks/Strangeness/hStrangeCorrelation.cxx | 215 ++++++++++-------- 2 files changed, 129 insertions(+), 109 deletions(-) diff --git a/PWGLF/TableProducer/Strangeness/hStrangeCorrelationFilter.cxx b/PWGLF/TableProducer/Strangeness/hStrangeCorrelationFilter.cxx index 4fa0ee3daf0..b9a789e47b0 100644 --- a/PWGLF/TableProducer/Strangeness/hStrangeCorrelationFilter.cxx +++ b/PWGLF/TableProducer/Strangeness/hStrangeCorrelationFilter.cxx @@ -65,6 +65,7 @@ struct HStrangeCorrelationFilter { Configurable strangedEdxNSigma{"strangedEdxNSigma", 4, "Nsigmas for strange decay daughters"}; Configurable strangedEdxNSigmaTight{"strangedEdxNSigmaTight", 3, "Nsigmas for strange decay daughters"}; Configurable zorroMask{"zorroMask", "", "zorro trigger class to select on (empty: none)"}; + Configurable nSigmaNearXiMassCenter{"nSigmaNearXiMassCenter", 0, "for Oemga analysis only, to check if candidate mass is around Xi"}; // used for event selections in Pb-Pb Configurable cfgCutOccupancyHigh{"cfgCutOccupancyHigh", 3000, "High cut on TPC occupancy"}; @@ -515,9 +516,6 @@ struct HStrangeCorrelationFilter { // for real data processing void processTriggers(soa::Join::iterator const& collision, soa::Filtered const& tracks, aod::BCsWithTimestamps const&) { - // Load parameters for sideband subtraction - auto bc = collision.bc_as(); - initParametersFromCCDB(bc); if (((doPPAnalysis && !isCollisionSelected(collision))) || (!doPPAnalysis && !isCollisionSelectedPbPb(collision))) { return; } @@ -539,9 +537,6 @@ struct HStrangeCorrelationFilter { // for MC processing void processTriggersMC(soa::Join::iterator const& collision, soa::Filtered const& tracks, aod::McParticles const&, aod::BCsWithTimestamps const&) { - // Load parameters for sideband subtraction - auto bc = collision.bc_as(); - initParametersFromCCDB(bc); if (((doPPAnalysis && !isCollisionSelected(collision))) || (!doPPAnalysis && !isCollisionSelectedPbPb(collision))) { return; } @@ -571,7 +566,6 @@ struct HStrangeCorrelationFilter { { // Load parameters for sideband subtraction auto bc = collision.bc_as(); - initParametersFromCCDB(bc); // Perform basic event selection if (!collision.sel8()) { return; @@ -600,7 +594,6 @@ struct HStrangeCorrelationFilter { { // Load parameters for sideband subtraction auto bc = collision.bc_as(); - initParametersFromCCDB(bc); // Perform basic event selection if (!collision.sel8()) { return; @@ -629,7 +622,6 @@ struct HStrangeCorrelationFilter { { // Load parameters for sideband subtraction auto bc = collision.bc_as(); - initParametersFromCCDB(bc); // Perform basic event selection if (!collision.sel8()) { return; @@ -657,7 +649,6 @@ struct HStrangeCorrelationFilter { { // Load parameters for sideband subtraction auto bc = collision.bc_as(); - initParametersFromCCDB(bc); // Perform basic event selection if (!collision.sel8()) { return; @@ -1127,15 +1118,15 @@ struct HStrangeCorrelationFilter { histos.fill(HIST("h3dMassXiMinus"), casc.pt(), casc.mXi(), cent); if (compatibleXiPlus) histos.fill(HIST("h3dMassXiPlus"), casc.pt(), casc.mXi(), cent); - if (compatibleOmegaMinus) + if (compatibleOmegaMinus && std::abs(massNSigmaXi) > nSigmaNearXiMassCenter) histos.fill(HIST("h3dMassOmegaMinus"), casc.pt(), casc.mOmega(), cent); - if (compatibleOmegaPlus) + if (compatibleOmegaPlus && std::abs(massNSigmaXi) > nSigmaNearXiMassCenter) histos.fill(HIST("h3dMassOmegaPlus"), casc.pt(), casc.mOmega(), cent); if (!fillTableOnlyWithCompatible || ( // start major condition check ((compatibleXiMinus > 0 || compatibleXiPlus > 0) && std::abs(massNSigmaXi) < maxMassNSigma) || - ((compatibleOmegaMinus > 0 || compatibleOmegaPlus > 0) && std::abs(massNSigmaOmega) < maxMassNSigma)) // end major condition check + ((compatibleOmegaMinus > 0 || compatibleOmegaPlus > 0) && std::abs(massNSigmaOmega) < maxMassNSigma && std::abs(massNSigmaXi) > nSigmaNearXiMassCenter)) // end major condition check ) { assocCascades(casc.collisionId(), casc.globalIndex(), compatibleXiMinus, compatibleXiPlus, compatibleOmegaMinus, compatibleOmegaPlus, @@ -1315,15 +1306,15 @@ struct HStrangeCorrelationFilter { histos.fill(HIST("h3dMassXiMinus"), casc.pt(), casc.mXi(), cent); if (compatibleXiPlus && (!doTrueSelectionInMass || (trueXiPlus && cascPhysicalPrimary))) histos.fill(HIST("h3dMassXiPlus"), casc.pt(), casc.mXi(), cent); - if (compatibleOmegaMinus && (!doTrueSelectionInMass || (trueOmegaMinus && cascPhysicalPrimary))) + if (compatibleOmegaMinus && (!doTrueSelectionInMass || (trueOmegaMinus && cascPhysicalPrimary)) && std::abs(massNSigmaXi) > nSigmaNearXiMassCenter) histos.fill(HIST("h3dMassOmegaMinus"), casc.pt(), casc.mOmega(), cent); - if (compatibleOmegaPlus && (!doTrueSelectionInMass || (trueOmegaPlus && cascPhysicalPrimary))) + if (compatibleOmegaPlus && (!doTrueSelectionInMass || (trueOmegaPlus && cascPhysicalPrimary)) && std::abs(massNSigmaXi) > nSigmaNearXiMassCenter) histos.fill(HIST("h3dMassOmegaPlus"), casc.pt(), casc.mOmega(), cent); if (!fillTableOnlyWithCompatible || ( // start major condition check ((compatibleXiMinus > 0 || compatibleXiPlus > 0) && std::abs(massNSigmaXi) < maxMassNSigma) || - ((compatibleOmegaMinus > 0 || compatibleOmegaPlus > 0) && std::abs(massNSigmaOmega) < maxMassNSigma)) // end major condition check + ((compatibleOmegaMinus > 0 || compatibleOmegaPlus > 0) && std::abs(massNSigmaOmega) < maxMassNSigma && std::abs(massNSigmaXi) > nSigmaNearXiMassCenter)) // end major condition check ) { assocCascades(casc.collisionId(), casc.globalIndex(), compatibleXiMinus, compatibleXiPlus, compatibleOmegaMinus, compatibleOmegaPlus, diff --git a/PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx b/PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx index 0d4c498355a..8409f38db82 100644 --- a/PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx +++ b/PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx @@ -124,7 +124,7 @@ struct HStrangeCorrelation { Configurable maxPeakNSigma{"maxPeakNSigma", 5, "Peak region edge definition (in sigma)"}; Configurable minBgNSigma{"minBgNSigma", 5, "Bg region edge closest to peak (in sigma)"}; Configurable maxBgNSigma{"maxBgNSigma", 10, "Bg region edge furthest to peak (in sigma)"}; - Configurable nSigmaNearXiMassCenter{"nSigmaNearXiMassCenter", 1.5, "for Oemga analysis only, to check if candidate mass is around Xi"}; + Configurable nSigmaNearXiMassCenter{"nSigmaNearXiMassCenter", 1, "for Oemga analysis only, to check if candidate mass is around Xi"}; } massWindowConfigurations; // allows for gap between peak and bg in case someone wants to // Implementation of on-the-spot efficiency correction @@ -246,11 +246,9 @@ struct HStrangeCorrelation { TH1F* hPurityUncertaintyHadron; TH2F* hPurityUncertaintyHadronMult; - using BinningType = ColumnBinningPolicy; + using BinningTypePP = ColumnBinningPolicy; using BinningTypePbPb = ColumnBinningPolicy; - // std::variant colBinning; - BinningType colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; // true is for 'ignore overflows' (true by default). Underflows and overflows will have bin -1. - + // collision slicing for mixed events Preslice collisionSliceTracks = aod::triggerTracks::collisionId; Preslice collisionSliceV0s = aod::assocV0s::collisionId; @@ -1696,6 +1694,8 @@ struct HStrangeCorrelation { aod::AssocHadrons const& assocHadrons, aod::TriggerTracks const& triggerTracks, TracksComplete const&, aod::BCsWithTimestamps const&) { + BinningTypePP colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; // true is for 'ignore overflows' (true by default). Underflows and overflows will have bin -1. + // ________________________________________________ // skip if desired trigger not found if (triggerPresenceMap.size() > 0 && !TESTBIT(triggerPresenceMap[collision.globalIndex()], triggerBinToSelect)) { @@ -1776,9 +1776,12 @@ struct HStrangeCorrelation { aod::AssocV0s const& associatedV0s, aod::TriggerTracks const& triggerTracks, V0DatasWithoutTrackX const&, TracksComplete const&, aod::BCsWithTimestamps const&) { - if (!doPPAnalysis) { - BinningTypePbPb colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; - } + std::variant colBinning = + doPPAnalysis + ? std::variant{ + BinningTypePP{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}} + : std::variant{BinningTypePbPb{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}}; + double cent = doPPAnalysis ? collision.centFT0M() : collision.centFT0C(); // ________________________________________________ // skip if desired trigger not found @@ -1793,7 +1796,10 @@ struct HStrangeCorrelation { } // ________________________________________________ if (!doprocessSameEventHCascades && doMixingQAandEventQA) { - histos.fill(HIST("MixingQA/hSECollisionBins"), colBinning.getBin({collision.posZ(), cent})); + std::visit([&](auto const& binning) { + histos.fill(HIST("MixingQA/hSECollisionBins"), binning.getBin({collision.posZ(), cent})); + }, + colBinning); histos.fill(HIST("EventQA/hMult"), cent); histos.fill(HIST("EventQA/hPvz"), collision.posZ()); histos.fill(HIST("EventQA/hMultFT0vsTPC"), cent, collision.multNTracksPVeta1()); @@ -1877,9 +1883,12 @@ struct HStrangeCorrelation { aod::AssocV0s const&, aod::AssocCascades const& associatedCascades, aod::TriggerTracks const& triggerTracks, V0DatasWithoutTrackX const&, aod::CascDatas const&, TracksComplete const&, aod::BCsWithTimestamps const&) { - if (!doPPAnalysis) { - BinningTypePbPb colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; - } + std::variant colBinning = + doPPAnalysis + ? std::variant{ + BinningTypePP{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}} + : std::variant{BinningTypePbPb{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}}; + double cent = doPPAnalysis ? collision.centFT0M() : collision.centFT0C(); // ________________________________________________ // skip if desired trigger not found @@ -1894,7 +1903,10 @@ struct HStrangeCorrelation { } // ________________________________________________ if (doMixingQAandEventQA) { - histos.fill(HIST("MixingQA/hSECollisionBins"), colBinning.getBin({collision.posZ(), cent})); + std::visit([&](auto const& binning) { + histos.fill(HIST("MixingQA/hSECollisionBins"), binning.getBin({collision.posZ(), cent})); + }, + colBinning); histos.fill(HIST("EventQA/hMult"), cent); histos.fill(HIST("EventQA/hPvz"), collision.posZ()); } @@ -1989,6 +2001,7 @@ struct HStrangeCorrelation { soa::Join const& associatedPions, soa::Join const& triggerTracks, TracksComplete const&, aod::BCsWithTimestamps const&) { + BinningTypePP colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; // ________________________________________________ // skip if desired trigger not found if (triggerPresenceMap.size() > 0 && !TESTBIT(triggerPresenceMap[collision.globalIndex()], triggerBinToSelect)) { @@ -2053,6 +2066,7 @@ struct HStrangeCorrelation { aod::AssocHadrons const& assocHadrons, aod::TriggerTracks const& triggerTracks, TracksComplete const&, aod::BCsWithTimestamps const&) { + BinningTypePP colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; for (auto const& [collision1, collision2] : soa::selfCombinations(colBinning, mixingParameter, -1, collisions, collisions)) { auto bc = collision1.bc_as(); auto bField = getMagneticField(bc.timestamp()); @@ -2098,103 +2112,118 @@ struct HStrangeCorrelation { aod::AssocV0s const& associatedV0s, aod::TriggerTracks const& triggerTracks, V0DatasWithoutTrackX const&, TracksComplete const&, aod::BCsWithTimestamps const&) { - if (!doPPAnalysis) { - BinningTypePbPb colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; - } - for (auto const& [collision1, collision2] : soa::selfCombinations(colBinning, mixingParameter, -1, collisions, collisions)) { - double cent1 = doPPAnalysis ? collision1.centFT0M() : collision1.centFT0C(); - double cent2 = doPPAnalysis ? collision2.centFT0M() : collision2.centFT0C(); - auto bc = collision1.bc_as(); - auto bField = getMagneticField(bc.timestamp()); - // ________________________________________________ - if (efficiencyFlags.applyEfficiencyCorrection) { - initEfficiencyFromCCDB(bc); - } - // ________________________________________________ - // skip if desired trigger not found - if (triggerPresenceMap.size() > 0 && (!TESTBIT(triggerPresenceMap[collision1.globalIndex()], triggerBinToSelect) || !TESTBIT(triggerPresenceMap[collision2.globalIndex()], triggerBinToSelect))) { - continue; - } + std::variant colBinning = + doPPAnalysis + ? std::variant{ + BinningTypePP{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}} + : std::variant{BinningTypePbPb{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}}; + + std::visit([&](auto const& binning) { + for (auto const& [collision1, collision2] : soa::selfCombinations(binning, mixingParameter, -1, collisions, collisions)) { + double cent1 = doPPAnalysis ? collision1.centFT0M() : collision1.centFT0C(); + double cent2 = doPPAnalysis ? collision2.centFT0M() : collision2.centFT0C(); + auto bc = collision1.template bc_as(); + auto bField = getMagneticField(bc.timestamp()); + // ________________________________________________ + if (efficiencyFlags.applyEfficiencyCorrection) { + initEfficiencyFromCCDB(bc); + } + // ________________________________________________ + // skip if desired trigger not found + if (triggerPresenceMap.size() > 0 && (!TESTBIT(triggerPresenceMap[collision1.globalIndex()], triggerBinToSelect) || !TESTBIT(triggerPresenceMap[collision2.globalIndex()], triggerBinToSelect))) { + continue; + } - // Perform basic event selection on both collisions - if ((doPPAnalysis && (!isCollisionSelected(collision1) || !isCollisionSelected(collision2))) || (!doPPAnalysis && (!isCollisionSelectedPbPb(collision1, true) || (!isCollisionSelectedPbPb(collision2, true))))) { - continue; - } - if (cent1 > axisRanges[5][1] || cent1 < axisRanges[5][0]) - continue; - if (cent2 > axisRanges[5][1] || cent2 < axisRanges[5][0]) - continue; + // Perform basic event selection on both collisions + if ((doPPAnalysis && (!isCollisionSelected(collision1) || !isCollisionSelected(collision2))) || (!doPPAnalysis && (!isCollisionSelectedPbPb(collision1, true) || (!isCollisionSelectedPbPb(collision2, true))))) { + continue; + } + if (cent1 > axisRanges[5][1] || cent1 < axisRanges[5][0]) + continue; + if (cent2 > axisRanges[5][1] || cent2 < axisRanges[5][0]) + continue; - if (!doprocessMixedEventHCascades && doMixingQAandEventQA) { - if (collision1.globalIndex() == collision2.globalIndex()) { - histos.fill(HIST("MixingQA/hMixingQA"), 0.0f); // same-collision pair counting + if (!doprocessMixedEventHCascades && doMixingQAandEventQA) { + if (collision1.globalIndex() == collision2.globalIndex()) { + histos.fill(HIST("MixingQA/hMixingQA"), 0.0f); // same-collision pair counting + } + histos.fill(HIST("MixingQA/hMEpvz1"), collision1.posZ()); + histos.fill(HIST("MixingQA/hMEpvz2"), collision2.posZ()); + histos.fill(HIST("MixingQA/hMECollisionBins"), binning.getBin({collision1.posZ(), cent1})); } - histos.fill(HIST("MixingQA/hMEpvz1"), collision1.posZ()); - histos.fill(HIST("MixingQA/hMEpvz2"), collision2.posZ()); - histos.fill(HIST("MixingQA/hMECollisionBins"), colBinning.getBin({collision1.posZ(), cent1})); + // ________________________________________________ + // Do slicing + auto slicedTriggerTracks = triggerTracks.sliceBy(collisionSliceTracks, collision1.globalIndex()); + auto slicedAssocV0s = associatedV0s.sliceBy(collisionSliceV0s, collision2.globalIndex()); + // ________________________________________________ + // Do hadron - V0 correlations + if (doFullCorrelationStudy) + fillCorrelationsV0(slicedTriggerTracks, slicedAssocV0s, true, collision1.posX(), collision1.posY(), collision1.posZ(), cent1, bField); } - // ________________________________________________ - // Do slicing - auto slicedTriggerTracks = triggerTracks.sliceBy(collisionSliceTracks, collision1.globalIndex()); - auto slicedAssocV0s = associatedV0s.sliceBy(collisionSliceV0s, collision2.globalIndex()); - // ________________________________________________ - // Do hadron - V0 correlations - if (doFullCorrelationStudy) - fillCorrelationsV0(slicedTriggerTracks, slicedAssocV0s, true, collision1.posX(), collision1.posY(), collision1.posZ(), cent1, bField); - } + }, + colBinning); } + void processMixedEventHCascades(soa::Join const& collisions, aod::AssocV0s const&, aod::AssocCascades const& associatedCascades, aod::TriggerTracks const& triggerTracks, V0DatasWithoutTrackX const&, aod::CascDatas const&, TracksComplete const&, aod::BCsWithTimestamps const&) { - if (!doPPAnalysis) { - BinningTypePbPb colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; - } - for (auto const& [collision1, collision2] : soa::selfCombinations(colBinning, mixingParameter, -1, collisions, collisions)) { - double cent1 = doPPAnalysis ? collision1.centFT0M() : collision1.centFT0C(); - double cent2 = doPPAnalysis ? collision2.centFT0M() : collision2.centFT0C(); - // ________________________________________________ - auto bc = collision1.bc_as(); - auto bField = getMagneticField(bc.timestamp()); - if (efficiencyFlags.applyEfficiencyCorrection) { - initEfficiencyFromCCDB(bc); - } - // ________________________________________________ - // skip if desired trigger not found - if (triggerPresenceMap.size() > 0 && (!TESTBIT(triggerPresenceMap[collision1.globalIndex()], triggerBinToSelect) || !TESTBIT(triggerPresenceMap[collision2.globalIndex()], triggerBinToSelect))) { - continue; - } + std::variant colBinning = + doPPAnalysis + ? std::variant{ + BinningTypePP{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}} + : std::variant{BinningTypePbPb{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}}; + + std::visit([&](auto const& binning) { + for (auto const& [collision1, collision2] : soa::selfCombinations(binning, mixingParameter, -1, collisions, collisions)) { + double cent1 = doPPAnalysis ? collision1.centFT0M() : collision1.centFT0C(); + double cent2 = doPPAnalysis ? collision2.centFT0M() : collision2.centFT0C(); + // ________________________________________________ + auto bc = collision1.template bc_as(); + auto bField = getMagneticField(bc.timestamp()); + if (efficiencyFlags.applyEfficiencyCorrection) { + initEfficiencyFromCCDB(bc); + } + // ________________________________________________ + // skip if desired trigger not found + if (triggerPresenceMap.size() > 0 && (!TESTBIT(triggerPresenceMap[collision1.globalIndex()], triggerBinToSelect) || !TESTBIT(triggerPresenceMap[collision2.globalIndex()], triggerBinToSelect))) { + continue; + } - // Perform basic event selection on both collisions - if ((doPPAnalysis && (!isCollisionSelected(collision1) || !isCollisionSelected(collision2))) || (!doPPAnalysis && (!isCollisionSelectedPbPb(collision1, true) || (!isCollisionSelectedPbPb(collision2, true))))) { - continue; - } - if (cent1 > axisRanges[5][1] || cent1 < axisRanges[5][0]) - continue; - if (cent2 > axisRanges[5][1] || cent2 < axisRanges[5][0]) - continue; - if (doMixingQAandEventQA) { - if (collision1.globalIndex() == collision2.globalIndex()) { - histos.fill(HIST("MixingQA/hMixingQA"), 0.0f); // same-collision pair counting + // Perform basic event selection on both collisions + if ((doPPAnalysis && (!isCollisionSelected(collision1) || !isCollisionSelected(collision2))) || (!doPPAnalysis && (!isCollisionSelectedPbPb(collision1, true) || (!isCollisionSelectedPbPb(collision2, true))))) { + continue; } - histos.fill(HIST("MixingQA/hMEpvz1"), collision1.posZ()); - histos.fill(HIST("MixingQA/hMEpvz2"), collision2.posZ()); - histos.fill(HIST("MixingQA/hMECollisionBins"), colBinning.getBin({collision1.posZ(), cent1})); + if (cent1 > axisRanges[5][1] || cent1 < axisRanges[5][0]) + continue; + if (cent2 > axisRanges[5][1] || cent2 < axisRanges[5][0]) + continue; + if (doMixingQAandEventQA) { + if (collision1.globalIndex() == collision2.globalIndex()) { + histos.fill(HIST("MixingQA/hMixingQA"), 0.0f); // same-collision pair counting + } + histos.fill(HIST("MixingQA/hMEpvz1"), collision1.posZ()); + histos.fill(HIST("MixingQA/hMEpvz2"), collision2.posZ()); + histos.fill(HIST("MixingQA/hMECollisionBins"), binning.getBin({collision1.posZ(), cent1})); + } + // ________________________________________________ + // Do slicing + auto slicedTriggerTracks = triggerTracks.sliceBy(collisionSliceTracks, collision1.globalIndex()); + auto slicedAssocCascades = associatedCascades.sliceBy(collisionSliceCascades, collision2.globalIndex()); + // ________________________________________________ + // Do hadron - cascade correlations + if (doFullCorrelationStudy) + fillCorrelationsCascade(slicedTriggerTracks, slicedAssocCascades, true, collision1.posX(), collision1.posY(), collision1.posZ(), cent1, bField); } - // ________________________________________________ - // Do slicing - auto slicedTriggerTracks = triggerTracks.sliceBy(collisionSliceTracks, collision1.globalIndex()); - auto slicedAssocCascades = associatedCascades.sliceBy(collisionSliceCascades, collision2.globalIndex()); - // ________________________________________________ - // Do hadron - cascade correlations - if (doFullCorrelationStudy) - fillCorrelationsCascade(slicedTriggerTracks, slicedAssocCascades, true, collision1.posX(), collision1.posY(), collision1.posZ(), cent1, bField); - } + }, + colBinning); } + void processMixedEventHPions(soa::Join const& collisions, soa::Join const& assocPions, soa::Join const& triggerTracks, TracksComplete const&, aod::BCsWithTimestamps const&) { + BinningTypePP colBinning{{axesConfigurations.axisVtxZ, axesConfigurations.axisMult}, true}; for (auto const& [collision1, collision2] : soa::selfCombinations(colBinning, mixingParameter, -1, collisions, collisions)) { auto bc = collision1.bc_as(); auto bField = getMagneticField(bc.timestamp()); From 6c9283d7ed4f2b097210a4fcb0ec5dfd367c31b3 Mon Sep 17 00:00:00 2001 From: Kai Cui <129373281+kcui1@users.noreply.github.com> Date: Fri, 21 Nov 2025 12:43:05 +0100 Subject: [PATCH 2/2] Update hStrangeCorrelation.cxx --- PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx b/PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx index 8409f38db82..ed61b5d07bd 100644 --- a/PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx +++ b/PWGLF/Tasks/Strangeness/hStrangeCorrelation.cxx @@ -248,7 +248,7 @@ struct HStrangeCorrelation { using BinningTypePP = ColumnBinningPolicy; using BinningTypePbPb = ColumnBinningPolicy; - + // collision slicing for mixed events Preslice collisionSliceTracks = aod::triggerTracks::collisionId; Preslice collisionSliceV0s = aod::assocV0s::collisionId;