Skip to content

DPL Analysis: allow for per-origin AOD metadata handling - #15928

Open
aalkin wants to merge 7 commits into
AliceO2Group:devfrom
aalkin:refactor-origin-level-mapping
Open

aalkin wants to merge 7 commits into
AliceO2Group:devfrom
aalkin:refactor-origin-level-mapping

Conversation

@aalkin

@aalkin aalkin commented Oct 11, 2026

Copy link
Copy Markdown
Member

Based on required #15880, #15926 and #15927.

The standard behavior without origin level mapping is unaffected. When origin level mapping is used, the AOD metadata is taken from files on corresponding levels and propagated as per-origin labeled array to the devices in the workflow. For this, the metadata retrieval is refactored to only happen once in the driver, so that files are not re-opened later. The devices themselves, if they have origin replacement enabled, will modify their ConfigParamRegistry, replacing the standard aod-metadata- values there with the ones that conform to their origin, using the per-origin map that was passed to them via command line. This permits, for example, self-configuring tasks, such as event selection service, to be left as is - they will correctly get the metadata, corresponding to their replaced origin.

@nzardosh this PR is self-contained, you can import it in your O2 for testing as a whole.

@alibuild

Copy link
Copy Markdown
Collaborator

Error while checking build/O2/fullCI_slc9 for cd319b0 at 2026-10-11 10:00:

## sw/BUILD/O2-latest/log
CMake Error at Framework/Core/CMakeLists.txt:202 (add_executable):
CMake Error at Framework/Core/CMakeLists.txt:202 (add_executable):

Full log here.

Copy and move of Variants holding Array2D, LabeledArray or string array
values copied the storage byte by byte, so copies shared the same heap
buffers, and the destructor never destroyed these objects, leaking them.
Assignments never released the previous content, move assignment of
strings and arrays duplicated the buffer and dropped the original one,
and move assignment of string arrays corrupted the source vector.
* Protect from long default values in `--help` output by adding a size
  limit and manually adding reduced string representation
* Use pre-existing to/from JSON conversions to dump and retrieve
  labeled arrays in command line
* Allow passing only values if the labels do not change from defaults
* Test options retrieval for the driver and devices
@aalkin
aalkin force-pushed the refactor-origin-level-mapping branch from 35fa690 to 1c5bb06 Compare October 14, 2026 07:32
@aalkin
aalkin force-pushed the refactor-origin-level-mapping branch from 1c5bb06 to ae5ce00 Compare October 14, 2026 07:35

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants