Skip to content

Commit e7cc03c

Browse files
authored
Update taskXic0ToXiPi.cxx
1 parent ecb66b4 commit e7cc03c

File tree

1 file changed

+52
-68
lines changed

1 file changed

+52
-68
lines changed

PWGHF/D2H/Tasks/taskXic0ToXiPi.cxx

Lines changed: 52 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,10 @@ struct HfTaskXic0ToXiPi {
106106

107107
void init(InitContext&)
108108
{
109-
std::array<bool, 16> doprocess{doprocessDataWithDCAFitter, doprocessDataWithDCAFitterMl, doprocessDataWithDCAFitterFT0C, doprocessDataWithDCAFitterFT0M, doprocessDataWithDCAFitterMlFT0C, doprocessDataWithDCAFitterMlFT0M,
110-
doprocessDataWithKFParticle, doprocessDataWithKFParticleMl, doprocessDataWithKFParticleFT0C, doprocessDataWithKFParticleFT0M, doprocessDataWithKFParticleMlFT0C, doprocessDataWithKFParticleMlFT0M,
111-
doprocessMcWithKFParticle, doprocessMcWithKFParticleMl, doprocessMcWithDCAFitter, doprocessMcWithDCAFitterMl};
109+
std::array<bool, 16> doprocess{doprocessDataWithDCAFitter, doprocessDataWithDCAFitterMl, doprocessDataWithDCAFitterFT0C, doprocessDataWithDCAFitterFT0M, doprocessDataWithDCAFitterMlFT0C, doprocessDataWithDCAFitterMlFT0M, \
110+
doprocessDataWithKFParticle, doprocessDataWithKFParticleMl, doprocessDataWithKFParticleFT0C, doprocessDataWithKFParticleFT0M, doprocessDataWithKFParticleMlFT0C, doprocessDataWithKFParticleMlFT0M, \
111+
doprocessMcWithKFParticle, doprocessMcWithKFParticleMl,doprocessMcWithDCAFitter, doprocessMcWithDCAFitterMl
112+
};
112113
if ((std::accumulate(doprocess.begin(), doprocess.end(), 0)) != 1) {
113114
LOGP(fatal, "One and only one process function should be enabled at a time.");
114115
}
@@ -158,32 +159,14 @@ struct HfTaskXic0ToXiPi {
158159
}
159160
}
160161

161-
template <bool applyMl, typename CandType, typename CollType>
162-
void processData(const CandType& candidates, CollType const&)
163-
{
164-
for (const auto& candidate : candidates) {
165-
if (candidate.resultSelections() != true) {
166-
continue;
167-
}
168-
if (yCandRecMax >= 0. && std::abs(candidate.etaCharmBaryon()) > yCandRecMax) {
169-
continue;
170-
}
171-
172-
if constexpr (applyMl) {
173-
registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsXic0Type"), candidate.mlProbToXiPi()[0], candidate.invMassCharmBaryon(), candidate.ptXic(), candidate.etaCharmBaryon());
174-
} else {
175-
registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsXic0Type"), candidate.invMassCharmBaryon(), candidate.ptXic(), candidate.etaCharmBaryon());
176-
}
177-
}
178-
}
179-
180-
template <bool useCentrality, bool applyMl, typename CandType, typename CollType>
162+
template <bool useKfParticle, bool useCentrality, bool applyMl, typename CandType, typename CollType>
181163
void processDataCent(const CandType& candidate, CollType const& collision)
182164
{
183165
if (candidate.resultSelections() != true) {
184166
return;
185167
}
186-
if (yCandRecMax >= 0. && std::abs(candidate.etaCharmBaryon()) > yCandRecMax) {
168+
double etaCharmBaryon = useKfParticle ? candidate.kfRapXic() : candidate.etaCharmBaryon();
169+
if (yCandRecMax >= 0. && std::abs(etaCharmBaryon) > yCandRecMax) {
187170
return;
188171
}
189172

@@ -199,22 +182,22 @@ struct HfTaskXic0ToXiPi {
199182
candidate.mlProbToXiPi()[0],
200183
candidate.invMassCharmBaryon(),
201184
ptXic,
202-
candidate.etaCharmBaryon(),
185+
etaCharmBaryon,
203186
centrality,
204187
ptPiFromXic,
205188
numPvContributors);
206189
} else {
207190
registry.fill(HIST("hMassVsPtVsYVsCentVsPtPion"),
208191
candidate.invMassCharmBaryon(),
209192
ptXic,
210-
candidate.etaCharmBaryon(),
193+
etaCharmBaryon,
211194
centrality,
212195
ptPiFromXic,
213196
numPvContributors);
214197
}
215198
}
216199

217-
template <bool applyMl, typename CandType, typename CollType>
200+
template <bool useKfParticle, bool applyMl, typename CandType, typename CollType>
218201
void processMc(const CandType& candidates,
219202
Xic0Gen const& mcParticles,
220203
TracksMc const&,
@@ -224,20 +207,21 @@ struct HfTaskXic0ToXiPi {
224207
// MC rec.
225208
for (const auto& candidate : candidates) {
226209
if (candidate.resultSelections() != true) {
227-
continue;
210+
return;
228211
}
229-
if (yCandRecMax >= 0. && std::abs(candidate.etaCharmBaryon()) > yCandRecMax) {
230-
continue;
212+
double etaCharmBaryon = useKfParticle ? candidate.kfRapXic() : candidate.etaCharmBaryon();
213+
if (yCandRecMax >= 0. && std::abs(etaCharmBaryon) > yCandRecMax) {
214+
return;
231215
}
232216

233217
auto numPvContributors = candidate.template collision_as<CollType>().numContrib();
234-
double ptXic = RecoDecay::pt(candidate.pxCharmBaryon(), candidate.pyCharmBaryon());
218+
double ptXic = RecoDecay::pt(candidate.pxCharmBaryon(), candidate.pyCharmBaryon());
235219
if constexpr (applyMl) {
236220
registry.fill(HIST("hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsXic0Type"),
237221
candidate.mlProbToXiPi()[0],
238222
candidate.invMassCharmBaryon(),
239223
ptXic,
240-
candidate.etaCharmBaryon(),
224+
etaCharmBaryon,
241225
candidate.ptBhadMotherPart(),
242226
candidate.originMcRec(),
243227
candidate.flagMcMatchRec(),
@@ -246,7 +230,7 @@ struct HfTaskXic0ToXiPi {
246230
registry.fill(HIST("hMassVsPtVsPtBVsYVsOriginVsXic0Type"),
247231
candidate.invMassCharmBaryon(),
248232
ptXic,
249-
candidate.etaCharmBaryon(),
233+
etaCharmBaryon,
250234
candidate.ptBhadMotherPart(),
251235
candidate.originMcRec(),
252236
candidate.flagMcMatchRec(),
@@ -287,15 +271,15 @@ struct HfTaskXic0ToXiPi {
287271
}
288272
}
289273
}
290-
274+
291275
void processDataWithDCAFitter(Xic0Cands const& candidates,
292276
CollisionsWithEvSels const& collisions)
293277
{
294278
for (const auto& collision : collisions) {
295279
auto thisCollId = collision.globalIndex();
296280
auto groupedXicCandidates = candidates.sliceBy(candXicPerCollision, thisCollId);
297281
for (const auto& candidate : groupedXicCandidates) {
298-
processDataCent<false, false>(candidate, collision);
282+
processDataCent<false, false, false>(candidate, collision);
299283
}
300284
}
301285
}
@@ -308,20 +292,20 @@ struct HfTaskXic0ToXiPi {
308292
auto thisCollId = collision.globalIndex();
309293
auto groupedXicCandidates = candidates.sliceBy(candXicKFPerCollision, thisCollId);
310294
for (const auto& candidate : groupedXicCandidates) {
311-
processDataCent<false, false>(candidate, collision);
295+
processDataCent<true, false, false>(candidate, collision);
312296
}
313297
}
314298
}
315299
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticle, "process HfTaskXic0ToXiPi with KFParticle", true);
316300

317301
void processDataWithDCAFitterMl(Xic0CandsMl const& candidates,
318-
CollisionsWithEvSels const& collisions)
302+
CollisionsWithEvSels const& collisions)
319303
{
320304
for (const auto& collision : collisions) {
321305
auto thisCollId = collision.globalIndex();
322306
auto groupedXicCandidates = candidates.sliceBy(candXicMlPerCollision, thisCollId);
323307
for (const auto& candidate : groupedXicCandidates) {
324-
processDataCent<false, true>(candidate, collision);
308+
processDataCent<false, false, true>(candidate, collision);
325309
}
326310
}
327311
}
@@ -334,20 +318,20 @@ struct HfTaskXic0ToXiPi {
334318
auto thisCollId = collision.globalIndex();
335319
auto groupedXicCandidates = candidates.sliceBy(candXicKFMlPerCollision, thisCollId);
336320
for (const auto& candidate : groupedXicCandidates) {
337-
processDataCent<false, true>(candidate, collision);
321+
processDataCent<true, false, true>(candidate, collision);
338322
}
339323
}
340324
}
341325
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleMl, "process HfTaskXic0ToXiPi with KFParticle and ML selections", false);
342326

343327
void processDataWithDCAFitterFT0C(Xic0Cands const& candidates,
344-
CollisionsWithFT0C const& collisions)
328+
CollisionsWithFT0C const& collisions)
345329
{
346330
for (const auto& collision : collisions) {
347331
auto thisCollId = collision.globalIndex();
348332
auto groupedXicCandidates = candidates.sliceBy(candXicPerCollision, thisCollId);
349333
for (const auto& candidate : groupedXicCandidates) {
350-
processDataCent<true, false>(candidate, collision);
334+
processDataCent<false, true, false>(candidate, collision);
351335
}
352336
}
353337
}
@@ -360,20 +344,20 @@ struct HfTaskXic0ToXiPi {
360344
auto thisCollId = collision.globalIndex();
361345
auto groupedXicCandidates = candidates.sliceBy(candXicKFPerCollision, thisCollId);
362346
for (const auto& candidate : groupedXicCandidates) {
363-
processDataCent<true, false>(candidate, collision);
347+
processDataCent<true, true, false>(candidate, collision);
364348
}
365349
}
366350
}
367351
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleFT0C, "process HfTaskXic0ToXiPi with KFParticle and with FT0C centrality", false);
368352

369353
void processDataWithDCAFitterFT0M(Xic0Cands const& candidates,
370-
CollisionsWithFT0M const& collisions)
354+
CollisionsWithFT0M const& collisions)
371355
{
372356
for (const auto& collision : collisions) {
373357
auto thisCollId = collision.globalIndex();
374358
auto groupedXicCandidates = candidates.sliceBy(candXicPerCollision, thisCollId);
375359
for (const auto& candidate : groupedXicCandidates) {
376-
processDataCent<true, false>(candidate, collision);
360+
processDataCent<false, true, false>(candidate, collision);
377361
}
378362
}
379363
}
@@ -386,48 +370,48 @@ struct HfTaskXic0ToXiPi {
386370
auto thisCollId = collision.globalIndex();
387371
auto groupedXicCandidates = candidates.sliceBy(candXicKFPerCollision, thisCollId);
388372
for (const auto& candidate : groupedXicCandidates) {
389-
processDataCent<true, false>(candidate, collision);
373+
processDataCent<true, true, false>(candidate, collision);
390374
}
391375
}
392376
}
393377
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleFT0M, "process HfTaskXic0ToXiPi with KFParticle and with FT0M centrality", false);
394378

395379
void processDataWithDCAFitterMlFT0C(Xic0CandsMl const& candidates,
396-
CollisionsWithFT0C const& collisions)
380+
CollisionsWithFT0C const& collisions)
397381
{
398382
for (const auto& collision : collisions) {
399383
auto thisCollId = collision.globalIndex();
400384
auto groupedXicCandidates = candidates.sliceBy(candXicMlPerCollision, thisCollId);
401385
for (const auto& candidate : groupedXicCandidates) {
402-
processDataCent<true, true>(candidate, collision);
386+
processDataCent<false, true, true>(candidate, collision);
403387
}
404-
}
388+
}
405389
}
406390
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithDCAFitterMlFT0C, "process HfTaskXic0ToXiPi with DCAFitter and ML selections and with FT0C centrality", false);
407-
391+
408392
void processDataWithKFParticleMlFT0C(Xic0CandsMlKF const& candidates,
409393
CollisionsWithFT0C const& collisions)
410394
{
411395
for (const auto& collision : collisions) {
412396
auto thisCollId = collision.globalIndex();
413397
auto groupedXicCandidates = candidates.sliceBy(candXicKFMlPerCollision, thisCollId);
414398
for (const auto& candidate : groupedXicCandidates) {
415-
processDataCent<true, true>(candidate, collision);
399+
processDataCent<true, true, true>(candidate, collision);
416400
}
417-
}
401+
}
418402
}
419403
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleMlFT0C, "process HfTaskXic0ToXiPi with KFParticle and ML selections and with FT0C centrality", false);
420404

421405
void processDataWithDCAFitterMlFT0M(Xic0CandsMl const& candidates,
422-
CollisionsWithFT0M const& collisions)
406+
CollisionsWithFT0M const& collisions)
423407
{
424408
for (const auto& collision : collisions) {
425409
auto thisCollId = collision.globalIndex();
426410
auto groupedXicCandidates = candidates.sliceBy(candXicMlPerCollision, thisCollId);
427411
for (const auto& candidate : groupedXicCandidates) {
428-
processDataCent<true, true>(candidate, collision);
412+
processDataCent<false, true, true>(candidate, collision);
429413
}
430-
}
414+
}
431415
}
432416
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithDCAFitterMlFT0M, "process HfTaskXic0ToXiPi with DCAFitter and ML selections and with FT0M centrality", false);
433417

@@ -438,19 +422,19 @@ struct HfTaskXic0ToXiPi {
438422
auto thisCollId = collision.globalIndex();
439423
auto groupedXicCandidates = candidates.sliceBy(candXicKFMlPerCollision, thisCollId);
440424
for (const auto& candidate : groupedXicCandidates) {
441-
processDataCent<true, true>(candidate, collision);
425+
processDataCent<true, true, true>(candidate, collision);
442426
}
443-
}
427+
}
444428
}
445429
PROCESS_SWITCH(HfTaskXic0ToXiPi, processDataWithKFParticleMlFT0M, "process HfTaskXic0ToXiPi with KFParticle and ML selections and with FT0M centrality", false);
446430

447431
void processMcWithDCAFitter(Xic0CandsMc const& Xic0CandidatesMc,
448-
Xic0Gen const& mcParticles,
449-
TracksMc const& tracks,
450-
CollisionsWithMcLabels const& collisions,
451-
aod::McCollisions const& mcCollisions)
432+
Xic0Gen const& mcParticles,
433+
TracksMc const& tracks,
434+
CollisionsWithMcLabels const& collisions,
435+
aod::McCollisions const& mcCollisions)
452436
{
453-
processMc<false>(Xic0CandidatesMc, mcParticles, tracks, collisions, mcCollisions);
437+
processMc<false, false>(Xic0CandidatesMc, mcParticles, tracks, collisions, mcCollisions);
454438
}
455439
PROCESS_SWITCH(HfTaskXic0ToXiPi, processMcWithDCAFitter, "Process MC with KFParticle", false);
456440

@@ -460,17 +444,17 @@ struct HfTaskXic0ToXiPi {
460444
CollisionsWithMcLabels const& collisions,
461445
aod::McCollisions const& mcCollisions)
462446
{
463-
processMc<false>(Xic0CandidatesMcKF, mcParticles, tracks, collisions, mcCollisions);
447+
processMc<true, false>(Xic0CandidatesMcKF, mcParticles, tracks, collisions, mcCollisions);
464448
}
465449
PROCESS_SWITCH(HfTaskXic0ToXiPi, processMcWithKFParticle, "Process MC with KFParticle", false);
466450

467451
void processMcWithDCAFitterMl(Xic0CandsMlMc const& Xic0CandidatesMlMc,
468-
Xic0Gen const& mcParticles,
469-
TracksMc const& tracks,
470-
CollisionsWithMcLabels const& collisions,
471-
aod::McCollisions const& mcCollisions)
452+
Xic0Gen const& mcParticles,
453+
TracksMc const& tracks,
454+
CollisionsWithMcLabels const& collisions,
455+
aod::McCollisions const& mcCollisions)
472456
{
473-
processMc<true>(Xic0CandidatesMlMc, mcParticles, tracks, collisions, mcCollisions);
457+
processMc<false, true>(Xic0CandidatesMlMc, mcParticles, tracks, collisions, mcCollisions);
474458
}
475459
PROCESS_SWITCH(HfTaskXic0ToXiPi, processMcWithDCAFitterMl, "Process MC with KFParticle and ML selections", false);
476460

@@ -480,7 +464,7 @@ struct HfTaskXic0ToXiPi {
480464
CollisionsWithMcLabels const& collisions,
481465
aod::McCollisions const& mcCollisions)
482466
{
483-
processMc<true>(Xic0CandidatesMlMcKF, mcParticles, tracks, collisions, mcCollisions);
467+
processMc<true, true>(Xic0CandidatesMlMcKF, mcParticles, tracks, collisions, mcCollisions);
484468
}
485469
PROCESS_SWITCH(HfTaskXic0ToXiPi, processMcWithKFParticleMl, "Process MC with KFParticle and ML selections", false);
486470
};

0 commit comments

Comments
 (0)