Skip to content

Commit 389df5a

Browse files
Update LFSigmaTables.h
1 parent 547bb71 commit 389df5a

1 file changed

Lines changed: 54 additions & 21 deletions

File tree

‎PWGLF/DataModel/LFSigmaTables.h‎

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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
111127
DECLARE_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,
656674
DECLARE_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+
659683
DECLARE_SOA_DYNAMIC_COLUMN(MCPx, mcpx, //! Sigma0 px
660684
[](float photonMCPx, float lambdaMCPx) -> float { return photonMCPx + lambdaMCPx; });
661685
DECLARE_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+
689718
DECLARE_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

14181450
DECLARE_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

14261458
DECLARE_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

14571489
DECLARE_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

14601492
DECLARE_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
14641496
DECLARE_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+
14821514
DECLARE_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

14901522
DECLARE_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

15561588
DECLARE_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

15611593
DECLARE_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

16201652
DECLARE_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
16241657
namespace Xi0MCCore
16251658
{
16261659
DECLARE_SOA_COLUMN(Photon1Index, photon1Index, int);
16271660
DECLARE_SOA_COLUMN(Photon2Index, photon2Index, int);
1628-
DECLARE_SOA_COLUMN(LambdaIndex, lambdaIndex, int);
1661+
DECLARE_SOA_COLUMN(LambdaIndex, lambdaIndex, int);
16291662

16301663
DECLARE_SOA_COLUMN(Photon1MCPx, photon1mcpx, float);
16311664
DECLARE_SOA_COLUMN(Photon1MCPy, photon1mcpy, float);
@@ -1698,13 +1731,13 @@ DECLARE_SOA_DYNAMIC_COLUMN(MCPhi, mcPhi, //! Phi in the range [0, 2pi)
16981731
DECLARE_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+
17031736
DECLARE_SOA_DYNAMIC_COLUMN(MCRadius, mcRadius, //! Xi0 decay radius (2D, centered at zero)
17041737
[](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares(x, y); });
17051738

17061739
DECLARE_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

17091742
DECLARE_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

18201853
DECLARE_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

18251858
DECLARE_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

18871920
DECLARE_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

Comments
 (0)