@@ -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