@@ -618,42 +618,23 @@ DECLARE_SOA_COLUMN(GeneratedK0Short, generatedK0Short, std::vector<uint32_t>);
618618DECLARE_SOA_COLUMN (GeneratedLambda, generatedLambda, std::vector<uint32_t >); // ! Lambda binned generated data
619619DECLARE_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
658639DECLARE_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
811792DECLARE_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
865846DECLARE_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
886867DECLARE_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-
936921DECLARE_SOA_TABLE_FULL (V0fCCovs, " V0fCCovs" , " AOD" , " V0FCCOVS" , // ! V0 covariance matrices
937922 v0data::PositionCovMat, v0data::MomentumCovMat, o2::soa::Marker<2 >);
938923
0 commit comments