00001
00015 #ifndef __BINNING_H
00016 #define __BINNING_H
00017
00018 #include <Htypes.h>
00019
00020
00022
00037 class TAxis;
00038
00039 class Binning {
00040 public:
00042 Binning ();
00044
00047 Binning (int nbins_,
00048 Axis_t xlow,
00049 Axis_t xhigh
00050 );
00052
00059 Binning (int nbins_,
00060 const float binedges_[]
00061 );
00063
00070 Binning (int nbins_,
00071 const double binedges_[]
00072 );
00074
00077 Binning (const TAxis& axis
00078 );
00080 Binning (const Binning& rhs);
00081
00083 virtual ~Binning();
00084
00086 Binning& operator= (const Binning&);
00087
00089 virtual int getBin (Axis_t x
00090 ) const;
00092 virtual int getNBins() const;
00094 virtual Axis_t getLowerBinEdge(int i
00095 ) const;
00097 virtual Axis_t getUpperBinEdge(int i
00098 ) const;
00100 virtual Axis_t getLowerEdge() const;
00102 virtual Axis_t getUpperEdge() const;
00104 virtual const Axis_t *getEdges() const;
00105
00107 virtual bool isEquidistant() const;
00108
00110 virtual bool hasBinLabels() const;
00111
00113 virtual const char *getBinLabel(int i
00114 ) const;
00115
00116 private:
00117
00118 int nbins;
00119
00121
00128 Axis_t *binedges;
00129 bool equidistant;
00130
00131 private:
00132 };
00133
00134
00135 #endif