Skip to content

[PWGLF] Add same and mixed event version with derived data - #18295

Open
GiorgioAlbertoLucia wants to merge 2 commits into
AliceO2Group:masterfrom
GiorgioAlbertoLucia:omegaomega
Open

GiorgioAlbertoLucia wants to merge 2 commits into
AliceO2Group:masterfrom
GiorgioAlbertoLucia:omegaomega

Conversation

@GiorgioAlbertoLucia

@GiorgioAlbertoLucia GiorgioAlbertoLucia commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

PWGLF/Utils/doubleOmegaBuilderHelper.h

  • The candidate structs, the track/PID/topological selections and the DCAFitter-based building of Λ, Ω and Ω+Λ+K were moved out of the tree creator into DoubleOmegaBuilderHelper.
  • Includes combine(), which pairs Omegas, Lambdas and kaons that may come from different collisions
  • Adds isSelectedOmega/Lambda/Kaon overloads that work on stored candidates, so selections can be applied on derived data.

doubleOmegaBuilder

  • Builds the Ω, Λ and kaon candidates of each selected collision and writes them to new derived tables.
  • Only collisions with at least one Ω plus a Λ and a kaon that don't share its tracks are stored.
  • Each track is stored once per collision, and the tables only index each other, so derived dataframes can be merged.

LFDoubleOmegaTables.h

  • DOmegaColls: primary vertex, FT0M multiplicity, run number and Bz.
  • DOmegaTracks: track parametrisation and covariance at the innermost update, kaon TPC/TOF nσ, detector map, DCAxy to the PV, and a direct-kaon flag.
  • DOmegaOmegas / DOmegaLambdas: daughter indices, the parent track at the decay vertex, decay vertex, momentum, masses, DCA between daughters and charge.

doubleOmegaTreeCreator

  • Uses the shared helper. The duplicated building code is removed.
  • processDerivedData: same-event candidates from the derived tables. It was checked that this produces the same output as the process function running on non-derived data.
  • processDerivedMixing: event mixing between collisions binned in vertex z and FT0M multiplicity. It requires the same magnetic field and a maximum Δz of the primary vertices. Mixed backgrounds swap the Ω, the Λ, the K, or all three between collisions (selectable with a bitmask).
  • processDerivedMixingCandidates: candidate-level mixing, as in decay3bodybuilder. Same-event candidates are binned in decay radius, azimuth and charge. One or two daughters are swapped with candidates from other collisions, which keeps the vertex topology. The pool is kept across dataframes, and each combination is written only once.

@github-actions

Copy link
Copy Markdown

O2 linter results: ❌ 0 errors, ⚠️ 42 warnings, 🔕 9 disabled

@alibuild

Copy link
Copy Markdown
Collaborator

Error while checking build/O2Physics/o2 for 9fe1441 at 2026-10-14 20:10:

No log files found

Full log here.

@alibuild

alibuild commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Error while checking build/O2Physics/code-check for 9fe1441 at 2026-10-17 13:47:

## sw/BUILD/O2Physics-code-check-latest/log
--
========== List of issues found ==========
++ echo 'To reproduce the results below locally, run: '\''aliBuild build O2Physics-code-check -e ALIBUILD_BASE_HASH=upstream/master'\''.'
To reproduce the results below locally, run: 'aliBuild build O2Physics-code-check -e ALIBUILD_BASE_HASH=upstream/master'.
++ echo 'To apply all automatic fixes, add the '\''-e O2PHYSICS_CHECKER_FIX=1'\'' option.'
To apply all automatic fixes, add the '-e O2PHYSICS_CHECKER_FIX=1' option.
++ echo 'See the documentation for more details at: <https://aliceo2group.github.io/analysis-framework/docs/tools/#running-with-o2physics-code-check>.'
See the documentation for more details at: <https://aliceo2group.github.io/analysis-framework/docs/tools/#running-with-o2physics-code-check>.
++ echo 'Found 8 errors and 6 warnings.'
Found 8 errors and 6 warnings.
++ [[ 8 -gt 0 ]]
++ cat /sw/BUILD/03585e3462d41a1fc7b894a4f5a2418823465c28/O2Physics-code-check/errors.txt
PWGLF/TableProducer/Strangeness/doubleOmegaBuilder.cxx:44:1: error: included header Track.h is not used directly [misc-include-cleaner,-warnings-as-errors]
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:17:1: error: included header RecoDecay.h is not used directly [misc-include-cleaner,-warnings-as-errors]
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:44:1: error: included header GPUROOTCartesianFwd.h is not used directly [misc-include-cleaner,-warnings-as-errors]
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:1293:22: error: std::move of the variable 'seed' of the trivially-copyable type 'std::tuple_element<1, std::pair<int, MixingSeed>>::type' (aka 'MixingSeed') has no effect [performance-move-const-arg,-warnings-as-errors]
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:1304:70: error: no header providing "std::milli" is directly included [misc-include-cleaner,-warnings-as-errors]
PWGLF/Utils/doubleOmegaBuilderHelper.h:27:1: error: included header Cartesian.h is not used directly [misc-include-cleaner,-warnings-as-errors]
PWGLF/Utils/doubleOmegaBuilderHelper.h:33:1: error: included header cstddef is not used directly [misc-include-cleaner,-warnings-as-errors]
PWGLF/Utils/doubleOmegaBuilderHelper.h:258:27: error: no header providing "o2::math_utils::Point3D" is directly included [misc-include-cleaner,-warnings-as-errors]
++ [[ 6 -gt 0 ]]
++ cat /sw/BUILD/03585e3462d41a1fc7b894a4f5a2418823465c28/O2Physics-code-check/warnings.txt
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:835:10: warning: implicit conversion 'int' -> 'bool' [readability-implicit-bool-conversion]
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:1183:12: warning: use designated initializer list to initialize 'MixingSeed' [modernize-use-designated-initializers]
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:1190:10: warning: implicit conversion 'int' -> 'bool' [readability-implicit-bool-conversion]
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:1253:10: warning: implicit conversion 'int' -> 'bool' [readability-implicit-bool-conversion]
PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx:1469:10: warning: implicit conversion 'int' -> 'bool' [readability-implicit-bool-conversion]
PWGLF/Utils/doubleOmegaBuilderHelper.h:579:100: warning: forwarding reference parameter 'onCandidate' is never forwarded inside the function body [cppcoreguidelines-missing-std-forward]
++ [[ 8 -gt 0 ]]
++ exit 1
--

Full log here.

@alibuild

Copy link
Copy Markdown
Collaborator

Error while checking build/O2Physics/staging for 9fe1441 at 2026-10-14 20:29:

No log files found

Full log here.

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.

3 participants