|
20 | 20 |
|
21 | 21 | // O2 includes |
22 | 22 | #include "Framework/AnalysisDataModel.h" |
| 23 | +#include "Common/Core/RecoDecay.h" |
23 | 24 |
|
24 | 25 | enum a3selectionBit : uint32_t { kDCAxy = 0, |
25 | 26 | kInnerTOFPion, |
@@ -59,6 +60,64 @@ DECLARE_SOA_TABLE(Alice3DecayMaps, "AOD", "ALICE3DECAYMAPS", |
59 | 60 |
|
60 | 61 | using Alice3DecayMap = Alice3DecayMaps::iterator; |
61 | 62 |
|
| 63 | +namespace a3D0meson |
| 64 | +{ |
| 65 | +DECLARE_SOA_INDEX_COLUMN(Collision, collision); //! |
| 66 | +DECLARE_SOA_COLUMN(PxProng0, pxProng0, float); //! positive track |
| 67 | +DECLARE_SOA_COLUMN(PyProng0, pyProng0, float); //! |
| 68 | +DECLARE_SOA_COLUMN(PzProng0, pzProng0, float); //! |
| 69 | +DECLARE_SOA_COLUMN(PxProng1, pxProng1, float); //! negative track |
| 70 | +DECLARE_SOA_COLUMN(PyProng1, pyProng1, float); //! |
| 71 | +DECLARE_SOA_COLUMN(PzProng1, pzProng1, float); //! |
| 72 | +DECLARE_SOA_DYNAMIC_COLUMN(PtProng0, ptProng0, //! |
| 73 | + [](float px, float py) -> float { return RecoDecay::pt(px, py); }); |
| 74 | +DECLARE_SOA_DYNAMIC_COLUMN(PtProng1, ptProng1, //! |
| 75 | + [](float px, float py) -> float { return RecoDecay::pt(px, py); }); |
| 76 | +DECLARE_SOA_EXPRESSION_COLUMN(Px, px, //! |
| 77 | + float, 1.f * aod::a3D0meson::pxProng0 + 1.f * aod::a3D0meson::pxProng1); |
| 78 | +DECLARE_SOA_EXPRESSION_COLUMN(Py, py, //! |
| 79 | + float, 1.f * aod::a3D0meson::pyProng0 + 1.f * aod::a3D0meson::pyProng1); |
| 80 | +DECLARE_SOA_EXPRESSION_COLUMN(Pz, pz, //! |
| 81 | + float, 1.f * aod::a3D0meson::pzProng0 + 1.f * aod::a3D0meson::pzProng1); |
| 82 | +DECLARE_SOA_COLUMN(Pt, pt, float); //! |
| 83 | +DECLARE_SOA_COLUMN(M, m, float); //! |
| 84 | +DECLARE_SOA_DYNAMIC_COLUMN(E, e, //! |
| 85 | + [](float px, float py, float pz, double m) -> float { return RecoDecay::e(px, py, pz, m); }); |
| 86 | +DECLARE_SOA_COLUMN(Eta, eta, float); //! |
| 87 | +DECLARE_SOA_COLUMN(Phi, phi, float); //! |
| 88 | +DECLARE_SOA_COLUMN(Y, y, float); |
| 89 | +} // namespace a3D0meson |
| 90 | +DECLARE_SOA_TABLE(Alice3D0Meson, "AOD", "ALICE3D0MESON", //! |
| 91 | + o2::soa::Index<>, |
| 92 | + a3D0meson::CollisionId, |
| 93 | + a3D0meson::PxProng0, a3D0meson::PyProng0, a3D0meson::PzProng0, // positive track |
| 94 | + a3D0meson::PxProng1, a3D0meson::PyProng1, a3D0meson::PzProng1, // negative track |
| 95 | + a3D0meson::PtProng0<a3D0meson::PxProng0, a3D0meson::PyProng0>, |
| 96 | + a3D0meson::PtProng1<a3D0meson::PxProng1, a3D0meson::PyProng1>, |
| 97 | + a3D0meson::Px, a3D0meson::Py, a3D0meson::Pz, |
| 98 | + a3D0meson::Pt, |
| 99 | + a3D0meson::M, |
| 100 | + a3D0meson::E<a3D0meson::Px, a3D0meson::Py, a3D0meson::Pz, a3D0meson::M>, |
| 101 | + a3D0meson::Eta, |
| 102 | + a3D0meson::Phi, |
| 103 | + a3D0meson::Y); |
| 104 | + |
| 105 | +namespace a3D0Selection |
| 106 | +{ |
| 107 | +DECLARE_SOA_COLUMN(IsSelD0, isSelD0, int); //! |
| 108 | +DECLARE_SOA_COLUMN(IsSelD0bar, isSelD0bar, int); //! |
| 109 | +} // namespace a3D0Selection |
| 110 | +DECLARE_SOA_TABLE(Alice3D0Sel, "AOD", "ALICE3D0SEL", //! |
| 111 | + a3D0Selection::IsSelD0, |
| 112 | + a3D0Selection::IsSelD0bar); |
| 113 | + |
| 114 | +namespace a3D0MCTruth |
| 115 | +{ |
| 116 | +DECLARE_SOA_COLUMN(McTruthInfo, mcTruthInfo, int); //! 0 for bkg, 1 for true D0, 2 for true D0bar |
| 117 | +} // namespace a3D0MCTruth |
| 118 | +DECLARE_SOA_TABLE(Alice3D0MCTruth, "AOD", "ALICE3D0MCTRUTH", //! |
| 119 | + a3D0MCTruth::McTruthInfo); //! |
| 120 | + |
62 | 121 | } // namespace o2::aod |
63 | 122 |
|
64 | 123 | #endif // ALICE3_DATAMODEL_A3DECAYFINDERTABLES_H_ |
0 commit comments