From 8a6ad47f21a853280448b0f83d46a4096851494e Mon Sep 17 00:00:00 2001 From: romainschotter Date: Wed, 22 Oct 2025 18:09:51 +0200 Subject: [PATCH 1/2] Fix Tracked cascade datalink filling --- PWGLF/Utils/strangenessBuilderModule.h | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/PWGLF/Utils/strangenessBuilderModule.h b/PWGLF/Utils/strangenessBuilderModule.h index 0220453a238..6e94883a2b9 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,18 @@ class BuilderModule } // enabled tables check } // constexpr requires mcParticles check } // end loop over cascades + + for (std::size_t icascade = 0; icascade < cascadeList.size(); icascade++) { + auto const& cascade = cascadeList[sorted_cascade[icascade]]; + if (traCascIndices[cascade.globalId] >= 0) { + products.tracascdataLink(traCascIndices[cascade.globalId]); + interlinks.traCascCoreToCascades.push_back(cascade.globalId); + interlinks.cascadeToTraCascCores.push_back(traCascIndices[cascade.globalId]); + } else { + products.tracascdataLink(-1); + interlinks.cascadeToTraCascCores.push_back(-1); + } + } LOGF(debug, "Tracked cascades in DF: %i, tracked cascades built: %i", cascadeTracks.size(), nCascades); } From 00a54dab421825b13e1fe7d157ba037e082fd373 Mon Sep 17 00:00:00 2001 From: romainschotter Date: Wed, 22 Oct 2025 22:01:21 +0200 Subject: [PATCH 2/2] Simplify tracascdataLink filling --- PWGLF/Utils/strangenessBuilderModule.h | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/PWGLF/Utils/strangenessBuilderModule.h b/PWGLF/Utils/strangenessBuilderModule.h index 6e94883a2b9..61371ff59ec 100644 --- a/PWGLF/Utils/strangenessBuilderModule.h +++ b/PWGLF/Utils/strangenessBuilderModule.h @@ -2502,15 +2502,7 @@ class BuilderModule } // end loop over cascades for (std::size_t icascade = 0; icascade < cascadeList.size(); icascade++) { - auto const& cascade = cascadeList[sorted_cascade[icascade]]; - if (traCascIndices[cascade.globalId] >= 0) { - products.tracascdataLink(traCascIndices[cascade.globalId]); - interlinks.traCascCoreToCascades.push_back(cascade.globalId); - interlinks.cascadeToTraCascCores.push_back(traCascIndices[cascade.globalId]); - } else { - products.tracascdataLink(-1); - interlinks.cascadeToTraCascCores.push_back(-1); - } + products.tracascdataLink(traCascIndices[icascade]); } LOGF(debug, "Tracked cascades in DF: %i, tracked cascades built: %i", cascadeTracks.size(), nCascades); }