Feature #78: Output system improvements
Output data should support integer types and more
Currently, THaOutput writes out every variable as Double_t. At the minimum, Int_t should also be a supported output type. Having at least a basic integer type will improve accuracy and reduce the output file size.
Additionally, data that are contiguous in memory should be streamed directly, without copying them to a dummy location. The ROOT tree branch address can simply be set to the start of the memory region.
Also, if arrays are parallel, i.e. multiple variables from objects in a TClonesArray, there should only be one array size counter, not one for each variable. Redundant array size counters should be detected automatically. Of course, this optimization will break scripts that explicitly used those counters. I am not sure if people actually used those counters much.
Updated by Ole Hansen over 6 years ago
- % Done changed from 20 to 80
- Estimated time set to 64.00 h
I implemented most of this in February 2016 on branch "output". In the meantime, I have forgotten the details. The code should be reviewed and tested for all the possible branch types. If I remember correctly, the array size counter optimization can still be improved, but this is low priority.