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)