@@ -26,6 +26,13 @@ namespace o2::aod
2626{
2727namespace vtx3body
2828{
29+ // indices
30+ DECLARE_SOA_INDEX_COLUMN_FULL (TrackPr, trackPr, int , Tracks, " _pr" ); // !
31+ DECLARE_SOA_INDEX_COLUMN_FULL (TrackPi, trackPi, int , Tracks, " _pi" ); // !
32+ DECLARE_SOA_INDEX_COLUMN_FULL (TrackDe, trackDe, int , Tracks, " _de" ); // !
33+ DECLARE_SOA_INDEX_COLUMN (Collision, collision); // !
34+ DECLARE_SOA_INDEX_COLUMN (Decay3Body, decay3body); // !
35+
2936// General 3 body Vtx properties
3037DECLARE_SOA_COLUMN (Mass, mass, float ); // ! candidate mass (with H3L or Anti-H3L mass hypothesis depending on deuteron charge)
3138DECLARE_SOA_COLUMN (Sign, sign, float ); // ! candidate sign
@@ -177,6 +184,13 @@ DECLARE_SOA_DYNAMIC_COLUMN(TrackDePhi, trackDePhi, //! daughter2 phi
177184 [](float pxTrackDe, float pyTrackDe) -> float { return RecoDecay::phi (pxTrackDe, pyTrackDe); });
178185} // namespace vtx3body
179186
187+ // index table
188+ DECLARE_SOA_TABLE (Decay3BodyIndices, " AOD" , " 3BodyINDEX" , // !
189+ o2::soa::Index<>,
190+ vtx3body::Decay3BodyId,
191+ vtx3body::TrackPrId, vtx3body::TrackPiId, vtx3body::TrackDeId,
192+ vtx3body::CollisionId);
193+
180194// reconstructed candidate table for analysis
181195DECLARE_SOA_TABLE (Vtx3BodyDatas, " AOD" , " VTX3BODYDATA" , // !
182196 o2::soa::Index<>,
@@ -285,6 +299,11 @@ DECLARE_SOA_TABLE(McVtx3BodyDatas, "AOD", "MC3BODYDATA", //!
285299 vtx3body::TrackDePt<vtx3body::PxTrackDe, vtx3body::PyTrackDe>,
286300 vtx3body::TrackDeEta<vtx3body::PxTrackDe, vtx3body::PyTrackDe, vtx3body::PzTrackDe>,
287301 vtx3body::TrackDePhi<vtx3body::PxTrackDe, vtx3body::PyTrackDe>);
302+
303+ // Define joins
304+ using Vtx3BodyDatasCovs = soa::Join<Vtx3BodyDatas, Vtx3BodyCovs>;
305+ using Vtx3BodyDatasCovsIndexed = soa::Join<Vtx3BodyDatas, Vtx3BodyCovs, Decay3BodyIndices>;
306+
288307} // namespace o2::aod
289308
290309#endif // PWGLF_DATAMODEL_VTX3BODYTABLES_H_
0 commit comments