16 #ifndef ROO_RANGE_BINNING 
   17 #define ROO_RANGE_BINNING 
   21 class RooRangeBinning : 
public RooAbsBinning {
 
   24   RooRangeBinning(
const char* name=0) ;
 
   25   RooRangeBinning(Double_t xmin, Double_t xmax, 
const char* name=0) ;
 
   26   RooRangeBinning(
const RooRangeBinning&, 
const char* name=0) ;
 
   27   virtual RooAbsBinning* clone(
const char* name=0)
 const { 
return new RooRangeBinning(*
this,name?name:GetName()) ; }
 
   28   virtual ~RooRangeBinning() ;
 
   30   virtual Int_t numBoundaries()
 const { 
return 2 ; }
 
   31   virtual Int_t binNumber(Double_t)
 const { 
return 0 ; }
 
   32   virtual Double_t binCenter(Int_t)
 const { 
return (_range[0] + _range[1]) / 2 ; }
 
   33   virtual Double_t binWidth(Int_t)
 const { 
return (_range[1] - _range[0]) ; }
 
   34   virtual Double_t binLow(Int_t)
 const { 
return _range[0] ; }
 
   35   virtual Double_t binHigh(Int_t)
 const { 
return _range[1] ; }
 
   37   virtual void setRange(Double_t xlo, Double_t xhi) ;
 
   38   virtual void setMin(Double_t xlo) { setRange(xlo,highBound()) ; }
 
   39   virtual void setMax(Double_t xhi) { setRange(lowBound(),xhi) ; }
 
   41   virtual Double_t lowBound()
 const { 
return _range[0] ; }
 
   42   virtual Double_t highBound()
 const { 
return _range[1] ; }
 
   43   virtual Double_t averageBinWidth()
 const { 
return binWidth(0) ; }
 
   45   virtual Double_t* array()
 const { 
return const_cast<Double_t*
>(_range) ; }
 
   51   ClassDef(RooRangeBinning,1)