Fermi Physics Class Libraries Module: Histogram Wrapper

ZOOM ZOOM

HepTuple

 

Histogram/Ntuple Package

Classes to provide general Ntuple and Histogram support. Abstract classes provide the structure and interface, which concrete classes based on HBook, Histoscope and Root implement.

Released Version as of May, 5, 2003: v2.2.1


This package may be obtained from:


Description
User Interface
Documentation and Headers
A Tutorial Example of Writing an Ntuple File
A Note on Ways to Recover Data After a Crash


Philippe Canal(pcanal@fnal.gov), Module Coordinator
Fermilab Physics Class Library Task Force

Comments, questions about getting started, feature needs, and bug/annoyance reports may be sent to ZOOM-support@fnal.gov.

Description

This is a set of "wrappers" expressing the relevant Histogram and Ntuple concepts and hooking to any of a number of underlying Histogram/Ntuple manipulation packages. It is historically based on HepTuple, uses the HepTuple code where applicable, and largely conforms to the naming conventions and choices HepTuple presents. However, the treatment of Ntuples is somewhat modified.

All public symbols start with the letters "Hep" in order to control user namespace pollution.

This package:

The user code to define, manipulate, and fill the Histograms or Ntuples deals with Histogram or Ntuple objects, independent of the manager chosen to handle them. A routine may be passed a generic manager, and create Histograms and Ntuples without regard to which type of manager is actually in use.

This package provides compatibility with the original classes and methods in HepTuple as of March, 1997.

Background and Intentions:

Development status

- - - - - - - - - - -

User Interface

The HepTuple model is that a user does not have to specify the concrete class type when creating an Ntuple or Histogram. When a manager is declared, it uses some underlying implementation (for example HBook). Therefore, only minimal modifications to user code will be necessary to switch from one underlying package to the next.

There are 3 main user interface classes:

HepFileManager . . . . . . . . . . . . . . . . . . . HepFileManager.h
Specific types of managers:
HepHBookFileManager . . . . . . . . HepHBookFileManager.h
HepRootFileManager . . . . . . . . . . HepRootFileManager.h
HepHistoFileManager . . . . . . . . .. HepHistoFileManager.h
HepHist (Histograms of various types)
HepHist1D . . . . . . . . . . . . . . . . . . . HepHist1D.h
HepHist2D . . . . . . . . . . . . . . . . . . . HepHist2D.h
HepHistProf . . . . . . . . . . . . . . . . . . HepHistProf.h
HepNTuple . . . . .. . . . . . . . . . . .. . . . . . . . HepNtuple.h
To use this package, the user instantiates a manager of a particular type, e.g., Then methods of the manager are used to create one or more Histograms and/or Ntuples, e.g., Ntuples may be column-wise or row-wise and may contain arbitrary column structure; the user makes calls to define these properties, e.g., Now the user code is ready to (repeatedly) accumulate points in the Histograms, or capture and store rows in the Ntuple, e.g.,

The best way to understand this package is to look at the physics-oriented tutorial examples.

Documentation and Headers

  • Users Guide and/or Features Guide (not yet available)
  • Class Diagrams

  • HepFileManager . . . . . . . . . . . . . . . . . . . . . . HepFileManager.h
    . . . ( or HepTupleManager) . . . . . . . . . . . . . . . . (TupleManager.h)

  • HepObj
  • Column . . . . . . . . . . . . . . . .. . . . . . .. . . . . . . . Column.h

    ZOOM Home Page - Fermilab at Work - Fermilab Home


    Mark Fischler, Philippe Canal, Walter Brown
    Last updated: May 26, 2000