[ROOT] histogram manager

From: Sue Kasahara (schubert@hep.umn.edu)
Date: Wed Apr 21 2004 - 01:03:30 MEST


Hi roottalk,
We are in the early design stage of developing a histogram manager for use
in our experiment's software framework, and would like to solicit ideas from
others on how to best make use of root tools to do this.
    Our current situation is the following:
1)We have a modular software framework, such that physicist programmers
may write their own job modules for insertion into a reconstruction job.
A sequence of appended job modules is called a "path", and one job cycle
might execute multiple job paths.
2)Although we provide framework support for writing reconstruction objects
to root trees and trees to file, we currently provide no support for managing
histograms.  Thus every module author is responsible for managing their own
set of histograms, i.e. they must open a file, create their histogram, manage
the file & histogram pointers and histogram filling over several job cycles, and
write the histogram to file and close the file at the end of the job.

We would like to remedy this situation by providing framework support for
managing histograms, possibly through the use of a histogram manager.
The new system would provide:
1)A standard output file to be used for storage of all histograms produced in a job.
2)An interface to facilitate creation and lookup of histograms by name.  The module
author would call the histogram manager to create a histogram on first call, and
to look up the histogram on subsequent calls.
Some more detailed requirements:
  2a)To avoid duplicate names, histograms would be stored in such as way as to facilitate
      association of a histogram with a module by the module's job path & module name.  For example,
      a histogram created in job path PathA with module ModuleA could be stored in a format
      that allows it to be identified as belonging to /PathA/ModuleA/histogramName.
  2b)The histogram manager needs to have fast lookup capabilities to avoid hindering
        the peformance of the job.
  3)A feature would be provided to allow the user to turn up or down the
       "verbosity" (Normal, Debug, Verbose) of histogram production.  For example, histograms
       designated as Debug level histograms are only produced if the user has requested a
        histogram verbosity level of Debug or higher.

Does anyone have any suggestions or experience with managing histograms that
they would be willing to share with us?  We have considered the use of TFolder for
this application and would be interested to hear if this is an efficient way to handle
the type of fast lookup required here.
Thanks in advance for your help,
-Sue



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET