Skip to content

Conversation

hageboeck
Copy link
Member

@hageboeck hageboeck commented Aug 22, 2025

This is part 4 of the work in #19725.

This PR is a refactor of the members of all TTree snapshot helpers, which will allow keeping all necessary data for a column in a single struct. This will simplify snapshot with variations, since varied columns can be created by copying the struct of the original column, and overriding a few members.
If the data hadn't been colocated like it's done here, it would become much harder to keep everything in a consistent state for both nominal and variations.

@hageboeck hageboeck self-assigned this Aug 22, 2025
@hageboeck hageboeck requested a review from martamaja10 as a code owner August 22, 2025 13:24
@hageboeck hageboeck added the skip ci Skip the full builds on the actions runners label Aug 22, 2025
@hageboeck hageboeck requested a review from vepadulano as a code owner August 22, 2025 13:24
Copy link

github-actions bot commented Aug 22, 2025

Test Results

0 tests   0 ✅  0s ⏱️
0 suites  0 💤
0 files    0 ❌

Results for commit 9973a55.

♻️ This comment has been updated with latest results.

Copy link
Member

@vepadulano vepadulano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The last commit LGTM, but since I requested changes in #19726 I will wait for that PR to be merged before continuing

@@ -449,17 +499,16 @@ void ROOT::Internal::RDF::UntypedSnapshotTTreeHelper::UpdateCArraysPtrs(const st
// associated to those is re-allocated. As a result the value of the pointer can change therewith
// leaving associated to the branch of the output tree an invalid pointer.
// With this code, we set the value of the pointer in the output branch anew when needed.
assert(values.size() == fBranches.size());
assert(values.size() <= fBranchData.size());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you remind me of the reason for this change? IIRC it's because the Snapshot helper will be able to deal both with the nominal-only case and with the case including systematic variations so there may be less values than the number of branches. But just by typing this out something doesn't click in my mind :/

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks to be an outdated change, which results from porting the previous implementation over to the type-less snapshot. Good spot!

Since the variations are handled in a different helper now, the old assertion might still hold. I'll try reverting this now.

@hageboeck hageboeck force-pushed the snapshot_vary_branchData branch 2 times, most recently from 6b2fefe to 9973a55 Compare September 1, 2025 12:30
@hageboeck hageboeck removed the skip ci Skip the full builds on the actions runners label Sep 1, 2025
hageboeck and others added 2 commits September 1, 2025 15:34
In order to implement snapshots with systematic variations, it is
beneficial to place all members related to output branches into structs.
At present, this only constitutes a move from member of SnapshotHelper
to member of RBranchData struct.

The TTree snapshot helpers are changed accordingly.

Co-authored-by: Vincenzo Eduardo Padulano <[email protected]>
It is superseded by RBranchData.
@hageboeck hageboeck force-pushed the snapshot_vary_branchData branch from 9973a55 to 5afcf96 Compare September 1, 2025 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants