extending DT::Flow to histograms and removing deprecated stuff
Recently, we have introduced DT::Flow to easy the handling of input and output TTrees.
Histograms being often produced alongside the TTrees, it is useful to extend DT::Flow to retrieve a histogram split over many samples. Therefore, DT::Flow has been extended with DT::Flow::GetInputHist() and DT::Flow::GetInputHists(). These methods supersede the now deprecated DT::GetHist.
Deprecated methods in FileUtils, which DT::Flow already superseded in a recent MR, have now been removed, since they are no longer used downstream.
In practice, to avoid providing the input files multiple times, the inputs should now be given to the constructor once for all:
DT::Flow flow(steering, inputs);
auto tIn = flow.GetInputTree(slice);
auto hIn = flow.GetInputHist("h");
auto [hIn1,hIn2] = flow.GetInputHists("h1", "h2");
auto tOut = flow.GetOutputTree(output);
auto fOut = flow.GetOutputFile();
I have considered relying on the Merge() method, but this would have implied to load to a potentially excessive number of histograms in memory at the same time, e.g. all response and covariance matrices split among 40 slices (from a parallel or submit run) times the number of hard-scale bins of a Pythia sample (for instance). With the present implementation, at most a pair of histograms should be loaded in memory at the same time.