@@ -35,6 +35,7 @@ using CollisionsFullMC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod:
3535struct 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,6 +45,7 @@ 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
@@ -241,7 +243,8 @@ struct lambda1405analysis {
241243 auto sigmaMom = std::array{sigmaCand.pxMoth (), sigmaCand.pyMoth (), sigmaCand.pzMoth ()};
242244 auto piMom = std::array{piTrack.px (), piTrack.py (), piTrack.pz ()};
243245 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,9 +257,11 @@ 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);
@@ -322,7 +327,8 @@ struct lambda1405analysis {
322327 }
323328 if (fillOutputTree) {
324329 outputDataTable (lambda1405Cand.px , lambda1405Cand.py , lambda1405Cand.pz ,
325- lambda1405Cand.mass , lambda1405Cand.sigmaMinusMass , lambda1405Cand.sigmaPlusMass ,
330+ lambda1405Cand.mass , lambda1405Cand.massXi1530 ,
331+ lambda1405Cand.sigmaMinusMass , lambda1405Cand.sigmaPlusMass , lambda1405Cand.xiMinusMass ,
326332 lambda1405Cand.sigmaPt , lambda1405Cand.sigmaAlphaAP , lambda1405Cand.sigmaQtAP , lambda1405Cand.sigmaRadius ,
327333 lambda1405Cand.kinkTPCNSigmaPi , lambda1405Cand.kinkTOFNSigmaPi ,
328334 lambda1405Cand.kinkTPCNSigmaPr , lambda1405Cand.kinkTOFNSigmaPr ,
@@ -406,7 +412,8 @@ struct lambda1405analysis {
406412
407413 if (fillOutputTree) {
408414 outputDataTableMC (lambda1405Cand.px , lambda1405Cand.py , lambda1405Cand.pz ,
409- lambda1405Cand.mass , lambda1405Cand.sigmaMinusMass , lambda1405Cand.sigmaPlusMass ,
415+ lambda1405Cand.mass , lambda1405Cand.massXi1530 ,
416+ lambda1405Cand.sigmaMinusMass , lambda1405Cand.sigmaPlusMass , lambda1405Cand.xiMinusMass ,
410417 lambda1405Cand.sigmaPt , lambda1405Cand.sigmaAlphaAP , lambda1405Cand.sigmaQtAP , lambda1405Cand.sigmaRadius ,
411418 lambda1405Cand.kinkTPCNSigmaPi , lambda1405Cand.kinkTOFNSigmaPi ,
412419 lambda1405Cand.kinkTPCNSigmaPr , lambda1405Cand.kinkTOFNSigmaPr ,
@@ -417,6 +424,7 @@ struct lambda1405analysis {
417424 }
418425 }
419426 }
427+
420428 // Loop over generated particles to fill MC histograms
421429 for (const auto & mcPart : particlesMC) {
422430 if (std::abs (mcPart.pdgCode ()) != lambda1405PdgCode) {
@@ -426,6 +434,7 @@ struct lambda1405analysis {
426434 if (!mcPart.has_daughters ()) {
427435 continue ; // Skip if no daughters
428436 }
437+
429438 // Check if the Lambda(1405) has a Sigma daughter
430439 bool hasSigmaDaughter = false ;
431440 int dauPdgCode = 0 ;
0 commit comments