Skip to content

Fix handling of artificial fields in RNTupleProcessor chains - #23744

Open
enirolf wants to merge 6 commits into
root-project:masterfrom
enirolf:ntuple-ds-processor-rdffields
Open

enirolf wants to merge 6 commits into
root-project:masterfrom
enirolf:ntuple-ds-processor-rdffields

Conversation

@enirolf

@enirolf enirolf commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Currently, the RNTupleProcessorDS crashes with chains of RNTuples that have collections, because the artificial cardinality fields cannot be reconnected properly when the next RNTuple is opened.

This fix adds an additional bookkeeping mechanism for artificial fields. It keeps track of the RNTupleProcessorEntry index of the field it should get the on-disk ID from and sets it accordingly upon connection.

Additionally, tests with more involved RNTupleProcessor combinations are added.

There is one outstanding FIXME also uncovered by these tests, which is the #colname alias for collection sizes. This doesn't work yet for fields belonging to auxiliary RNTuples. It will be addressed in a future PR.

Before, the field name `std::vector<float> jets` would be set to `_0`.
Now, we traverse up the fieldInfos to find the actual field name and set
it accordingly.
Artificial fields adopt their on-disk ID from other fields. This commit
adds a way to bookkeep how the on-disk ID of artificial fields should be
set when they get updated.
@enirolf
enirolf force-pushed the ntuple-ds-processor-rdffields branch from 49072fa to 62ad8f9 Compare October 16, 2026 19:40
@github-actions

Copy link
Copy Markdown

Test Results

    24 files      24 suites   3d 23h 37m 5s ⏱️
 3 889 tests  3 888 ✅ 0 💤 1 ❌
83 246 runs  83 244 ✅ 0 💤 2 ❌

For more details on these failures, see this check.

Results for commit 62ad8f9.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant