@@ -270,11 +270,13 @@ struct FemtoProducer {
270270 }
271271 if ((builders.sigmaBuilder .fillAnyTable () || builders.sigmaPlusBuilder .fillAnyTable ()) &&
272272 (!doprocessTracksKinksRun3pp && !doprocessTracksV0sCascadesKinksRun3pp && !doprocessTracksV0sCascadesKinksPhotonsRun3pp &&
273- !doprocessTracksKinksRun3ppMc && !doprocessTracksV0sKinksRun3ppMc)) {
273+ !doprocessTracksKinksRun3ppMc && !doprocessTracksV0sKinksRun3ppMc &&
274+ !doprocessTracksKinksSigmaPlusPcmsRun3pp && !doprocessTracksKinksSigmaPlusPcmsRun3ppMc)) {
274275 LOG (fatal) << " At least one kink table is enabled, but wrong process function is enabled. Breaking..." ;
275276 }
276277 if (builders.sigmaPlusPcmBuilder .fillAnyTable () &&
277- (!doprocessTracksSigmaPlusPcmsRun3pp && !doprocessTracksSigmaPlusPcmsRun3ppMc)) {
278+ (!doprocessTracksSigmaPlusPcmsRun3pp && !doprocessTracksSigmaPlusPcmsRun3ppMc &&
279+ !doprocessTracksKinksSigmaPlusPcmsRun3pp && !doprocessTracksKinksSigmaPlusPcmsRun3ppMc)) {
278280 LOG (fatal) << " At least one sigma plus (PCM) table is enabled, but wrong process function is enabled. Breaking..." ;
279281 }
280282 if ((builders.d0Builder .fillAnyTable () || builders.d0barBuilder .fillAnyTable ()) &&
@@ -292,7 +294,7 @@ struct FemtoProducer {
292294 !doprocessTracksV0sRun3ppMc && !doprocessTracksV0sRun3PbPbMc &&
293295 !doprocessTracksV0sCascadesRun3ppMc && !doprocessTracksV0sCascadesRun3PbPbMc &&
294296 !doprocessTracksKinksRun3ppMc && !doprocessTracksV0sKinksRun3ppMc &&
295- !doprocessTracksSigmaPlusPcmsRun3ppMc &&
297+ !doprocessTracksSigmaPlusPcmsRun3ppMc && !doprocessTracksKinksSigmaPlusPcmsRun3ppMc &&
296298 !doprocessTracksD0sRun3ppMc && !doprocessTracksD0sRun3PbPbMc &&
297299 !doprocessTracksLcsRun3ppMc && !doprocessTracksLcsRun3PbPbMc &&
298300 !doprocessMcOnly)) {
@@ -379,6 +381,7 @@ struct FemtoProducer {
379381 static_cast <int >(doprocessTracksV0sCascadesKinksRun3pp) +
380382 static_cast <int >(doprocessTracksV0sCascadesKinksPhotonsRun3pp) +
381383 static_cast <int >(doprocessTracksSigmaPlusPcmsRun3pp) +
384+ static_cast <int >(doprocessTracksKinksSigmaPlusPcmsRun3pp) +
382385 static_cast <int >(doprocessTracksD0sRun3pp) +
383386 static_cast <int >(doprocessTracksD0sRun3PbPb) +
384387 static_cast <int >(doprocessTracksRun3ppMc) +
@@ -390,6 +393,7 @@ struct FemtoProducer {
390393 static_cast <int >(doprocessTracksKinksRun3ppMc) +
391394 static_cast <int >(doprocessTracksV0sKinksRun3ppMc) +
392395 static_cast <int >(doprocessTracksSigmaPlusPcmsRun3ppMc) +
396+ static_cast <int >(doprocessTracksKinksSigmaPlusPcmsRun3ppMc) +
393397 static_cast <int >(doprocessTracksD0sRun3ppMc) +
394398 static_cast <int >(doprocessTracksD0sRun3PbPbMc) +
395399 static_cast <int >(doprocessTracksLcsRun3pp) +
@@ -833,6 +837,29 @@ struct FemtoProducer {
833837 }
834838 PROCESS_SWITCH (FemtoProducer, processTracksSigmaPlusPcmsRun3pp, " Provide tracks and sigma plus reconstructed with a PCM photon" , false );
835839
840+ void processTracksKinksSigmaPlusPcmsRun3pp (rawinputs::Run3PpCollisions const & cols,
841+ o2::aod::BCsWithTimestamps const & bcs,
842+ rawinputs::Run3FullPidTracks const & tracks,
843+ rawinputs::Run3Kinks const & kinks,
844+ rawinputs::Run3SigmaPlusPcms const & sigmaPlusPcms)
845+ {
846+ builders.trackBuilder .reset (tracks);
847+ for (auto const & col : cols) {
848+ auto tracksThisCol = tracks.sliceBy (preslices.perColTracks , col.globalIndex ());
849+ if (!processCollisions<modes::System::kPP_Run3 >(col, bcs, tracksThisCol)) {
850+ continue ;
851+ }
852+ auto tracksWithItsPid = o2::soa::Attach<rawinputs::Run3FullPidTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
853+ o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracksThisCol);
854+ processTracks<modes::System::kPP_Run3 >(col, tracksWithItsPid);
855+ auto kinksThisCol = kinks.sliceBy (preslices.perColRecoKinks , col.globalIndex ());
856+ processKinks<modes::System::kPP_Run3 >(col, tracksThisCol, kinksThisCol);
857+ auto sigmaPlusPcmsThisCol = sigmaPlusPcms.sliceBy (preslices.perColSigmaPlusPcms , col.globalIndex ());
858+ processSigmaPlusPcms<modes::System::kPP_Run3 >(col, tracksThisCol, sigmaPlusPcmsThisCol);
859+ }
860+ }
861+ PROCESS_SWITCH (FemtoProducer, processTracksKinksSigmaPlusPcmsRun3pp, " Provide tracks, kinks and sigma plus reconstructed with a PCM photon" , false );
862+
836863 void processTracksV0sCascadesKinksRun3pp (rawinputs::Run3PpCollisions const & cols,
837864 o2::aod::BCsWithTimestamps const & bcs,
838865 rawinputs::Run3FullPidTracks const & tracks,
@@ -1168,6 +1195,37 @@ struct FemtoProducer {
11681195 }
11691196 PROCESS_SWITCH (FemtoProducer, processTracksSigmaPlusPcmsRun3ppMc, " Provide reconstructed and generated tracks and sigma plus reconstructed with a PCM photon" , false );
11701197
1198+ void processTracksKinksSigmaPlusPcmsRun3ppMc (rawinputs::Run3PpMcGenCollisions const & mcCols,
1199+ rawinputs::Run3PpMcRecoCollisions const & cols,
1200+ o2::aod::BCsWithTimestamps const & bcs,
1201+ rawinputs::Run3McRecoTracks const & tracks,
1202+ rawinputs::Run3Kinks const & kinks,
1203+ rawinputs::Run3RecoSigmaPlusPcms const & sigmaPlusPcms,
1204+ rawinputs::Run3McGenParticles const & mcParticles)
1205+ {
1206+ builders.mcBuilder .reset (mcCols, mcParticles);
1207+ builders.trackBuilder .reset (tracks);
1208+ if (builders.mcBuilder .isPassThrough ()) {
1209+ builders.mcBuilder .fillMcPassThrough <modes::System::kPP_Run3_MC >(mcCols, mcParticles, preslices.perMcCollision , mcProducts);
1210+ }
1211+
1212+ for (const auto & col : cols) {
1213+ auto tracksThisCol = tracks.sliceBy (preslices.perColRecoTracks , col.globalIndex ());
1214+ if (!processMcCollisions<modes::System::kPP_Run3_MC >(col, mcCols, bcs, tracksThisCol)) {
1215+ continue ;
1216+ }
1217+ auto tracksWithItsPid = o2::soa::Attach<rawinputs::Run3McRecoTracks, o2::aod::pidits::ITSNSigmaEl, o2::aod::pidits::ITSNSigmaPi, o2::aod::pidits::ITSNSigmaKa,
1218+ o2::aod::pidits::ITSNSigmaPr, o2::aod::pidits::ITSNSigmaDe, o2::aod::pidits::ITSNSigmaTr, o2::aod::pidits::ITSNSigmaHe>(tracksThisCol);
1219+ processMcTracks<modes::System::kPP_Run3_MC >(col, mcCols, tracksThisCol, tracksWithItsPid, mcParticles);
1220+
1221+ auto kinksThisCol = kinks.sliceBy (preslices.perColRecoKinks , col.globalIndex ());
1222+ processMcKinks<modes::System::kPP_Run3_MC >(col, mcCols, tracks, kinksThisCol, mcParticles);
1223+ auto sigmaPlusPcmsThisCol = sigmaPlusPcms.sliceBy (preslices.perColRecoSigmaPlusPcms , col.globalIndex ());
1224+ processMcSigmaPlusPcms<modes::System::kPP_Run3_MC >(col, mcCols, tracks, sigmaPlusPcmsThisCol, mcParticles);
1225+ }
1226+ }
1227+ PROCESS_SWITCH (FemtoProducer, processTracksKinksSigmaPlusPcmsRun3ppMc, " Provide reconstructed and generated tracks, kinks and sigma plus reconstructed with a PCM photon" , false );
1228+
11711229 void processTracksV0sKinksRun3ppMc (rawinputs::Run3PpMcGenCollisions const & mcCols,
11721230 rawinputs::Run3PpMcRecoCollisions const & cols,
11731231 o2::aod::BCsWithTimestamps const & bcs,
0 commit comments