diff --git a/PWGLF/Utils/strangenessBuilderModule.h b/PWGLF/Utils/strangenessBuilderModule.h index 0220453a238..61371ff59ec 100644 --- a/PWGLF/Utils/strangenessBuilderModule.h +++ b/PWGLF/Utils/strangenessBuilderModule.h @@ -2403,12 +2403,14 @@ class BuilderModule return; // don't do if no request for cascades in place or findable mode used } int nCascades = 0; + std::vector traCascIndices(cascadeList.size(), -1); // Loops over all V0s in the time frame histos.fill(HIST("hInputStatistics"), kStoredTraCascCores, cascadeTracks.size()); for (const auto& cascadeTrack : cascadeTracks) { // Get tracks and generate candidate - if (!cascadeTrack.has_track()) + if (!cascadeTrack.has_track()) { continue; // safety (should be fine but depends on future stratrack dev) + } auto const& strangeTrack = cascadeTrack.template track_as(); @@ -2433,8 +2435,6 @@ class BuilderModule baseOpts.mEnabledTables[kCascBBs], cascadeBuilderOpts.useCascadeMomentumAtPrimVtx, baseOpts.mEnabledTables[kCascCovs])) { - products.tracascdataLink(-1); - interlinks.cascadeToTraCascCores.push_back(-1); continue; // didn't work out, skip } @@ -2474,9 +2474,7 @@ class BuilderModule histos.fill(HIST("hTableBuildingStatistics"), kStoredTraCascCores); // interlink always produced if base core table generated - products.tracascdataLink(products.tracascdata.lastIndex()); - interlinks.traCascCoreToCascades.push_back(cascade.globalIndex()); - interlinks.cascadeToTraCascCores.push_back(products.tracascdata.lastIndex()); + traCascIndices[cascade.globalIndex()] = products.tracascdata.lastIndex(); } if (baseOpts.mEnabledTables[kCascCovs]) { std::array traCovMat = {0.}; @@ -2502,6 +2500,10 @@ class BuilderModule } // enabled tables check } // constexpr requires mcParticles check } // end loop over cascades + + for (std::size_t icascade = 0; icascade < cascadeList.size(); icascade++) { + products.tracascdataLink(traCascIndices[icascade]); + } LOGF(debug, "Tracked cascades in DF: %i, tracked cascades built: %i", cascadeTracks.size(), nCascades); }