Skip to content

Commit d5db87a

Browse files
fmazzascFrancesco Mazzaschi
andauthored
[PWGLF] Add Xi resonance mass (#12070)
Co-authored-by: Francesco Mazzaschi <fmazzasc@alipap1.cern.ch>
1 parent 9b3e64d commit d5db87a

File tree

2 files changed

+26
-7
lines changed

2 files changed

+26
-7
lines changed

PWGLF/DataModel/LFLambda1405Table.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,15 @@ DECLARE_SOA_COLUMN(Px, px, float); //! Px of the candi
3333
DECLARE_SOA_COLUMN(Py, py, float); //! Py of the candidate
3434
DECLARE_SOA_COLUMN(Pz, pz, float); //! Pz of the candidate
3535
DECLARE_SOA_COLUMN(Mass, mass, float); //! Invariant mass of the candidate
36+
DECLARE_SOA_COLUMN(MassXi1530, massXi1530, float); //! Invariant mass of the Xi(1530) candidate
3637
DECLARE_SOA_COLUMN(SigmaMinusMass, sigmaMinusMass, float); //! Invariant mass of the Sigma- candidate
3738
DECLARE_SOA_COLUMN(SigmaPlusMass, sigmaPlusMass, float); //! Invariant mass of the Sigma+ candidate
39+
DECLARE_SOA_COLUMN(XiMinusMass, xiMinusMass, float); //! Invariant mass of the Xi- candidate
3840
DECLARE_SOA_COLUMN(PtSigma, ptSigma, float); //! Signed pT of the Sigma daughter
3941
DECLARE_SOA_COLUMN(AlphaAPSigma, alphaAPSigma, float); //! Alpha of the Sigma
4042
DECLARE_SOA_COLUMN(QtAPSigma, qtAPSigma, float); //! qT of the Sigma
4143
DECLARE_SOA_COLUMN(RadiusSigma, radiusSigma, float); //! Radius of the Sigma decay vertex
44+
DECLARE_SOA_COLUMN(PtKink, ptKink, float); //! pT of the kink daughter
4245
DECLARE_SOA_COLUMN(NSigmaTPCPiKink, nSigmaTPCPiKink, float); //! Number of sigmas for the pion candidate from Sigma kink in TPC
4346
DECLARE_SOA_COLUMN(NSigmaTOFPiKink, nSigmaTOFPiKink, float); //! Number of sigmas for the pion candidate from Sigma kink in TOF
4447
DECLARE_SOA_COLUMN(NSigmaTPCPrKink, nSigmaTPCPrKink, float); //! Number of sigmas for the proton candidate from Sigma kink in TPC
@@ -58,8 +61,10 @@ DECLARE_SOA_COLUMN(KinkDauPdgCode, kinkDauPdgCode, int); //! PDG code of the kin
5861
DECLARE_SOA_TABLE(Lambda1405Cands, "AOD", "LAMBDA1405",
5962
o2::soa::Index<>,
6063
lambda1405::Px, lambda1405::Py, lambda1405::Pz,
61-
lambda1405::Mass, lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass,
64+
lambda1405::Mass, lambda1405::MassXi1530,
65+
lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass, lambda1405::XiMinusMass,
6266
lambda1405::PtSigma, lambda1405::AlphaAPSigma, lambda1405::QtAPSigma, lambda1405::RadiusSigma,
67+
lambda1405::PtKink,
6368
lambda1405::NSigmaTPCPiKink, lambda1405::NSigmaTOFPiKink,
6469
lambda1405::NSigmaTPCPrKink, lambda1405::NSigmaTOFPrKink,
6570
lambda1405::DCAKinkDauToPV,
@@ -68,8 +73,10 @@ DECLARE_SOA_TABLE(Lambda1405Cands, "AOD", "LAMBDA1405",
6873
DECLARE_SOA_TABLE(Lambda1405CandsMC, "AOD", "MCLAMBDA1405",
6974
o2::soa::Index<>,
7075
lambda1405::Px, lambda1405::Py, lambda1405::Pz,
71-
lambda1405::Mass, lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass,
76+
lambda1405::Mass, lambda1405::MassXi1530,
77+
lambda1405::SigmaMinusMass, lambda1405::SigmaPlusMass, lambda1405::XiMinusMass,
7278
lambda1405::PtSigma, lambda1405::AlphaAPSigma, lambda1405::QtAPSigma, lambda1405::RadiusSigma,
79+
lambda1405::PtKink,
7380
lambda1405::NSigmaTPCPiKink, lambda1405::NSigmaTOFPiKink,
7481
lambda1405::NSigmaTPCPrKink, lambda1405::NSigmaTOFPrKink,
7582
lambda1405::DCAKinkDauToPV,

PWGLF/Tasks/Resonances/lambda1405analysis.cxx

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,14 @@ using namespace o2;
2828
using namespace o2::framework;
2929
using namespace o2::framework::expressions;
3030

31-
using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::pidTPCPi, aod::pidTPCPr, aod::pidTOFFullPi, aod::pidTOFFullPr>;
31+
using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullPi, aod::pidTOFFullPr>;
3232
using CollisionsFull = soa::Join<aod::Collisions, aod::EvSel>;
3333
using CollisionsFullMC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels>;
3434

3535
struct lambda1405candidate {
3636
// Columns for Lambda(1405) candidate
3737
float mass = -1; // Invariant mass of the Lambda(1405) candidate
38+
float massXi1530 = -1; // Invariant mass of the Xi(1530) candidate
3839
float px = -1; // Px of the Lambda(1405) candidate
3940
float py = -1; // Py of the Lambda(1405) candidate
4041
float pz = -1; // Pz of the Lambda(1405) candidate
@@ -44,10 +45,12 @@ struct lambda1405candidate {
4445
bool isSigmaMinus = false; // True if compatible with Sigma-
4546
float sigmaMinusMass = -1; // Invariant mass of the Sigma- candidate
4647
float sigmaPlusMass = -1; // Invariant mass of the Sigma+ candidate
48+
float xiMinusMass = -1; // Invariant mass of the Xi- candidate
4749
int sigmaSign = 0; // Sign of the Sigma candidate: 1 for matter, -1 for antimatter
4850
float sigmaPt = -1; // pT of the Sigma daughter
4951
float sigmaAlphaAP = -1; // Alpha of the Sigma
5052
float sigmaQtAP = -1; // qT of the Sigma
53+
float kinkPt = -1; // pT of the kink daughter
5154
float kinkTPCNSigmaPi = -1; // Number of sigmas for the pion candidate from Sigma kink in TPC
5255
float kinkTOFNSigmaPi = -1; // Number of sigmas for the pion candidate from Sigma kink in TOF
5356
float kinkTPCNSigmaPr = -1; // Number of sigmas for the proton candidate from Sigma kink in TPC
@@ -240,8 +243,8 @@ struct lambda1405analysis {
240243
auto kinkDauMom = std::array{sigmaCand.pxDaug(), sigmaCand.pyDaug(), sigmaCand.pzDaug()};
241244
auto sigmaMom = std::array{sigmaCand.pxMoth(), sigmaCand.pyMoth(), sigmaCand.pzMoth()};
242245
auto piMom = std::array{piTrack.px(), piTrack.py(), piTrack.pz()};
243-
double massSigma = lambda1405Cand.isSigmaMinus ? sigmaCand.mSigmaMinus() : sigmaCand.mSigmaPlus();
244-
float invMass = RecoDecay::m(std::array{sigmaMom, piMom}, std::array{massSigma, o2::constants::physics::MassPiPlus});
246+
float invMass = RecoDecay::m(std::array{sigmaMom, piMom}, std::array{o2::constants::physics::MassSigmaMinus, o2::constants::physics::MassPiPlus});
247+
float invMassXiPi = RecoDecay::m(std::array{sigmaMom, kinkDauMom}, std::array{o2::constants::physics::MassXiMinus, o2::constants::physics::MassPiPlus});
245248
if (invMass > cutUpperMass) {
246249
continue;
247250
}
@@ -254,14 +257,17 @@ struct lambda1405analysis {
254257
lambda1405Cand.py = sigmaMom[1] + piMom[1];
255258
lambda1405Cand.pz = sigmaMom[2] + piMom[2];
256259
lambda1405Cand.mass = invMass;
260+
lambda1405Cand.massXi1530 = invMassXiPi;
257261

258262
lambda1405Cand.sigmaMinusMass = sigmaCand.mSigmaMinus();
259263
lambda1405Cand.sigmaPlusMass = sigmaCand.mSigmaPlus();
264+
lambda1405Cand.xiMinusMass = sigmaCand.mXiMinus();
260265
lambda1405Cand.sigmaSign = sigmaCand.mothSign();
261266
lambda1405Cand.sigmaAlphaAP = alphaAP(sigmaMom, kinkDauMom);
262267
lambda1405Cand.sigmaQtAP = qtAP(sigmaMom, kinkDauMom);
263268
lambda1405Cand.sigmaPt = sigmaCand.ptMoth();
264269
lambda1405Cand.sigmaRadius = sigmaRad;
270+
lambda1405Cand.kinkPt = kinkDauTrack.pt();
265271
lambda1405Cand.kinkTPCNSigmaPi = kinkDauTrack.tpcNSigmaPi();
266272
lambda1405Cand.kinkTOFNSigmaPi = kinkDauTrack.tofNSigmaPi();
267273
lambda1405Cand.kinkTPCNSigmaPr = kinkDauTrack.tpcNSigmaPr();
@@ -322,8 +328,10 @@ struct lambda1405analysis {
322328
}
323329
if (fillOutputTree) {
324330
outputDataTable(lambda1405Cand.px, lambda1405Cand.py, lambda1405Cand.pz,
325-
lambda1405Cand.mass, lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass,
331+
lambda1405Cand.mass, lambda1405Cand.massXi1530,
332+
lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass, lambda1405Cand.xiMinusMass,
326333
lambda1405Cand.sigmaPt, lambda1405Cand.sigmaAlphaAP, lambda1405Cand.sigmaQtAP, lambda1405Cand.sigmaRadius,
334+
lambda1405Cand.kinkPt,
327335
lambda1405Cand.kinkTPCNSigmaPi, lambda1405Cand.kinkTOFNSigmaPi,
328336
lambda1405Cand.kinkTPCNSigmaPr, lambda1405Cand.kinkTOFNSigmaPr,
329337
lambda1405Cand.dcaKinkDauToPV,
@@ -406,8 +414,10 @@ struct lambda1405analysis {
406414

407415
if (fillOutputTree) {
408416
outputDataTableMC(lambda1405Cand.px, lambda1405Cand.py, lambda1405Cand.pz,
409-
lambda1405Cand.mass, lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass,
417+
lambda1405Cand.mass, lambda1405Cand.massXi1530,
418+
lambda1405Cand.sigmaMinusMass, lambda1405Cand.sigmaPlusMass, lambda1405Cand.xiMinusMass,
410419
lambda1405Cand.sigmaPt, lambda1405Cand.sigmaAlphaAP, lambda1405Cand.sigmaQtAP, lambda1405Cand.sigmaRadius,
420+
lambda1405Cand.kinkPt,
411421
lambda1405Cand.kinkTPCNSigmaPi, lambda1405Cand.kinkTOFNSigmaPi,
412422
lambda1405Cand.kinkTPCNSigmaPr, lambda1405Cand.kinkTOFNSigmaPr,
413423
lambda1405Cand.dcaKinkDauToPV,
@@ -417,6 +427,7 @@ struct lambda1405analysis {
417427
}
418428
}
419429
}
430+
420431
// Loop over generated particles to fill MC histograms
421432
for (const auto& mcPart : particlesMC) {
422433
if (std::abs(mcPart.pdgCode()) != lambda1405PdgCode) {
@@ -426,6 +437,7 @@ struct lambda1405analysis {
426437
if (!mcPart.has_daughters()) {
427438
continue; // Skip if no daughters
428439
}
440+
429441
// Check if the Lambda(1405) has a Sigma daughter
430442
bool hasSigmaDaughter = false;
431443
int dauPdgCode = 0;

0 commit comments

Comments
 (0)