Skip to content

Commit 306cddb

Browse files
authored
Add files via upload
1 parent b8dbe83 commit 306cddb

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

‎PWGLF/Tasks/Strangeness/lambdaspincorrderived.cxx‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,31 @@ using namespace o2::framework;
5959
using namespace o2::framework::expressions;
6060
using namespace o2::soa;
6161

62+
// Compute the competing mass under the K0s (pi+, pi-) hypothesis.
63+
template <typename T>
64+
static double getK0sCompetingMass(T const& v0)
65+
{
66+
const ROOT::Math::PtEtaPhiMVector lambda(
67+
v0.lambdaPt(), v0.lambdaEta(), v0.lambdaPhi(), v0.lambdaMass());
68+
69+
const ROOT::Math::PtEtaPhiMVector posDaugh(
70+
v0.protonPt(), v0.protonEta(), v0.protonPhi(),
71+
o2::constants::physics::MassProton);
72+
73+
const auto negDaugh = lambda - posDaugh; // 反推 neg
74+
75+
//
76+
const ROOT::Math::PtEtaPhiMVector pi1(
77+
posDaugh.Pt(), posDaugh.Eta(), posDaugh.Phi(),
78+
o2::constants::physics::MassPionCharged);
79+
80+
const ROOT::Math::PtEtaPhiMVector pi2(
81+
negDaugh.Pt(), negDaugh.Eta(), negDaugh.Phi(),
82+
o2::constants::physics::MassPionCharged);
83+
84+
return (pi1 + pi2).M();
85+
}
86+
6287
template <typename Container, typename SelectionFunc>
6388
static std::vector<int64_t> getCleanCandidateIndices(
6489
const Container& candidates,
@@ -388,6 +413,9 @@ struct lambdaspincorrderived {
388413
Configurable<float> dcaV0ToPV{"dcaV0ToPV", 1.2, "DCA V0 to PV cut on lambda"};
389414
Configurable<float> v0etaMixBuffer{"v0etaMixBuffer", 0.5, "Eta cut on mix event buffer"};
390415

416+
Configurable<bool> useK0sRejection{"useK0sRejection", true, "Apply K0s competing mass rejection"};
417+
Configurable<float> confK0sMassWindow{"confK0sMassWindow", 0.01f, "K0s competing mass rejection window (GeV/c^2)"};
418+
391419
} v0Configurations;
392420

393421
// Event Mixing
@@ -896,6 +924,12 @@ struct lambdaspincorrderived {
896924
if (candidate.lambdaPt() > ptMax) {
897925
return false;
898926
}
927+
if (v0Configurations.useK0sRejection) {
928+
const double mK0s = getK0sCompetingMass(candidate);
929+
if (std::abs(mK0s - o2::constants::physics::MassK0Short) < v0Configurations.confK0sMassWindow) {
930+
return false;
931+
}
932+
}
899933

900934
return true;
901935
}

0 commit comments

Comments
 (0)