-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[RDF] Prepare for snapshot with variations (part 4) #19727
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Test Results0 tests 0 ✅ 0s ⏱️ Results for commit 9973a55. ♻️ This comment has been updated with latest results. |
There was a problem hiding this 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()); |
There was a problem hiding this comment.
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 :/
There was a problem hiding this comment.
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.
6b2fefe
to
9973a55
Compare
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.
9973a55
to
5afcf96
Compare
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.