AthenaMonitoringKernel: Extend Rebinable class to 2D
Allow the creation of "rebinable" 2D histograms. Implementation-wise
this is handled by converting the existing HistogramFillerRebinable1D
class into a "Mixin" class that is templated with the base class (1D or
2D) and the histogram axis that is supposed to be rebinable.
Note the extensive use of constexpr
to optimize most of the configurability away during compile time.
Typedefs are provided to handle the existing 1D case (for which there are no functional changes) and the three new cases to rebin 2D histograms along x, y and both axes. An additional unit test suite for the 2D case has been added.
TODO:
Currently one can only configure 2D histograms that are rebinnable in both axes. Need to decide whether to introduce kAddBinsDynamically[X,Y]
and kRebinAxes[X,Y]
flags to be more specific. (will do this as a separate MR).