@@ -1230,8 +1230,8 @@ struct StrangenessBuilder {
12301230 }
12311231
12321232 // __________________________________________________
1233- template <class TTracks , typename TCollisions, typename TCascades>
1234- void buildKFCascades (TCollisions const & collisions, TCascades const & cascades)
1233+ template <class TTracks , typename TCollisions, typename TCascades, typename TMCParticles >
1234+ void buildKFCascades (TCollisions const & collisions, TCascades const & cascades, TMCParticles const & mcParticles )
12351235 {
12361236 if (!mEnabledTables [kStoredKFCascCores ]){
12371237 return ; // don't do if no request for cascades in place
@@ -1291,14 +1291,26 @@ struct StrangenessBuilder {
12911291 if (mEnabledTables [kKFCascCovs ]) {
12921292 kfcasccovs (straHelper.cascade .covariance , straHelper.cascade .kfTrackCovarianceV0 , straHelper.cascade .kfTrackCovariancePos , straHelper.cascade .kfTrackCovarianceNeg );
12931293 }
1294- }
1294+
1295+ // _________________________________________________________
1296+ // MC handling part (labels only)
1297+ if constexpr (requires { TMCParticles::iterator; }) {
1298+ // only worry about this if someone else worried about this
1299+ if ((mEnabledTables [kMcKFCascLabels ])){
1300+ extractMonteCarloProperties (posTrack, negTrack, bachTrack, mcParticles);
1301+
1302+ // Construct label table (note: this will be joinable with KFCascDatas)
1303+ kfcasclabels (thisCascInfo.label , thisCascInfo.motherLabel );
1304+ } // enabled tables check
1305+ } // constexpr requires mcParticles check
1306+ } // end loop over cascades
12951307
12961308 LOGF (info, " KF Cascades in DF: %i, KF cascades built: %i" , cascades.size (), nCascades);
12971309 }
12981310
12991311 // __________________________________________________
1300- template <class TTracks , typename TCollisions, typename TStrangeTracks>
1301- void buildTrackedCascades (TCollisions const & collisions, TStrangeTracks const & cascadeTracks)
1312+ template <class TTracks , typename TCollisions, typename TStrangeTracks, typename TMCParticles >
1313+ void buildTrackedCascades (TCollisions const & collisions, TStrangeTracks const & cascadeTracks, TMCParticles const & mcParticles )
13021314 {
13031315 if (!mEnabledTables [kStoredTraCascCores ]){
13041316 return ; // don't do if no request for cascades in place
@@ -1375,7 +1387,19 @@ struct StrangenessBuilder {
13751387 }
13761388 tracasccovs (traCovMatArray);
13771389 }
1378- }
1390+
1391+ // _________________________________________________________
1392+ // MC handling part (labels only)
1393+ if constexpr (requires { TMCParticles::iterator; }) {
1394+ // only worry about this if someone else worried about this
1395+ if ((mEnabledTables [kMcTraCascLabels ])){
1396+ extractMonteCarloProperties (posTrack, negTrack, bachTrack, mcParticles);
1397+
1398+ // Construct label table (note: this will be joinable with KFCascDatas)
1399+ tracasclabels (thisCascInfo.label , thisCascInfo.motherLabel );
1400+ } // enabled tables check
1401+ } // constexpr requires mcParticles check
1402+ } // end loop over cascades
13791403 LOGF (info, " Tracked cascades in DF: %i, tracked cascades built: %i" , cascadeTracks.size (), nCascades);
13801404 }
13811405
@@ -1427,11 +1451,11 @@ struct StrangenessBuilder {
14271451
14281452 // build cascades
14291453 buildCascades<TTracks>(collisions, cascades, mcParticles);
1430- buildKFCascades<TTracks>(collisions, cascades);
1454+ buildKFCascades<TTracks>(collisions, cascades, mcParticles );
14311455
14321456 // build tracked cascades only if subscription is Run 3 like (doesn't exist in Run 2)
14331457 if constexpr (requires { TTrackedCascades::iterator; }) {
1434- buildTrackedCascades<TTracks>(collisions, trackedCascades);
1458+ buildTrackedCascades<TTracks>(collisions, trackedCascades, mcParticles );
14351459 }
14361460
14371461 populateCascadeInterlinks ();
0 commit comments