Uploaded image for project: 'ROOT'
  1. ROOT
  2. ROOT-10444

Decouple RHist axis configuration and statistical data better



    • Improvement
    • Status: Open (View Workflow)
    • Low
    • Resolution: Unresolved
    • master
    • None
    • Core Libraries
    • None


      To improve code readability and maintainability, the axis configuration and statistical data of RHist should be decoupled better than they currently are.

      In an ideal world, RHis would be composed of two entities. One (bikeshed: RAxisSet?) would hold a histogram's axis configuration and take care of all local <-> global bin coordinate conversions. The other (the current RHistData?) would be a set of one-dimensional vectors of global bins that has no knowledge of local binning conventions whatsoever.

      This would allow nice things like cleanly exposing the axis configuration in the public RHist API. However, some design work must be done to answer a few questions before starting implementation:

      • Can we, in such a design, keep the nice property which we currently have that RHist::Fill goes through a single virtual function call and from that point on all code is specialized for the target axis and stats configuration?
      • How do growable axes fit in this nice picture? How can axis growth trigger the statistical data reorganization that must inevitably ensue?




            axel Axel Naumann
            hgraslan Hadrien Benjamin Grasland
            0 Vote for this issue
            1 Start watching this issue