Skip to content

[Run2_2017] Changes to how the trigger names are stored

Created by: aperloff

Add the ability to set a docstring/title for each branch. This mapping between InputTags and titles will be used to store the trigger names as a comma separated list in the branch title, rather than a vector of strings for each event. We end up storing the list three times, once per trigger branch, but that is still far less than the once per event we were doing before.

These modifications have been successfully tested using unit test 1 and 100 events. The log file size went from 63K to 75K, which is due to printing the InputTag to title association. This is a big string in the case of the trigger names. The number of branches went from 424 to 423, as expected.

The ROOT file size went from 879K to 754K, but this doesn't tell the entire story as the header size should stay roughly the same, ignoring the title strings, but the per event size will go down significantly. For the original method, the sum of the sizes of the compressed (uncompressed) branches* is 805.34 KB (2067.67 KB). For the new method this goes down to 680.64 KB (1645.88 KB). The average per event size of the tree* goes from 8.05 KB (20.68 KB) to 6.81 KB (16.46 KB), or a ~15.4% reduction in event size.

The TriggerNames branch took 113.46 KB (421.80 KB), or 1.13 KB (4.22 KB) per event. The fact that the compressed values don't make up the difference between the old and new methods can be explained by different compression ratios in the branches and other, more in-depth ROOT optimizations.

  • Data and offsets, not including any key headers.

Merge request reports