Open issues in ROOT for Friends support
The following discussion from !44 (merged) should be addressed:
-
@lmoureau started a discussion: This MR exposes several bugs in ROOT:
-
TTree::LoadTree doesn't update its branches when its friends are updated. This prevents using a TChain as a friend of a TTree. We could try and perform forced updates from
SlicedFriendElement
. -
TChain::LoadTree only considers friends of the current tree if the chain also has a friend list. By default the list is null. I work around this by creating an empty friend list in
ChainSlice
. -
TChain::LoadTree cannot see updates in friends of the current tree because TTree::LoadTree calls ResetUpdated() before the chain has a chance to check. I work around this with some Notify() magic in
SlicedFriendElement
. - When TChain::LoadTree loads a new file, it doesn't reset the updated flag on friends of the new file (though the file itself does). This should be kept in mind when fixing the previous issue.
I guess I should report them now...
All tests pass with the latest version of this MR, so TTree::GetEntry appears to be working correctly.
-
TTree::LoadTree doesn't update its branches when its friends are updated. This prevents using a TChain as a friend of a TTree. We could try and perform forced updates from