Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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#include "RooAbsRealLValue.h"
23
24class TH1;
25class RooCurve ;
26
27class RooHist : public TGraphAsymmErrors, public RooPlotable {
28public:
29 RooHist() ;
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,
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);
38
39 // add a datapoint for a bin with n entries, using a Poisson error
40 void addBin(Axis_t binCenter, Double_t n, Double_t binWidth= 0, Double_t xErrorFrac=1.0, Double_t scaleFactor=1.0);
41 // add a datapoint for a bin with n entries, using a given error
42 void addBinWithError(Axis_t binCenter, Double_t n, Double_t elow, Double_t ehigh, Double_t binWidth= 0,
43 Double_t xErrorFrac=1.0, Bool_t correctForBinWidth=kTRUE, Double_t scaleFactor=1.0);
44 // add a datapoint for a bin with n entries, using a given x and y error
45 void addBinWithXYError(Axis_t binCenter, Double_t n, Double_t exlow, Double_t exhigh, Double_t eylow, Double_t eyhigh,
46 Double_t scaleFactor=1.0);
47 // add a datapoint for the asymmetry (n1-n2)/(n1+n2), using a binomial error
48 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);
49 // add a datapoint for the asymmetry (n1-n2)/(n1+n2), using sum-of-weights error
50 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);
51
52 // add a datapoint for the efficiency (n1)/(n1+n2), using a binomial error
53 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);
54 // add a datapoint for the efficiency (n1)/(n1+n2), using a sum-of-weights error
55 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);
56
57 virtual void printName(std::ostream& os) const ;
58 virtual void printTitle(std::ostream& os) const ;
59 virtual void printClassName(std::ostream& os) const ;
60 virtual void printMultiline(std::ostream& os, Int_t content, Bool_t verbose=kFALSE, TString indent= "") const;
61
62 inline virtual void Print(Option_t *options= 0) const {
63 // Printing interface
65 }
66
70 inline Double_t getNominalBinWidth() const { return _nominalBinWidth; }
71 inline void setRawEntries(Double_t n) { _rawEntries = n ; }
72
73 Bool_t hasIdenticalBinning(const RooHist& other) const ;
74
75 RooHist* makeResidHist(const RooCurve& curve,bool normalize=false, bool useAverage=false) const;
76 RooHist* makePullHist(const RooCurve& curve, bool useAverage=false) const
77 {return makeResidHist(curve,true,useAverage); }
78
79
80 Bool_t isIdentical(const RooHist& other, Double_t tol=1e-6, bool verbose=true) const ;
81
82
83protected:
84 void initialize();
86
87 friend class RooPlot;
88
89 void fillResidHist(RooHist & residHist, const RooCurve& curve,bool normalize=false, bool useAverage=false) const;
90 std::unique_ptr<RooHist> createEmptyResidHist(const RooCurve& curve, bool normalize=false) const;
91
92private:
93 Double_t _nominalBinWidth ; // Average bin width
94 Double_t _nSigma ; // Number of 'sigmas' error bars represent
95 Double_t _entries ; // Number of entries in histogram
96 Double_t _rawEntries; // Number of entries in source dataset
97
98 ClassDef(RooHist,1) // 1-dimensional histogram with error bars
99};
100
101#endif
#define f(i)
Definition RSha256.hxx:104
#define e(i)
Definition RSha256.hxx:103
const Bool_t kFALSE
Definition RtypesCore.h:101
double Axis_t
Definition RtypesCore.h:85
double Double_t
Definition RtypesCore.h:59
const Bool_t kTRUE
Definition RtypesCore.h:100
const char Option_t
Definition RtypesCore.h:66
#define ClassDef(name, id)
Definition Rtypes.h:325
static void indent(ostringstream &buf, int indent_level)
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition RooAbsReal.h:64
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition RooArgSet.h:35
A RooCurve is a one-dimensional graphical representation of a real-valued function.
Definition RooCurve.h:32
RooFitResult is a container class to hold the input and output of a PDF fit to a dataset.
A RooHist is a graphical representation of binned data based on the TGraphAsymmErrors class.
Definition RooHist.h:27
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:548
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:808
Double_t _nominalBinWidth
Definition RooHist.h:93
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:574
void fillResidHist(RooHist &residHist, const RooCurve &curve, bool normalize=false, bool useAverage=false) const
Definition RooHist.cxx:755
Double_t getFitRangeNEvt() const
Return the number of events of the dataset associated with this RooHist.
Definition RooHist.cxx:356
Double_t _rawEntries
Definition RooHist.h:96
virtual void printTitle(std::ostream &os) const
Print title of RooHist.
Definition RooHist.cxx:723
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:407
void initialize()
Perform common initialization for all constructors.
Definition RooHist.cxx:344
RooHist()
Default constructor.
Definition RooHist.cxx:50
virtual void Print(Option_t *options=0) const
Print graph and errors values.
Definition RooHist.h:62
virtual void printName(std::ostream &os) const
Print name of RooHist.
Definition RooHist.cxx:713
void setRawEntries(Double_t n)
Definition RooHist.h:71
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:477
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:689
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:601
Bool_t isIdentical(const RooHist &other, Double_t tol=1e-6, bool verbose=true) const
Return kTRUE if contents of this RooHist is identical within given relative tolerance to that of 'oth...
Definition RooHist.cxx:657
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:427
Double_t getNominalBinWidth() const
Definition RooHist.h:70
std::unique_ptr< RooHist > createEmptyResidHist(const RooCurve &curve, bool normalize=false) const
Definition RooHist.cxx:739
virtual void printClassName(std::ostream &os) const
Print class name of RooHist.
Definition RooHist.cxx:733
Double_t _entries
Definition RooHist.h:95
Double_t getFitRangeBinW() const
Return (average) bin width of this RooHist.
Definition RooHist.cxx:396
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:522
Bool_t hasIdenticalBinning(const RooHist &other) const
Return kTRUE if binning of this RooHist is identical to that of 'other'.
Definition RooHist.cxx:627
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:502
RooHist * makePullHist(const RooCurve &curve, bool useAverage=false) const
Definition RooHist.h:76
Double_t _nSigma
Definition RooHist.h:94
A RooPlot is a plot frame and a container for graphics objects within that frame.
Definition RooPlot.h:44
Class RooPotable is a base class for objects that can be inserted into RooPlots and take advantage of...
Definition RooPlotable.h:26
virtual StyleOption defaultPrintStyle(Option_t *opt) const
virtual Int_t defaultPrintContents(Option_t *opt) const
Default choice of contents to be printed (name and value)
static std::ostream & defaultPrintStream(std::ostream *os=0)
Return a reference to the current default stream to use in Print().
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,...
TGraph with asymmetric error bars.
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:58
Basic string class.
Definition TString.h:136
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16