Skip to content

Commit e1d7802

Browse files
[PWGHF] Add more tree filling option into the cd task (#15939)
1 parent 6f50b7b commit e1d7802

1 file changed

Lines changed: 112 additions & 39 deletions

File tree

PWGHF/D2H/Tasks/taskCd.cxx

Lines changed: 112 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,17 @@ DECLARE_SOA_COLUMN(Pt, pt, float); //! Transverse m
6969
DECLARE_SOA_COLUMN(Eta, eta, float); //! eta of candidate (GeV/c)
7070
DECLARE_SOA_COLUMN(Phi, phi, float); //! phi of candidate (GeV/c)
7171
DECLARE_SOA_COLUMN(PtProng0, ptProng0, float); //! Transverse momentum of prong 0 (GeV/c)
72+
DECLARE_SOA_COLUMN(PxProng0, pxProng0, float); //! Px of prong 0 (GeV/c)
73+
DECLARE_SOA_COLUMN(PyProng0, pyProng0, float); //! Py of prong 0 (GeV/c)
74+
DECLARE_SOA_COLUMN(PzProng0, pzProng0, float); //! Pz of prong 0 (GeV/c)
7275
DECLARE_SOA_COLUMN(PtProng1, ptProng1, float); //! Transverse momentum of prong 1 (GeV/c)
76+
DECLARE_SOA_COLUMN(PxProng1, pxProng1, float); //! Px of prong 1 (GeV/c)
77+
DECLARE_SOA_COLUMN(PyProng1, pyProng1, float); //! Py of prong 1 (GeV/c)
78+
DECLARE_SOA_COLUMN(PzProng1, pzProng1, float); //! Pz of prong 1 (GeV/c)
7379
DECLARE_SOA_COLUMN(PtProng2, ptProng2, float); //! Transverse momentum of prong 2 (GeV/c)
80+
DECLARE_SOA_COLUMN(PxProng2, pxProng2, float); //! Px of prong 2 (GeV/c)
81+
DECLARE_SOA_COLUMN(PyProng2, pyProng2, float); //! Py of prong 2 (GeV/c)
82+
DECLARE_SOA_COLUMN(PzProng2, pzProng2, float); //! Pz of prong 2 (GeV/c)
7483
DECLARE_SOA_COLUMN(ImpactParameter0, impactParameter0, float); //! Impact parameter (DCA to PV) of prong 0 (cm)
7584
DECLARE_SOA_COLUMN(ImpactParameter1, impactParameter1, float); //! Impact parameter (DCA to PV) of prong 1 (cm)
7685
DECLARE_SOA_COLUMN(ImpactParameter2, impactParameter2, float); //! Impact parameter (DCA to PV) of prong 2 (cm)
@@ -96,12 +105,13 @@ DECLARE_SOA_COLUMN(NTpcSignalsKa, nTpcSignalsKa, float); //! Number of TP
96105
DECLARE_SOA_COLUMN(NItsSignalsDe, nItsSignalsDe, float); //! Number of ITS signas
97106
DECLARE_SOA_COLUMN(CandidateSelFlag, candidateSelFlag, int8_t); //! Candidates falg
98107
DECLARE_SOA_COLUMN(Cent, cent, float); //! Centrality
108+
DECLARE_SOA_COLUMN(VtxZ, vtxZ, float); //! Vertex Z
99109
DECLARE_SOA_COLUMN(GIndexCol, gIndexCol, int); //! Global index for the collisionAdd commentMore actions
100110
DECLARE_SOA_COLUMN(TimeStamp, timeStamp, int64_t); //! Timestamp for the collision
101111
} // namespace full
102112

103-
// Full table: include ALL columns declared above
104-
DECLARE_SOA_TABLE(HfCandCd, "AOD", "HFCANDCD",
113+
// Lite table
114+
DECLARE_SOA_TABLE(HfCandCdLite, "AOD", "HFCANDCDLITE",
105115
full::MassCd,
106116
full::MassLc,
107117
full::Pt,
@@ -120,21 +130,51 @@ DECLARE_SOA_TABLE(HfCandCd, "AOD", "HFCANDCD",
120130
full::NSigmaTpcPr,
121131
full::NSigmaItsDe,
122132
full::NSigmaTofDe,
123-
full::NItsNClusterSize,
124-
full::NTpcSignalsDe,
125-
full::NTpcSignalsPi,
126-
full::NTpcSignalsKa,
127133
full::CandidateSelFlag,
128134
full::Cent);
135+
136+
// full table for local Rotation & Event Mixing
137+
DECLARE_SOA_TABLE(HfCandCdFull, "AOD", "HFCANDCDFULL",
138+
full::PxProng0,
139+
full::PyProng0,
140+
full::PzProng0,
141+
full::PxProng1,
142+
full::PyProng1,
143+
full::PzProng1,
144+
full::PxProng2,
145+
full::PyProng2,
146+
full::PzProng2,
147+
full::ImpactParameter0,
148+
full::ImpactParameter1,
149+
full::ImpactParameter2,
150+
full::DecayLength,
151+
full::Cpa,
152+
full::Chi2PCA,
153+
full::NSigmaTpcDe,
154+
full::NSigmaTpcPr,
155+
full::NSigmaItsDe,
156+
full::NSigmaTofDe,
157+
full::NSigmaTpcPi,
158+
full::NSigmaTofPi,
159+
full::NSigmaTpcKa,
160+
full::NSigmaTofKa,
161+
full::CandidateSelFlag,
162+
full::Cent,
163+
full::VtxZ,
164+
full::GIndexCol,
165+
full::TimeStamp);
129166
} // namespace o2::aod
130167

131168
struct HfTaskCd {
132169

133-
Produces<o2::aod::HfCandCd> rowCandCd;
170+
Produces<o2::aod::HfCandCdLite> rowCandCdLite;
171+
Produces<o2::aod::HfCandCdFull> rowCandCdFull;
172+
134173
Configurable<int> selectionFlagCd{"selectionFlagCd", 1, "Selection Flag for Cd"};
135174
Configurable<std::vector<double>> binsPt{"binsPt", std::vector<double>{hf_cuts_cd_to_de_k_pi::vecBinsPt}, "pT bin limits"};
136175
Configurable<bool> fillTHn{"fillTHn", false, "fill THn"};
137-
Configurable<bool> fillTree{"fillTree", false, "Flag to fill candiates tree"};
176+
Configurable<bool> fillCandLiteTree{"fillCandLiteTree", false, "Flag to fill candiates lite tree"};
177+
Configurable<bool> fillCandFullTree{"fillCandFullTree", false, "Flag to fill candiates full tree"};
138178

139179
SliceCache cache;
140180

@@ -272,8 +312,8 @@ struct HfTaskCd {
272312
auto thisCollId = collision.globalIndex();
273313
auto groupedCdCandidates = candidates.sliceBy(candCdPerCollision, thisCollId);
274314
auto numPvContributors = collision.numContrib();
275-
// auto bc = collision.template bc_as<BcType>();
276-
// int64_t timeStamp = bc.timestamp();
315+
auto bc = collision.template bc_as<BcType>();
316+
int64_t timeStamp = bc.timestamp();
277317

278318
for (const auto& candidate : groupedCdCandidates) {
279319
if (!TESTBIT(candidate.hfflag(), aod::hf_cand_3prong::DecayType::CdToDeKPi)) {
@@ -358,14 +398,15 @@ struct HfTaskCd {
358398
}
359399
}
360400

361-
if (fillTree) {
401+
if (fillCandLiteTree || fillCandFullTree) {
402+
362403
int candFlag = -999;
363404

364405
float nSigmaTpcDe = 0.f, nSigmaTpcKa = 0.f, nSigmaTpcPi = 0.f, nSigmaTpcPr = 0.f;
365406
float nSigmaItsDe = 0.f;
366407
float nSigmaTofDe = 0.f, nSigmaTofKa = 0.f, nSigmaTofPi = 0.f;
367408

368-
int itsNClusterSizeDe = 0;
409+
// int itsNClusterSizeDe = 0;
369410

370411
float tpcSignalsDe = 0.f;
371412
float tpcSignalsPi = 0.f;
@@ -401,7 +442,7 @@ struct HfTaskCd {
401442
nSigmaTpcPi = candidate.nSigTpcPi2();
402443
nSigmaTofPi = candidate.nSigTofPi2();
403444
nSigmaItsDe = prong0Its.itsNSigmaDe();
404-
itsNClusterSizeDe = prong0.itsClusterSizes();
445+
// itsNClusterSizeDe = prong0.itsClusterSizes();
405446
tpcSignalsDe = prong0.tpcSignal();
406447
tpcSignalsPi = prong2.tpcSignal();
407448
itsSignalsDe = itsSignal(prong0);
@@ -415,7 +456,7 @@ struct HfTaskCd {
415456
nSigmaTpcPi = candidate.nSigTpcPi0();
416457
nSigmaTofPi = candidate.nSigTofPi0();
417458
nSigmaItsDe = prong2Its.itsNSigmaDe();
418-
itsNClusterSizeDe = prong2.itsClusterSizes();
459+
// itsNClusterSizeDe = prong2.itsClusterSizes();
419460
tpcSignalsDe = prong2.tpcSignal();
420461
tpcSignalsPi = prong0.tpcSignal();
421462
itsSignalsDe = itsSignal(prong2);
@@ -435,31 +476,63 @@ struct HfTaskCd {
435476
registry.fill(HIST("Data/hNsigmaTPCKaVsP"), prong1.tpcInnerParam() * prong1.sign(), nSigmaTpcKa);
436477
registry.fill(HIST("Data/hNsigmaTOFKaVsP"), prong1.tpcInnerParam() * prong1.sign(), nSigmaTofKa);
437478

438-
rowCandCd(
439-
invMassCd,
440-
invMassLc,
441-
pt,
442-
eta,
443-
phi,
444-
ptProng0,
445-
ptProng1,
446-
ptProng2,
447-
candidate.impactParameter0(),
448-
candidate.impactParameter1(),
449-
candidate.impactParameter2(),
450-
decayLength,
451-
cpa,
452-
chi2PCA,
453-
nSigmaTpcDe,
454-
nSigmaTpcPr,
455-
nSigmaItsDe,
456-
nSigmaTofDe,
457-
itsNClusterSizeDe,
458-
tpcSignalsDe,
459-
tpcSignalsPi,
460-
tpcSignalsKa,
461-
candFlag,
462-
cent);
479+
if (fillCandLiteTree) {
480+
481+
rowCandCdLite(
482+
invMassCd,
483+
invMassLc,
484+
pt,
485+
eta,
486+
phi,
487+
ptProng0,
488+
ptProng1,
489+
ptProng2,
490+
candidate.impactParameter0(),
491+
candidate.impactParameter1(),
492+
candidate.impactParameter2(),
493+
decayLength,
494+
cpa,
495+
chi2PCA,
496+
nSigmaTpcDe,
497+
nSigmaTpcPr,
498+
nSigmaItsDe,
499+
nSigmaTofDe,
500+
candFlag,
501+
cent);
502+
}
503+
504+
if (fillCandFullTree) {
505+
506+
rowCandCdFull(
507+
candidate.pxProng0(),
508+
candidate.pyProng0(),
509+
candidate.pzProng0(),
510+
candidate.pxProng1(),
511+
candidate.pyProng1(),
512+
candidate.pzProng1(),
513+
candidate.pxProng2(),
514+
candidate.pyProng2(),
515+
candidate.pzProng2(),
516+
candidate.impactParameter0(),
517+
candidate.impactParameter1(),
518+
candidate.impactParameter2(),
519+
decayLength,
520+
cpa,
521+
chi2PCA,
522+
nSigmaTpcDe,
523+
nSigmaTpcPr,
524+
nSigmaItsDe,
525+
nSigmaTofDe,
526+
nSigmaTpcPi,
527+
nSigmaTofPi,
528+
nSigmaTpcKa,
529+
nSigmaTofKa,
530+
candFlag,
531+
cent,
532+
collision.posZ(),
533+
collision.globalIndex(),
534+
timeStamp);
535+
}
463536
}
464537
}
465538
}

0 commit comments

Comments
 (0)