Skip to content

Make Analysis Tree a TTree instead of a derived class #478

@lobis

Description

@lobis

(Apologies if this was present already in another issue, I could not find it).

Currently the TRestAnalysisTree class is derived from TTree. This has some implications, for example you cannot read the data from the tree if you have not loaded the REST dictionaries.

The analysis tree by design contains simple branches (numbers, basic containers such as vector of numbers, etc.). If this class was not derived from TTree and and was a plain TTree instead (with the information currently stored as members of the derived class stored instead in the tree branches), the compatibility would be significantly increased.

I think I raised this concern offline in some ocasion after trying (unsuccessfully) to open REST files with uproot (scikit-hep/uproot5#936) but after speaking with @cmargalejo and @KonradAltenmueller I noticed some of their analysis processes also had to explicitly load the REST dictionaries just because of this, otherwise they could have been REST-agnostic: analyze REST data with plain ROOT macros, which would make sharing data easier.

Glancing at the code there doesn't seem to be any problem with this refactoring other than the work involved, so please if anyone has some concerns let me know before I attempt to make this change.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions