@@ -211,57 +211,57 @@ struct FemtoProducer {
211211 template <modes::System system, typename T1, typename T2, typename T3>
212212 bool processCollisions (T1 const & col, T2 const & /* bcs*/ , T3 const & tracks)
213213 {
214+ collisionBuilder.reset ();
214215 auto bc = col.template bc_as <T2>();
215216 collisionBuilder.initCollision <system>(bc, col, tracks, ccdb, hRegistry);
216217 if (!collisionBuilder.checkCollision (col)) {
217218 return false ;
218219 }
219- collisionBuilder.fillCollision <system>(collisionBuilderProducts, col);
220220 return true ;
221221 }
222222
223- template <typename T1>
224- void processTracks (T1 const & tracksWithItsPid)
223+ template <modes::System system, typename T1, typename T2 >
224+ void processTracks (T1 const & col, T2 const & tracksWithItsPid)
225225 {
226- trackBuilder.fillTracks (tracksWithItsPid, trackBuilderProducts , collisionBuilderProducts, indexMapTracks);
226+ trackBuilder.fillTracks <system>(col, collisionBuilder , collisionBuilderProducts, tracksWithItsPid, trackBuilderProducts , indexMapTracks);
227227 }
228228
229- template <typename T1, typename T2>
229+ template <modes::System system, typename T1, typename T2>
230230 void processResonances (T1 const & col, T2 const & /* tracks*/ )
231231 {
232232 auto groupPositiveTracks = partitionPositiveDaughters->sliceByCached (track::collisionId, col.globalIndex (), cache);
233233 auto groupNegativeTracks = partitionNegativeDaughters->sliceByCached (track::collisionId, col.globalIndex (), cache);
234- rho0Builder.fillResonances ( collisionBuilderProducts, trackBuilderProducts, twoTrackResonanceBuilderProducts, groupPositiveTracks, groupNegativeTracks, trackBuilder, indexMapTracks);
235- phiBuilder.fillResonances ( collisionBuilderProducts, trackBuilderProducts, twoTrackResonanceBuilderProducts, groupPositiveTracks, groupNegativeTracks, trackBuilder, indexMapTracks);
236- kstar0Builder.fillResonances ( collisionBuilderProducts, trackBuilderProducts, twoTrackResonanceBuilderProducts, groupPositiveTracks, groupNegativeTracks, trackBuilder, indexMapTracks);
237- kstar0barBuilder.fillResonances ( collisionBuilderProducts, trackBuilderProducts, twoTrackResonanceBuilderProducts, groupPositiveTracks, groupNegativeTracks, trackBuilder, indexMapTracks);
234+ rho0Builder.fillResonances <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, twoTrackResonanceBuilderProducts, groupPositiveTracks, groupNegativeTracks, trackBuilder, indexMapTracks);
235+ phiBuilder.fillResonances <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, twoTrackResonanceBuilderProducts, groupPositiveTracks, groupNegativeTracks, trackBuilder, indexMapTracks);
236+ kstar0Builder.fillResonances <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, twoTrackResonanceBuilderProducts, groupPositiveTracks, groupNegativeTracks, trackBuilder, indexMapTracks);
237+ kstar0barBuilder.fillResonances <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, twoTrackResonanceBuilderProducts, groupPositiveTracks, groupNegativeTracks, trackBuilder, indexMapTracks);
238238 }
239239
240240 // add v0s
241- template <typename T1, typename T2>
242- void processV0s (T1 const & tracks , T2 const & v0s)
241+ template <modes::System system, typename T1, typename T2, typename T3 >
242+ void processV0s (T1 const & col , T2 const & tracks, T3 const & v0s)
243243 {
244- lambdaBuilder.fillV0s ( collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, indexMapTracks);
245- antilambdaBuilder.fillV0s ( collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, indexMapTracks);
246- k0shortBuilder.fillV0s ( collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, indexMapTracks);
244+ lambdaBuilder.fillV0s <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, indexMapTracks);
245+ antilambdaBuilder.fillV0s <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, indexMapTracks);
246+ k0shortBuilder.fillV0s <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, v0builderProducts, v0s, tracks, trackBuilder, indexMapTracks);
247247 }
248248
249249 // add kinks
250- template <typename T1, typename T2>
251- void processKinks (T1 const & tracks , T2 const & kinks)
250+ template <modes::System system, typename T1, typename T2, typename T3 >
251+ void processKinks (T1 const & col , T2 const & tracks, T3 const & kinks)
252252 {
253- sigmaBuilder.fillKinks ( collisionBuilderProducts, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, trackBuilder, indexMapTracks);
254- sigmaPlusBuilder.fillKinks ( collisionBuilderProducts, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, trackBuilder, indexMapTracks);
253+ sigmaBuilder.fillKinks <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, trackBuilder, indexMapTracks);
254+ sigmaPlusBuilder.fillKinks <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, kinkBuilderProducts, kinks, tracks, trackBuilder, indexMapTracks);
255255 }
256256
257257 // add cascades
258- template <typename T1, typename T2, typename T3>
258+ template <modes::System system, typename T1, typename T2, typename T3>
259259 void processCascades (T1 const & col, T2 const & tracks, T3 const & cascades)
260260 {
261- xiBuilder.fillCascades ( collisionBuilderProducts, trackBuilderProducts, cascadeBuilderProducts,
262- cascades, tracks, col , trackBuilder, indexMapTracks);
263- omegaBuilder.fillCascades ( collisionBuilderProducts, trackBuilderProducts, cascadeBuilderProducts,
264- cascades, tracks, col , trackBuilder, indexMapTracks);
261+ xiBuilder.fillCascades <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, cascadeBuilderProducts,
262+ cascades, tracks, trackBuilder, indexMapTracks);
263+ omegaBuilder.fillCascades <system>(col, collisionBuilder, collisionBuilderProducts, trackBuilderProducts, cascadeBuilderProducts,
264+ cascades, tracks, trackBuilder, indexMapTracks);
265265 }
266266
267267 // proccess functions
@@ -275,8 +275,8 @@ struct FemtoProducer {
275275 indexMapTracks.clear ();
276276 auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, pidits::ITSNSigmaEl, pidits::ITSNSigmaPi,
277277 pidits::ITSNSigmaKa, pidits::ITSNSigmaPr, pidits::ITSNSigmaDe, pidits::ITSNSigmaTr, pidits::ITSNSigmaHe>(tracks);
278- processTracks ( tracksWithItsPid);
279- processResonances (col, tracks);
278+ processTracks<modes::System:: kPP_Run3 >(col, tracksWithItsPid);
279+ processResonances<modes::System:: kPP_Run3 > (col, tracks);
280280 }
281281 PROCESS_SWITCH (FemtoProducer, processTracksRun3pp, " Process tracks" , true );
282282
@@ -292,9 +292,9 @@ struct FemtoProducer {
292292 indexMapTracks.clear ();
293293 auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, pidits::ITSNSigmaEl, pidits::ITSNSigmaPi,
294294 pidits::ITSNSigmaKa, pidits::ITSNSigmaPr, pidits::ITSNSigmaDe, pidits::ITSNSigmaTr, pidits::ITSNSigmaHe>(tracks);
295- processTracks ( tracksWithItsPid);
296- processResonances (col, tracks);
297- processV0s ( tracks, v0s);
295+ processTracks<modes::System:: kPP_Run3 >(col, tracksWithItsPid);
296+ processResonances<modes::System:: kPP_Run3 > (col, tracks);
297+ processV0s<modes::System:: kPP_Run3 >(col, tracks, v0s);
298298 };
299299 PROCESS_SWITCH (FemtoProducer, processTracksV0sRun3pp, " Process tracks and v0s" , false );
300300
@@ -310,9 +310,9 @@ struct FemtoProducer {
310310 indexMapTracks.clear ();
311311 auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, pidits::ITSNSigmaEl, pidits::ITSNSigmaPi,
312312 pidits::ITSNSigmaKa, pidits::ITSNSigmaPr, pidits::ITSNSigmaDe, pidits::ITSNSigmaTr, pidits::ITSNSigmaHe>(tracks);
313- processTracks ( tracksWithItsPid);
314- processResonances (col, tracks);
315- processKinks ( tracks, kinks);
313+ processTracks<modes::System:: kPP_Run3 >(col, tracksWithItsPid);
314+ processResonances<modes::System:: kPP_Run3 > (col, tracks);
315+ processKinks<modes::System:: kPP_Run3 >(col, tracks, kinks);
316316 }
317317 PROCESS_SWITCH (FemtoProducer, processTracksKinksRun3pp, " Process tracks and kinks" , false );
318318
@@ -329,10 +329,10 @@ struct FemtoProducer {
329329 indexMapTracks.clear ();
330330 auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, pidits::ITSNSigmaEl, pidits::ITSNSigmaPi,
331331 pidits::ITSNSigmaKa, pidits::ITSNSigmaPr, pidits::ITSNSigmaDe, pidits::ITSNSigmaTr, pidits::ITSNSigmaHe>(tracks);
332- processTracks ( tracksWithItsPid);
333- processResonances (col, tracks);
334- processV0s ( tracks, v0s);
335- processCascades (col, tracks, cascades);
332+ processTracks<modes::System:: kPP_Run3 >(col, tracksWithItsPid);
333+ processResonances<modes::System:: kPP_Run3 > (col, tracks);
334+ processV0s<modes::System:: kPP_Run3 >(col, tracks, v0s);
335+ processCascades<modes::System:: kPP_Run3 > (col, tracks, cascades);
336336 }
337337 PROCESS_SWITCH (FemtoProducer, processTracksV0sCascadesRun3pp, " Provide Tracks, V0s and Cascades for Run3" , false );
338338
@@ -350,11 +350,11 @@ struct FemtoProducer {
350350 indexMapTracks.clear ();
351351 auto tracksWithItsPid = o2::soa::Attach<consumeddata::Run3FullPidTracks, pidits::ITSNSigmaEl, pidits::ITSNSigmaPi,
352352 pidits::ITSNSigmaKa, pidits::ITSNSigmaPr, pidits::ITSNSigmaDe, pidits::ITSNSigmaTr, pidits::ITSNSigmaHe>(tracks);
353- processTracks ( tracksWithItsPid);
354- processResonances (col, tracks);
355- processV0s ( tracks, v0s);
356- processKinks ( tracks, kinks);
357- processCascades (col, tracks, cascades);
353+ processTracks<modes::System:: kPP_Run3 >(col, tracksWithItsPid);
354+ processResonances<modes::System:: kPP_Run3 > (col, tracks);
355+ processV0s<modes::System:: kPP_Run3 >(col, tracks, v0s);
356+ processKinks<modes::System:: kPP_Run3 >(col, tracks, kinks);
357+ processCascades<modes::System:: kPP_Run3 > (col, tracks, cascades);
358358 }
359359 PROCESS_SWITCH (FemtoProducer, processTracksV0sCascadesKinksRun3pp, " Provide Tracks, V0s and Cascades for Run3" , false );
360360};
0 commit comments