From 927587e85fcb8056a82e0380d95271a35fa41ceb Mon Sep 17 00:00:00 2001 From: jikim1290 Date: Tue, 3 Nov 2026 14:51:08 +0900 Subject: [PATCH 1/2] adding selections --- PWGLF/Tasks/Resonances/cha01710analysis.cxx | 51 ++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Resonances/cha01710analysis.cxx b/PWGLF/Tasks/Resonances/cha01710analysis.cxx index ebda6c3e0e5..c6efd2bb837 100644 --- a/PWGLF/Tasks/Resonances/cha01710analysis.cxx +++ b/PWGLF/Tasks/Resonances/cha01710analysis.cxx @@ -97,10 +97,15 @@ struct Cha01710analysis { Configurable cfgV0DaughterPtMin{"cfgV0DaughterPtMin", 0.1f, "minimum daughter pT"}; Configurable cfgV0DaughterTPCNClsMin{"cfgV0DaughterTPCNClsMin", 70, "minimum daughter TPC clusters"}; Configurable cfgV0DaughterTPCNSigmaPiMax{"cfgV0DaughterTPCNSigmaPiMax", 5.f, "maximum daughter |TPC nSigma(pi)|"}; + Configurable cfgApplyV0DaughterTOFPID{"cfgApplyV0DaughterTOFPID", false, "Apply pion TOF PID to V0 daughters with TOF"}; Configurable cfgV0DaughterTOFNSigmaPiMax{"cfgV0DaughterTOFNSigmaPiMax", 5.f, "maximum daughter |TOF nSigma(pi)|"}; Configurable cfgKsMassWindow{"cfgKsMassWindow", 0.01, "K short mass window"}; Configurable cfgRejectLambda{"cfgRejectLambda", true, "reject Lambda/anti-Lambda competitors"}; Configurable cfgLambdaMassWindow{"cfgLambdaMassWindow", 0.005f, "Lambda rejection window (GeV/c2)"}; + Configurable cfgApplyArmenterosCut{"cfgApplyArmenterosCut", false, "Apply Armenteros-Podolanski cut"}; + Configurable cfgArmenterosCut{"cfgArmenterosCut", 0.2f, "Minimum qT / |alpha|"}; + Configurable cfgApplyV0DaughterDeltaR{"cfgApplyV0DaughterDeltaR", false, "Apply minimum deltaR between V0 daughters"}; + Configurable cfgV0DaughterDeltaRMin{"cfgV0DaughterDeltaRMin", 0.001f, "Minimum deltaR between pion daughters"}; } v0Cuts; struct : ConfigurableGroup { @@ -262,6 +267,9 @@ struct Cha01710analysis { if (!track.isPVContributor() || !track.isGlobalTrackWoDCA() || !track.isPrimaryTrack()) { return false; } + if (track.pt() < kaonCuts.cfgPtMin || std::abs(track.eta()) > kaonCuts.cfgEtaMax) { + return false; + } if (track.tpcNClsCrossedRows() < kaonCuts.cfgTPCCrossedRowsMin || track.tpcCrossedRowsOverFindableCls() < kaonCuts.cfgCrossedRowsRatioMin || track.tpcChi2NCl() > kaonCuts.cfgTPCChi2Max || track.itsChi2NCl() > kaonCuts.cfgITSChi2Max || @@ -298,7 +306,19 @@ struct Cha01710analysis { template bool selectPionDaughter(T const& track) { - return !(track.tpcNClsFound() < v0Cuts.cfgV0DaughterTPCNClsMin || track.pt() < v0Cuts.cfgV0DaughterPtMin || std::abs(track.eta()) > v0Cuts.cfgV0DaughterEtaMax || std::abs(track.tpcNSigmaPi()) > v0Cuts.cfgV0DaughterTPCNSigmaPiMax); + if (track.tpcNClsFound() < v0Cuts.cfgV0DaughterTPCNClsMin) { + return false; + } + if (track.pt() < v0Cuts.cfgV0DaughterPtMin) { + return false; + } + if (std::abs(track.eta()) > v0Cuts.cfgV0DaughterEtaMax) { + return false; + } + if (std::abs(track.tpcNSigmaPi()) > v0Cuts.cfgV0DaughterTPCNSigmaPiMax) { + return false; + } + return true; } template @@ -317,15 +337,44 @@ struct Cha01710analysis { std::abs(v0.mAntiLambda() - constants::physics::MassLambda0) < v0Cuts.cfgLambdaMassWindow)) { return V0MassRegion::kReject; } + if (v0Cuts.cfgApplyArmenterosCut && v0.qtarm() < v0Cuts.cfgArmenterosCut) { + return V0MassRegion::kReject; + } + auto pos = v0.template posTrack_as(); auto neg = v0.template negTrack_as(); if (!selectPionDaughter(pos) || !selectPionDaughter(neg)) { return V0MassRegion::kReject; } + if (v0Cuts.cfgApplyV0DaughterTOFPID) { + if (!v0.positiveHasTOF()) { + return V0MassRegion::kReject; + } + if (!v0.negativeHasTOF()) { + return V0MassRegion::kReject; + } + if (std::abs(v0.tofNSigmaK0PiPlus()) > v0Cuts.cfgV0DaughterTOFNSigmaPiMax) { + return V0MassRegion::kReject; + } + if (std::abs(v0.tofNSigmaK0PiMinus()) > v0Cuts.cfgV0DaughterTOFNSigmaPiMax) { + return V0MassRegion::kReject; + } + } + ROOT::Math::PxPyPzMVector k0(v0.px(), v0.py(), v0.pz(), constants::physics::MassK0Short); if (std::abs(k0.Rapidity()) > v0Cuts.cfgV0RapidityMax) { return V0MassRegion::kReject; } + + if (v0Cuts.cfgApplyV0DaughterDeltaR) { + float dEta = pos.eta() - neg.eta(); + float dPhi = TVector2::Phi_mpi_pi(pos.phi() - neg.phi()); + float deltaR = std::hypot(dEta, dPhi); + if (deltaR < v0Cuts.cfgV0DaughterDeltaRMin) { + return V0MassRegion::kReject; + } + } + float dm = std::abs(v0.mK0Short() - constants::physics::MassK0Short); histos.fill(HIST("V0/hMassSelected"), v0.mK0Short(), v0.pt()); From 1b10dc6416ed4a8f657523f77249659b71dc6c83 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 3 Nov 2026 05:52:26 +0000 Subject: [PATCH 2/2] Please consider the following formatting changes --- PWGLF/Tasks/Resonances/cha01710analysis.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Resonances/cha01710analysis.cxx b/PWGLF/Tasks/Resonances/cha01710analysis.cxx index c6efd2bb837..6a23c0dec06 100644 --- a/PWGLF/Tasks/Resonances/cha01710analysis.cxx +++ b/PWGLF/Tasks/Resonances/cha01710analysis.cxx @@ -357,7 +357,7 @@ struct Cha01710analysis { return V0MassRegion::kReject; } if (std::abs(v0.tofNSigmaK0PiMinus()) > v0Cuts.cfgV0DaughterTOFNSigmaPiMax) { - return V0MassRegion::kReject; + return V0MassRegion::kReject; } }