Skip to content

Commit 5060d6e

Browse files
committed
[PWGLF] Consolidate hybrid resonance daughter processing
Remove the duplicate processDataOptimized switch and let processDataHybrid own the original-collision grouping implementation directly. Keep process validation and pair-gate diagnostics aligned with the consolidated path.
1 parent f3a321d commit 5060d6e

2 files changed

Lines changed: 9 additions & 24 deletions

File tree

PWGLF/DataModel/LFResonanceTables.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ DECLARE_SOA_COLUMN(MCMultiplicity, mcMultiplicity, float); //! MC Multiplicit
8787
// Keep the established ResoCollisionColls schema above unchanged. Automatic
8888
// GroupSlicer association to aod::Collisions requires the canonical physical
8989
// column name fIndexCollisions, so the modular initializer writes this small
90-
// companion table for the optimized daughter process.
90+
// companion table for the hybrid daughter process.
9191
namespace resocollisiongroup
9292
{
9393
DECLARE_SOA_INDEX_COLUMN_FULL_CUSTOM(OriginalCollision, originalCollision, int, Collisions, "Collisions", ""); //!

PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -711,12 +711,11 @@ struct ResonanceDaughterInitializer {
711711
*/
712712
void init(InitContext&)
713713
{
714-
const bool processTrackDataEnabled = doprocessData || doprocessDataOptimized || doprocessDataHybrid || doprocessDataWithPairGate;
714+
const bool processTrackDataEnabled = doprocessData || doprocessDataHybrid || doprocessDataWithPairGate;
715715
const bool processTrackMCEnabled = doprocessMC || doprocessMCWithPairGate;
716716
const bool processV0DataEnabled = doprocessV0Data || doprocessV0DataHybrid;
717717
const bool processCascDataEnabled = doprocessCascData || doprocessCascDataHybrid;
718718
const int enabledTrackProcesses = static_cast<int>(doprocessData) +
719-
static_cast<int>(doprocessDataOptimized) +
720719
static_cast<int>(doprocessDataHybrid) +
721720
static_cast<int>(doprocessDataWithPairGate) +
722721
static_cast<int>(doprocessMC) +
@@ -731,9 +730,9 @@ struct ResonanceDaughterInitializer {
731730
if (static_cast<int>(doprocessCascData) + static_cast<int>(doprocessCascDataHybrid) + static_cast<int>(doprocessCascMC) > 1) {
732731
LOGF(fatal, "Only one cascade process can be enabled in ResonanceDaughterInitializer");
733732
}
734-
if ((doprocessData || doprocessDataOptimized || doprocessDataHybrid || doprocessMC) &&
733+
if ((doprocessData || doprocessDataHybrid || doprocessMC) &&
735734
(FilterForDerivedTables.cfgBypassNoPairV0s || FilterForDerivedTables.cfgBypassNoPairCascades)) {
736-
LOGF(warn, "Pair-gate options are ignored by processData/processDataOptimized/processDataHybrid/processMC; enable the matching *WithPairGate process to apply them");
735+
LOGF(warn, "Pair-gate options are ignored by processData/processDataHybrid/processMC; enable the matching *WithPairGate process to apply them");
737736
}
738737
if (doprocessDataWithPairGate && FilterForDerivedTables.cfgBypassNoPairV0s && !processV0DataEnabled) {
739738
LOGF(fatal, "cfgBypassNoPairV0s requires processV0Data or processV0DataHybrid so an accepted V0 is written for every retained collision");
@@ -1938,16 +1937,16 @@ struct ResonanceDaughterInitializer {
19381937
PROCESS_SWITCH(ResonanceDaughterInitializer, processData, "Process tracks for data", false);
19391938

19401939
/**
1941-
* @brief Processes data tracks grouped automatically by their original collision
1940+
* @brief Processes data tracks using the two-stage hybrid grouping
19421941
*
19431942
* The canonical fIndexCollisions column in ResoCollisionGroups lets
19441943
* GroupSlicer associate both reduced collisions and tracks to the same
1945-
* original aod::Collision. The tracks argument is therefore already the
1944+
* original aod::Collision. The tracks argument is therefore already the
19461945
* selected slice for this collision and must not be sliced again.
19471946
*/
1948-
void processDataOptimized(aod::Collision const&,
1949-
soa::SmallGroups<SelectedResoCollisions> const& reducedCollisions,
1950-
soa::Filtered<aod::ResoTrackCandidates> const& tracks)
1947+
void processDataHybrid(aod::Collision const&,
1948+
soa::SmallGroups<SelectedResoCollisions> const& reducedCollisions,
1949+
soa::Filtered<aod::ResoTrackCandidates> const& tracks)
19511950
{
19521951
if (reducedCollisions.size() == 0) {
19531952
return;
@@ -1958,20 +1957,6 @@ struct ResonanceDaughterInitializer {
19581957
auto reducedCollision = reducedCollisions.begin();
19591958
fillTrackTables<false>(reducedCollision, tracks);
19601959
}
1961-
PROCESS_SWITCH(ResonanceDaughterInitializer, processDataOptimized, "Process data tracks with original-collision grouping", false);
1962-
1963-
/**
1964-
* @brief Production hybrid path using original-collision automatic grouping
1965-
*
1966-
* This named path preserves the existing optimized prototype for A/B
1967-
* compatibility while exposing the two-stage hybrid architecture explicitly.
1968-
*/
1969-
void processDataHybrid(aod::Collision const& originalCollision,
1970-
soa::SmallGroups<SelectedResoCollisions> const& reducedCollisions,
1971-
soa::Filtered<aod::ResoTrackCandidates> const& tracks)
1972-
{
1973-
processDataOptimized(originalCollision, reducedCollisions, tracks);
1974-
}
19751960
PROCESS_SWITCH(ResonanceDaughterInitializer, processDataHybrid, "Process data tracks with the two-stage hybrid grouping", false);
19761961

19771962
/**

0 commit comments

Comments
 (0)