-
Notifications
You must be signed in to change notification settings - Fork 1
Philosophy of EvioTool
- Work well with ROOT, with ROOT macros or compiled code.
- Work well from the ROOT prompt to explore the content of EVIO files.
- Make the code efficient so that it is fast.
Quite a bit of effort went into point 3, to make sure that there is the minimal amount of data copying. An effort was made to keep copying of data to just once per object. In principle, for C code, you could access EVIO without any copying, but that does not work if you want to access the data from ROOT compatible data structures that can be serialized out to root files.
To make it possible to go through an EVIO file even faster, this code can be used in a way where only the data you are interested in is copied to new data structures. That is great for item 3, speed, but not so nice for 2, exploring. To have the best of both worlds, EvioTool has an option SetAutoAdd(true), which will automatically add all the data discovered in the EVIO file. This is slow, but allows for exploration.
An effort is made to keep this library useful from the ROOT command line, so you can quickly check content of a file. The method PrintBank(level) is useful to print a tree of all the data in the file, similar to evio2xml, except that it will not be xml.