From 8ba474cba95fd1d1383ef3b62ee19782bf30ec69 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Tue, 20 Jul 2021 09:21:24 -0300 Subject: [PATCH 1/5] Add dynamic columns for daughter prongs --- .../AnalysisDataModel/StrangenessTables.h | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h index 49dac7b5a8757..d3a50d72017f0 100644 --- a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h +++ b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h @@ -104,6 +104,19 @@ DECLARE_SOA_DYNAMIC_COLUMN(Eta, eta, //! DECLARE_SOA_DYNAMIC_COLUMN(Phi, phi, //! [](float Px, float Py) -> float { return RecoDecay::Phi(Px, Py); }); +DECLARE_SOA_DYNAMIC_COLUMN(NegativePt, negativept, //! + [](float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(pxneg, pyneg); }); +DECLARE_SOA_DYNAMIC_COLUMN(PositivePt, positivept, //! + [](float pxpos, float pypos) -> float { return RecoDecay::sqrtSumOfSquares(pxpos, pypos); }); +DECLARE_SOA_DYNAMIC_COLUMN(NegativeEta, negativeeta, //! + [](float PxNeg, float PyNeg, float PzNeg) -> float { return RecoDecay::Eta(array{PxNeg, PyNeg, PzNeg}); }); +DECLARE_SOA_DYNAMIC_COLUMN(NegativePhi, negativephi, //! + [](float PxNeg, float PyNeg) -> float { return RecoDecay::Phi(PxNeg, PyNeg); }); +DECLARE_SOA_DYNAMIC_COLUMN(PositiveEta, positiveeta, //! + [](float PxPos, float PyPos, float PzPos) -> float { return RecoDecay::Eta(array{PxPos, PyPos, PzPos}); }); +DECLARE_SOA_DYNAMIC_COLUMN(PositivePhi, positivephi, //! + [](float PxPos, float PyPos) -> float { return RecoDecay::Phi(PxPos, PyPos); }); + DECLARE_SOA_EXPRESSION_COLUMN(Px, px, //! float, 1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg); DECLARE_SOA_EXPRESSION_COLUMN(Py, py, //! @@ -134,12 +147,18 @@ DECLARE_SOA_TABLE_FULL(StoredV0Datas, "V0Datas", "AOD", "V0DATA", //! v0data::MAntiLambda, v0data::MK0Short, v0data::MGamma, - + //Longitudinal v0data::YK0Short, v0data::YLambda, v0data::Eta, - v0data::Phi); + v0data::Phi, + v0data::NegativePt, + v0data::PositivePt, + v0data::NegativeEta, + v0data::NegativePhi, + v0data::PositiveEta, + v0data::PositivePhi); // extended table with expression columns that can be used as arguments of dynamic columns DECLARE_SOA_EXTENDED_TABLE_USER(V0Datas, StoredV0Datas, "V0DATAEXT", //! From a18ae28bbb689b773ead26da2df87e27b344d622 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Tue, 20 Jul 2021 09:25:54 -0300 Subject: [PATCH 2/5] Fix clang format --- .../DataModel/include/AnalysisDataModel/StrangenessTables.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h index d3a50d72017f0..e51c6c56fa3f9 100644 --- a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h +++ b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h @@ -116,7 +116,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(PositiveEta, positiveeta, //! [](float PxPos, float PyPos, float PzPos) -> float { return RecoDecay::Eta(array{PxPos, PyPos, PzPos}); }); DECLARE_SOA_DYNAMIC_COLUMN(PositivePhi, positivephi, //! [](float PxPos, float PyPos) -> float { return RecoDecay::Phi(PxPos, PyPos); }); - + DECLARE_SOA_EXPRESSION_COLUMN(Px, px, //! float, 1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg); DECLARE_SOA_EXPRESSION_COLUMN(Py, py, //! @@ -147,7 +147,7 @@ DECLARE_SOA_TABLE_FULL(StoredV0Datas, "V0Datas", "AOD", "V0DATA", //! v0data::MAntiLambda, v0data::MK0Short, v0data::MGamma, - + //Longitudinal v0data::YK0Short, v0data::YLambda, From da7b9cc6777d0594a6bcb90f36fba71043629632 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Tue, 27 Jul 2021 04:21:36 -0300 Subject: [PATCH 3/5] Add comments / documentation --- .../AnalysisDataModel/StrangenessTables.h | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h index e51c6c56fa3f9..ea20c118896e1 100644 --- a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h +++ b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h @@ -25,40 +25,40 @@ DECLARE_SOA_INDEX_COLUMN_FULL(NegTrack, negTrack, int, Tracks, "_Neg"); //! DECLARE_SOA_INDEX_COLUMN(Collision, collision); //! //General V0 properties: position, momentum -DECLARE_SOA_COLUMN(PosX, posX, float); //! -DECLARE_SOA_COLUMN(NegX, negX, float); //! -DECLARE_SOA_COLUMN(PxPos, pxpos, float); //! -DECLARE_SOA_COLUMN(PyPos, pypos, float); //! -DECLARE_SOA_COLUMN(PzPos, pzpos, float); //! -DECLARE_SOA_COLUMN(PxNeg, pxneg, float); //! -DECLARE_SOA_COLUMN(PyNeg, pyneg, float); //! -DECLARE_SOA_COLUMN(PzNeg, pzneg, float); //! -DECLARE_SOA_COLUMN(X, x, float); //! -DECLARE_SOA_COLUMN(Y, y, float); //! -DECLARE_SOA_COLUMN(Z, z, float); //! +DECLARE_SOA_COLUMN(PosX, posX, float); //! positive track X at min +DECLARE_SOA_COLUMN(NegX, negX, float); //! negative track X at min +DECLARE_SOA_COLUMN(PxPos, pxpos, float); //! positive track px at min +DECLARE_SOA_COLUMN(PyPos, pypos, float); //! positive track py at min +DECLARE_SOA_COLUMN(PzPos, pzpos, float); //! positive track pz at min +DECLARE_SOA_COLUMN(PxNeg, pxneg, float); //! negative track px at min +DECLARE_SOA_COLUMN(PyNeg, pyneg, float); //! negative track py at min +DECLARE_SOA_COLUMN(PzNeg, pzneg, float); //! negative track pz at min +DECLARE_SOA_COLUMN(X, x, float); //! decay position X +DECLARE_SOA_COLUMN(Y, y, float); //! decay position Y +DECLARE_SOA_COLUMN(Z, z, float); //! decay position Z //Saved from finding: DCAs -DECLARE_SOA_COLUMN(DCAV0Daughters, dcaV0daughters, float); //! -DECLARE_SOA_COLUMN(DCAPosToPV, dcapostopv, float); //! -DECLARE_SOA_COLUMN(DCANegToPV, dcanegtopv, float); //! +DECLARE_SOA_COLUMN(DCAV0Daughters, dcaV0daughters, float); //! DCA between V0 daughters +DECLARE_SOA_COLUMN(DCAPosToPV, dcapostopv, float); //! DCA positive prong to PV +DECLARE_SOA_COLUMN(DCANegToPV, dcanegtopv, float); //! DCA negative prong to PV //Derived expressions //Momenta -DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, //! +DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, //! V0 pT [](float pxpos, float pypos, float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(pxpos + pxneg, pypos + pyneg); }); //Length quantities -DECLARE_SOA_DYNAMIC_COLUMN(V0Radius, v0radius, //! +DECLARE_SOA_DYNAMIC_COLUMN(V0Radius, v0radius, //! V0 decay radius (2D, centered at zero) [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares(x, y); }); //CosPA -DECLARE_SOA_DYNAMIC_COLUMN(V0CosPA, v0cosPA, //! +DECLARE_SOA_DYNAMIC_COLUMN(V0CosPA, v0cosPA, //! V0 CosPA [](float X, float Y, float Z, float Px, float Py, float Pz, float pvX, float pvY, float pvZ) -> float { return RecoDecay::CPA(array{pvX, pvY, pvZ}, array{X, Y, Z}, array{Px, Py, Pz}); }); -DECLARE_SOA_DYNAMIC_COLUMN(DCAV0ToPV, dcav0topv, //! +DECLARE_SOA_DYNAMIC_COLUMN(DCAV0ToPV, dcav0topv, //! DCA of V0 to PV [](float X, float Y, float Z, float Px, float Py, float Pz, float pvX, float pvY, float pvZ) -> float { 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)); }); //Armenteros-Podolanski variables -DECLARE_SOA_DYNAMIC_COLUMN(Alpha, alpha, //! +DECLARE_SOA_DYNAMIC_COLUMN(Alpha, alpha, //! Armenteros Alpha [](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) { float momTot = RecoDecay::P(pxpos + pxneg, pypos + pyneg, pzpos + pzneg); float lQlNeg = RecoDecay::dotProd(array{pxneg, pyneg, pzneg}, array{pxpos + pxneg, pypos + pyneg, pzpos + pzneg}) / momTot; @@ -66,7 +66,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(Alpha, alpha, //! return (lQlPos - lQlNeg) / (lQlPos + lQlNeg); //alphav0 }); -DECLARE_SOA_DYNAMIC_COLUMN(QtArm, qtarm, //! +DECLARE_SOA_DYNAMIC_COLUMN(QtArm, qtarm, //! Armenteros Qt [](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) { float momTot = RecoDecay::P2(pxpos + pxneg, pypos + pyneg, pzpos + pzneg); float dp = RecoDecay::dotProd(array{pxneg, pyneg, pzneg}, array{pxpos + pxneg, pypos + pyneg, pzpos + pzneg}); @@ -74,7 +74,7 @@ DECLARE_SOA_DYNAMIC_COLUMN(QtArm, qtarm, //! }); // Psi pair angle: angle between the plane defined by the electron and positron momenta and the xy plane -DECLARE_SOA_DYNAMIC_COLUMN(PsiPair, psipair, //! +DECLARE_SOA_DYNAMIC_COLUMN(PsiPair, psipair, //! psi pair angle [](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) { auto clipToPM1 = [](float x) { return x < -1.f ? -1.f : (x > 1.f ? 1.f : x); }; float ptot2 = RecoDecay::P2(pxpos, pypos, pzpos) * RecoDecay::P2(pxneg, pyneg, pzneg); @@ -86,42 +86,42 @@ DECLARE_SOA_DYNAMIC_COLUMN(PsiPair, psipair, //! }); //Calculated on the fly with mass assumption + dynamic tables -DECLARE_SOA_DYNAMIC_COLUMN(MLambda, mLambda, //! +DECLARE_SOA_DYNAMIC_COLUMN(MLambda, mLambda, //! mass under lambda hypothesis [](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) -> float { return RecoDecay::M(array{array{pxpos, pypos, pzpos}, array{pxneg, pyneg, pzneg}}, array{RecoDecay::getMassPDG(kProton), RecoDecay::getMassPDG(kPiPlus)}); }); -DECLARE_SOA_DYNAMIC_COLUMN(MAntiLambda, mAntiLambda, //! +DECLARE_SOA_DYNAMIC_COLUMN(MAntiLambda, mAntiLambda, //! mass under antilambda hypothesis [](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) -> float { return RecoDecay::M(array{array{pxpos, pypos, pzpos}, array{pxneg, pyneg, pzneg}}, array{RecoDecay::getMassPDG(kPiPlus), RecoDecay::getMassPDG(kProton)}); }); -DECLARE_SOA_DYNAMIC_COLUMN(MK0Short, mK0Short, //! +DECLARE_SOA_DYNAMIC_COLUMN(MK0Short, mK0Short, //! mass under K0short hypothesis [](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) -> float { return RecoDecay::M(array{array{pxpos, pypos, pzpos}, array{pxneg, pyneg, pzneg}}, array{RecoDecay::getMassPDG(kPiPlus), RecoDecay::getMassPDG(kPiPlus)}); }); -DECLARE_SOA_DYNAMIC_COLUMN(MGamma, mGamma, //! +DECLARE_SOA_DYNAMIC_COLUMN(MGamma, mGamma, //! mass under gamma hypothesis [](float pxpos, float pypos, float pzpos, float pxneg, float pyneg, float pzneg) -> float { return RecoDecay::M(array{array{pxpos, pypos, pzpos}, array{pxneg, pyneg, pzneg}}, array{RecoDecay::getMassPDG(kElectron), RecoDecay::getMassPDG(kElectron)}); }); -DECLARE_SOA_DYNAMIC_COLUMN(YK0Short, yK0Short, //! +DECLARE_SOA_DYNAMIC_COLUMN(YK0Short, yK0Short, //! V0 y with K0short hypothesis [](float Px, float Py, float Pz) -> float { return RecoDecay::Y(array{Px, Py, Pz}, RecoDecay::getMassPDG(kK0)); }); -DECLARE_SOA_DYNAMIC_COLUMN(YLambda, yLambda, //! +DECLARE_SOA_DYNAMIC_COLUMN(YLambda, yLambda, //! V0 y with lambda or antilambda hypothesis [](float Px, float Py, float Pz) -> float { return RecoDecay::Y(array{Px, Py, Pz}, RecoDecay::getMassPDG(kLambda0)); }); -DECLARE_SOA_DYNAMIC_COLUMN(Eta, eta, //! +DECLARE_SOA_DYNAMIC_COLUMN(Eta, eta, //! V0 eta [](float Px, float Py, float Pz) -> float { return RecoDecay::Eta(array{Px, Py, Pz}); }); -DECLARE_SOA_DYNAMIC_COLUMN(Phi, phi, //! +DECLARE_SOA_DYNAMIC_COLUMN(Phi, phi, //! V0 phi [](float Px, float Py) -> float { return RecoDecay::Phi(Px, Py); }); -DECLARE_SOA_DYNAMIC_COLUMN(NegativePt, negativept, //! +DECLARE_SOA_DYNAMIC_COLUMN(NegativePt, negativept, //! negative daughter pT [](float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(pxneg, pyneg); }); -DECLARE_SOA_DYNAMIC_COLUMN(PositivePt, positivept, //! +DECLARE_SOA_DYNAMIC_COLUMN(PositivePt, positivept, //! positive daughter pT [](float pxpos, float pypos) -> float { return RecoDecay::sqrtSumOfSquares(pxpos, pypos); }); -DECLARE_SOA_DYNAMIC_COLUMN(NegativeEta, negativeeta, //! +DECLARE_SOA_DYNAMIC_COLUMN(NegativeEta, negativeeta, //! negative daughter eta [](float PxNeg, float PyNeg, float PzNeg) -> float { return RecoDecay::Eta(array{PxNeg, PyNeg, PzNeg}); }); -DECLARE_SOA_DYNAMIC_COLUMN(NegativePhi, negativephi, //! +DECLARE_SOA_DYNAMIC_COLUMN(NegativePhi, negativephi, //! negative daughter phi [](float PxNeg, float PyNeg) -> float { return RecoDecay::Phi(PxNeg, PyNeg); }); -DECLARE_SOA_DYNAMIC_COLUMN(PositiveEta, positiveeta, //! +DECLARE_SOA_DYNAMIC_COLUMN(PositiveEta, positiveeta, //! positive daughter eta [](float PxPos, float PyPos, float PzPos) -> float { return RecoDecay::Eta(array{PxPos, PyPos, PzPos}); }); -DECLARE_SOA_DYNAMIC_COLUMN(PositivePhi, positivephi, //! +DECLARE_SOA_DYNAMIC_COLUMN(PositivePhi, positivephi, //! positive daughter phi [](float PxPos, float PyPos) -> float { return RecoDecay::Phi(PxPos, PyPos); }); -DECLARE_SOA_EXPRESSION_COLUMN(Px, px, //! +DECLARE_SOA_EXPRESSION_COLUMN(Px, px, //! V0 px float, 1.f * aod::v0data::pxpos + 1.f * aod::v0data::pxneg); -DECLARE_SOA_EXPRESSION_COLUMN(Py, py, //! +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, //! +DECLARE_SOA_EXPRESSION_COLUMN(Pz, pz, //! V0 pz float, 1.f * aod::v0data::pzpos + 1.f * aod::v0data::pzneg); } // namespace v0data From 58e0b529627e4feae391974113ecfbb8f1075635 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Tue, 27 Jul 2021 04:24:47 -0300 Subject: [PATCH 4/5] clang format fixes --- .../DataModel/include/AnalysisDataModel/StrangenessTables.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h index ea20c118896e1..bbbc68dfc9d56 100644 --- a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h +++ b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h @@ -38,7 +38,7 @@ DECLARE_SOA_COLUMN(Y, y, float); //! decay position Y DECLARE_SOA_COLUMN(Z, z, float); //! decay position Z //Saved from finding: DCAs -DECLARE_SOA_COLUMN(DCAV0Daughters, dcaV0daughters, float); //! DCA between V0 daughters +DECLARE_SOA_COLUMN(DCAV0Daughters, dcaV0daughters, float); //! DCA between V0 daughters DECLARE_SOA_COLUMN(DCAPosToPV, dcapostopv, float); //! DCA positive prong to PV DECLARE_SOA_COLUMN(DCANegToPV, dcanegtopv, float); //! DCA negative prong to PV @@ -48,11 +48,11 @@ DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt, //! V0 pT [](float pxpos, float pypos, float pxneg, float pyneg) -> float { return RecoDecay::sqrtSumOfSquares(pxpos + pxneg, pypos + pyneg); }); //Length quantities -DECLARE_SOA_DYNAMIC_COLUMN(V0Radius, v0radius, //! V0 decay radius (2D, centered at zero) +DECLARE_SOA_DYNAMIC_COLUMN(V0Radius, v0radius, //! V0 decay radius (2D, centered at zero) [](float x, float y) -> float { return RecoDecay::sqrtSumOfSquares(x, y); }); //CosPA -DECLARE_SOA_DYNAMIC_COLUMN(V0CosPA, v0cosPA, //! V0 CosPA +DECLARE_SOA_DYNAMIC_COLUMN(V0CosPA, v0cosPA, //! V0 CosPA [](float X, float Y, float Z, float Px, float Py, float Pz, float pvX, float pvY, float pvZ) -> float { return RecoDecay::CPA(array{pvX, pvY, pvZ}, array{X, Y, Z}, array{Px, Py, Pz}); }); DECLARE_SOA_DYNAMIC_COLUMN(DCAV0ToPV, dcav0topv, //! DCA of V0 to PV [](float X, float Y, float Z, float Px, float Py, float Pz, float pvX, float pvY, float pvZ) -> float { 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)); }); From 6ae16069bb3dc8405e888d315d66ef4884ee40dc Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Tue, 27 Jul 2021 12:16:44 -0300 Subject: [PATCH 5/5] Fixes --- .../include/AnalysisDataModel/StrangenessTables.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h index bbbc68dfc9d56..8a2b6a38a15ab 100644 --- a/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h +++ b/Analysis/DataModel/include/AnalysisDataModel/StrangenessTables.h @@ -155,10 +155,10 @@ DECLARE_SOA_TABLE_FULL(StoredV0Datas, "V0Datas", "AOD", "V0DATA", //! v0data::Phi, v0data::NegativePt, v0data::PositivePt, - v0data::NegativeEta, - v0data::NegativePhi, - v0data::PositiveEta, - v0data::PositivePhi); + v0data::NegativeEta, + v0data::NegativePhi, + v0data::PositiveEta, + v0data::PositivePhi); // extended table with expression columns that can be used as arguments of dynamic columns DECLARE_SOA_EXTENDED_TABLE_USER(V0Datas, StoredV0Datas, "V0DATAEXT", //!