From 7e121356d338368eda2c39f64e734e5749c2347f Mon Sep 17 00:00:00 2001 From: Navneet Date: Thu, 20 Aug 2026 20:23:13 +0530 Subject: [PATCH 1/4] To Activate the Kinematics cuts on the gen MC --- .../Tasks/Resonances/chargedkstaranalysis.cxx | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx b/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx index ab8f2a108fd..f01b1abe608 100644 --- a/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx +++ b/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx @@ -122,6 +122,9 @@ struct Chargedkstaranalysis { // Other cuts on Ks Configurable rotationalCut{"rotationalCut", 6, "Cut value (Rotation angle pi - pi/cut and pi + pi/cut)"}; + // for Kinematics checks + Configurable genKinematicsChecks{"genKinematicsChecks", false, "Activate the Kinematics cuts on the gen MC"}; + // fixed variables float rapidityMotherData = 0.5; float beamEnergy = 13600.0; @@ -1442,10 +1445,17 @@ struct Chargedkstaranalysis { const int pionWanted = (part.pdgCode() > 0) ? +kPiPlus : -kPiPlus; bool hasRightPion = false; bool hasK0sToPipi = false; + bool passDauAcceptance = false; for (const auto& d1 : part.template daughters_as()) { const int pdg1 = d1.pdgCode(); if (pdg1 == pionWanted) { lDecayDaughter_bach = LorentzVectorSetXYZM(d1.px(), d1.py(), d1.pz(), MassPionCharged); + if (helicityCfgs.genKinematicsChecks) { + if (!((lDecayDaughter_bach.pt() > trackCutCfgs.cMinPtcut) && (std::abs(lDecayDaughter_bach.eta()) < trackCutCfgs.cMaxEtacut))) { + continue; + } + } + passDauAcceptance = (lDecayDaughter_bach.pt() > trackCutCfgs.cMinPtcut) && (std::abs(lDecayDaughter_bach.eta()) < trackCutCfgs.cMaxEtacut); hasRightPion = true; } else if (std::abs(pdg1) == kPDGK0) { for (const auto& d2 : d1.template daughters_as()) { @@ -1453,13 +1463,28 @@ struct Chargedkstaranalysis { bool seenPip = false, seenPim = false; for (const auto& d3 : d2.template daughters_as()) { if (d3.pdgCode() == +kPiPlus) { + if (helicityCfgs.genKinematicsChecks) { + if (!((d3.pt() > trackCutCfgs.cMinPtcut) && (std::abs(d3.eta()) < trackCutCfgs.cMaxEtacut))) { + continue; + } + } seenPip = true; } else if (d3.pdgCode() == -kPiPlus) { + if (helicityCfgs.genKinematicsChecks) { + if (!((d3.pt() > trackCutCfgs.cMinPtcut) && (std::abs(d3.eta()) < trackCutCfgs.cMaxEtacut))) { + continue; + } + } seenPim = true; } } if (seenPip && seenPim) { lResoSecondary = LorentzVectorSetXYZM(d2.px(), d2.py(), d2.pz(), MassK0Short); + if (helicityCfgs.genKinematicsChecks) { + if (!((d2.pt() > secondaryCutsCfgs.cSecondaryPtMin) && (std::abs(d2.eta()) < secondaryCutsCfgs.cSecondaryRapidityMax))) { + continue; + } + } hasK0sToPipi = true; break; } From 7151cd447e6a76c78be05ca1e30c17d9d9ad11f4 Mon Sep 17 00:00:00 2001 From: Navneet Date: Thu, 20 Aug 2026 21:24:28 +0530 Subject: [PATCH 2/4] To fix the code check error --- .../Tasks/Resonances/chargedkstaranalysis.cxx | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx b/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx index f01b1abe608..030fd0e28ed 100644 --- a/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx +++ b/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx @@ -1445,33 +1445,36 @@ struct Chargedkstaranalysis { const int pionWanted = (part.pdgCode() > 0) ? +kPiPlus : -kPiPlus; bool hasRightPion = false; bool hasK0sToPipi = false; - bool passDauAcceptance = false; for (const auto& d1 : part.template daughters_as()) { const int pdg1 = d1.pdgCode(); if (pdg1 == pionWanted) { lDecayDaughter_bach = LorentzVectorSetXYZM(d1.px(), d1.py(), d1.pz(), MassPionCharged); if (helicityCfgs.genKinematicsChecks) { - if (!((lDecayDaughter_bach.pt() > trackCutCfgs.cMinPtcut) && (std::abs(lDecayDaughter_bach.eta()) < trackCutCfgs.cMaxEtacut))) { + if (lDecayDaughter_bach.pt() <= trackCutCfgs.cMinPtcut || std::abs(lDecayDaughter_bach.eta()) >= trackCutCfgs.cMaxEtacut) { continue; } } - passDauAcceptance = (lDecayDaughter_bach.pt() > trackCutCfgs.cMinPtcut) && (std::abs(lDecayDaughter_bach.eta()) < trackCutCfgs.cMaxEtacut); hasRightPion = true; } else if (std::abs(pdg1) == kPDGK0) { for (const auto& d2 : d1.template daughters_as()) { if (std::abs(d2.pdgCode()) == kPDGK0s) { + if (helicityCfgs.genKinematicsChecks) { + if (d2.pt() <= secondaryCutsCfgs.cSecondaryPtMin || std::abs(d2.eta()) >= secondaryCutsCfgs.cSecondaryRapidityMax) { + continue; + } + } bool seenPip = false, seenPim = false; for (const auto& d3 : d2.template daughters_as()) { if (d3.pdgCode() == +kPiPlus) { if (helicityCfgs.genKinematicsChecks) { - if (!((d3.pt() > trackCutCfgs.cMinPtcut) && (std::abs(d3.eta()) < trackCutCfgs.cMaxEtacut))) { + if (!helicityCfgs.genKinematicsChecks || (d3.pt() > trackCutCfgs.cMinPtcut && std::abs(d3.eta()) < trackCutCfgs.cMaxEtacut)) { continue; } } seenPip = true; } else if (d3.pdgCode() == -kPiPlus) { if (helicityCfgs.genKinematicsChecks) { - if (!((d3.pt() > trackCutCfgs.cMinPtcut) && (std::abs(d3.eta()) < trackCutCfgs.cMaxEtacut))) { + if (!helicityCfgs.genKinematicsChecks || (d3.pt() > trackCutCfgs.cMinPtcut && std::abs(d3.eta()) < trackCutCfgs.cMaxEtacut)) { continue; } } @@ -1480,11 +1483,6 @@ struct Chargedkstaranalysis { } if (seenPip && seenPim) { lResoSecondary = LorentzVectorSetXYZM(d2.px(), d2.py(), d2.pz(), MassK0Short); - if (helicityCfgs.genKinematicsChecks) { - if (!((d2.pt() > secondaryCutsCfgs.cSecondaryPtMin) && (std::abs(d2.eta()) < secondaryCutsCfgs.cSecondaryRapidityMax))) { - continue; - } - } hasK0sToPipi = true; break; } From 529c0c93204cedd6e6bff90e677037b435e97ff4 Mon Sep 17 00:00:00 2001 From: Navneet Date: Thu, 20 Aug 2026 21:28:15 +0530 Subject: [PATCH 3/4] To fix the whitespace issue --- PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx b/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx index 030fd0e28ed..ebdbba3ce98 100644 --- a/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx +++ b/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx @@ -1458,7 +1458,7 @@ struct Chargedkstaranalysis { } else if (std::abs(pdg1) == kPDGK0) { for (const auto& d2 : d1.template daughters_as()) { if (std::abs(d2.pdgCode()) == kPDGK0s) { - if (helicityCfgs.genKinematicsChecks) { + if (helicityCfgs.genKinematicsChecks) { if (d2.pt() <= secondaryCutsCfgs.cSecondaryPtMin || std::abs(d2.eta()) >= secondaryCutsCfgs.cSecondaryRapidityMax) { continue; } From c04f3c154855c9f10991703e2566b430b0885e60 Mon Sep 17 00:00:00 2001 From: Navneet Date: Thu, 20 Aug 2026 21:33:27 +0530 Subject: [PATCH 4/4] To remove the double check of genKinematicsChecks configurable --- PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx b/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx index ebdbba3ce98..dbb854f8129 100644 --- a/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx +++ b/PWGLF/Tasks/Resonances/chargedkstaranalysis.cxx @@ -1467,14 +1467,14 @@ struct Chargedkstaranalysis { for (const auto& d3 : d2.template daughters_as()) { if (d3.pdgCode() == +kPiPlus) { if (helicityCfgs.genKinematicsChecks) { - if (!helicityCfgs.genKinematicsChecks || (d3.pt() > trackCutCfgs.cMinPtcut && std::abs(d3.eta()) < trackCutCfgs.cMaxEtacut)) { + if (d3.pt() <= trackCutCfgs.cMinPtcut || std::abs(d3.eta()) >= trackCutCfgs.cMaxEtacut) { continue; } } seenPip = true; } else if (d3.pdgCode() == -kPiPlus) { if (helicityCfgs.genKinematicsChecks) { - if (!helicityCfgs.genKinematicsChecks || (d3.pt() > trackCutCfgs.cMinPtcut && std::abs(d3.eta()) < trackCutCfgs.cMaxEtacut)) { + if (d3.pt() <= trackCutCfgs.cMinPtcut || std::abs(d3.eta()) >= trackCutCfgs.cMaxEtacut) { continue; } }