3131namespace o2 ::aod
3232{
3333// basic species:
34- // D0 -> K- + pi+ (done)
35- // Lc -> pi+ K- p
36- // D+ -> K- + pi+ + pi+ (3P table with adapted PID columns)
37- // Ds+ -> K- + K+ + pi+ (3P table with adapted PID columns)
34+ // D0 → K− π+
35+ // Λc → p K− π+
36+ // D+ → K− π+ π+
37+ // Ds+ → K− K+ π+ (todo)
38+
3839// composite species
39- // B0 -> D- + pi+
40- // B+ -> D0 + pi+ (in progress)
41- // D*+ -> D0 + pi+
40+ // B0 → D− π+ (todo)
41+ // B+ → D0 π+
42+ // D*+ → D0 π+ (todo)
4243
4344// ================
4445// Collision tables
@@ -62,7 +63,7 @@ namespace hf_mc_coll
6263DECLARE_SOA_INDEX_COLUMN (McCollision, mcCollision); // ! original global index of the MC collision
6364} // namespace hf_mc_coll
6465
65- // Defines the collision table
66+ // Declares the base table with reconstructed collisions (CollBases) and joinable tables (CollIds).
6667#define DECLARE_COLL_TABLE (_hf_type_, _hf_description_ ) \
6768 DECLARE_SOA_TABLE_STAGED (Hf##_hf_type_##CollBases, " HF" _hf_description_ " COLLBASE" , \
6869 o2::soa::Index<>, \
@@ -84,7 +85,7 @@ DECLARE_SOA_INDEX_COLUMN(McCollision, mcCollision); //! original global index of
8485 hf_cand::CollisionId, \
8586 o2::soa::Marker<Marker##_hf_type_>);
8687
87- // Defines the mc collision table
88+ // Declares the base table with MC collisions (McCollBases) and joinable tables (McCollIds, McRCollIds).
8889#define DECLARE_MCCOLL_TABLE (_hf_type_, _hf_description_, _hf_namespace_ ) \
8990 namespace hf_mc_coll \
9091 { \
@@ -111,10 +112,15 @@ DECLARE_SOA_INDEX_COLUMN(McCollision, mcCollision); //! original global index of
111112 DECLARE_SOA_TABLE_STAGED (Hf##_hf_type_##McRCollIds, " HF" _hf_description_ " MCRCOLLID" , \
112113 hf_mc_coll::der_##_hf_namespace_::Hf##_hf_type_##CollBaseIds);
113114
115+ // Declares all tables with reconstructed and MC collisions.
114116#define DECLARE_COLL_TABLES (_hf_type_, _hf_description_, _hf_namespace_ ) \
115117 DECLARE_COLL_TABLE (_hf_type_, _hf_description_) \
116118 DECLARE_MCCOLL_TABLE (_hf_type_, _hf_description_, _hf_namespace_)
117119
120+ // ================
121+ // Candidate tables
122+ // ================
123+
118124namespace hf_cand_base
119125{
120126DECLARE_SOA_COLUMN (Eta, eta, float ); // ! pseudorapidity
@@ -161,6 +167,7 @@ DECLARE_SOA_COLUMN(OriginMcGen, originMcGen, int8_t); //! particle
161167DECLARE_SOA_COLUMN (FlagMcDecayChanGen, flagMcDecayChanGen, int8_t ); // ! resonant decay channel flag, generator level
162168} // namespace hf_mc_particle
163169
170+ // Declares the base table with candidates (Bases).
164171#define DECLARE_CAND_BASE_TABLE (_hf_type_, _hf_description_, _hf_namespace_ ) \
165172 namespace hf_cand_base \
166173 { \
@@ -184,13 +191,15 @@ DECLARE_SOA_COLUMN(FlagMcDecayChanGen, flagMcDecayChanGen, int8_t); //! resonant
184191 hf_cand_base::P<hf_cand_base::Pt, hf_cand_base::Eta>, \
185192 o2::soa::Marker<Marker##_hf_type_>);
186193
194+ // Declares the table with global indices for 2-prong candidates (Ids).
187195#define DECLARE_CAND_2P_ID_TABLE (_hf_type_, _hf_description_ ) \
188196 DECLARE_SOA_TABLE_STAGED (Hf##_hf_type_##Ids, " HF" _hf_description_ " ID" , \
189197 hf_cand::CollisionId, \
190198 hf_track_index::Prong0Id, \
191199 hf_track_index::Prong1Id, \
192200 o2::soa::Marker<Marker##_hf_type_>);
193201
202+ // Declares the table with global indices for 3-prong candidates (Ids).
194203#define DECLARE_CAND_3P_ID_TABLE (_hf_type_, _hf_description_ ) \
195204 DECLARE_SOA_TABLE_STAGED (Hf##_hf_type_##Ids, " HF" _hf_description_ " ID" , \
196205 hf_cand::CollisionId, \
@@ -199,11 +208,17 @@ DECLARE_SOA_COLUMN(FlagMcDecayChanGen, flagMcDecayChanGen, int8_t); //! resonant
199208 hf_track_index::Prong2Id, \
200209 o2::soa::Marker<Marker##_hf_type_>);
201210
211+ // Declares the table with candidate selection flags (Sels).
202212#define DECLARE_CAND_SEL_TABLE (_hf_type_, _hf_description_ ) \
203213 DECLARE_SOA_TABLE_STAGED (Hf##_hf_type_##Sels, " HF" _hf_description_ " SEL" , \
204214 hf_cand_sel::CandidateSelFlag, \
205215 o2::soa::Marker<Marker##_hf_type_>);
206216
217+ // ================
218+ // MC particle tables
219+ // ================
220+
221+ // Declares the base table with MC particles (PBases).
207222#define DECLARE_MCCAND_BASE_TABLE (_hf_type_, _hf_description_, _hf_namespace_ ) \
208223 namespace hf_mc_particle \
209224 { \
@@ -227,12 +242,17 @@ DECLARE_SOA_COLUMN(FlagMcDecayChanGen, flagMcDecayChanGen, int8_t); //! resonant
227242 hf_cand_base::P<hf_cand_base::Pt, hf_cand_base::Eta>, \
228243 o2::soa::Marker<Marker##_hf_type_>);
229244
245+ // Declares the table with global indices for MC particles (PIds).
230246#define DECLARE_MCCAND_ID_TABLE (_hf_type_, _hf_description_ ) \
231247 DECLARE_SOA_TABLE_STAGED (Hf##_hf_type_##PIds, " HF" _hf_description_ " PID" , \
232248 hf_mc_particle::McCollisionId, \
233249 hf_mc_particle::McParticleId, \
234250 o2::soa::Marker<Marker##_hf_type_>);
235251
252+ // ================
253+ // Helper macros for combinations
254+ // ================
255+
236256#define DECLARE_CAND_TABLES (_hf_type_, _hf_description_, _hf_namespace_ ) \
237257 DECLARE_CAND_BASE_TABLE (_hf_type_, _hf_description_, _hf_namespace_) \
238258 DECLARE_CAND_SEL_TABLE (_hf_type_, _hf_description_) \
@@ -257,12 +277,17 @@ DECLARE_SOA_COLUMN(FlagMcDecayChanGen, flagMcDecayChanGen, int8_t); //! resonant
257277 DECLARE_COLL_TABLES (_hf_type_, _hf_description_, _hf_namespace_) \
258278 DECLARE_CAND_3P_TABLES (_hf_type_, _hf_description_, _hf_namespace_)
259279
280+ // ================
281+ // Declarations of common tables for individual species
282+ // ================
283+
260284DECLARE_2P_TABLES (D0, " D0" , d0, 2 );
261285DECLARE_3P_TABLES (Lc, " LC" , lc, 3 );
262- DECLARE_3P_TABLES (Bplus, " BP" , bplus, 4 );
286+ DECLARE_3P_TABLES (Dplus, " DP" , dplus, 4 );
287+ DECLARE_3P_TABLES (Bplus, " BP" , bplus, 5 );
263288
264289// ================
265- // Candidate tables
290+ // Additional species-specific candidate tables
266291// ================
267292
268293// Candidate properties used for selection
@@ -417,6 +442,10 @@ DECLARE_SOA_COLUMN(MlScoreNonPromptCharm, mlScoreNonPromptCharm, float); //
417442DECLARE_SOA_COLUMN (MlScoresCharm, mlScoresCharm, std::vector<float >); // ! vector of ML scores
418443} // namespace hf_cand_mc_charm
419444
445+ // ----------------
446+ // D0
447+ // ----------------
448+
420449// candidates for removal:
421450// PxProng0, PyProng0, PzProng0,... (same for 1, 2), we can keep Pt, Eta, Phi instead
422451// XY: CpaXY, DecayLengthXY, ErrorDecayLengthXY
@@ -482,6 +511,10 @@ DECLARE_SOA_TABLE_STAGED(HfD0Mcs, "HFD0MC", //! Table with MC candidate info
482511 hf_cand_mc::OriginMcRec,
483512 o2::soa::Marker<MarkerD0>);
484513
514+ // ----------------
515+ // B+
516+ // ----------------
517+
485518// candidates for removal:
486519// PxProng0, PyProng0, PzProng0,... (same for 1, 2), we can keep Pt, Eta, Phi instead
487520// XY: CpaXY, DecayLengthXY, ErrorDecayLengthXY
@@ -558,6 +591,10 @@ DECLARE_SOA_TABLE_STAGED(HfBplusMcs, "HFBPMC", //! Table with MC candidate info
558591 hf_cand_mc::OriginMcRec,
559592 o2::soa::Marker<MarkerBplus>);
560593
594+ // ----------------
595+ // Lc
596+ // ----------------
597+
561598// candidates for removal:
562599// PxProng0, PyProng0, PzProng0,... (same for 1, 2), we can keep Pt, Eta, Phi instead
563600// XY: CpaXY, DecayLengthXY, ErrorDecayLengthXY
@@ -632,6 +669,78 @@ DECLARE_SOA_TABLE_STAGED(HfLcMcs, "HFLCMC", //! Table with MC candidate info
632669 hf_cand_mc::IsCandidateSwapped,
633670 o2::soa::Marker<MarkerLc>);
634671
672+ // ----------------
673+ // D+
674+ // ----------------
675+
676+ // candidates for removal:
677+ // PxProng0, PyProng0, PzProng0,... (same for 1, 2), we can keep Pt, Eta, Phi instead
678+ // XY: CpaXY, DecayLengthXY, ErrorDecayLengthXY
679+ // normalised: DecayLengthNormalised, DecayLengthXYNormalised, ImpactParameterNormalised0
680+ DECLARE_SOA_TABLE_STAGED (HfDplusPars, " HFDPPAR" , // ! Table with candidate properties used for selection
681+ hf_cand::Chi2PCA,
682+ hf_cand::NProngsContributorsPV,
683+ hf_cand_par::Cpa,
684+ hf_cand_par::CpaXY,
685+ hf_cand_par::DecayLength,
686+ hf_cand_par::DecayLengthXY,
687+ hf_cand_par::DecayLengthNormalised,
688+ hf_cand_par::DecayLengthXYNormalised,
689+ hf_cand_par::PtProng0,
690+ hf_cand_par::PtProng1,
691+ hf_cand_par::PtProng2,
692+ hf_cand::ImpactParameter0,
693+ hf_cand::ImpactParameter1,
694+ hf_cand::ImpactParameter2,
695+ hf_cand_par::ImpactParameterNormalised0,
696+ hf_cand_par::ImpactParameterNormalised1,
697+ hf_cand_par::ImpactParameterNormalised2,
698+ hf_cand_par::NSigTpcPi0,
699+ hf_cand_par::NSigTofPi0,
700+ hf_cand_par::NSigTpcTofPi0,
701+ hf_cand_par::NSigTpcKa1,
702+ hf_cand_par::NSigTofKa1,
703+ hf_cand_par::NSigTpcTofKa1,
704+ hf_cand_par::NSigTpcPi2,
705+ hf_cand_par::NSigTofPi2,
706+ hf_cand_par::NSigTpcTofPi2,
707+ o2::soa::Marker<MarkerDplus>);
708+
709+ DECLARE_SOA_TABLE_STAGED (HfDplusParEs, " HFDPPARE" , // ! Table with additional candidate properties used for selection
710+ hf_cand::XSecondaryVertex,
711+ hf_cand::YSecondaryVertex,
712+ hf_cand::ZSecondaryVertex,
713+ hf_cand::ErrorDecayLength,
714+ hf_cand::ErrorDecayLengthXY,
715+ hf_cand_par::RSecondaryVertex,
716+ hf_cand_par::PProng0,
717+ hf_cand_par::PProng1,
718+ hf_cand_par::PProng2,
719+ hf_cand::PxProng0,
720+ hf_cand::PyProng0,
721+ hf_cand::PzProng0,
722+ hf_cand::PxProng1,
723+ hf_cand::PyProng1,
724+ hf_cand::PzProng1,
725+ hf_cand::PxProng2,
726+ hf_cand::PyProng2,
727+ hf_cand::PzProng2,
728+ hf_cand::ErrorImpactParameter0,
729+ hf_cand::ErrorImpactParameter1,
730+ hf_cand::ErrorImpactParameter2,
731+ hf_cand_par::Ct,
732+ o2::soa::Marker<MarkerDplus>);
733+
734+ DECLARE_SOA_TABLE_STAGED (HfDplusMls, " HFDPML" , // ! Table with candidate selection ML scores
735+ hf_cand_mc::MlScores,
736+ o2::soa::Marker<MarkerDplus>);
737+
738+ DECLARE_SOA_TABLE_STAGED (HfDplusMcs, " HFDPMC" , // ! Table with MC candidate info
739+ hf_cand_mc::FlagMcMatchRec,
740+ hf_cand_mc::OriginMcRec,
741+ hf_cand_mc::IsCandidateSwapped, // useless
742+ o2::soa::Marker<MarkerDplus>);
743+
635744} // namespace o2::aod
636745
637746#endif // PWGHF_DATAMODEL_DERIVEDTABLES_H_
0 commit comments