Skip to content

[PWGLF] Update on the modular resonance initializer for data processing - #17507

Merged
prottayCMT merged 7 commits into
AliceO2Group:masterfrom
mjkim525:Revising_ResoInitializer
Aug 20, 2026
Merged

[PWGLF] Update on the modular resonance initializer for data processing#17507
prottayCMT merged 7 commits into
AliceO2Group:masterfrom
mjkim525:Revising_ResoInitializer

Conversation

@mjkim525

@mjkim525 mjkim525 commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR aims to move the daughter-table production functionality from the monolithic resonanceInitializer to resonanceModuleInitializer, following a design where collision initialization and daughter production are kept as separate processing stages

It also introduces a compact UltraMicroTrack table with a reduced data footprint.

In the future, we will perform additional validation and replace resonanceInitializer with resonanceModuleInitializer.

As part of this process, this PR focuses on validating the data-related tables by comparing the results obtained with resonanceModuleInitializer against those from resonanceInitializer.

Main changes in resonanceModuleInitializer

  • Add independently configurable ResoTracks, ResoMicroTracks, and ResoUltraMicroTracks production.
  • Add compact UltraMicroTrack storage:
    • Momentum components quantized to ~ 1 MeV/c.
    • Packed TPC/TOF PID information.
    • Packed DCAxy/DCAz information.
    • Dynamic accessors for momentum, PID, DCA, and track flags.
  • Add detailed output-specific QA for full, micro, and ultra-micro tracks, including pT, η, φ, DCA-vs-pT, and PID distributions.
  • Remove the legacy spherocity and event-plane production logic from the modular initializer.

Compatibility notes

  • The UltraMicroTrack table stores one configured PID species per production.

This PR aims to validate the data processing. Updates related to the MC part will follow.

@github-actions github-actions Bot changed the title Backport modular resonance initializer [Tutorial,PWGLF] Backport modular resonance initializer Aug 19, 2026
@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown

O2 linter results: ❌ 0 errors, ⚠️ 28 warnings, 🔕 2 disabled

@mjkim525 mjkim525 changed the title [Tutorial,PWGLF] Backport modular resonance initializer [Tutorial,PWGLF] Backport the modular resonance initializer for data processing Aug 19, 2026
@mjkim525 mjkim525 changed the title [Tutorial,PWGLF] Backport the modular resonance initializer for data processing [Tutorial,PWGLF] Update on the modular resonance initializer for data processing Aug 19, 2026
@BongHwi

BongHwi commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Hello @mjkim525 thanks for your contribution. I think it is good to go. Please release it from the draft state. Don't forget to test it on the hyperloop after we merge it.

@alibuild

Copy link
Copy Markdown
Collaborator

Error while checking build/O2Physics/code-check for 81c280e at 2026-08-19 14:38:

## sw/BUILD/O2Physics-code-check-latest/log
--
========== List of issues found ==========
++ echo 'Found 37 errors and 43 warnings.'
Found 37 errors and 43 warnings.
++ [[ 37 -gt 0 ]]
++ cat /sw/BUILD/0dc1dcef18df5b01ccc040c52042d141ff1190ee/O2Physics-code-check/errors.txt
PWGLF/DataModel/LFResonanceTables.h:47:1: error: initial values in enum '<unnamed>' are not consistent, consider explicit initialization of all, none or only the first enumerator [readability-enum-initial-value,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:167:9: error: function-like macro 'requireTrackFlag' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:169:9: error: function-like macro 'requirePassedITSRefit' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:170:9: error: function-like macro 'requirePassedTPCRefit' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:171:9: error: function-like macro 'requireGlobalTrack' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:172:9: error: function-like macro 'requireGlobalTrackWoDCA' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:173:9: error: function-like macro 'requirePrimaryTrack' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:174:9: error: function-like macro 'requirePVContributor' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:175:9: error: function-like macro 'requireHasTOF' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:176:9: error: function-like macro 'requireSign' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:178:9: error: function-like macro 'DECLARE_DYN_TRKSEL_COLUMN' used; consider a 'constexpr' template function [cppcoreguidelines-macro-usage,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:192:38: error: do not declare C-style arrays, use 'std::array' instead [modernize-avoid-c-arrays,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:193:52: error: do not declare C-style arrays, use 'std::array' instead [modernize-avoid-c-arrays,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:254:44: error: do not declare C-style arrays, use 'std::array' instead [modernize-avoid-c-arrays,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:402:3: error: function 'hasTOF' should be marked [[nodiscard]] [modernize-use-nodiscard,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:447:5: error: 'flag' should be initialized in a member initializer of the constructor [cppcoreguidelines-prefer-member-initializer,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:479:3: error: function 'getDCAxyFlag' should be marked [[nodiscard]] [modernize-use-nodiscard,-warnings-as-errors]
PWGLF/DataModel/LFResonanceTables.h:485:3: error: function 'getDCAzFlag' should be marked [[nodiscard]] [modernize-use-nodiscard,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:67:8: error: constructor does not initialize these fields: ccdb, pdg [cppcoreguidelines-pro-type-member-init,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:232:5: error: use auto when initializing with a template cast to avoid duplicating the type name [modernize-use-auto,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:233:43: error: use nullptr [modernize-use-nullptr,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:287:26: error: the parameter 'ResoEvents' is copied for each invocation but only used as a const reference; consider making it a const reference [performance-unnecessary-value-param,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:465:25: error: implicit conversion 'int' -> 'bool' [readability-implicit-bool-conversion,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:554:66: error: no header providing "o2::aod::v0data::collisionId" is directly included [misc-include-cleaner,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:556:79: error: no header providing "o2::aod::cascdata::collisionId" is directly included [misc-include-cleaner,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:686:39: error: implicit conversion 'bool' -> 'int' [readability-implicit-bool-conversion,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:686:55: error: implicit conversion 'bool' -> 'int' [readability-implicit-bool-conversion,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:686:83: error: implicit conversion 'bool' -> 'int' [readability-implicit-bool-conversion,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:686:97: error: implicit conversion 'bool' -> 'int' [readability-implicit-bool-conversion,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:782:13: error: use auto when initializing with a cast to avoid duplicating the type name [modernize-use-auto,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:783:13: error: use auto when initializing with a cast to avoid duplicating the type name [modernize-use-auto,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:791:57: error: no header providing "o2::aod::pidtpc_tiny::binning" is directly included [misc-include-cleaner,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:793:57: error: no header providing "o2::aod::pidtof_tiny::binning" is directly included [misc-include-cleaner,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:1430:5: error: do not declare C-style arrays, use 'std::array' instead [modernize-avoid-c-arrays,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:1442:11: error: the 'empty' method should be used to check for emptiness instead of 'size' [readability-container-size-empty,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:1488:13: error: do not declare C-style arrays, use 'std::array' instead [modernize-avoid-c-arrays,-warnings-as-errors]
PWGLF/TableProducer/Resonances/resonanceModuleInitializer.cxx:1662:13: error: do not declare C-style arrays, use 'std::array' instead [modernize-avoid-c-arrays,-warnings-as-errors]
++ [[ 43 -gt 0 ]]
++ cat /sw/BUILD/0dc1dcef18df5b01ccc040c52042d141ff1190ee/O2Physics-code-check/warnings.txt
PWGLF/DataModel/LFResonanceTables.h:380:24: warning: statement should be inside braces [readability-braces-around-statements]
PWGLF/DataModel/LFResonanceTables.h:384:21: warning: statement should be inside braces [readability-braces-around-statements]
PWGLF/DataModel/LFResonanceTables.h:386:33: warning: statement should be inside braces [readability-braces-around-statements]
[0 more errors; see full log]

Full log here.

@mjkim525
mjkim525 force-pushed the Revising_ResoInitializer branch from de67792 to a08d6e8 Compare August 20, 2026 04:06
@github-actions github-actions Bot removed the tutorial label Aug 20, 2026
@mjkim525 mjkim525 changed the title [Tutorial,PWGLF] Update on the modular resonance initializer for data processing [PWGLF] Update on the modular resonance initializer for data processing Aug 20, 2026
@mjkim525
mjkim525 marked this pull request as ready for review August 20, 2026 04:10
@prottayCMT
prottayCMT enabled auto-merge (squash) August 20, 2026 05:49
@prottayCMT
prottayCMT merged commit 9942ce0 into AliceO2Group:master Aug 20, 2026
15 checks passed
@mjkim525
mjkim525 deleted the Revising_ResoInitializer branch August 20, 2026 05:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants