Skip to content

Commit 3f1cd40

Browse files
committed
Feat: add process function for tracks, v0s, kinks, cascades and photons
1 parent bab3448 commit 3f1cd40

1 file changed

Lines changed: 31 additions & 4 deletions

File tree

‎PWGCF/Femto/TableProducer/femtoProducer.cxx‎

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,24 +228,25 @@ struct FemtoProducer {
228228
if ((xiBuilder.fillAnyTable() || omegaBuilder.fillAnyTable()) &&
229229
(!doprocessTracksV0sCascadesRun3pp && !doprocessTracksV0sCascadesRun3PbPb &&
230230
!doprocessTracksV0sCascadesRun3PbPbWithEventShape &&
231-
!doprocessTracksV0sCascadesKinksRun3pp && !doprocessTracksV0sCascadesRun3ppMc &&
231+
!doprocessTracksV0sCascadesKinksRun3pp && !doprocessTracksV0sCascadesKinksPhotonsRun3pp &&
232+
!doprocessTracksV0sCascadesRun3ppMc &&
232233
!doprocessTracksV0sCascadesRun3PbPbMc)) {
233234
LOG(fatal) << "At least one cascade table is enabled, but wrong process function is enabled. Breaking...";
234235
}
235236
if ((lambdaBuilder.fillAnyTable() || antilambdaBuilder.fillAnyTable() || k0shortBuilder.fillAnyTable()) &&
236237
(!doprocessTracksV0sCascadesRun3pp && !doprocessTracksV0sCascadesRun3PbPb &&
237-
!doprocessTracksV0sRun3pp && !doprocessTracksV0sCascadesKinksRun3pp &&
238+
!doprocessTracksV0sRun3pp && !doprocessTracksV0sCascadesKinksRun3pp && !doprocessTracksV0sCascadesKinksPhotonsRun3pp &&
238239
!doprocessTracksV0sCascadesRun3PbPbWithEventShape &&
239240
!doprocessTracksV0sRun3ppMc && !doprocessTracksV0sRun3PbPb && !doprocessTracksV0sRun3PbPbMc &&
240241
!doprocessTracksV0sCascadesRun3ppMc && !doprocessTracksV0sCascadesRun3PbPbMc &&
241242
!doprocessTracksV0sKinksRun3ppMc)) {
242243
LOG(fatal) << "At least one v0 table is enabled, but wrong process function is enabled. Breaking...";
243244
}
244-
if (photonBuilder.fillAnyTable() && (!doprocessTracksPhotonsRun3pp && !doprocessTracksPhotonsRun3PbPb)) {
245+
if (photonBuilder.fillAnyTable() && (!doprocessTracksPhotonsRun3pp && !doprocessTracksPhotonsRun3PbPb && !doprocessTracksV0sCascadesKinksPhotonsRun3pp)) {
245246
LOG(fatal) << "At least one photon table is enabled, but wrong process function is enabled. Breaking...";
246247
}
247248
if ((sigmaBuilder.fillAnyTable() || sigmaPlusBuilder.fillAnyTable()) &&
248-
(!doprocessTracksKinksRun3pp && !doprocessTracksV0sCascadesKinksRun3pp &&
249+
(!doprocessTracksKinksRun3pp && !doprocessTracksV0sCascadesKinksRun3pp && !doprocessTracksV0sCascadesKinksPhotonsRun3pp &&
249250
!doprocessTracksKinksRun3ppMc && !doprocessTracksV0sKinksRun3ppMc)) {
250251
LOG(fatal) << "At least one kink table is enabled, but wrong process function is enabled. Breaking...";
251252
}
@@ -346,6 +347,7 @@ struct FemtoProducer {
346347
static_cast<int>(doprocessTracksV0sCascadesRun3PbPbWithEventShape) +
347348
static_cast<int>(doprocessTracksKinksRun3pp) +
348349
static_cast<int>(doprocessTracksV0sCascadesKinksRun3pp) +
350+
static_cast<int>(doprocessTracksV0sCascadesKinksPhotonsRun3pp) +
349351
static_cast<int>(doprocessTracksD0sRun3pp) +
350352
static_cast<int>(doprocessTracksD0sRun3PbPb) +
351353
static_cast<int>(doprocessTracksRun3ppMc) +
@@ -701,6 +703,31 @@ struct FemtoProducer {
701703
}
702704
PROCESS_SWITCH(FemtoProducer, processTracksV0sCascadesKinksRun3pp, "Provide tracks, v0s, cascades and kinks", false);
703705

706+
void processTracksV0sCascadesKinksPhotonsRun3pp(rawinputs::Run3PpCollisions::iterator const& col,
707+
o2::aod::BCsWithTimestamps const& bcs,
708+
rawinputs::Run3FullPidTracks const& tracks,
709+
rawinputs::Run3Vzeros const& v0s,
710+
rawinputs::Run3Cascades const& cascades,
711+
rawinputs::Run3Kinks const& kinks,
712+
o2::aod::V0PhotonsKF const& photons,
713+
o2::aod::V0Legs const& v0legs)
714+
{
715+
if (!processCollisions<modes::System::kPP_Run3>(col, bcs, tracks)) {
716+
return;
717+
}
718+
auto tracksWithItsPid = o2::soa::Attach<rawinputs::Run3FullPidTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
719+
o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracks);
720+
processTracks<modes::System::kPP_Run3>(col, tracksWithItsPid);
721+
processV0s<modes::System::kPP_Run3>(col, tracks, v0s);
722+
processCascades<modes::System::kPP_Run3>(col, tracks, cascades);
723+
processKinks<modes::System::kPP_Run3>(col, tracks, kinks);
724+
// V0PhotonsKF/V0Legs carry a plain CollisionId column (not a framework index column), so they
725+
// are not auto-grouped by the DPL binder and must be sliced manually, same as EMPhotonFilter.cxx
726+
auto photonsThisCol = photons.sliceBy(perColRecoPCMPhotons, col.globalIndex());
727+
processPhotons<modes::System::kPP_Run3>(col, photonsThisCol, v0legs);
728+
}
729+
PROCESS_SWITCH(FemtoProducer, processTracksV0sCascadesKinksPhotonsRun3pp, "Provide tracks, v0s, cascades, kinks and PCM photons", false);
730+
704731
void processTracksD0sRun3pp(rawinputs::Run3PpCollisions::iterator const& col,
705732
o2::aod::BCsWithTimestamps const& bcs,
706733
rawinputs::Run3FullPidTracks const& tracks,

0 commit comments

Comments
 (0)