29 class RooBinning : 
public RooAbsBinning {
 
   32   RooBinning(Double_t xlo = -RooNumber::infinity(), Double_t xhi = RooNumber::infinity(), 
const char* name = 0);
 
   33   RooBinning(Int_t nBins, Double_t xlo, Double_t xhi, 
const char* name = 0);
 
   34   RooBinning(Int_t nBins, 
const Double_t* boundaries, 
const char* name = 0);
 
   35   RooBinning(
const RooBinning& other, 
const char* name = 0);
 
   36   RooAbsBinning* clone(
const char* name = 0)
 const { 
return new RooBinning(*
this,name?name:GetName()); }
 
   39   virtual Int_t numBoundaries()
 const {
 
   43   virtual Int_t binNumber(Double_t x) 
const;
 
   44   virtual Int_t rawBinNumber(Double_t x) 
const;
 
   45   virtual Double_t nearestBoundary(Double_t x) 
const;
 
   47   virtual void setRange(Double_t xlo, Double_t xhi);
 
   49   virtual Double_t lowBound()
 const {
 
   53   virtual Double_t highBound()
 const {
 
   57   virtual Double_t averageBinWidth()
 const {
 
   59     return (highBound() - lowBound()) / numBins();
 
   61   virtual Double_t* array() 
const;
 
   63   virtual Double_t binCenter(Int_t bin) 
const;
 
   64   virtual Double_t binWidth(Int_t bin) 
const;
 
   65   virtual Double_t binLow(Int_t bin) 
const;
 
   66   virtual Double_t binHigh(Int_t bin) 
const;
 
   68   Bool_t addBoundary(Double_t boundary);
 
   69   void addBoundaryPair(Double_t boundary, Double_t mirrorPoint = 0);
 
   70   void addUniform(Int_t nBins, Double_t xlo, Double_t xhi);
 
   71   Bool_t removeBoundary(Double_t boundary);
 
   73   Bool_t hasBoundary(Double_t boundary);
 
   77   Bool_t binEdges(Int_t bin, Double_t& xlo, Double_t& xhi) 
const;
 
   78   void updateBinCount();
 
   86   std::vector<Double_t> _boundaries;   
 
   87   mutable Double_t* _array;         
 
   90   ClassDef(RooBinning,3)