LDMX-Software / fire

Event-by-event processing framework using HDF5 and C++17
https://ldmx-software.github.io/fire/
GNU General Public License v3.0
1 stars 0 forks source link

Read files produced by ROOT-based Framework #31

Closed tomeichlersmith closed 2 years ago

tomeichlersmith commented 2 years ago

This is the biggest component of issue #19 and is one that I expect will take some time for me to finish developing and validating. I am merely opening this draft PR as a way of investigating the changes I am making as well as showing progress to those anxiously waiting for this capability.

Still a long way to go, but the general idea is to have a single io module which has multiple readers. Each Reader has its own load function in the io::Data tree of classes. If ROOT is found, the ROOT reader will be compiled and the ROOT reader's load functions are enabled via a compile definition.

tomeichlersmith commented 2 years ago

The first benchmark comparison shows good results. There is an odd low-end spike but I am comfortable ignoring that since it isn't a large absolute change.

production_data recon_data

tomeichlersmith commented 2 years ago

After the rebase, I triggered another benchmarking run. These results are less encouraging, but the absolute difference is kept very small.

recon_data production_data