Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

IHistogram.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiKernel/GaudiKernel/IHistogram.h,v 1.1.1.1 2001/04/18 18:14:18 tlindner Exp $
00002 #ifndef INTERFACES_IHISTOGRAM_H
00003 #define INTERFACES_IHISTOGRAM_H 1
00004 
00005 
00006 // Include files
00007 #include <string>
00008 
00009 
00010 // Forward declarations
00011 class IAnnotation;
00012 
00013 
00014 //------------------------------------------------------------------------------
00015 //
00016 // ClassName:    IHistogram
00017 //  
00018 // Description:  Definition of the IHistogram interface class
00019 //
00020 //               IHistogram is a base class for all other histogram interfaces.
00021 //               It contains their common functionality.
00022 //
00023 //               IHistogram is not a complete histogram interface, it cannot
00024 //               be used as a standard histogram.  It is ment to be used e.g.
00025 //               for histogram managment (there, where the number of axes is
00026 //               not important).
00027 //
00028 // Design principles :
00029 //
00030 //  1) Only interfaces, basic types, and types from foundation libraries
00031 //     are allowed (STL is currently the only one foundation library)
00032 //     - Uses only int and double as basic types
00033 //     - Internals (classes, enums, or others) of concrete packages
00034 //       do not appear in the interface
00035 //  2) Accessors - XXX() (no getXXX() functions)
00036 //  3) In member function names
00037 //     - in-range bins are not specified explicitly (e.g. sumBinHeights())
00038 //     - ...All... mean all (in-range and extra) bins (e.g. sumAllBinHeights())
00039 //     - ...Extra... mean extra bins (e.g. sumExtraBinHeights())
00040 //
00041 //
00042 // Authors:      Pavel Binko, Dino Ferrero Merlino, Andreas Pfeiffer
00043 // Date:         22/03/2000
00044 //
00045 //------------------------------------------------------------------------------
00046 
00047 
00048 class IHistogram {
00049 
00050 public:
00051 
00052 
00056 
00059   enum { UNDERFLOW_BIN = -2, OVERFLOW_BIN = -1 };
00060 
00061 
00065 
00070   virtual std::string title() const                                         = 0;
00071   virtual void setTitle( std::string value )                                = 0;
00072 
00075 //PB  virtual IAnnotation* annotation()                                         = 0;
00076 //PB  virtual const IAnnotation* annotation() const                             = 0;
00077 
00080   virtual int dimensions() const                                            = 0;
00081 
00084   virtual void reset()                                                      = 0;
00085 
00086 
00090 
00092   virtual int entries() const                                               = 0;
00093 
00096   virtual int allEntries() const                                            = 0;
00097 
00099   virtual int extraEntries() const                                          = 0;
00100 
00103   virtual double equivalentBinEntries() const                               = 0;
00104 
00105 
00109 
00111   virtual double sumBinHeights() const                                      = 0;
00112 
00114   virtual double sumAllBinHeights() const                                   = 0;
00115 
00117   virtual double sumExtraBinHeights() const                                 = 0;
00118 
00119 };
00120 
00121 
00122 #endif    // INTERFACES_IHISTOGRAM_H

Generated at Wed Nov 21 12:22:04 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000