Logo ROOT   6.08/07
Reference Guide
RooHist.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * Package: RooFitCore *
4  * File: $Id: RooHist.h,v 1.22 2007/05/11 09:11:30 verkerke Exp $
5  * Authors: *
6  * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7  * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8  * *
9  * Copyright (c) 2000-2005, Regents of the University of California *
10  * and Stanford University. All rights reserved. *
11  * *
12  * Redistribution and use in source and binary forms, *
13  * with or without modification, are permitted according to the terms *
14  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15  *****************************************************************************/
16 #ifndef ROO_HIST
17 #define ROO_HIST
18 
19 #include "TGraphAsymmErrors.h"
20 #include "RooPlotable.h"
21 #include "RooAbsData.h"
22 
23 class TH1;
24 class RooCurve ;
25 
26 class RooHist : public TGraphAsymmErrors, public RooPlotable {
27 public:
28  RooHist() ;
29  RooHist(Double_t nominalBinWidth, Double_t nSigma= 1, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
30  RooHist(const TH1 &data, Double_t nominalBinWidth= 0, Double_t nSigma= 1, RooAbsData::ErrorType=RooAbsData::Poisson,
31  Double_t xErrorFrac=1.0, Bool_t correctForBinWidth=kTRUE, Double_t scaleFactor=1.);
32  RooHist(const TH1 &data1, const TH1 &data2, Double_t nominalBinWidth= 0, Double_t nSigma= 1, RooAbsData::ErrorType=RooAbsData::Poisson,
33  Double_t xErrorFrac=1.0, Bool_t efficiency=kFALSE, Double_t scaleFactor=1.0);
34  RooHist(const RooHist& hist1, const RooHist& hist2, Double_t wgt1=1.0, Double_t wgt2=1.0,
35  RooAbsData::ErrorType etype=RooAbsData::Poisson, Double_t xErrorFrac=1.0) ;
36  virtual ~RooHist();
37 
38  // add a datapoint for a bin with n entries, using a Poisson error
39  void addBin(Axis_t binCenter, Double_t n, Double_t binWidth= 0, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
40  // add a datapoint for a bin with n entries, using a given error
41  void addBinWithError(Axis_t binCenter, Double_t n, Double_t elow, Double_t ehigh, Double_t binWidth= 0,
42  Double_t xErrorFrac=1.0, Bool_t correctForBinWidth=kTRUE, Double_t scaleFactor=1.0);
43  // add a datapoint for a bin with n entries, using a given x and y error
44  void addBinWithXYError(Axis_t binCenter, Double_t n, Double_t exlow, Double_t exhigh, Double_t eylow, Double_t eyhigh,
45  Double_t scaleFactor=1.0);
46  // add a datapoint for the asymmetry (n1-n2)/(n1+n2), using a binomial error
47  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);
48  // add a datapoint for the asymmetry (n1-n2)/(n1+n2), using sum-of-weights error
49  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);
50 
51  // add a datapoint for the efficiency (n1)/(n1+n2), using a binomial error
52  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);
53  // add a datapoint for the efficiency (n1)/(n1+n2), using a sum-of-weights error
54  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);
55 
56  virtual void printName(std::ostream& os) const ;
57  virtual void printTitle(std::ostream& os) const ;
58  virtual void printClassName(std::ostream& os) const ;
59  virtual void printMultiline(std::ostream& os, Int_t content, Bool_t verbose=kFALSE, TString indent= "") const;
60 
61  inline virtual void Print(Option_t *options= 0) const {
62  // Printing interface
64  }
65 
66  Double_t getFitRangeNEvt() const;
67  Double_t getFitRangeNEvt(Double_t xlo, Double_t xhi) const ;
68  Double_t getFitRangeBinW() const;
69  inline Double_t getNominalBinWidth() const { return _nominalBinWidth; }
70  inline void setRawEntries(Double_t n) { _rawEntries = n ; }
71 
72  Bool_t hasIdenticalBinning(const RooHist& other) const ;
73 
74  RooHist* makeResidHist(const RooCurve& curve,bool normalize=false, bool useAverage=false) const;
75  RooHist* makePullHist(const RooCurve& curve, bool useAverage=false) const
76  {return makeResidHist(curve,true,useAverage); }
77 
78 
79  Bool_t isIdentical(const RooHist& other, Double_t tol=1e-6) const ;
80 
81 
82 protected:
83  void initialize();
85 
86 private:
87  Double_t _nominalBinWidth ; // Average bin width
88  Double_t _nSigma ; // Number of 'sigmas' error bars represent
89  Double_t _entries ; // Number of entries in histogram
90  Double_t _rawEntries; // Number of entries in source dataset
91 
92  ClassDef(RooHist,1) // 1-dimensional histogram with error bars
93 };
94 
95 #endif
Double_t getNominalBinWidth() const
Definition: RooHist.h:69
virtual void printStream(std::ostream &os, Int_t contents, StyleOption style, TString indent="") const
Print description of object on ostream, printing contents set by contents integer, which is interpreted as an OR of 'enum ContentsOptions' values and in the style given by 'enum StyleOption'.
virtual void printTitle(std::ostream &os) const
Print title of RooHist.
Definition: RooHist.cxx:679
A RooCurve is a one-dimensional graphical representation of a real-valued function.
Definition: RooCurve.h:32
const char Option_t
Definition: RtypesCore.h:62
double Axis_t
Definition: RtypesCore.h:72
Double_t _nominalBinWidth
Definition: RooHist.h:87
Class RooPotable is a base class for objects that can be inserted into RooPlots and take advantage of...
Definition: RooPlotable.h:26
Basic string class.
Definition: TString.h:137
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
void setRawEntries(Double_t n)
Definition: RooHist.h:70
const Bool_t kFALSE
Definition: Rtypes.h:92
RooHist * makePullHist(const RooCurve &curve, bool useAverage=false) const
Definition: RooHist.h:75
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)
Add a bin to this histogram with the value (n1-n2)/(n1+n2) using an error bar calculated with Binomia...
Definition: RooHist.cxx:489
TGraph with asymmetric error bars.
Int_t roundBin(Double_t y)
Return the nearest positive integer to the input value and print a warning if an adjustment is requir...
Definition: RooHist.cxx:348
Double_t _entries
Definition: RooHist.h:89
A RooHist is a graphical representation of binned data based on the TGraphAsymmErrors class...
Definition: RooHist.h:26
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)
Add a bin to this histogram with the value n1/(n1+n2) using an error bar calculated with Binomial sta...
Definition: RooHist.cxx:542
#define ClassDef(name, id)
Definition: Rtypes.h:254
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)
Add a bin to this histogram with the value (n1-n2)/(n1+n2) using an error bar calculated with Binomia...
Definition: RooHist.cxx:463
Double_t getFitRangeBinW() const
Return (average) bin width of this RooHist.
Definition: RooHist.cxx:337
void initialize()
Perform common initialization for all constructors.
Definition: RooHist.cxx:283
RooHist()
Default constructor.
Definition: RooHist.cxx:51
const double tol
RooHist * makeResidHist(const RooCurve &curve, bool normalize=false, bool useAverage=false) const
Create and return RooHist containing residuals w.r.t to given curve.
Definition: RooHist.cxx:701
Double_t getFitRangeNEvt() const
Return the number of events of the dataset associated with this RooHist.
Definition: RooHist.cxx:295
bool verbose
Double_t _rawEntries
Definition: RooHist.h:90
virtual Int_t defaultPrintContents(Option_t *opt) const
Default choice of contents to be printed (name and value)
void addBin(Axis_t binCenter, Double_t n, Double_t binWidth=0, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0)
Add a bin to this histogram with the specified integer bin contents and using an error bar calculated...
Definition: RooHist.cxx:368
Bool_t hasIdenticalBinning(const RooHist &other) const
Return kTRUE if binning of this RooHist is identical to that of 'other'.
Definition: RooHist.cxx:578
static void indent(ostringstream &buf, int indent_level)
Double_t _nSigma
Definition: RooHist.h:88
static std::ostream & defaultPrintStream(std::ostream *os=0)
Return a reference to the current default stream to use in Print().
virtual void printName(std::ostream &os) const
Print name of RooHist.
Definition: RooHist.cxx:669
double Double_t
Definition: RtypesCore.h:55
Double_t y[n]
Definition: legend1.C:17
virtual StyleOption defaultPrintStyle(Option_t *opt) const
The TH1 histogram class.
Definition: TH1.h:80
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Definition: TRolke.cxx:630
Bool_t isIdentical(const RooHist &other, Double_t tol=1e-6) const
Return kTRUE if contents of this RooHist is identical within given relative tolerance to that of 'oth...
Definition: RooHist.cxx:613
virtual ~RooHist()
Destructor.
Definition: RooHist.cxx:569
void addBinWithError(Axis_t binCenter, Double_t n, Double_t elow, Double_t ehigh, Double_t binWidth=0, Double_t xErrorFrac=1.0, Bool_t correctForBinWidth=kTRUE, Double_t scaleFactor=1.0)
Add a bin to this histogram with the specified bin contents and error.
Definition: RooHist.cxx:418
virtual void printClassName(std::ostream &os) const
Print class name of RooHist.
Definition: RooHist.cxx:689
virtual void Print(Option_t *options=0) const
Print graph and errors values.
Definition: RooHist.h:61
void addBinWithXYError(Axis_t binCenter, Double_t n, Double_t exlow, Double_t exhigh, Double_t eylow, Double_t eyhigh, Double_t scaleFactor=1.0)
Add a bin to this histogram with the specified bin contents and error.
Definition: RooHist.cxx:443
const Bool_t kTRUE
Definition: Rtypes.h:91
virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const
Print info about this histogram to the specified output stream.
Definition: RooHist.cxx:645
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)
Add a bin to this histogram with the value n1/(n1+n2) using an error bar calculated with Binomial sta...
Definition: RooHist.cxx:515
const Int_t n
Definition: legend1.C:16