@@ -96,6 +96,120 @@ DECLARE_SOA_TABLE(HfCandChicMcGen, "AOD", "HFCANDCHICMCGEN", //!
9696 hf_cand_mc_flag::OriginMcGen,
9797 hf_cand_mc_flag::FlagMcDecayChanGen);
9898
99+ namespace hf_cand_x
100+ {
101+ DECLARE_SOA_INDEX_COLUMN_FULL (Prong0, prong0, int , HfCand2Prong, " _0" ); // Jpsi index
102+ } // namespace hf_cand_x
103+
104+ // declare dedicated X candidate table
105+ DECLARE_SOA_TABLE (HfCandXBase, " AOD" , " HFCANDXBASE" ,
106+ // general columns
107+ HFCAND_COLUMNS ,
108+ // 3-prong specific columns
109+ hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0,
110+ hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1,
111+ hf_cand::PxProng2, hf_cand::PyProng2, hf_cand::PzProng2,
112+ hf_cand::ImpactParameter0, hf_cand::ImpactParameter1, hf_cand::ImpactParameter2,
113+ hf_cand::ErrorImpactParameter0, hf_cand::ErrorImpactParameter1, hf_cand::ErrorImpactParameter2,
114+ hf_cand_x::Prong0Id, hf_track_index::Prong1Id, hf_track_index::Prong2Id, // note the difference between Jpsi and pion indices
115+ hf_track_index::HFflag,
116+ /* dynamic columns */
117+ hf_cand_3prong::M<hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0, hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1, hf_cand::PxProng2, hf_cand::PyProng2, hf_cand::PzProng2>,
118+ hf_cand_3prong::M2 <hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0, hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1, hf_cand::PxProng2, hf_cand::PyProng2, hf_cand::PzProng2>,
119+ /* prong 2 */
120+ hf_cand::PtProng2<hf_cand::PxProng2, hf_cand::PyProng2>,
121+ hf_cand::Pt2Prong2<hf_cand::PxProng2, hf_cand::PyProng2>,
122+ hf_cand::PVectorProng2<hf_cand::PxProng2, hf_cand::PyProng2, hf_cand::PzProng2>,
123+ /* dynamic columns that use candidate momentum components */
124+ hf_cand::Pt<hf_cand_3prong::Px, hf_cand_3prong::Py>,
125+ hf_cand::Pt2<hf_cand_3prong::Px, hf_cand_3prong::Py>,
126+ hf_cand::P<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
127+ hf_cand::P2 <hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
128+ hf_cand::PVector<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
129+ hf_cand::Cpa<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
130+ hf_cand::CpaXY<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand_3prong::Px, hf_cand_3prong::Py>,
131+ hf_cand::Ct<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
132+ hf_cand::ImpactParameterXY<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
133+ hf_cand_3prong::MaxNormalisedDeltaIP<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY, hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0, hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1, hf_cand::ImpactParameter2, hf_cand::ErrorImpactParameter2, hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PxProng2, hf_cand::PyProng2>,
134+ hf_cand::Eta<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
135+ hf_cand::Phi<hf_cand_3prong::Px, hf_cand_3prong::Py>,
136+ hf_cand::Y<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
137+ hf_cand::E<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
138+ hf_cand::E2 <hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>);
139+
140+ // extended table with expression columns that can be used as arguments of dynamic columns
141+ DECLARE_SOA_EXTENDED_TABLE_USER (HfCandXExt, HfCandXBase, " HFCANDXEXT" ,
142+ hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz);
143+
144+ using HfCandX = HfCandXExt;
145+
146+ // table with results of reconstruction level MC matching
147+ DECLARE_SOA_TABLE (HfCandXMcRec, " AOD" , " HFCANDXMCREC" , // !
148+ hf_cand_mc_flag::FlagMcMatchRec,
149+ hf_cand_mc_flag::OriginMcRec,
150+ hf_cand_mc_flag::FlagMcDecayChanRec);
151+
152+ // table with results of generator level MC matching
153+ DECLARE_SOA_TABLE (HfCandXMcGen, " AOD" , " HFCANDXMCGEN" , // !
154+ hf_cand_mc_flag::FlagMcMatchGen,
155+ hf_cand_mc_flag::OriginMcGen,
156+ hf_cand_mc_flag::FlagMcDecayChanGen);
157+
158+ // specific Xicc candidate properties
159+ namespace hf_cand_xicc
160+ {
161+ DECLARE_SOA_INDEX_COLUMN_FULL (Prong0, prong0, int , HfCand3Prong, " _0" ); // Xic index
162+ } // namespace hf_cand_xicc
163+
164+ // declare dedicated Xicc candidate table
165+ DECLARE_SOA_TABLE (HfCandXiccBase, " AOD" , " HFCANDXICCBASE" ,
166+ // general columns
167+ HFCAND_COLUMNS ,
168+ // 2-prong specific columns
169+ hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0,
170+ hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1,
171+ hf_cand::ImpactParameter0, hf_cand::ImpactParameter1,
172+ hf_cand::ErrorImpactParameter0, hf_cand::ErrorImpactParameter1,
173+ hf_cand_xicc::Prong0Id, hf_track_index::Prong1Id,
174+ hf_track_index::HFflag,
175+ /* dynamic columns */
176+ hf_cand_2prong::M<hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0, hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1>,
177+ hf_cand_2prong::M2 <hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0, hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1>,
178+ hf_cand_2prong::ImpactParameterProduct<hf_cand::ImpactParameter0, hf_cand::ImpactParameter1>,
179+ /* dynamic columns that use candidate momentum components */
180+ hf_cand::Pt<hf_cand_2prong::Px, hf_cand_2prong::Py>,
181+ hf_cand::Pt2<hf_cand_2prong::Px, hf_cand_2prong::Py>,
182+ hf_cand::P<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
183+ hf_cand::P2 <hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
184+ hf_cand::PVector<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
185+ hf_cand::Cpa<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
186+ hf_cand::CpaXY<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand_2prong::Px, hf_cand_2prong::Py>,
187+ hf_cand::Ct<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
188+ hf_cand::ImpactParameterXY<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
189+ hf_cand_2prong::MaxNormalisedDeltaIP<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY, hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0, hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1, hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PxProng1, hf_cand::PyProng1>,
190+ hf_cand::Eta<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
191+ hf_cand::Phi<hf_cand_2prong::Px, hf_cand_2prong::Py>,
192+ hf_cand::Y<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
193+ hf_cand::E<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
194+ hf_cand::E2 <hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>);
195+
196+ // extended table with expression columns that can be used as arguments of dynamic columns
197+ DECLARE_SOA_EXTENDED_TABLE_USER (HfCandXiccExt, HfCandXiccBase, " HFCANDXICCEXT" ,
198+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz);
199+
200+ using HfCandXicc = HfCandXiccExt;
201+
202+ // table with results of reconstruction level MC matching
203+ DECLARE_SOA_TABLE (HfCandXiccMcRec, " AOD" , " HFCANDXICCMCREC" , // !
204+ hf_cand_mc_flag::FlagMcMatchRec,
205+ hf_cand_mc_flag::OriginMcRec,
206+ hf_cand_mc_flag::DebugMcRec);
207+
208+ // table with results of generator level MC matching
209+ DECLARE_SOA_TABLE (HfCandXiccMcGen, " AOD" , " HFCANDXICCMCGEN" , // !
210+ hf_cand_mc_flag::FlagMcMatchGen,
211+ hf_cand_mc_flag::OriginMcGen);
212+
99213} // namespace o2::aod
100214
101215#endif // PWGHF_ALICE3_DATAMODEL_CANDIDATERECONSTRUCTIONTABLES_H_
0 commit comments