From 07f69d5d92a995082eaa5ea7cbcd15805812e5ac Mon Sep 17 00:00:00 2001 From: Francesco Mazzaschi Date: Tue, 15 Jul 2025 17:48:50 +0200 Subject: [PATCH 1/3] Add Xi resonance mass --- PWGLF/DataModel/LFLambda1405Table.h | 8 ++++++-- PWGLF/Tasks/Resonances/lambda1405analysis.cxx | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/PWGLF/DataModel/LFLambda1405Table.h b/PWGLF/DataModel/LFLambda1405Table.h index 704c2a78abf..e91d27970ed 100644 --- a/PWGLF/DataModel/LFLambda1405Table.h +++ b/PWGLF/DataModel/LFLambda1405Table.h @@ -33,8 +33,10 @@ DECLARE_SOA_COLUMN(Px, px, float); //! Px of the candi DECLARE_SOA_COLUMN(Py, py, float); //! Py of the candidate DECLARE_SOA_COLUMN(Pz, pz, float); //! Pz of the candidate DECLARE_SOA_COLUMN(Mass, mass, float); //! Invariant mass of the candidate +DECLARE_SOA_COLUMN(MassXi1530, massXi1530, float); //! Invariant mass of the Xi(1530) candidate DECLARE_SOA_COLUMN(SigmaMinusMass, sigmaMinusMass, float); //! Invariant mass of the Sigma- candidate DECLARE_SOA_COLUMN(SigmaPlusMass, sigmaPlusMass, float); //! Invariant mass of the Sigma+ candidate +DECLARE_SOA_COLUMN(XiMinusMass, xiMinusMass, float); //! Invariant mass of the Xi- candidate DECLARE_SOA_COLUMN(PtSigma, ptSigma, float); //! Signed pT of the Sigma daughter DECLARE_SOA_COLUMN(AlphaAPSigma, alphaAPSigma, float); //! Alpha of the Sigma DECLARE_SOA_COLUMN(QtAPSigma, qtAPSigma, float); //! qT of the Sigma @@ -58,7 +60,8 @@ DECLARE_SOA_COLUMN(KinkDauPdgCode, kinkDauPdgCode, int); //! PDG code of the kin DECLARE_SOA_TABLE(Lambda1405Cands, "AOD", "LAMBDA1405", o2::soa::Index<>, lambda1405::Px, lambda1405::Py, lambda1405::Pz, - lambda1405::Mass, lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass, + lambda1405::Mass, lambda1405::MassXi1530, + lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass, lambda1405::XiMinusMass, lambda1405::PtSigma, lambda1405::AlphaAPSigma, lambda1405::QtAPSigma, lambda1405::RadiusSigma, lambda1405::NSigmaTPCPiKink, lambda1405::NSigmaTOFPiKink, lambda1405::NSigmaTPCPrKink, lambda1405::NSigmaTOFPrKink, @@ -68,7 +71,8 @@ DECLARE_SOA_TABLE(Lambda1405Cands, "AOD", "LAMBDA1405", DECLARE_SOA_TABLE(Lambda1405CandsMC, "AOD", "MCLAMBDA1405", o2::soa::Index<>, lambda1405::Px, lambda1405::Py, lambda1405::Pz, - lambda1405::Mass, lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass, + lambda1405::Mass, lambda1405::MassXi1530, + lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass, lambda1405::XiMinusMass, lambda1405::PtSigma, lambda1405::AlphaAPSigma, lambda1405::QtAPSigma, lambda1405::RadiusSigma, lambda1405::NSigmaTPCPiKink, lambda1405::NSigmaTOFPiKink, lambda1405::NSigmaTPCPrKink, lambda1405::NSigmaTOFPrKink, diff --git a/PWGLF/Tasks/Resonances/lambda1405analysis.cxx b/PWGLF/Tasks/Resonances/lambda1405analysis.cxx index fec9b582901..edf3c8ba787 100644 --- a/PWGLF/Tasks/Resonances/lambda1405analysis.cxx +++ b/PWGLF/Tasks/Resonances/lambda1405analysis.cxx @@ -35,6 +35,7 @@ using CollisionsFullMC = soa::Join cutUpperMass) { continue; } @@ -254,9 +257,11 @@ struct lambda1405analysis { lambda1405Cand.py = sigmaMom[1] + piMom[1]; lambda1405Cand.pz = sigmaMom[2] + piMom[2]; lambda1405Cand.mass = invMass; + lambda1405Cand.massXi1530 = invMassXiPi; lambda1405Cand.sigmaMinusMass = sigmaCand.mSigmaMinus(); lambda1405Cand.sigmaPlusMass = sigmaCand.mSigmaPlus(); + lambda1405Cand.xiMinusMass = sigmaCand.mXiMinus(); lambda1405Cand.sigmaSign = sigmaCand.mothSign(); lambda1405Cand.sigmaAlphaAP = alphaAP(sigmaMom, kinkDauMom); lambda1405Cand.sigmaQtAP = qtAP(sigmaMom, kinkDauMom); @@ -322,7 +327,8 @@ struct lambda1405analysis { } if (fillOutputTree) { outputDataTable(lambda1405Cand.px, lambda1405Cand.py, lambda1405Cand.pz, - lambda1405Cand.mass, lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass, + lambda1405Cand.mass, lambda1405Cand.massXi1530, + lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass, lambda1405Cand.xiMinusMass, lambda1405Cand.sigmaPt, lambda1405Cand.sigmaAlphaAP, lambda1405Cand.sigmaQtAP, lambda1405Cand.sigmaRadius, lambda1405Cand.kinkTPCNSigmaPi, lambda1405Cand.kinkTOFNSigmaPi, lambda1405Cand.kinkTPCNSigmaPr, lambda1405Cand.kinkTOFNSigmaPr, @@ -406,7 +412,8 @@ struct lambda1405analysis { if (fillOutputTree) { outputDataTableMC(lambda1405Cand.px, lambda1405Cand.py, lambda1405Cand.pz, - lambda1405Cand.mass, lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass, + lambda1405Cand.mass, lambda1405Cand.massXi1530, + lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass, lambda1405Cand.xiMinusMass, lambda1405Cand.sigmaPt, lambda1405Cand.sigmaAlphaAP, lambda1405Cand.sigmaQtAP, lambda1405Cand.sigmaRadius, lambda1405Cand.kinkTPCNSigmaPi, lambda1405Cand.kinkTOFNSigmaPi, lambda1405Cand.kinkTPCNSigmaPr, lambda1405Cand.kinkTOFNSigmaPr, @@ -417,6 +424,7 @@ struct lambda1405analysis { } } } + // Loop over generated particles to fill MC histograms for (const auto& mcPart : particlesMC) { if (std::abs(mcPart.pdgCode()) != lambda1405PdgCode) { @@ -426,6 +434,7 @@ struct lambda1405analysis { if (!mcPart.has_daughters()) { continue; // Skip if no daughters } + // Check if the Lambda(1405) has a Sigma daughter bool hasSigmaDaughter = false; int dauPdgCode = 0; From b928b740e1589859cf9f747ff0dbef4515fb216a Mon Sep 17 00:00:00 2001 From: Francesco Mazzaschi Date: Wed, 16 Jul 2025 11:57:03 +0200 Subject: [PATCH 2/3] Remove unused variables + tpc full for pi and pr --- PWGLF/Tasks/Resonances/lambda1405analysis.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/PWGLF/Tasks/Resonances/lambda1405analysis.cxx b/PWGLF/Tasks/Resonances/lambda1405analysis.cxx index edf3c8ba787..19483c6d9d5 100644 --- a/PWGLF/Tasks/Resonances/lambda1405analysis.cxx +++ b/PWGLF/Tasks/Resonances/lambda1405analysis.cxx @@ -28,7 +28,7 @@ using namespace o2; using namespace o2::framework; using namespace o2::framework::expressions; -using TracksFull = soa::Join; +using TracksFull = soa::Join; using CollisionsFull = soa::Join; using CollisionsFullMC = soa::Join; @@ -242,7 +242,6 @@ struct lambda1405analysis { auto kinkDauMom = std::array{sigmaCand.pxDaug(), sigmaCand.pyDaug(), sigmaCand.pzDaug()}; auto sigmaMom = std::array{sigmaCand.pxMoth(), sigmaCand.pyMoth(), sigmaCand.pzMoth()}; auto piMom = std::array{piTrack.px(), piTrack.py(), piTrack.pz()}; - double massSigma = lambda1405Cand.isSigmaMinus ? sigmaCand.mSigmaMinus() : sigmaCand.mSigmaPlus(); float invMass = RecoDecay::m(std::array{sigmaMom, piMom}, std::array{o2::constants::physics::MassSigmaMinus, o2::constants::physics::MassPiPlus}); float invMassXiPi = RecoDecay::m(std::array{sigmaMom, kinkDauMom}, std::array{o2::constants::physics::MassXiMinus, o2::constants::physics::MassPiPlus}); if (invMass > cutUpperMass) { From d431cac53331781a01271430a1a060263fde007e Mon Sep 17 00:00:00 2001 From: Francesco Mazzaschi Date: Wed, 16 Jul 2025 14:13:26 +0200 Subject: [PATCH 3/3] Add kink dau pT --- PWGLF/DataModel/LFLambda1405Table.h | 3 +++ PWGLF/Tasks/Resonances/lambda1405analysis.cxx | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/PWGLF/DataModel/LFLambda1405Table.h b/PWGLF/DataModel/LFLambda1405Table.h index e91d27970ed..1425a345375 100644 --- a/PWGLF/DataModel/LFLambda1405Table.h +++ b/PWGLF/DataModel/LFLambda1405Table.h @@ -41,6 +41,7 @@ DECLARE_SOA_COLUMN(PtSigma, ptSigma, float); //! Signed pT of th DECLARE_SOA_COLUMN(AlphaAPSigma, alphaAPSigma, float); //! Alpha of the Sigma DECLARE_SOA_COLUMN(QtAPSigma, qtAPSigma, float); //! qT of the Sigma DECLARE_SOA_COLUMN(RadiusSigma, radiusSigma, float); //! Radius of the Sigma decay vertex +DECLARE_SOA_COLUMN(PtKink, ptKink, float); //! pT of the kink daughter DECLARE_SOA_COLUMN(NSigmaTPCPiKink, nSigmaTPCPiKink, float); //! Number of sigmas for the pion candidate from Sigma kink in TPC DECLARE_SOA_COLUMN(NSigmaTOFPiKink, nSigmaTOFPiKink, float); //! Number of sigmas for the pion candidate from Sigma kink in TOF DECLARE_SOA_COLUMN(NSigmaTPCPrKink, nSigmaTPCPrKink, float); //! Number of sigmas for the proton candidate from Sigma kink in TPC @@ -63,6 +64,7 @@ DECLARE_SOA_TABLE(Lambda1405Cands, "AOD", "LAMBDA1405", lambda1405::Mass, lambda1405::MassXi1530, lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass, lambda1405::XiMinusMass, lambda1405::PtSigma, lambda1405::AlphaAPSigma, lambda1405::QtAPSigma, lambda1405::RadiusSigma, + lambda1405::PtKink, lambda1405::NSigmaTPCPiKink, lambda1405::NSigmaTOFPiKink, lambda1405::NSigmaTPCPrKink, lambda1405::NSigmaTOFPrKink, lambda1405::DCAKinkDauToPV, @@ -74,6 +76,7 @@ DECLARE_SOA_TABLE(Lambda1405CandsMC, "AOD", "MCLAMBDA1405", lambda1405::Mass, lambda1405::MassXi1530, lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass, lambda1405::XiMinusMass, lambda1405::PtSigma, lambda1405::AlphaAPSigma, lambda1405::QtAPSigma, lambda1405::RadiusSigma, + lambda1405::PtKink, lambda1405::NSigmaTPCPiKink, lambda1405::NSigmaTOFPiKink, lambda1405::NSigmaTPCPrKink, lambda1405::NSigmaTOFPrKink, lambda1405::DCAKinkDauToPV, diff --git a/PWGLF/Tasks/Resonances/lambda1405analysis.cxx b/PWGLF/Tasks/Resonances/lambda1405analysis.cxx index 19483c6d9d5..dc134339d63 100644 --- a/PWGLF/Tasks/Resonances/lambda1405analysis.cxx +++ b/PWGLF/Tasks/Resonances/lambda1405analysis.cxx @@ -50,6 +50,7 @@ struct lambda1405candidate { float sigmaPt = -1; // pT of the Sigma daughter float sigmaAlphaAP = -1; // Alpha of the Sigma float sigmaQtAP = -1; // qT of the Sigma + float kinkPt = -1; // pT of the kink daughter float kinkTPCNSigmaPi = -1; // Number of sigmas for the pion candidate from Sigma kink in TPC float kinkTOFNSigmaPi = -1; // Number of sigmas for the pion candidate from Sigma kink in TOF float kinkTPCNSigmaPr = -1; // Number of sigmas for the proton candidate from Sigma kink in TPC @@ -266,6 +267,7 @@ struct lambda1405analysis { lambda1405Cand.sigmaQtAP = qtAP(sigmaMom, kinkDauMom); lambda1405Cand.sigmaPt = sigmaCand.ptMoth(); lambda1405Cand.sigmaRadius = sigmaRad; + lambda1405Cand.kinkPt = kinkDauTrack.pt(); lambda1405Cand.kinkTPCNSigmaPi = kinkDauTrack.tpcNSigmaPi(); lambda1405Cand.kinkTOFNSigmaPi = kinkDauTrack.tofNSigmaPi(); lambda1405Cand.kinkTPCNSigmaPr = kinkDauTrack.tpcNSigmaPr(); @@ -329,6 +331,7 @@ struct lambda1405analysis { lambda1405Cand.mass, lambda1405Cand.massXi1530, lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass, lambda1405Cand.xiMinusMass, lambda1405Cand.sigmaPt, lambda1405Cand.sigmaAlphaAP, lambda1405Cand.sigmaQtAP, lambda1405Cand.sigmaRadius, + lambda1405Cand.kinkPt, lambda1405Cand.kinkTPCNSigmaPi, lambda1405Cand.kinkTOFNSigmaPi, lambda1405Cand.kinkTPCNSigmaPr, lambda1405Cand.kinkTOFNSigmaPr, lambda1405Cand.dcaKinkDauToPV, @@ -414,6 +417,7 @@ struct lambda1405analysis { lambda1405Cand.mass, lambda1405Cand.massXi1530, lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass, lambda1405Cand.xiMinusMass, lambda1405Cand.sigmaPt, lambda1405Cand.sigmaAlphaAP, lambda1405Cand.sigmaQtAP, lambda1405Cand.sigmaRadius, + lambda1405Cand.kinkPt, lambda1405Cand.kinkTPCNSigmaPi, lambda1405Cand.kinkTOFNSigmaPi, lambda1405Cand.kinkTPCNSigmaPr, lambda1405Cand.kinkTOFNSigmaPr, lambda1405Cand.dcaKinkDauToPV,