29 class RooBinning :
public RooAbsBinning {
32 RooBinning(Double_t xlo = -RooNumber::infinity(), Double_t xhi = RooNumber::infinity(),
const char* name = 0);
33 RooBinning(Int_t nBins, Double_t xlo, Double_t xhi,
const char* name = 0);
34 RooBinning(Int_t nBins,
const Double_t* boundaries,
const char* name = 0);
35 RooBinning(
const RooBinning& other,
const char* name = 0);
36 RooAbsBinning* clone(
const char* name = 0)
const {
return new RooBinning(*
this,name?name:GetName()); }
39 virtual Int_t numBoundaries()
const {
43 virtual Int_t binNumber(Double_t x)
const;
44 virtual Int_t rawBinNumber(Double_t x)
const;
45 virtual Double_t nearestBoundary(Double_t x)
const;
47 virtual void setRange(Double_t xlo, Double_t xhi);
49 virtual Double_t lowBound()
const {
53 virtual Double_t highBound()
const {
57 virtual Double_t averageBinWidth()
const {
59 return (highBound() - lowBound()) / numBins();
61 virtual Double_t* array()
const;
63 virtual Double_t binCenter(Int_t bin)
const;
64 virtual Double_t binWidth(Int_t bin)
const;
65 virtual Double_t binLow(Int_t bin)
const;
66 virtual Double_t binHigh(Int_t bin)
const;
68 Bool_t addBoundary(Double_t boundary);
69 void addBoundaryPair(Double_t boundary, Double_t mirrorPoint = 0);
70 void addUniform(Int_t nBins, Double_t xlo, Double_t xhi);
71 Bool_t removeBoundary(Double_t boundary);
73 Bool_t hasBoundary(Double_t boundary);
77 Bool_t binEdges(Int_t bin, Double_t& xlo, Double_t& xhi)
const;
78 void updateBinCount();
86 std::vector<Double_t> _boundaries;
87 mutable Double_t* _array;
90 ClassDef(RooBinning,3)