Skip to content

Commit 3824f78

Browse files
authored
[PWGHF] Add D+ derived-data creator (#9795)
1 parent fc09600 commit 3824f78

File tree

3 files changed

+516
-11
lines changed

3 files changed

+516
-11
lines changed

PWGHF/DataModel/DerivedTables.h

Lines changed: 120 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,15 @@
3131
namespace 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
6263
DECLARE_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+
118124
namespace hf_cand_base
119125
{
120126
DECLARE_SOA_COLUMN(Eta, eta, float); //! pseudorapidity
@@ -161,6 +167,7 @@ DECLARE_SOA_COLUMN(OriginMcGen, originMcGen, int8_t); //! particle
161167
DECLARE_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+
260284
DECLARE_2P_TABLES(D0, "D0", d0, 2);
261285
DECLARE_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); //
417442
DECLARE_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_

PWGHF/TableProducer/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,11 @@ o2physics_add_dpl_workflow(derived-data-creator-d0-to-k-pi
305305
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
306306
COMPONENT_NAME Analysis)
307307

308+
o2physics_add_dpl_workflow(derived-data-creator-dplus-to-pi-k-pi
309+
SOURCES derivedDataCreatorDplusToPiKPi.cxx
310+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
311+
COMPONENT_NAME Analysis)
312+
308313
o2physics_add_dpl_workflow(derived-data-creator-lc-to-p-k-pi
309314
SOURCES derivedDataCreatorLcToPKPi.cxx
310315
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore

0 commit comments

Comments
 (0)