16 #ifndef ROO_PARAM_BINNING 
   17 #define ROO_PARAM_BINNING 
   25 class RooParamBinning : 
public RooAbsBinning {
 
   28   RooParamBinning(
const char* name=0) ;
 
   29   RooParamBinning(RooAbsReal& xlo, RooAbsReal& xhi, Int_t nBins, 
const char* name=0) ;
 
   30   RooParamBinning(
const RooParamBinning& other, 
const char* name=0) ;
 
   31   RooAbsBinning* clone(
const char* name=0)
 const { 
return new RooParamBinning(*
this,name?name:GetName()) ; }
 
   32   virtual ~RooParamBinning() ;
 
   34   virtual void setRange(Double_t xlo, Double_t xhi) ;
 
   36   virtual Int_t numBoundaries()
 const { 
return _nbins + 1 ; }
 
   37   virtual Int_t binNumber(Double_t x) 
const  ;
 
   39   virtual Double_t lowBound()
 const { 
return xlo()->getVal() ; }
 
   40   virtual Double_t highBound()
 const { 
return xhi()->getVal() ; }
 
   42   virtual Double_t binCenter(Int_t bin) 
const ;
 
   43   virtual Double_t binWidth(Int_t bin) 
const ;
 
   44   virtual Double_t binLow(Int_t bin) 
const ;
 
   45   virtual Double_t binHigh(Int_t bin) 
const ;
 
   47   virtual Double_t averageBinWidth()
 const { 
return _binw ; }
 
   48   virtual Double_t* array() 
const ;
 
   50   void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent=
"") 
const ;
 
   52   virtual void insertHook(RooAbsRealLValue&) 
const  ;
 
   53   virtual void removeHook(RooAbsRealLValue&) 
const  ;
 
   55   virtual Bool_t isShareable()
 const { 
return kFALSE ; } 
 
   56   virtual Bool_t isParameterized()
 const { 
return kTRUE ; } 
 
   57   virtual RooAbsReal* lowBoundFunc()
 const { 
return xlo() ; }
 
   58   virtual RooAbsReal* highBoundFunc()
 const { 
return xhi() ; }
 
   62   mutable Double_t* _array ; 
 
   63   mutable RooAbsReal* _xlo ; 
 
   64   mutable RooAbsReal* _xhi ; 
 
   67   mutable RooListProxy* _lp ; 
 
   68   mutable RooAbsArg* _owner ; 
 
   70   RooAbsReal* xlo()
 const { 
return _lp ? ((RooAbsReal*)_lp->at(0)) : _xlo ; }
 
   71   RooAbsReal* xhi()
 const { 
return _lp ? ((RooAbsReal*)_lp->at(1)) : _xhi ; }
 
   73   ClassDef(RooParamBinning,2)