diff --git a/PWGLF/DataModel/LFStrangenessTables.h b/PWGLF/DataModel/LFStrangenessTables.h index 3f2d3c5e436..d3b10620df3 100644 --- a/PWGLF/DataModel/LFStrangenessTables.h +++ b/PWGLF/DataModel/LFStrangenessTables.h @@ -52,11 +52,6 @@ DECLARE_SOA_COLUMN(MomentumCovMat, momentumCovMat, float[6]); //! covariance mat DECLARE_SOA_COLUMN(KFV0Chi2, kfV0Chi2, float); //! // Derived expressions -// Momenta -DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, //! V0 pT - [](float pxpos, float pypos, float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(pxpos + pxneg, pypos + pyneg); }); -DECLARE_SOA_DYNAMIC_COLUMN(P, p, //! V0 pT - [](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) -> float { return std::hypot(pxpos + pxneg, pypos + pyneg, pzpos + pzneg); }); // Account for rigidity in case of hypertriton DECLARE_SOA_DYNAMIC_COLUMN(PtHypertriton, ptHypertriton, //! V0 pT [](float pxpos, float pypos, float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(2.0f * pxpos + pxneg, 2.0f * pypos + pyneg); }); @@ -170,10 +165,6 @@ DECLARE_SOA_DYNAMIC_COLUMN(Rapidity, rapidity, //! rapidity (0:K0, 1:L, 2:Lbar) return RecoDecay::y(std::array{Px, Py, Pz}, o2::constants::physics::MassLambda); return 0.0f; }); -DECLARE_SOA_DYNAMIC_COLUMN(Eta, eta, //! V0 eta - [](float Px, float Py, float Pz) -> float { return RecoDecay::eta(std::array{Px, Py, Pz}); }); -DECLARE_SOA_DYNAMIC_COLUMN(Phi, phi, //! V0 phi - [](float Px, float Py) -> float { return RecoDecay::phi(Px, Py); }); DECLARE_SOA_DYNAMIC_COLUMN(NegativePt, negativept, //! negative daughter pT [](float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(pxneg, pyneg); }); @@ -194,6 +185,31 @@ DECLARE_SOA_EXPRESSION_COLUMN(Py, py, //! V0 py float, 1.f * aod::v0data::pypos + 1.f * aod::v0data::pyneg); DECLARE_SOA_EXPRESSION_COLUMN(Pz, pz, //! V0 pz float, 1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg); + +DECLARE_SOA_EXPRESSION_COLUMN(Pt, pt, float, //! Transverse momentum in GeV/c + nsqrt(aod::v0data::px* aod::v0data::px + + aod::v0data::py * aod::v0data::py)); +DECLARE_SOA_EXPRESSION_COLUMN(P, p, float, //! Total momentum in GeV/c + nsqrt(aod::v0data::px* aod::v0data::px + + aod::v0data::py * aod::v0data::py + + aod::v0data::pz * aod::v0data::pz)); +DECLARE_SOA_EXPRESSION_COLUMN(Phi, phi, float, //! Phi in the range [0, 2pi) + o2::constants::math::PI + natan2(-1.0f * aod::v0data::py, -1.0f * aod::v0data::px)); +DECLARE_SOA_EXPRESSION_COLUMN(Eta, eta, float, //! Pseudorapidity, conditionally defined to avoid FPEs + ifnode((nsqrt(aod::v0data::px * aod::v0data::px + + aod::v0data::py * aod::v0data::py + + aod::v0data::pz * aod::v0data::pz) - + aod::v0data::pz) < static_cast(1e-7), + ifnode(aod::v0data::pz < 0.f, -100.f, 100.f), + 0.5f * nlog((nsqrt(aod::v0data::px * aod::v0data::px + + aod::v0data::py * aod::v0data::py + + aod::v0data::pz * aod::v0data::pz) + + aod::v0data::pz) / + (nsqrt(aod::v0data::px * aod::v0data::px + + aod::v0data::py * aod::v0data::py + + aod::v0data::pz * aod::v0data::pz) - + aod::v0data::pz)))); + } // namespace v0data DECLARE_SOA_TABLE_FULL(StoredV0Datas, "V0Datas", "AOD", "V0DATA", //! @@ -205,8 +221,6 @@ DECLARE_SOA_TABLE_FULL(StoredV0Datas, "V0Datas", "AOD", "V0DATA", //! v0data::DCAV0Daughters, v0data::DCAPosToPV, v0data::DCANegToPV, // Dynamic columns - v0data::Pt, - v0data::P, v0data::PtHypertriton, v0data::PtAntiHypertriton, v0data::V0Radius, @@ -234,8 +248,6 @@ DECLARE_SOA_TABLE_FULL(StoredV0Datas, "V0Datas", "AOD", "V0DATA", //! v0data::YHypertriton, v0data::YAntiHypertriton, v0data::Rapidity, - v0data::Eta, - v0data::Phi, v0data::NegativePt, v0data::PositivePt, v0data::NegativeEta, @@ -247,9 +259,10 @@ DECLARE_SOA_TABLE_FULL(V0Covs, "V0Covs", "AOD", "V0COVS", //! v0data::PositionCovMat, v0data::MomentumCovMat); // extended table with expression columns that can be used as arguments of dynamic columns -DECLARE_SOA_EXTENDED_TABLE_USER(V0Datas, StoredV0Datas, "V0DATAEXT", //! - v0data::Px, v0data::Py, v0data::Pz); // the table name has here to be the one with EXT which is not nice and under study +DECLARE_SOA_EXTENDED_TABLE_USER(V0Datas, StoredV0Datas, "V0DATAEXT", //! + 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 +// using V0Datas = soa::Join using V0Data = V0Datas::iterator; namespace v0data { @@ -374,10 +387,6 @@ DECLARE_SOA_COLUMN(TopologyChi2, topologyChi2, float); //! DECLARE_SOA_COLUMN(ItsClsSize, itsCluSize, float); //! // Derived expressions -// Momenta -DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, //! - [](float Px, float Py) -> float { return RecoDecay::sqrtSumOfSquares(Px, Py); }); - // Length quantities DECLARE_SOA_DYNAMIC_COLUMN(V0Radius, v0radius, //! [](float xlambda, float ylambda) -> float { return RecoDecay::sqrtSumOfSquares(xlambda, ylambda); }); @@ -416,10 +425,6 @@ DECLARE_SOA_DYNAMIC_COLUMN(Rapidity, rapidity, //! rapidity (0, 1: Xi; 2, 3: Ome return RecoDecay::y(std::array{Px, Py, Pz}, o2::constants::physics::MassOmegaMinus); return 0.0f; }); -DECLARE_SOA_DYNAMIC_COLUMN(Eta, eta, //! - [](float Px, float Py, float Pz) -> float { return RecoDecay::eta(std::array{Px, Py, Pz}); }); -DECLARE_SOA_DYNAMIC_COLUMN(Phi, phi, //! cascade phi - [](float Px, float Py) -> float { return RecoDecay::phi(Px, Py); }); } // namespace cascdata namespace cascdataext @@ -430,6 +435,29 @@ DECLARE_SOA_EXPRESSION_COLUMN(PyLambda, pylambda, //! float, 1.f * aod::cascdata::pypos + 1.f * aod::cascdata::pyneg); DECLARE_SOA_EXPRESSION_COLUMN(PzLambda, pzlambda, //! float, 1.f * aod::cascdata::pzpos + 1.f * aod::cascdata::pzneg); +DECLARE_SOA_EXPRESSION_COLUMN(Pt, pt, float, //! Transverse momentum in GeV/c + nsqrt(aod::cascdata::px* aod::cascdata::px + + aod::cascdata::py * aod::cascdata::py)); +DECLARE_SOA_EXPRESSION_COLUMN(P, p, float, //! Total momentum in GeV/c + nsqrt(aod::cascdata::px* aod::cascdata::px + + aod::cascdata::py * aod::cascdata::py + + aod::cascdata::pz * aod::cascdata::pz)); +DECLARE_SOA_EXPRESSION_COLUMN(Phi, phi, float, //! Phi in the range [0, 2pi) + o2::constants::math::PI + natan2(-1.0f * aod::cascdata::py, -1.0f * aod::cascdata::px)); +DECLARE_SOA_EXPRESSION_COLUMN(Eta, eta, float, //! Pseudorapidity, conditionally defined to avoid FPEs + ifnode((nsqrt(aod::cascdata::px * aod::cascdata::px + + aod::cascdata::py * aod::cascdata::py + + aod::cascdata::pz * aod::cascdata::pz) - + aod::cascdata::pz) < static_cast(1e-7), + ifnode(aod::cascdata::pz < 0.f, -100.f, 100.f), + 0.5f * nlog((nsqrt(aod::cascdata::px * aod::cascdata::px + + aod::cascdata::py * aod::cascdata::py + + aod::cascdata::pz * aod::cascdata::pz) + + aod::cascdata::pz) / + (nsqrt(aod::cascdata::px * aod::cascdata::px + + aod::cascdata::py * aod::cascdata::py + + aod::cascdata::pz * aod::cascdata::pz) - + aod::cascdata::pz)))); } // namespace cascdataext DECLARE_SOA_TABLE(StoredCascDatas, "AOD", "CASCDATA", //! @@ -446,7 +474,6 @@ DECLARE_SOA_TABLE(StoredCascDatas, "AOD", "CASCDATA", //! cascdata::BachBaryonCosPA, cascdata::BachBaryonDCAxyToPV, // Dynamic columns - cascdata::Pt, cascdata::V0Radius, cascdata::CascRadius, cascdata::V0CosPA, @@ -460,9 +487,7 @@ DECLARE_SOA_TABLE(StoredCascDatas, "AOD", "CASCDATA", //! // Longitudinal cascdata::YXi, cascdata::YOmega, - cascdata::Rapidity, - cascdata::Eta, - cascdata::Phi); + cascdata::Rapidity); DECLARE_SOA_TABLE(StoredKFCascDatas, "AOD", "KFCASCDATA", //! o2::soa::Index<>, cascdata::V0Id, cascdata::CascadeId, cascdata::BachelorId, cascdata::CollisionId, @@ -481,7 +506,6 @@ DECLARE_SOA_TABLE(StoredKFCascDatas, "AOD", "KFCASCDATA", //! kfcascdata::MLambda, cascdata::KFV0Chi2, cascdata::KFCascadeChi2, // Dynamic columns - cascdata::Pt, cascdata::V0Radius, cascdata::CascRadius, cascdata::V0CosPA, @@ -493,9 +517,7 @@ DECLARE_SOA_TABLE(StoredKFCascDatas, "AOD", "KFCASCDATA", //! // Longitudinal cascdata::YXi, - cascdata::YOmega, - cascdata::Eta, - cascdata::Phi); + cascdata::YOmega); DECLARE_SOA_TABLE(StoredTraCascDatas, "AOD", "TRACASCDATA", //! o2::soa::Index<>, cascdata::V0Id, cascdata::CascadeId, cascdata::BachelorId, cascdata::StrangeTrackId, cascdata::CollisionId, @@ -514,7 +536,6 @@ DECLARE_SOA_TABLE(StoredTraCascDatas, "AOD", "TRACASCDATA", //! cascdata::MatchingChi2, cascdata::TopologyChi2, cascdata::ItsClsSize, // Dynamic columns - cascdata::Pt, cascdata::V0Radius, cascdata::CascRadius, cascdata::V0CosPA, @@ -526,9 +547,7 @@ DECLARE_SOA_TABLE(StoredTraCascDatas, "AOD", "TRACASCDATA", //! // Longitudinal cascdata::YXi, - cascdata::YOmega, - cascdata::Eta, - cascdata::Phi); + cascdata::YOmega); DECLARE_SOA_TABLE_FULL(CascCovs, "CascCovs", "AOD", "CASCCOVS", //! cascdata::PositionCovMat, cascdata::MomentumCovMat); @@ -538,15 +557,17 @@ DECLARE_SOA_TABLE_FULL(KFCascCovs, "KFCascCovs", "AOD", "KFCASCCOVS", //! // extended table with expression columns that can be used as arguments of dynamic columns DECLARE_SOA_EXTENDED_TABLE_USER(CascDatas, StoredCascDatas, "CascDATAEXT", //! - cascdataext::PxLambda, cascdataext::PyLambda, cascdataext::PzLambda); + cascdataext::PxLambda, cascdataext::PyLambda, cascdataext::PzLambda, cascdataext::Pt, cascdataext::P, cascdataext::Eta, cascdataext::Phi); // extended table with expression columns that can be used as arguments of dynamic columns DECLARE_SOA_EXTENDED_TABLE_USER(KFCascDatas, StoredKFCascDatas, "KFCascDATAEXT", //! - cascdataext::PxLambda, cascdataext::PyLambda, cascdataext::PzLambda); + cascdataext::PxLambda, cascdataext::PyLambda, cascdataext::PzLambda, + cascdataext::Pt, cascdataext::P, cascdataext::Eta, cascdataext::Phi); // extended table with expression columns that can be used as arguments of dynamic columns DECLARE_SOA_EXTENDED_TABLE_USER(TraCascDatas, StoredTraCascDatas, "TraCascDATAEXT", //! - cascdataext::PxLambda, cascdataext::PyLambda, cascdataext::PzLambda); + cascdataext::PxLambda, cascdataext::PyLambda, cascdataext::PzLambda, + cascdataext::Pt, cascdataext::P, cascdataext::Eta, cascdataext::Phi); using CascData = CascDatas::iterator; using KFCascData = KFCascDatas::iterator; diff --git a/PWGLF/Tasks/cascadeanalysis.cxx b/PWGLF/Tasks/cascadeanalysis.cxx index f57c3c9288c..c3c88458037 100644 --- a/PWGLF/Tasks/cascadeanalysis.cxx +++ b/PWGLF/Tasks/cascadeanalysis.cxx @@ -295,31 +295,31 @@ struct cascadeAnalysis { if (casc.sign() < 0) { // FIXME: could be done better... if (TMath::Abs(casc.yXi()) < 0.5 && lCompatiblePID_Xi) { if (!doCentralityStudy) { - registry.fill(HIST("h2dMassXiMinus"), casc.template pt(), casc.mXi()); + registry.fill(HIST("h2dMassXiMinus"), casc.pt(), casc.mXi()); } else { - registry.fill(HIST("h3dMassXiMinus"), lPercentile, casc.template pt(), casc.mXi()); + registry.fill(HIST("h3dMassXiMinus"), lPercentile, casc.pt(), casc.mXi()); } } if (TMath::Abs(casc.yOmega()) < 0.5 && lCompatiblePID_Om) { if (!doCentralityStudy) { - registry.fill(HIST("h2dMassOmegaMinus"), casc.template pt(), casc.mOmega()); + registry.fill(HIST("h2dMassOmegaMinus"), casc.pt(), casc.mOmega()); } else { - registry.fill(HIST("h3dMassOmegaMinus"), lPercentile, casc.template pt(), casc.mOmega()); + registry.fill(HIST("h3dMassOmegaMinus"), lPercentile, casc.pt(), casc.mOmega()); } } } else { if (TMath::Abs(casc.yXi()) < 0.5 && lCompatiblePID_Xi) { if (!doCentralityStudy) { - registry.fill(HIST("h2dMassXiPlus"), casc.template pt(), casc.mXi()); + registry.fill(HIST("h2dMassXiPlus"), casc.pt(), casc.mXi()); } else { - registry.fill(HIST("h3dMassXiPlus"), lPercentile, casc.template pt(), casc.mXi()); + registry.fill(HIST("h3dMassXiPlus"), lPercentile, casc.pt(), casc.mXi()); } } if (TMath::Abs(casc.yOmega()) < 0.5 && lCompatiblePID_Om) { if (!doCentralityStudy) { - registry.fill(HIST("h2dMassOmegaPlus"), casc.template pt(), casc.mOmega()); + registry.fill(HIST("h2dMassOmegaPlus"), casc.pt(), casc.mOmega()); } else { - registry.fill(HIST("h3dMassOmegaPlus"), lPercentile, casc.template pt(), casc.mOmega()); + registry.fill(HIST("h3dMassOmegaPlus"), lPercentile, casc.pt(), casc.mOmega()); } } } diff --git a/PWGLF/Tasks/cascadeanalysisMC.cxx b/PWGLF/Tasks/cascadeanalysisMC.cxx index 601980f6cd0..1e9cec8ff0a 100644 --- a/PWGLF/Tasks/cascadeanalysisMC.cxx +++ b/PWGLF/Tasks/cascadeanalysisMC.cxx @@ -357,31 +357,31 @@ struct cascadeAnalysisMC { if (casc.sign() < 0) { // FIXME: could be done better... if (TMath::Abs(casc.yXi()) < 0.5 && lCompatiblePID_Xi && ((!assocMC) || (lPDG == 3312))) { if (!doCentralityStudy) { - registry.fill(HIST("h2dMassXiMinus"), casc.template pt(), casc.mXi()); + registry.fill(HIST("h2dMassXiMinus"), casc.pt(), casc.mXi()); } else { - registry.fill(HIST("h3dMassXiMinus"), lPercentile, casc.template pt(), casc.mXi()); + registry.fill(HIST("h3dMassXiMinus"), lPercentile, casc.pt(), casc.mXi()); } } if (TMath::Abs(casc.yOmega()) < 0.5 && lCompatiblePID_Om && ((!assocMC) || (lPDG == 3334))) { if (!doCentralityStudy) { - registry.fill(HIST("h2dMassOmegaMinus"), casc.template pt(), casc.mOmega()); + registry.fill(HIST("h2dMassOmegaMinus"), casc.pt(), casc.mOmega()); } else { - registry.fill(HIST("h3dMassOmegaMinus"), lPercentile, casc.template pt(), casc.mOmega()); + registry.fill(HIST("h3dMassOmegaMinus"), lPercentile, casc.pt(), casc.mOmega()); } } } else { if (TMath::Abs(casc.yXi()) < 0.5 && lCompatiblePID_Xi && ((!assocMC) || (lPDG == -3312))) { if (!doCentralityStudy) { - registry.fill(HIST("h2dMassXiPlus"), casc.template pt(), casc.mXi()); + registry.fill(HIST("h2dMassXiPlus"), casc.pt(), casc.mXi()); } else { - registry.fill(HIST("h3dMassXiPlus"), lPercentile, casc.template pt(), casc.mXi()); + registry.fill(HIST("h3dMassXiPlus"), lPercentile, casc.pt(), casc.mXi()); } } if (TMath::Abs(casc.yOmega()) < 0.5 && lCompatiblePID_Om && ((!assocMC) || (lPDG == -3334))) { if (!doCentralityStudy) { - registry.fill(HIST("h2dMassOmegaPlus"), casc.template pt(), casc.mOmega()); + registry.fill(HIST("h2dMassOmegaPlus"), casc.pt(), casc.mOmega()); } else { - registry.fill(HIST("h3dMassOmegaPlus"), lPercentile, casc.template pt(), casc.mOmega()); + registry.fill(HIST("h3dMassOmegaPlus"), lPercentile, casc.pt(), casc.mOmega()); } } }