From dd0bf2c1371e99d52f95d837a59d757f3846e876 Mon Sep 17 00:00:00 2001 From: Yakiv Date: Fri, 21 Nov 2025 12:50:04 +0100 Subject: [PATCH 1/2] Fix Purity interpolation --- PWGLF/Tasks/Strangeness/strangeCascTrack.cxx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/strangeCascTrack.cxx b/PWGLF/Tasks/Strangeness/strangeCascTrack.cxx index 45bea61a7c6..2f03174760e 100644 --- a/PWGLF/Tasks/Strangeness/strangeCascTrack.cxx +++ b/PWGLF/Tasks/Strangeness/strangeCascTrack.cxx @@ -490,11 +490,11 @@ struct StrangeCascTrack { if (doApplyPurity1D) { if constexpr (requires { cascade.topologyChi2(); }) { - purityOmega = hPurityOmegaTra1D->Interpolate(cascade.pt(), mult); - purityXi = hPurityXiTra1D->Interpolate(cascade.pt(), mult); + purityOmega = hPurityOmegaTra1D->Interpolate(cascade.pt()); + purityXi = hPurityXiTra1D->Interpolate(cascade.pt()); if (doPropagatePurity1D) { - purityOmegaErr = hPurityErrOmegaTra1D->Interpolate(cascade.pt(), mult); - purityXiErr = hPurityErrXiTra1D->Interpolate(cascade.pt(), mult); + purityOmegaErr = hPurityErrOmegaTra1D->Interpolate(cascade.pt()); + purityXiErr = hPurityErrXiTra1D->Interpolate(cascade.pt()); } if (purityOmega == 0) { // check for zero purity, do not apply if the case purityOmega = 1.; @@ -505,11 +505,11 @@ struct StrangeCascTrack { purityXiErr = 0.; } } else { - purityOmega = hPurityOmegaStd1D->Interpolate(cascade.pt(), mult); - purityXi = hPurityXiStd1D->Interpolate(cascade.pt(), mult); + purityOmega = hPurityOmegaStd1D->Interpolate(cascade.pt()); + purityXi = hPurityXiStd1D->Interpolate(cascade.pt()); if (doPropagatePurity1D) { - purityOmegaErr = hPurityErrOmegaStd1D->Interpolate(cascade.pt(), mult); - purityXiErr = hPurityErrXiStd1D->Interpolate(cascade.pt(), mult); + purityOmegaErr = hPurityErrOmegaStd1D->Interpolate(cascade.pt()); + purityXiErr = hPurityErrXiStd1D->Interpolate(cascade.pt()); } if (purityOmega == 0) { // check for zero purity, do not apply if the case purityOmega = 1.; From 3bdb3e70b8ba1bb067f8294c22b8c9b8311de2e6 Mon Sep 17 00:00:00 2001 From: Yakiv Date: Sat, 22 Nov 2025 16:49:03 +0100 Subject: [PATCH 2/2] Fix dca determination for tracked cascades --- PWGLF/Tasks/Strangeness/strangeCascTrack.cxx | 22 +++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/strangeCascTrack.cxx b/PWGLF/Tasks/Strangeness/strangeCascTrack.cxx index 2f03174760e..4274ca7a8cc 100644 --- a/PWGLF/Tasks/Strangeness/strangeCascTrack.cxx +++ b/PWGLF/Tasks/Strangeness/strangeCascTrack.cxx @@ -283,18 +283,24 @@ struct StrangeCascTrack { return false; return true; } - // checks general selection criteria for cascades + // checks general selection criteria for cascades - from std casc template - bool isValidCasc(TEvent collision, TCascade cascade, TString particle) + bool isValidCascGen(TEvent collision, TCascade cascade) { - if (cascade.dcaXYCascToPV() > selCuts.cutDCAtoPVxy) - return false; - if (cascade.dcaZCascToPV() > selCuts.cutDCAtoPVz) - return false; if (cascade.v0cosPA(collision.posX(), collision.posY(), collision.posZ()) < selCuts.cutV0CosPA) return false; if (cascade.bachBaryonCosPA() < selCuts.cutBachCosPA) return false; + return true; + } + // checks general selection criteria for cascades - from std or tracked casc + template + bool isValidCascSpec(TCascade cascade, TString particle) + { + if (cascade.dcaXYCascToPV() > selCuts.cutDCAtoPVxy) + return false; + if (cascade.dcaZCascToPV() > selCuts.cutDCAtoPVz) + return false; ROOT::Math::PxPyPzMVector momentum; if (particle == "xi") momentum.SetCoordinates(cascade.px(), cascade.py(), cascade.pz(), o2::constants::physics::MassXiMinus); @@ -603,11 +609,11 @@ struct StrangeCascTrack { } } if (doApplyGenCutsXi) { - if (!isValidCasc(collision, stdCasc, "xi")) + if (!isValidCascGen(collision, stdCasc) || !isValidCascSpec(cascade, "xi")) passedAllSelsXi = false; } if (doApplyGenCutsOmega) { - if (!isValidCasc(collision, stdCasc, "omega")) + if (!isValidCascGen(collision, stdCasc) || !isValidCascSpec(cascade, "omega")) passedAllSelsOmega = false; } // apply pt cuts