@@ -107,6 +107,22 @@ DECLARE_SOA_DYNAMIC_COLUMN(OPAngle, opAngle,
107107 return v1.Angle (v2);
108108 });
109109
110+ // Armenteros-Podolanski variables (photon = positive daughter, lambda = negative daughter)
111+ DECLARE_SOA_DYNAMIC_COLUMN (LStarAlpha, lStarAlpha, // ! Armenteros Alpha
112+ [](float photonPx, float photonPy, float photonPz, float lambdaPx, float lambdaPy, float lambdaPz) -> float {
113+ float momTot = RecoDecay::p (photonPx + lambdaPx, photonPy + lambdaPy, photonPz + lambdaPz);
114+ float lQlNeg = RecoDecay::dotProd (std::array{lambdaPx, lambdaPy, lambdaPz}, std::array{photonPx + lambdaPx, photonPy + lambdaPy, photonPz + lambdaPz}) / momTot;
115+ float lQlPos = RecoDecay::dotProd (std::array{photonPx, photonPy, photonPz}, std::array{photonPx + lambdaPx, photonPy + lambdaPy, photonPz + lambdaPz}) / momTot;
116+ return (lQlPos - lQlNeg) / (lQlPos + lQlNeg);
117+ });
118+
119+ DECLARE_SOA_DYNAMIC_COLUMN (LStarQtArm, lStarQtarm, // ! Armenteros Qt
120+ [](float photonPx, float photonPy, float photonPz, float lambdaPx, float lambdaPy, float lambdaPz) -> float {
121+ float momTot = RecoDecay::p2 (photonPx + lambdaPx, photonPy + lambdaPy, photonPz + lambdaPz);
122+ float dp = RecoDecay::dotProd (std::array{lambdaPx, lambdaPy, lambdaPz}, std::array{photonPx + lambdaPx, photonPy + lambdaPy, photonPz + lambdaPz});
123+ return std::sqrt (RecoDecay::p2 (lambdaPx, lambdaPy, lambdaPz) - dp * dp / momTot); // qtarm
124+ });
125+
110126// Photon
111127DECLARE_SOA_DYNAMIC_COLUMN (PhotonPt, photonPt, // ! Transverse momentum in GeV/c
112128 [](float photonPx, float photonPy) -> float {
@@ -179,6 +195,8 @@ DECLARE_SOA_TABLE(Sigma0Cores, "AOD", "SIGMA0CORES",
179195 sigma0Core::Eta<sigma0Core::PhotonPx, sigma0Core::PhotonPy, sigma0Core::PhotonPz, sigma0Core::LambdaPx, sigma0Core::LambdaPy, sigma0Core::LambdaPz>,
180196 sigma0Core::Radius<sigma0Core::X, sigma0Core::Y>,
181197 sigma0Core::OPAngle<sigma0Core::PhotonPx, sigma0Core::PhotonPy, sigma0Core::PhotonPz, sigma0Core::LambdaPx, sigma0Core::LambdaPy, sigma0Core::LambdaPz>,
198+ sigma0Core::LStarAlpha<sigma0Core::PhotonPx, sigma0Core::PhotonPy, sigma0Core::PhotonPz, sigma0Core::LambdaPx, sigma0Core::LambdaPy, sigma0Core::LambdaPz>,
199+ sigma0Core::LStarQtArm<sigma0Core::PhotonPx, sigma0Core::PhotonPy, sigma0Core::PhotonPz, sigma0Core::LambdaPx, sigma0Core::LambdaPy, sigma0Core::LambdaPz>,
182200
183201 sigma0Core::PhotonPt<sigma0Core::PhotonPx, sigma0Core::PhotonPy>,
184202 sigma0Core::PhotonP<sigma0Core::PhotonPx, sigma0Core::PhotonPy, sigma0Core::PhotonPz>,
@@ -656,6 +674,12 @@ DECLARE_SOA_DYNAMIC_COLUMN(IsSigma0, isSigma0,
656674DECLARE_SOA_DYNAMIC_COLUMN (IsAntiSigma0, isAntiSigma0, // ! IsASigma0
657675 [](int pdgCode) -> bool { return pdgCode == PDG_t::kSigma0Bar ; }); // -3212
658676
677+ DECLARE_SOA_DYNAMIC_COLUMN (IsLambdaStar, isLambdaStar, // ! IsLambdaStar
678+ [](int pdgCode) -> bool { return pdgCode == 3124 ; }); // PYTHIA8 code for Lambda(1520)
679+
680+ DECLARE_SOA_DYNAMIC_COLUMN (IsAntiLambdaStar, isAntiLambdaStar, // ! IsAntiLambdaStar
681+ [](int pdgCode) -> bool { return pdgCode == -3124 ; }); // PYTHIA8 code for AntiLambda(1520)
682+
659683DECLARE_SOA_DYNAMIC_COLUMN (MCPx, mcpx, // ! Sigma0 px
660684 [](float photonMCPx, float lambdaMCPx) -> float { return photonMCPx + lambdaMCPx; });
661685DECLARE_SOA_DYNAMIC_COLUMN (MCPy, mcpy, // ! Sigma0 py
@@ -686,6 +710,11 @@ DECLARE_SOA_DYNAMIC_COLUMN(Sigma0MCY, sigma0MCY,
686710 return RecoDecay::y (std::array{photonMCPx + lambdaMCPx, photonMCPy + lambdaMCPy, photonMCPz + lambdaMCPz}, o2::constants::physics::MassSigma0);
687711 });
688712
713+ DECLARE_SOA_DYNAMIC_COLUMN (LambdaStarMCY, lambdaStarMCY,
714+ [](float photonMCPx, float photonMCPy, float photonMCPz, float lambdaMCPx, float lambdaMCPy, float lambdaMCPz) -> float {
715+ return RecoDecay::y (std::array{photonMCPx + lambdaMCPx, photonMCPy + lambdaMCPy, photonMCPz + lambdaMCPz}, o2::constants::physics::MassLambda1520);
716+ });
717+
689718DECLARE_SOA_DYNAMIC_COLUMN (MCPhi, mcphi, // ! Phi in the range [0, 2pi)
690719 [](float photonMCPx, float photonMCPy, float lambdaMCPx, float lambdaMCPy) -> float { return RecoDecay::phi (photonMCPx + lambdaMCPx, photonMCPy + lambdaMCPy); });
691720
@@ -767,6 +796,8 @@ DECLARE_SOA_TABLE(Sigma0MCCores, "AOD", "SIGMA0MCCORES",
767796 // Dynamic columns
768797 sigma0MCCore::IsSigma0<sigma0MCCore::PDGCode>,
769798 sigma0MCCore::IsAntiSigma0<sigma0MCCore::PDGCode>,
799+ sigma0MCCore::IsLambdaStar<sigma0MCCore::PDGCode>,
800+ sigma0MCCore::IsAntiLambdaStar<sigma0MCCore::PDGCode>,
770801
771802 sigma0MCCore::MCPx<sigma0MCCore::PhotonMCPx, sigma0MCCore::LambdaMCPx>,
772803 sigma0MCCore::MCPy<sigma0MCCore::PhotonMCPy, sigma0MCCore::LambdaMCPy>,
@@ -775,6 +806,7 @@ DECLARE_SOA_TABLE(Sigma0MCCores, "AOD", "SIGMA0MCCORES",
775806 sigma0MCCore::MCP <sigma0MCCore::PhotonMCPx, sigma0MCCore::PhotonMCPy, sigma0MCCore::PhotonMCPz, sigma0MCCore::LambdaMCPx, sigma0MCCore::LambdaMCPy, sigma0MCCore::LambdaMCPz>,
776807 sigma0MCCore::Sigma0MCMass<sigma0MCCore::PhotonMCPx, sigma0MCCore::PhotonMCPy, sigma0MCCore::PhotonMCPz, sigma0MCCore::LambdaMCPx, sigma0MCCore::LambdaMCPy, sigma0MCCore::LambdaMCPz>,
777808 sigma0MCCore::Sigma0MCY<sigma0MCCore::PhotonMCPx, sigma0MCCore::PhotonMCPy, sigma0MCCore::PhotonMCPz, sigma0MCCore::LambdaMCPx, sigma0MCCore::LambdaMCPy, sigma0MCCore::LambdaMCPz>,
809+ sigma0MCCore::LambdaStarMCY<sigma0MCCore::PhotonMCPx, sigma0MCCore::PhotonMCPy, sigma0MCCore::PhotonMCPz, sigma0MCCore::LambdaMCPx, sigma0MCCore::LambdaMCPy, sigma0MCCore::LambdaMCPz>,
778810 sigma0MCCore::MCPhi<sigma0MCCore::PhotonMCPx, sigma0MCCore::PhotonMCPy, sigma0MCCore::LambdaMCPx, sigma0MCCore::LambdaMCPy>,
779811 sigma0MCCore::MCEta<sigma0MCCore::PhotonMCPx, sigma0MCCore::PhotonMCPy, sigma0MCCore::PhotonMCPz, sigma0MCCore::LambdaMCPx, sigma0MCCore::LambdaMCPy, sigma0MCCore::LambdaMCPz>,
780812 sigma0MCCore::MCOPAngle<sigma0MCCore::PhotonMCPx, sigma0MCCore::PhotonMCPy, sigma0MCCore::PhotonMCPz, sigma0MCCore::LambdaMCPx, sigma0MCCore::LambdaMCPy, sigma0MCCore::LambdaMCPz>,
@@ -1417,11 +1449,11 @@ DECLARE_SOA_DYNAMIC_COLUMN(P, p, //! Total momentum in GeV/c
14171449
14181450DECLARE_SOA_DYNAMIC_COLUMN (Xi0Mass, xi0Mass,
14191451 [](float photon1Px, float photon1Py, float photon1Pz, float photon2Px, float photon2Py, float photon2Pz, float lambdaPx, float lambdaPy, float lambdaPz) -> float {
1420- std::array<float , 3 > pVecPi0{photon1Px + photon2Px, photon1Py + photon2Py, photon1Pz + photon2Pz};
1452+ std::array<float , 3 > pVecPi0{photon1Px+ photon2Px, photon1Py+ photon2Py, photon1Pz+ photon2Pz};
14211453 std::array<float , 3 > pVecLambda{lambdaPx, lambdaPy, lambdaPz};
14221454 auto arrMom = std::array{pVecPi0, pVecLambda};
14231455 return RecoDecay::m (arrMom, std::array{o2::constants::physics::MassPi0, o2::constants::physics::MassXi0});
1424- });
1456+ });
14251457
14261458DECLARE_SOA_DYNAMIC_COLUMN (PxPi0, pxPi0, // ! Pi0 px
14271459 [](float photon1Px, float photon2Px) -> float { return photon1Px + photon2Px; });
@@ -1455,11 +1487,11 @@ DECLARE_SOA_DYNAMIC_COLUMN(Radius, radius, //! Xi0 decay radius (2D, centered at
14551487 [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares (x, y); });
14561488
14571489DECLARE_SOA_DYNAMIC_COLUMN (RadiusPi0, radiusPi0, // ! Pi0 decay radius (2D, centered at zero)
1458- [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares (x, y); });
1490+ [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares (x, y); });
14591491
14601492DECLARE_SOA_DYNAMIC_COLUMN (RadiusLambda, radiusLambda, // ! Pi0 decay radius (2D, centered at zero)
1461- [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares (x, y); });
1462-
1493+ [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares (x, y); });
1494+
14631495// CosPAs
14641496DECLARE_SOA_DYNAMIC_COLUMN (Pi0CosPA, pi0CosPA, // !
14651497 [](float xPi0, float yPi0, float zPi0, float pxGamma1, float pyGamma1, float pzGamma1, float pxGamma2, float pyGamma2, float pzGamma2, float pvX, float pvY, float pvZ) -> float {
@@ -1478,14 +1510,14 @@ DECLARE_SOA_DYNAMIC_COLUMN(DCALambdaToPV, dcaLambdaToPV, //!
14781510 [](float X, float Y, float Z, float px, float py, float pz, float pvX, float pvY, float pvZ) -> float {
14791511 return std::sqrt ((std::pow ((pvY - Y) * pz - (pvZ - Z) * py, 2 ) + std::pow ((pvX - X) * pz - (pvZ - Z) * px, 2 ) + std::pow ((pvX - X) * py - (pvY - Y) * px, 2 )) / (px * px + py * py + pz * pz));
14801512 });
1481-
1513+
14821514DECLARE_SOA_DYNAMIC_COLUMN (DCAPi0ToPV, dcaPi0ToPV, // !
14831515 [](float X, float Y, float Z, float pxGamma1, float pyGamma1, float pzGamma1, float pxGamma2, float pyGamma2, float pzGamma2, float pvX, float pvY, float pvZ) -> float {
14841516 float px = pxGamma1 + pxGamma2;
14851517 float py = pyGamma1 + pyGamma2;
14861518 float pz = pzGamma1 + pzGamma2;
14871519 return std::sqrt ((std::pow ((pvY - Y) * pz - (pvZ - Z) * py, 2 ) + std::pow ((pvX - X) * pz - (pvZ - Z) * px, 2 ) + std::pow ((pvX - X) * py - (pvY - Y) * px, 2 )) / (px * px + py * py + pz * pz));
1488- });
1520+ });
14891521
14901522DECLARE_SOA_DYNAMIC_COLUMN (Photon1Pt, photon1Pt, // ! Transverse momentum in GeV/c
14911523 [](float photon1Px, float photon1Py) -> float {
@@ -1554,12 +1586,12 @@ DECLARE_SOA_DYNAMIC_COLUMN(LambdaY, lambdaY, //! Rapidity
15541586 });
15551587
15561588DECLARE_SOA_DYNAMIC_COLUMN (LambdaPhi, lambdaPhi, // ! Phi in the range [0, 2pi)
1557- [](float lambdaPx, float lambdaPy) -> float { return RecoDecay::phi (lambdaPx, lambdaPy); });
1589+ [](float lambdaPx, float lambdaPy) -> float { return RecoDecay::phi (lambdaPx, lambdaPy); });
15581590
1559- } // namespace Xi0Core
1591+ } // namespace Pi0Core
15601592
15611593DECLARE_SOA_TABLE (Xi0Cores, " AOD" , " XI0CORES" ,
1562- Xi0Core::X, Xi0Core::Y, Xi0Core::Z,
1594+ Xi0Core::X, Xi0Core::Y, Xi0Core::Z,
15631595 Xi0Core::XPi0, Xi0Core::YPi0, Xi0Core::ZPi0,
15641596 Xi0Core::XLambda, Xi0Core::YLambda, Xi0Core::ZLambda,
15651597 Xi0Core::DCADaughters, Xi0Core::DCADaughtersPi0, Xi0Core::DCAXYCascToPV, Xi0Core::DCAZCascToPV,
@@ -1618,14 +1650,15 @@ DECLARE_SOA_TABLE(Xi0CollRefs, "AOD", "XI0COLLREFS", //! optional table to refer
16181650 o2::soa::Index<>, v0data::StraCollisionId);
16191651
16201652DECLARE_SOA_TABLE (Xi0Indices, " AOD" , " XI0INDICES" , // ! optional table to refer back to V0Cores
1621- o2::soa::Index<>, Xi0Core::Photon1Index, Xi0Core::Photon2Index, Xi0Core::LambdaIndex);
1622-
1653+ o2::soa::Index<>, Xi0Core::Photon1Index, Xi0Core::Photon2Index, Xi0Core::LambdaIndex);
1654+
1655+
16231656// for MC
16241657namespace Xi0MCCore
16251658{
16261659DECLARE_SOA_COLUMN (Photon1Index, photon1Index, int );
16271660DECLARE_SOA_COLUMN (Photon2Index, photon2Index, int );
1628- DECLARE_SOA_COLUMN (LambdaIndex, lambdaIndex, int );
1661+ DECLARE_SOA_COLUMN (LambdaIndex, lambdaIndex, int );
16291662
16301663DECLARE_SOA_COLUMN (Photon1MCPx, photon1mcpx, float );
16311664DECLARE_SOA_COLUMN (Photon1MCPy, photon1mcpy, float );
@@ -1698,13 +1731,13 @@ DECLARE_SOA_DYNAMIC_COLUMN(MCPhi, mcPhi, //! Phi in the range [0, 2pi)
16981731DECLARE_SOA_DYNAMIC_COLUMN (MCEta, mcEta, // ! Pseudorapidity
16991732 [](float photon1MCPx, float photon1MCPy, float photon1MCPz, float photon2MCPx, float photon2MCPy, float photon2MCPz, float lambdaMCPx, float lambdaMCPy, float lambdaMCPz) -> float {
17001733 return RecoDecay::eta (std::array{photon1MCPx + photon2MCPx + lambdaMCPx, photon1MCPy + photon2MCPy + lambdaMCPy, photon1MCPz + photon2MCPz + lambdaMCPz});
1701- });
1702-
1734+ });
1735+
17031736DECLARE_SOA_DYNAMIC_COLUMN (MCRadius, mcRadius, // ! Xi0 decay radius (2D, centered at zero)
17041737 [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares (x, y); });
17051738
17061739DECLARE_SOA_DYNAMIC_COLUMN (MCRadiusPi0, mcRadiusPi0, // ! Pi0 decay radius (2D, centered at zero)
1707- [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares (x, y); });
1740+ [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares (x, y); });
17081741
17091742DECLARE_SOA_DYNAMIC_COLUMN (Pi0MCPx, pi0mcpx, // ! Pi0 MC px
17101743 [](float photon1MCPx, float photon2MCPx) -> float { return photon1MCPx + photon2MCPx; });
@@ -1818,9 +1851,9 @@ DECLARE_SOA_DYNAMIC_COLUMN(LambdaMCY, lambdaMCY, //! Rapidity
18181851 });
18191852
18201853DECLARE_SOA_DYNAMIC_COLUMN (LambdaMCPhi, lambdaMCPhi, // ! Phi in the range [0, 2pi)
1821- [](float lambdaMCPx, float lambdaMCPy) -> float { return RecoDecay::phi (lambdaMCPx, lambdaMCPy); });
1854+ [](float lambdaMCPx, float lambdaMCPy) -> float { return RecoDecay::phi (lambdaMCPx, lambdaMCPy); });
18221855
1823- } // namespace Xi0MCCore
1856+ } // namespace Xi0CoreMC
18241857
18251858DECLARE_SOA_TABLE (Xi0MCCores, " AOD" , " XI0MCCORES" ,
18261859 // Basic properties
@@ -1837,7 +1870,7 @@ DECLARE_SOA_TABLE(Xi0MCCores, "AOD", "XI0MCCORES",
18371870 Xi0MCCore::IsPi0Primary, Xi0MCCore::Pi0MCprocess, Xi0MCCore::Pi0PDGCode,
18381871
18391872 Xi0MCCore::MCx, Xi0MCCore::MCy, Xi0MCCore::MCz,
1840- Xi0MCCore::IsPhysicalPrimary, Xi0MCCore::MCprocess, Xi0MCCore::PDGCode, Xi0MCCore::PDGCodeMother,
1873+ Xi0MCCore::IsPhysicalPrimary, Xi0MCCore::MCprocess, Xi0MCCore::PDGCode, Xi0MCCore::PDGCodeMother,
18411874
18421875 // Dynamic columns
18431876 Xi0MCCore::MCPx<Xi0MCCore::Photon1MCPx, Xi0MCCore::Photon2MCPx, Xi0MCCore::LambdaMCPx>,
@@ -1874,7 +1907,7 @@ DECLARE_SOA_TABLE(Xi0MCCores, "AOD", "XI0MCCORES",
18741907 Xi0MCCore::Photon2MCEta<Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy, Xi0MCCore::Photon2MCPz>,
18751908 Xi0MCCore::Photon2MCY<Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy, Xi0MCCore::Photon2MCPz>,
18761909 Xi0MCCore::Photon2MCPhi<Xi0MCCore::Photon2MCPx, Xi0MCCore::Photon2MCPy>,
1877-
1910+
18781911 Xi0MCCore::LambdaMCPt<Xi0MCCore::LambdaMCPx, Xi0MCCore::LambdaMCPy>,
18791912 Xi0MCCore::LambdaMCP<Xi0MCCore::LambdaMCPx, Xi0MCCore::LambdaMCPy, Xi0MCCore::LambdaMCPz>,
18801913 Xi0MCCore::LambdaMCEta<Xi0MCCore::LambdaMCPx, Xi0MCCore::LambdaMCPy, Xi0MCCore::LambdaMCPz>,
@@ -1885,7 +1918,7 @@ DECLARE_SOA_TABLE(Xi0MCCollRefs, "AOD", "XI0MCCOLLREFS", //! optional table to r
18851918 o2::soa::Index<>, v0data::StraMCCollisionId);
18861919
18871920DECLARE_SOA_TABLE (Xi0MCIndices, " AOD" , " XI0MCINDICES" , // ! optional table to refer back to V0MCCores
1888- o2::soa::Index<>, Xi0MCCore::Photon1Index, Xi0MCCore::Photon2Index, Xi0MCCore::LambdaIndex);
1921+ o2::soa::Index<>, Xi0MCCore::Photon1Index, Xi0MCCore::Photon2Index, Xi0MCCore::LambdaIndex);
18891922
18901923} // namespace o2::aod
18911924
0 commit comments