27 class RooHist :
public TGraphAsymmErrors,
public RooPlotable {
30 RooHist(Double_t nominalBinWidth, Double_t nSigma= 1, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
31 RooHist(
const TH1 &data, Double_t nominalBinWidth= 0, Double_t nSigma= 1, RooAbsData::ErrorType=RooAbsData::Poisson,
32 Double_t xErrorFrac=1.0, Bool_t correctForBinWidth=kTRUE, Double_t scaleFactor=1.);
33 RooHist(
const TH1 &data1,
const TH1 &data2, Double_t nominalBinWidth= 0, Double_t nSigma= 1, RooAbsData::ErrorType=RooAbsData::Poisson,
34 Double_t xErrorFrac=1.0, Bool_t efficiency=kFALSE, Double_t scaleFactor=1.0);
35 RooHist(
const RooHist& hist1,
const RooHist& hist2, Double_t wgt1=1.0, Double_t wgt2=1.0,
36 RooAbsData::ErrorType etype=RooAbsData::Poisson, Double_t xErrorFrac=1.0) ;
37 RooHist(
const RooAbsReal &f, RooAbsRealLValue &x, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0,
const RooArgSet *normVars = 0,
const RooFitResult* fr = 0);
41 void addBin(Axis_t binCenter, Double_t n, Double_t binWidth= 0, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
43 void addBinWithError(Axis_t binCenter, Double_t n, Double_t elow, Double_t ehigh, Double_t binWidth= 0,
44 Double_t xErrorFrac=1.0, Bool_t correctForBinWidth=kTRUE, Double_t scaleFactor=1.0);
46 void addBinWithXYError(Axis_t binCenter, Double_t n, Double_t exlow, Double_t exhigh, Double_t eylow, Double_t eyhigh,
47 Double_t scaleFactor=1.0);
49 void addAsymmetryBin(Axis_t binCenter, Int_t n1, Int_t n2, Double_t binWidth= 0, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
51 void addAsymmetryBinWithError(Axis_t binCenter, Double_t n1, Double_t n2, Double_t en1, Double_t en2, Double_t binWidth= 0, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
54 void addEfficiencyBin(Axis_t binCenter, Int_t n1, Int_t n2, Double_t binWidth= 0, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
56 void addEfficiencyBinWithError(Axis_t binCenter, Double_t n1, Double_t n2, Double_t en1, Double_t en2, Double_t binWidth= 0, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
58 virtual void printName(std::ostream& os)
const ;
59 virtual void printTitle(std::ostream& os)
const ;
60 virtual void printClassName(std::ostream& os)
const ;
61 virtual void printMultiline(std::ostream& os, Int_t content, Bool_t verbose=kFALSE, TString indent=
"")
const;
63 inline virtual void Print(Option_t *options= 0)
const {
65 printStream(defaultPrintStream(),defaultPrintContents(options),defaultPrintStyle(options));
68 Double_t getFitRangeNEvt()
const;
69 Double_t getFitRangeNEvt(Double_t xlo, Double_t xhi)
const ;
70 Double_t getFitRangeBinW()
const;
71 inline Double_t getNominalBinWidth()
const {
return _nominalBinWidth; }
72 inline void setRawEntries(Double_t n) { _rawEntries = n ; }
74 Bool_t hasIdenticalBinning(
const RooHist& other)
const ;
76 RooHist* makeResidHist(
const RooCurve& curve,
bool normalize=
false,
bool useAverage=
false)
const;
77 RooHist* makePullHist(
const RooCurve& curve,
bool useAverage=
false)
const
78 {
return makeResidHist(curve,
true,useAverage); }
81 Bool_t isIdentical(
const RooHist& other, Double_t tol=1e-6)
const ;
86 Int_t roundBin(Double_t y);
89 Double_t _nominalBinWidth ;