From 5a153fef7baf1e162ac734894c1e16b5e6532b7a Mon Sep 17 00:00:00 2001 From: SCHOTTER Romain <47983209+romainschotter@users.noreply.github.com> Date: Wed, 26 Nov 2025 00:26:56 +0100 Subject: [PATCH 1/3] Implement competing mass rejection Added competing mass rejection criteria for K0Short and Lambda selections. --- .../derivedlambdakzeroanalysis.cxx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx b/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx index 2066e2487ea..89121edc481 100644 --- a/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx +++ b/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx @@ -192,6 +192,9 @@ struct derivedlambdakzeroanalysis { Configurable v0radiusMax{"v0radiusMax", 1E5, "maximum V0 radius (cm)"}; Configurable> lifetimecut{"lifetimecut", {DefaultLifetimeCuts[0], 2, {"lifetimecutLambda", "lifetimecutK0S"}}, "lifetimecut"}; + // invariant mass selection + Configurable compMassRejection{"compMassRejection", -1, "Competing mass rejection (GeV/#it{c}^{2})"}; + // Additional selection on the AP plot (exclusive for K0Short) // original equation: lArmPt*5>TMath::Abs(lArmAlpha) Configurable armPodCut{"armPodCut", 5.0f, "pT * (cut) > |alpha|, AP cut. Negative: no cut"}; @@ -374,6 +377,8 @@ struct derivedlambdakzeroanalysis { selDCAV0Dau, selK0ShortRapidity, selLambdaRapidity, + selK0ShortMassRejection, + selLambdaMassRejection, selTPCPIDPositivePion, selTPCPIDNegativePion, selTPCPIDPositiveProton, @@ -571,6 +576,12 @@ struct derivedlambdakzeroanalysis { BITSET(maskAntiLambdaSpecific, selNegNotTPCOnly); } + if (v0Selections.compMassRejection > -1) { + BITSET(maskK0ShortSpecific, selLambdaMassRejection); + BITSET(maskLambdaSpecific, selK0ShortMassRejection); + BITSET(maskAntiLambdaSpecific, selK0ShortMassRejection); + } + // Primary particle selection, central to analysis maskSelectionK0Short = maskTopological | maskTrackProperties | maskK0ShortSpecific; maskSelectionLambda = maskTopological | maskTrackProperties | maskLambdaSpecific; @@ -1231,6 +1242,14 @@ struct derivedlambdakzeroanalysis { if (std::abs(rapidityK0Short) < v0Selections.rapidityCut) BITSET(bitMap, selK0ShortRapidity); + // + // competing mass rejection + // + if (std::fabs(v0.mK0Short() - o2::constants::physics::MassK0Short) > v0Selections.compMassRejection) + BITSET(bitMap, selK0ShortMassRejection); + if (std::fabs(v0.mLambda() - o2::constants::physics::MassLambda0) > v0Selections.compMassRejection) + BITSET(bitMap, selLambdaMassRejection); + auto posTrackExtra = v0.template posTrackExtra_as(); auto negTrackExtra = v0.template negTrackExtra_as(); From abd61c7b7d5ce1e336c0ca6a5c37e32685e31bd8 Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Wed, 26 Nov 2025 00:27:56 +0100 Subject: [PATCH 2/3] Please consider the following formatting changes to #13976 (#13977) --- PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx b/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx index 89121edc481..3b41b6c4cea 100644 --- a/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx +++ b/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx @@ -192,9 +192,9 @@ struct derivedlambdakzeroanalysis { Configurable v0radiusMax{"v0radiusMax", 1E5, "maximum V0 radius (cm)"}; Configurable> lifetimecut{"lifetimecut", {DefaultLifetimeCuts[0], 2, {"lifetimecutLambda", "lifetimecutK0S"}}, "lifetimecut"}; - // invariant mass selection + // invariant mass selection Configurable compMassRejection{"compMassRejection", -1, "Competing mass rejection (GeV/#it{c}^{2})"}; - + // Additional selection on the AP plot (exclusive for K0Short) // original equation: lArmPt*5>TMath::Abs(lArmAlpha) Configurable armPodCut{"armPodCut", 5.0f, "pT * (cut) > |alpha|, AP cut. Negative: no cut"}; From 553d37f5f036a97f182e7b1e1183b0d226571ad5 Mon Sep 17 00:00:00 2001 From: SCHOTTER Romain <47983209+romainschotter@users.noreply.github.com> Date: Wed, 26 Nov 2025 00:32:17 +0100 Subject: [PATCH 3/3] Update hSelectionV0s with competing mass rejection cuts (for QA) --- PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx b/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx index 3b41b6c4cea..949709c68fc 100644 --- a/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx +++ b/PWGLF/Tasks/Strangeness/derivedlambdakzeroanalysis.cxx @@ -732,6 +732,8 @@ struct derivedlambdakzeroanalysis { hSelectionV0s->GetXaxis()->SetBinLabel(selDCAV0Dau + 2, "DCA V0 dau."); hSelectionV0s->GetXaxis()->SetBinLabel(selK0ShortRapidity + 2, "K^{0}_{S} rapidity"); hSelectionV0s->GetXaxis()->SetBinLabel(selLambdaRapidity + 2, "#Lambda rapidity"); + hSelectionV0s->GetXaxis()->SetBinLabel(selK0ShortMassRejection + 2, "K^{0}_{S} mass rej."); + hSelectionV0s->GetXaxis()->SetBinLabel(selLambdaMassRejection + 2, "#Lambda mass rej."); hSelectionV0s->GetXaxis()->SetBinLabel(selTPCPIDPositivePion + 2, "TPC PID #pi^{+}"); hSelectionV0s->GetXaxis()->SetBinLabel(selTPCPIDNegativePion + 2, "TPC PID #pi^{-}"); hSelectionV0s->GetXaxis()->SetBinLabel(selTPCPIDPositiveProton + 2, "TPC PID p");