39 ClassImp(RooUniformBinning);
48 RooUniformBinning::RooUniformBinning(
const char* name) :
58 RooUniformBinning::RooUniformBinning(Double_t xlo, Double_t xhi, Int_t nBins,
const char* name) :
71 RooUniformBinning::~RooUniformBinning()
73 if (_array)
delete[] _array ;
81 RooUniformBinning::RooUniformBinning(
const RooUniformBinning& other,
const char* name) :
87 _nbins = other._nbins ;
97 void RooUniformBinning::setRange(Double_t xlo, Double_t xhi)
100 coutE(InputArguments) <<
"RooUniformBinning::setRange: ERROR low bound > high bound" << endl ;
106 _binw = (xhi-xlo)/_nbins ;
120 Int_t RooUniformBinning::binNumber(Double_t x)
const
122 Int_t bin = Int_t((x - _xlo)/_binw) ;
123 if (bin<0)
return 0 ;
124 if (bin>_nbins-1)
return _nbins-1 ;
133 Double_t RooUniformBinning::binCenter(Int_t i)
const
135 if (i<0 || i>=_nbins) {
136 coutE(InputArguments) <<
"RooUniformBinning::binCenter ERROR: bin index " << i
137 <<
" is out of range (0," << _nbins-1 <<
")" << endl ;
141 return _xlo + (i + 0.5)*averageBinWidth() ;
150 Double_t RooUniformBinning::binWidth(Int_t )
const
160 Double_t RooUniformBinning::binLow(Int_t i)
const
162 if (i<0 || i>=_nbins) {
163 coutE(InputArguments) <<
"RooUniformBinning::binLow ERROR: bin index " << i
164 <<
" is out of range (0," << _nbins-1 <<
")" << endl ;
168 return _xlo + i*_binw ;
176 Double_t RooUniformBinning::binHigh(Int_t i)
const
178 if (i<0 || i>=_nbins) {
179 coutE(InputArguments) <<
"RooUniformBinning::fitBinHigh ERROR: bin index " << i
180 <<
" is out of range (0," << _nbins-1 <<
")" << endl ;
184 return _xlo + (i + 1)*_binw ;
192 Double_t* RooUniformBinning::array()
const
194 if (_array)
delete[] _array ;
195 _array =
new Double_t[_nbins+1] ;
198 for (i=0 ; i<=_nbins ; i++) {
199 _array[i] = _xlo + i*_binw ;