Skip to content

Commit f4c687c

Browse files
authored
[PWGCF] Update femto framework (#14515)
1 parent f77124e commit f4c687c

26 files changed

+1048
-285
lines changed

PWGCF/Femto/Core/cascadeBuilder.h

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -398,20 +398,66 @@ class CascadeBuilder
398398
continue;
399399
}
400400

401+
collisionBuilder.template fillCollision<system>(collisionProducts, col);
402+
401403
// cleaner, but without ITS pid: auto bachelor = cascade.template bachelor_as<T7>();
402404
auto bachelor = tracksWithItsPid.iteratorAt(cascade.bachelorId() - tracksWithItsPid.offset());
405+
bachelorIndex = trackBuilder.template getDaughterIndex<modes::Track::kCascadeBachelor>(bachelor, trackProducts, collisionProducts);
406+
403407
// cleaner, but without ITS pid: auto posDaughter = cascade.template posTrack_as<T7>();
404408
auto posDaughter = tracksWithItsPid.iteratorAt(cascade.posTrackId() - tracksWithItsPid.offset());
409+
posDaughterIndex = trackBuilder.template getDaughterIndex<modes::Track::kV0Daughter>(posDaughter, trackProducts, collisionProducts);
410+
405411
// cleaner, but without ITS pid: auto negDaughter = cascade.template negTrack_as<T7>();
406412
auto negDaughter = tracksWithItsPid.iteratorAt(cascade.negTrackId() - tracksWithItsPid.offset());
413+
negDaughterIndex = trackBuilder.template getDaughterIndex<modes::Track::kV0Daughter>(negDaughter, trackProducts, collisionProducts);
407414

408-
collisionBuilder.template fillCollision<system>(collisionProducts, col);
415+
fillCascade(collisionProducts, cascadeProducts, cascade, col, bachelorIndex, posDaughterIndex, negDaughterIndex);
416+
}
417+
}
409418

410-
bachelorIndex = trackBuilder.template getDaughterIndex<modes::Track::kCascadeBachelor>(bachelor, trackProducts, collisionProducts);
411-
posDaughterIndex = trackBuilder.template getDaughterIndex<modes::Track::kV0Daughter>(posDaughter, trackProducts, collisionProducts);
412-
negDaughterIndex = trackBuilder.template getDaughterIndex<modes::Track::kV0Daughter>(negDaughter, trackProducts, collisionProducts);
419+
template <modes::System system, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
420+
void fillMcCascades(T1 const& col, T2& collisionBuilder, T3& collisionProducts, T4 const& mcCols, T5& trackProducts, T6& cascadeProducts, T7 const& cascades, T8 const& tracks, T9 const& tracksWithItsPid, T10& trackBuilder, T11 const& mcParticles, T12& mcBuilder, T13& mcProducts)
421+
{
422+
if (!mFillAnyTable) {
423+
return;
424+
}
425+
426+
int64_t bachelorIndex = 0;
427+
int64_t posDaughterIndex = 0;
428+
int64_t negDaughterIndex = 0;
429+
for (const auto& cascade : cascades) {
430+
if (!mCascadeSelection.checkFilters(cascade)) {
431+
continue;
432+
}
433+
mCascadeSelection.applySelections(cascade, tracks, col);
434+
if (!mCascadeSelection.passesAllRequiredSelections()) {
435+
continue;
436+
}
437+
438+
collisionBuilder.template fillMcCollision<system>(collisionProducts, col, mcCols, mcProducts, mcBuilder);
439+
440+
auto bachelor = tracks.iteratorAt(cascade.bachelorId() - tracks.offset());
441+
auto bachelorWithItsPid = tracksWithItsPid.iteratorAt(cascade.bachelorId() - tracksWithItsPid.offset());
442+
bachelorIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kCascadeBachelor>(col, collisionProducts, mcCols, bachelor, bachelorWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts);
443+
444+
auto posDaughter = tracks.iteratorAt(cascade.posTrackId() - tracks.offset());
445+
auto posDaughterWithItsPid = tracksWithItsPid.iteratorAt(cascade.posTrackId() - tracksWithItsPid.offset());
446+
posDaughterIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kCascadeBachelor>(col, collisionProducts, mcCols, posDaughter, posDaughterWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts);
447+
448+
auto negDaughter = tracks.iteratorAt(cascade.negTrackId() - tracks.offset());
449+
auto negDaughterWithItsPid = tracksWithItsPid.iteratorAt(cascade.negTrackId() - tracksWithItsPid.offset());
450+
negDaughterIndex = trackBuilder.template getDaughterIndex<system, modes::Track::kCascadeBachelor>(col, collisionProducts, mcCols, negDaughter, negDaughterWithItsPid, trackProducts, mcParticles, mcBuilder, mcProducts);
413451

414452
fillCascade(collisionProducts, cascadeProducts, cascade, col, bachelorIndex, posDaughterIndex, negDaughterIndex);
453+
if constexpr (modes::isEqual(cascadeType, modes::Cascade::kXi)) {
454+
mcBuilder.template fillMcXiWithLabel<system>(col, mcCols, cascade, mcParticles, mcProducts);
455+
;
456+
}
457+
if constexpr (modes::isEqual(cascadeType, modes::Cascade::kOmega)) {
458+
mcBuilder.template fillMcOmegaWithLabel<system>(col, mcCols, cascade, mcParticles, mcProducts);
459+
;
460+
}
415461
}
416462
}
417463

0 commit comments

Comments
 (0)