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)