Skip to content

Commit 0d507ad

Browse files
author
David Dobrigkeit Chinellato
committed
Switch exp to dyn columns
1 parent 4a4ce3d commit 0d507ad

1 file changed

Lines changed: 72 additions & 87 deletions

File tree

PWGLF/DataModel/LFStrangenessTables.h

Lines changed: 72 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -618,42 +618,23 @@ DECLARE_SOA_COLUMN(GeneratedK0Short, generatedK0Short, std::vector<uint32_t>);
618618
DECLARE_SOA_COLUMN(GeneratedLambda, generatedLambda, std::vector<uint32_t>); //! Lambda binned generated data
619619
DECLARE_SOA_COLUMN(GeneratedAntiLambda, generatedAntiLambda, std::vector<uint32_t>); //! AntiLambda binned generated data
620620

621-
//______________________________________________________
622-
// EXPRESSION COLUMNS
623-
DECLARE_SOA_EXPRESSION_COLUMN(Px, px, //! V0 px
624-
float, 1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg);
625-
DECLARE_SOA_EXPRESSION_COLUMN(Py, py, //! V0 py
626-
float, 1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg);
627-
DECLARE_SOA_EXPRESSION_COLUMN(Pz, pz, //! V0 pz
628-
float, 1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg);
629-
DECLARE_SOA_EXPRESSION_COLUMN(Pt, pt, float, //! Transverse momentum in GeV/c
630-
nsqrt((1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) *
631-
(1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) +
632-
(1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) * (1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg)));
633-
DECLARE_SOA_EXPRESSION_COLUMN(P, p, float, //! Total momentum in GeV/c
634-
nsqrt((1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) *
635-
(1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) +
636-
(1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) * (1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) +
637-
(1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg) * (1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg)));
638-
DECLARE_SOA_EXPRESSION_COLUMN(Phi, phi, float, //! Phi in the range [0, 2pi)
639-
o2::constants::math::PI + natan2(-1.0f * (1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg), -1.0f * (1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg)));
640-
DECLARE_SOA_EXPRESSION_COLUMN(Eta, eta, float, //! Pseudorapidity, conditionally defined to avoid FPEs
641-
ifnode((nsqrt((1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) * (1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) +
642-
(1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) * (1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) +
643-
(1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg) * (1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg)) -
644-
(1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg)) < static_cast<float>(1e-7),
645-
ifnode((1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg) < 0.f, -100.f, 100.f),
646-
0.5f * nlog((nsqrt((1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) * (1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) +
647-
(1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) * (1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) +
648-
(1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg) * (1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg)) +
649-
(1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg)) /
650-
(nsqrt((1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) * (1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg) +
651-
(1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) * (1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg) +
652-
(1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg) * (1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg)) -
653-
(1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg)))));
654-
655621
//______________________________________________________
656622
// DYNAMIC COLUMNS
623+
DECLARE_SOA_DYNAMIC_COLUMN(Px, px, //! V0 px
624+
[](float pxpos, float pxneg) -> float { return pxpos + pxneg; });
625+
DECLARE_SOA_DYNAMIC_COLUMN(Py, py, //! V0 py
626+
[](float pypos, float pyneg) -> float { return pypos + pyneg; });
627+
DECLARE_SOA_DYNAMIC_COLUMN(Pz, pz, //! V0 pz
628+
[](float pzpos, float pzneg) -> float { return pzpos + pzneg; });
629+
DECLARE_SOA_EXPRESSION_COLUMN(Pt, pt, //! Transverse momentum in GeV/c
630+
[](float pxpos, float pypos, float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(pxpos + pxneg, pypos + pyneg); });
631+
DECLARE_SOA_EXPRESSION_COLUMN(P, p, //! Total momentum in GeV/c
632+
[](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) -> float { return RecoDecay::sqrtSumOfSquares(pxpos + pxneg, pypos + pyneg, pzpos + pzneg); });
633+
DECLARE_SOA_EXPRESSION_COLUMN(Phi, phi, //! Phi in the range [0, 2pi)
634+
[](float pxpos, float pypos, float pxneg, float pyneg) -> float { return RecoDecay::phi(pxpos + pxneg, pypos + pyneg); });
635+
DECLARE_SOA_EXPRESSION_COLUMN(Eta, eta, //! Pseudorapidity
636+
[](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) -> float { return RecoDecay::eta(std::array{pxpos + pxneg, pypos + pyneg, pzpos + pzneg}); });
637+
657638
// Account for rigidity in case of hypertriton
658639
DECLARE_SOA_DYNAMIC_COLUMN(PtHypertriton, ptHypertriton, //! V0 pT
659640
[](float pxpos, float pypos, float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(2.0f * pxpos + pxneg, 2.0f * pypos + pyneg); });
@@ -811,56 +792,56 @@ DECLARE_SOA_TABLE_STAGED(V0Extras, "V0EXTRA", //! optional table to refer to cus
811792
DECLARE_SOA_TABLE(V0TrackXs, "AOD", "V0TRACKX", //! track X positions at minima when using AO2Ds
812793
v0data::PosX, v0data::NegX, o2::soa::Marker<1>);
813794

814-
DECLARE_SOA_TABLE_STAGED(V0CoresBase, "V0CORE", //! core information about decay, viable with AO2Ds or derived
815-
o2::soa::Index<>,
816-
v0data::X, v0data::Y, v0data::Z,
817-
v0data::PxPos, v0data::PyPos, v0data::PzPos,
818-
v0data::PxNeg, v0data::PyNeg, v0data::PzNeg,
819-
v0data::DCAV0Daughters, v0data::DCAPosToPV, v0data::DCANegToPV,
820-
v0data::V0CosPA, v0data::DCAV0ToPV, v0data::V0Type,
821-
822-
// Dynamic columns
823-
v0data::PtHypertriton<v0data::PxPos, v0data::PyPos, v0data::PxNeg, v0data::PyNeg>,
824-
v0data::PtAntiHypertriton<v0data::PxPos, v0data::PyPos, v0data::PxNeg, v0data::PyNeg>,
825-
v0data::V0Radius<v0data::X, v0data::Y>,
826-
v0data::DistOverTotMom<v0data::X, v0data::Y, v0data::Z, v0data::Px, v0data::Py, v0data::Pz>,
827-
v0data::Alpha<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
828-
v0data::QtArm<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
829-
v0data::PsiPair<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
830-
v0data::PFracPos<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
831-
v0data::PFracNeg<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>, // 24
832-
833-
// Invariant masses
834-
v0data::MLambda<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
835-
v0data::MAntiLambda<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
836-
v0data::MK0Short<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
837-
v0data::MGamma<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
838-
v0data::MHypertriton<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
839-
v0data::MAntiHypertriton<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
840-
v0data::M<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
841-
842-
// Longitudinal
843-
v0data::YK0Short<v0data::Px, v0data::Py, v0data::Pz>,
844-
v0data::YLambda<v0data::Px, v0data::Py, v0data::Pz>,
845-
v0data::YHypertriton<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
846-
v0data::YAntiHypertriton<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
847-
v0data::Rapidity<v0data::Px, v0data::Py, v0data::Pz>,
848-
v0data::NegativePt<v0data::PxNeg, v0data::PyNeg>,
849-
v0data::PositivePt<v0data::PxPos, v0data::PyPos>,
850-
v0data::NegativeEta<v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
851-
v0data::NegativePhi<v0data::PxNeg, v0data::PyNeg>,
852-
v0data::PositiveEta<v0data::PxPos, v0data::PyPos, v0data::PzPos>,
853-
v0data::PositivePhi<v0data::PxPos, v0data::PyPos>,
854-
v0data::IsStandardV0<v0data::V0Type>,
855-
v0data::IsPhotonTPConly<v0data::V0Type>);
795+
DECLARE_SOA_TABLE(V0Cores, "AOD", "V0CORE", //! core information about decay, viable with AO2Ds or derived
796+
o2::soa::Index<>,
797+
v0data::X, v0data::Y, v0data::Z,
798+
v0data::PxPos, v0data::PyPos, v0data::PzPos,
799+
v0data::PxNeg, v0data::PyNeg, v0data::PzNeg,
800+
v0data::DCAV0Daughters, v0data::DCAPosToPV, v0data::DCANegToPV,
801+
v0data::V0CosPA, v0data::DCAV0ToPV, v0data::V0Type,
856802

857-
// extended table with expression columns that can be used as arguments of dynamic columns
858-
DECLARE_SOA_EXTENDED_TABLE_USER(V0Cores, V0CoresBase, "V0COREEXT", //!
859-
v0data::Px, v0data::Py, v0data::Pz, v0data::Pt, v0data::P, v0data::Phi, v0data::Eta); // the table name has here to be the one with EXT which is not nice and under study
803+
// Dynamic columns
804+
v0data::Px<v0data::PxPos, v0data::PxNeg>,
805+
v0data::Py<v0data::PyPos, v0data::PyNeg>,
806+
v0data::Pz<v0data::PzPos, v0data::PzNeg>,
807+
v0data::Pt<v0data::PxPos, v0data::PxNeg, v0data::PyPos, v0data::PyNeg>,
808+
v0data::P<v0data::PxPos, v0data::PxNeg, v0data::PyPos, v0data::PyNeg, v0data::PzPos, v0data::PzNeg>,
809+
v0data::Phi<v0data::PxPos, v0data::PxNeg, v0data::PyPos, v0data::PyNeg>,
810+
v0data::Eta<v0data::PxPos, v0data::PxNeg, v0data::PyPos, v0data::PyNeg, v0data::PzPos, v0data::PzNeg>,
811+
812+
v0data::PtHypertriton<v0data::PxPos, v0data::PyPos, v0data::PxNeg, v0data::PyNeg>,
813+
v0data::PtAntiHypertriton<v0data::PxPos, v0data::PyPos, v0data::PxNeg, v0data::PyNeg>,
814+
v0data::V0Radius<v0data::X, v0data::Y>,
815+
v0data::DistOverTotMom<v0data::X, v0data::Y, v0data::Z, v0data::Px, v0data::Py, v0data::Pz>,
816+
v0data::Alpha<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
817+
v0data::QtArm<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
818+
v0data::PsiPair<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
819+
v0data::PFracPos<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
820+
v0data::PFracNeg<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>, // 24
860821

861-
// // extended table with expression columns that can be used as arguments of dynamic columns
862-
// DECLARE_SOA_EXTENDED_TABLE_USER(StoredV0Cores, StoredV0CoresBase, "V0COREEXT", //!
863-
// v0data::Px, v0data::Py, v0data::Pz, v0data::Pt, v0data::P, v0data::Phi, v0data::Eta, o2::soa::Marker<2>); // the table name has here to be the one with EXT which is not nice and under study
822+
// Invariant masses
823+
v0data::MLambda<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
824+
v0data::MAntiLambda<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
825+
v0data::MK0Short<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
826+
v0data::MGamma<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
827+
v0data::MHypertriton<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
828+
v0data::MAntiHypertriton<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
829+
v0data::M<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
830+
831+
// Longitudinal
832+
v0data::YK0Short<v0data::Px, v0data::Py, v0data::Pz>,
833+
v0data::YLambda<v0data::Px, v0data::Py, v0data::Pz>,
834+
v0data::YHypertriton<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
835+
v0data::YAntiHypertriton<v0data::PxPos, v0data::PyPos, v0data::PzPos, v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
836+
v0data::Rapidity<v0data::Px, v0data::Py, v0data::Pz>,
837+
v0data::NegativePt<v0data::PxNeg, v0data::PyNeg>,
838+
v0data::PositivePt<v0data::PxPos, v0data::PyPos>,
839+
v0data::NegativeEta<v0data::PxNeg, v0data::PyNeg, v0data::PzNeg>,
840+
v0data::NegativePhi<v0data::PxNeg, v0data::PyNeg>,
841+
v0data::PositiveEta<v0data::PxPos, v0data::PyPos, v0data::PzPos>,
842+
v0data::PositivePhi<v0data::PxPos, v0data::PyPos>,
843+
v0data::IsStandardV0<v0data::V0Type>,
844+
v0data::IsPhotonTPConly<v0data::V0Type>);
864845

865846
DECLARE_SOA_TABLE(V0TraPosAtDCAs, "AOD", "V0TRAPOSATDCAs", //! positions of tracks at their DCA for debug
866847
v0data::XPosAtDCA, v0data::YPosAtDCA, v0data::ZPosAtDCA,
@@ -886,14 +867,22 @@ DECLARE_SOA_TABLE(V0fCIndices, "AOD", "V0FCINDEX", //! index table when using AO
886867
DECLARE_SOA_TABLE(V0fCTrackXs, "AOD", "V0FCTRACKX", //! track X positions at minima when using AO2Ds
887868
v0data::PosX, v0data::NegX, o2::soa::Marker<2>);
888869

889-
DECLARE_SOA_TABLE_FULL(StoredV0fCCores, "V0fCCores", "AOD", "V0FCCORE", //! core information about decay, exclusive to V0s used in cascades but not passing in V0 selections - multiple viable getters skipped since use is protected to cascades only
870+
DECLARE_SOA_TABLE_FULL(V0fCCores, "V0fCCores", "AOD", "V0FCCORE", //! core information about decay, exclusive to V0s used in cascades but not passing in V0 selections - multiple viable getters skipped since use is protected to cascades only
890871
v0data::X, v0data::Y, v0data::Z,
891872
v0data::PxPos, v0data::PyPos, v0data::PzPos,
892873
v0data::PxNeg, v0data::PyNeg, v0data::PzNeg,
893874
v0data::DCAV0Daughters, v0data::DCAPosToPV, v0data::DCANegToPV,
894875
v0data::V0CosPA, v0data::DCAV0ToPV, v0data::V0Type,
895876

896877
// Dynamic columns
878+
v0data::Px<v0data::PxPos, v0data::PxNeg>,
879+
v0data::Py<v0data::PyPos, v0data::PyNeg>,
880+
v0data::Pz<v0data::PzPos, v0data::PzNeg>,
881+
v0data::Pt<v0data::PxPos, v0data::PxNeg, v0data::PyPos, v0data::PyNeg>,
882+
v0data::P<v0data::PxPos, v0data::PxNeg, v0data::PyPos, v0data::PyNeg, v0data::PzPos, v0data::PzNeg>,
883+
v0data::Phi<v0data::PxPos, v0data::PxNeg, v0data::PyPos, v0data::PyNeg>,
884+
v0data::Eta<v0data::PxPos, v0data::PxNeg, v0data::PyPos, v0data::PyNeg, v0data::PzPos, v0data::PzNeg>,
885+
897886
v0data::PtHypertriton<v0data::PxPos, v0data::PyPos, v0data::PxNeg, v0data::PyNeg>,
898887
v0data::PtAntiHypertriton<v0data::PxPos, v0data::PyPos, v0data::PxNeg, v0data::PyNeg>,
899888
v0data::V0Radius<v0data::X, v0data::Y>,
@@ -929,10 +918,6 @@ DECLARE_SOA_TABLE_FULL(StoredV0fCCores, "V0fCCores", "AOD", "V0FCCORE", //! core
929918
v0data::IsPhotonTPConly<v0data::V0Type>,
930919
o2::soa::Marker<2>);
931920

932-
// extended table with expression columns that can be used as arguments of dynamic columns
933-
DECLARE_SOA_EXTENDED_TABLE_USER(V0fCCores, StoredV0fCCores, "V0FCCOREEXT", //!
934-
v0data::Px, v0data::Py, v0data::Pz, v0data::Pt, v0data::P, v0data::Phi, v0data::Eta); // the table name has here to be the one with EXT which is not nice and under study
935-
936921
DECLARE_SOA_TABLE_FULL(V0fCCovs, "V0fCCovs", "AOD", "V0FCCOVS", //! V0 covariance matrices
937922
v0data::PositionCovMat, v0data::MomentumCovMat, o2::soa::Marker<2>);
938923

0 commit comments

Comments
 (0)