From 34b1356527db11c23e8d0c417fdf4c0eb7697b3d Mon Sep 17 00:00:00 2001 From: fuchuncui <162277233+fuchuncui@users.noreply.github.com> Date: Thu, 25 Jun 2026 18:42:02 +0800 Subject: [PATCH 1/2] Add files via upload --- .../Tasks/cascDiHadronCorr.cxx | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx b/PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx index 76bb9e239d6..2a090a0e526 100644 --- a/PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx +++ b/PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx @@ -424,7 +424,11 @@ struct CascDiHadronCorr { same.setObject(new CorrelationContainer("sameEvent", "sameEvent", corrAxis, effAxis, userAxis)); mixed.setObject(new CorrelationContainer("mixedEvent", "mixedEvent", corrAxis, effAxis, userAxis)); - validCollisions.resize(registry.get(HIST("Nch"))->GetNbinsX() * registry.get(HIST("zVtx"))->GetNbinsX()); + o2::framework::AxisSpec axisMult = axisMultiplicity; + o2::framework::AxisSpec axisVtx = axisVertex; + int nMultBins = axisMult.binEdges.size() - 1; + int nVtxBins = axisVtx.binEdges.size() - 1; + validCollisions.resize(nMultBins * nVtxBins); LOGF(info, "End of init"); } @@ -748,6 +752,8 @@ struct CascDiHadronCorr { { float triggerWeight = 1.0f; float associatedWeight = 1.0f; + if (currentCollision.assocParticles.size() == 0) + return; // loop over all validCollisions in buffer for (const auto& collision : validCollisions[bin]) { double fSampleIndex = gRandom->Uniform(0, cfgSampleSize); @@ -756,7 +762,7 @@ struct CascDiHadronCorr { if (mEfficiency) { efficiencyAssociatedCache.clear(); efficiencyAssociatedCache.reserve(collision.assocParticles.size()); - for (const auto& track2 : currentCollision.assocParticles) { + for (const auto& track2 : collision.assocParticles) { float weff = 1.; getEfficiencyCorrection(weff, track2.eta, track2.pt, posZ); efficiencyAssociatedCache.push_back(weff); @@ -794,6 +800,8 @@ struct CascDiHadronCorr { { float triggerWeight = 1.0f; float associatedWeight = 1.0f; + if (currentCollision.assocParticles.size() == 0) + return; // loop over all validCollisions in buffer for (const auto& collision : validCollisions[bin]) { double fSampleIndex = gRandom->Uniform(0, cfgSampleSize); @@ -802,7 +810,7 @@ struct CascDiHadronCorr { if (mEfficiency) { efficiencyAssociatedCache.clear(); efficiencyAssociatedCache.reserve(collision.assocParticles.size()); - for (const auto& track2 : currentCollision.assocParticles) { + for (const auto& track2 : collision.assocParticles) { float weff = 1.; getEfficiencyCorrection(weff, track2.eta, track2.pt, posZ); efficiencyAssociatedCache.push_back(weff); @@ -829,9 +837,9 @@ struct CascDiHadronCorr { float deltaEta = track1.eta() - track2.eta; if (cfgOutputXi) - same->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), track2.pt, deltaPhi, deltaEta, track1.mXi(), eventWeight * triggerWeight * associatedWeight); + mixed->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), track2.pt, deltaPhi, deltaEta, track1.mXi(), eventWeight * triggerWeight * associatedWeight); if (cfgOutputOmega) - same->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), track2.pt, deltaPhi, deltaEta, track1.mOmega(), eventWeight * triggerWeight * associatedWeight); + mixed->getPairHist()->Fill(step, fSampleIndex, posZ, track1.pt(), track2.pt, deltaPhi, deltaEta, track1.mOmega(), eventWeight * triggerWeight * associatedWeight); registry.fill(HIST("deltaEta_deltaPhi_mixed"), deltaPhi, deltaEta, eventWeight * triggerWeight * associatedWeight); } } @@ -1592,7 +1600,7 @@ struct CascDiHadronCorr { } } - void processMCEfficiency(FilteredMcCollisions::iterator const& mcCollision, soa::SmallGroups> const& collisions, soa::Join const& Cascades, FilteredMcParticles const& mcParticles) + void processMCEfficiency(FilteredMcCollisions::iterator const& mcCollision, soa::SmallGroups> const& collisions, soa::Join const& Cascades, FilteredMcParticles const& mcParticles, DaughterTracks const&) { registry.fill(HIST("MCEffeventcount"), 0.5); if (cfgSelCollByNch && (mcParticles.size() < cfgCutMultMin || mcParticles.size() >= cfgCutMultMax)) { @@ -1601,8 +1609,10 @@ struct CascDiHadronCorr { // Primaries for (const auto& mcParticle : mcParticles) { if (mcParticle.isPhysicalPrimary()) { - registry.fill(HIST("MCEffeventcount"), 1.5); - same->getTrackHistEfficiency()->Fill(CorrelationContainer::MC, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ()); + if ((cfgOutputXi && getSpecies(mcParticle.pdgCode()) == 1) || (cfgOutputOmega && getSpecies(mcParticle.pdgCode()) == 2)) { + registry.fill(HIST("MCEffeventcount"), 1.5); + same->getTrackHistEfficiency()->Fill(CorrelationContainer::MC, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ()); + } } } for (const auto& collision : collisions) { @@ -1613,14 +1623,16 @@ struct CascDiHadronCorr { } for (const auto& casc : groupedCascades) { + if (!cascSelected(casc, collision.posX(), collision.posY(), collision.posZ())) + continue; if (casc.has_mcParticle()) { - auto mcParticle = casc.mcParticle(); + auto mcParticle = casc.mcParticle_as(); if (mcParticle.isPhysicalPrimary()) { registry.fill(HIST("MCEffeventcount"), 2.5); same->getTrackHistEfficiency()->Fill(CorrelationContainer::RecoPrimaries, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ()); } registry.fill(HIST("MCEffeventcount"), 3.5); - same->getTrackHistEfficiency()->Fill(CorrelationContainer::RecoAll, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ()); + same->getTrackHistEfficiency()->Fill(CorrelationContainer::RecoAll, mcParticle.eta(), mcParticle.pt(), (cfgOutputXi * getSpecies(PDG_t::kXiMinus) + cfgOutputOmega * getSpecies(PDG_t::kOmegaMinus)), 0., mcCollision.posZ()); } else { // fake casc registry.fill(HIST("MCEffeventcount"), 4.5); From 7294a81abc6ded23e84233cbcb1301f42b45f4a0 Mon Sep 17 00:00:00 2001 From: fuchuncui <162277233+fuchuncui@users.noreply.github.com> Date: Thu, 25 Jun 2026 18:48:56 +0800 Subject: [PATCH 2/2] Add files via upload --- PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx b/PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx index 2a090a0e526..b70ca7eb722 100644 --- a/PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx +++ b/PWGCF/TwoParticleCorrelations/Tasks/cascDiHadronCorr.cxx @@ -1609,7 +1609,7 @@ struct CascDiHadronCorr { // Primaries for (const auto& mcParticle : mcParticles) { if (mcParticle.isPhysicalPrimary()) { - if ((cfgOutputXi && getSpecies(mcParticle.pdgCode()) == 1) || (cfgOutputOmega && getSpecies(mcParticle.pdgCode()) == 2)) { + if ((cfgOutputXi && getSpecies(mcParticle.pdgCode()) == getSpecies(PDG_t::kXiMinus)) || (cfgOutputOmega && getSpecies(mcParticle.pdgCode()) == getSpecies(PDG_t::kOmegaMinus))) { registry.fill(HIST("MCEffeventcount"), 1.5); same->getTrackHistEfficiency()->Fill(CorrelationContainer::MC, mcParticle.eta(), mcParticle.pt(), getSpecies(mcParticle.pdgCode()), 0., mcCollision.posZ()); }