@@ -2403,12 +2403,14 @@ class BuilderModule
24032403 return ; // don't do if no request for cascades in place or findable mode used
24042404 }
24052405 int nCascades = 0 ;
2406+ std::vector<int > traCascIndices (cascadeList.size (), -1 );
24062407 // Loops over all V0s in the time frame
24072408 histos.fill (HIST (" hInputStatistics" ), kStoredTraCascCores , cascadeTracks.size ());
24082409 for (const auto & cascadeTrack : cascadeTracks) {
24092410 // Get tracks and generate candidate
2410- if (!cascadeTrack.has_track ())
2411+ if (!cascadeTrack.has_track ()) {
24112412 continue ; // safety (should be fine but depends on future stratrack dev)
2413+ }
24122414
24132415 auto const & strangeTrack = cascadeTrack.template track_as <TTracks>();
24142416
@@ -2433,8 +2435,6 @@ class BuilderModule
24332435 baseOpts.mEnabledTables [kCascBBs ],
24342436 cascadeBuilderOpts.useCascadeMomentumAtPrimVtx ,
24352437 baseOpts.mEnabledTables [kCascCovs ])) {
2436- products.tracascdataLink (-1 );
2437- interlinks.cascadeToTraCascCores .push_back (-1 );
24382438 continue ; // didn't work out, skip
24392439 }
24402440
@@ -2474,9 +2474,7 @@ class BuilderModule
24742474 histos.fill (HIST (" hTableBuildingStatistics" ), kStoredTraCascCores );
24752475
24762476 // interlink always produced if base core table generated
2477- products.tracascdataLink (products.tracascdata .lastIndex ());
2478- interlinks.traCascCoreToCascades .push_back (cascade.globalIndex ());
2479- interlinks.cascadeToTraCascCores .push_back (products.tracascdata .lastIndex ());
2477+ traCascIndices[cascade.globalIndex ()] = products.tracascdata .lastIndex ();
24802478 }
24812479 if (baseOpts.mEnabledTables [kCascCovs ]) {
24822480 std::array<float , o2::track::kLabCovMatSize > traCovMat = {0 .};
@@ -2502,6 +2500,18 @@ class BuilderModule
25022500 } // enabled tables check
25032501 } // constexpr requires mcParticles check
25042502 } // end loop over cascades
2503+
2504+ for (std::size_t icascade = 0 ; icascade < cascadeList.size (); icascade++) {
2505+ auto const & cascade = cascadeList[sorted_cascade[icascade]];
2506+ if (traCascIndices[cascade.globalId ] >= 0 ) {
2507+ products.tracascdataLink (traCascIndices[cascade.globalId ]);
2508+ interlinks.traCascCoreToCascades .push_back (cascade.globalId );
2509+ interlinks.cascadeToTraCascCores .push_back (traCascIndices[cascade.globalId ]);
2510+ } else {
2511+ products.tracascdataLink (-1 );
2512+ interlinks.cascadeToTraCascCores .push_back (-1 );
2513+ }
2514+ }
25052515 LOGF (debug, " Tracked cascades in DF: %i, tracked cascades built: %i" , cascadeTracks.size (), nCascades);
25062516 }
25072517
0 commit comments