library: libRooFit #include "RooDataHist.h" |
RooDataHist
class description - source file - inheritance tree (.pdf)
protected:
RooDataHist(const char* name, const char* title, RooDataHist* h, const RooArgSet& varSubset, const RooFormulaVar* cutVar, const char* cutRange, Int_t nStart, Int_t nStop, Bool_t copyCache)
virtual RooAbsData* cacheClone(const RooArgSet* newCacheVars, const char* newName = "0")
Int_t calcTreeIndex() const
void calculatePartialBinVolume(const RooArgSet& dimSet) const
void initialize(Bool_t fillTree = kTRUE)
Double_t interpolateDim(RooRealVar& dim, Double_t xval, Int_t intOrder, Bool_t correctForBinSize)
virtual RooAbsData* reduceEng(const RooArgSet& varSubset, const RooFormulaVar* cutVar, const char* cutRange = "0", Int_t nStart = 0, Int_t nStop = 2000000000, Bool_t copyCache = kTRUE)
public:
RooDataHist()
RooDataHist(const char* name, const char* title, const RooArgSet& vars)
RooDataHist(const char* name, const char* title, const RooArgSet& vars, const RooAbsData& data, Double_t initWgt = 1.0)
RooDataHist(const char* name, const char* title, const RooArgList& vars, const TH1* hist, Double_t initWgt = 1.0)
RooDataHist(const RooDataHist& other, const char* newname = "0")
virtual ~RooDataHist()
virtual void add(const RooArgSet& row, Double_t weight = 1.0)
virtual void add(const RooArgSet& row, Double_t weight, Double_t sumw2)
void add(const RooAbsData& dset, const RooFormulaVar* cutVar = 0, Double_t weight = 1.0)
void add(const RooAbsData& dset, const char* cut, Double_t weight = 1.0)
Double_t binVolume() const
Double_t binVolume(const RooArgSet& bin)
static TClass* Class()
virtual TObject* Clone(const char* newname = "0") const
void dump2()
virtual RooAbsData* emptyClone(const char* newName = "0", const char* newTitle = "0") const
virtual const RooArgSet* get() const
virtual const RooArgSet* get(Int_t masterIdx) const
virtual const RooArgSet* get(const RooArgSet& coord) const
virtual TClass* IsA() const
virtual Bool_t isWeighted() const
virtual Int_t numEntries(Bool_t useWeights = kFALSE) const
RooDataHist& operator=(const RooDataHist&)
virtual RooPlot* plotOn(RooPlot* frame, RooTreeData::PlotOpt o) const
virtual void reset()
void set(const RooArgSet& row, Double_t weight, Double_t wgtErr = -1)
void set(const RooArgSet& row, Double_t weight, Double_t wgtErrLo, Double_t wgtErrHi)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Double_t sum(Bool_t correctForBinSize) const
Double_t sum(const RooArgSet& sumSet, const RooArgSet& sliceSet, Bool_t correctForBinSize)
virtual Double_t sumEntries(const char* cutSpec = "0", const char* cutRange = "0") const
virtual Double_t weight() const
Double_t weight(const RooArgSet& bin, Int_t intOrder = 1, Bool_t correctForBinSize = kFALSE)
virtual void weightError(Double_t& lo, Double_t& hi, RooAbsData::ErrorType etype = Poisson) const
virtual Double_t weightError(RooAbsData::ErrorType etype = Poisson) const
protected:
Int_t _arrSize Size of the weight array
Int_t* _idxMult ! Multiplier jump table for index calculation
Double_t* _wgt [_arrSize] Weight array
Double_t* _errLo [_arrSize] Low-side error on weight array
Double_t* _errHi [_arrSize] High-side error on weight array
Double_t* _sumw2 [_arrSize] Sum of weights^2
Double_t* _binv [_arrSize] Bin volume array
RooArgSet _realVars Real dimensions of the dataset
TIterator* _realIter ! Iterator over realVars
Double_t _curWeight Weight associated with the current coordinate
Double_t _curWgtErrLo Error on weight associated with the current coordinate
Double_t _curWgtErrHi Error on weight associated with the current coordinate
Double_t _curSumW2 Current sum of weights^2
Double_t _curVolume Volume of bin enclosing current coordinate
Int_t _curIndex Current index
Double_t* _pbinv ! Partial bin volume array
RooNameSet _pbinvCache ! Partial bin volume definition currently cached
RooDataHist()
Default constructor
RooDataHist(const char *name, const char *title, const RooArgSet& vars) :
RooTreeData(name,title,vars), _curWeight(0), _curVolume(1), _pbinv(0)
Constructor of an empty data hist from a RooArgSet defining the dimensions
of the data space. The range and number of bins in each dimensions are taken
from getMin()getMax(),getBins() of each RooAbsArg representing that
dimension.
For real dimensions, the fit range and number of bins can be set independently
of the plot range and number of bins, but it is advisable to keep the
ratio of the plot bin width and the fit bin width an integer value.
For category dimensions, the fit ranges always comprises all defined states
and each state is always has its individual bin
To effective achive binning of real dimensions with variable bins sizes,
construct a RooThresholdCategory of the real dimension to be binned variably.
Set the thresholds at the desired bin boundaries, and construct the
data hist as function of the threshold category instead of the real variable.
RooDataHist(const char *name, const char *title, const RooArgSet& vars, const RooAbsData& data, Double_t weight) :
RooTreeData(name,title,vars), _curWeight(0), _curVolume(1), _pbinv(0)
Constructor of a data hist from an existing data collection (binned or unbinned)
The RooArgSet 'vars' defines the dimensions of the histogram.
The range and number of bins in each dimensions are taken
from getMin()getMax(),getBins() of each RooAbsArg representing that
dimension.
For real dimensions, the fit range and number of bins can be set independently
of the plot range and number of bins, but it is advisable to keep the
ratio of the plot bin width and the fit bin width an integer value.
For category dimensions, the fit ranges always comprises all defined states
and each state is always has its individual bin
To effective achive binning of real dimensions with variable bins sizes,
construct a RooThresholdCategory of the real dimension to be binned variably.
Set the thresholds at the desired bin boundaries, and construct the
data hist as function of the threshold category instead of the real variable.
If the constructed data hist has less dimensions that in source data collection,
all missing dimensions will be projected.
RooDataHist(const char *name, const char *title, const RooArgList& vars, const TH1* hist, Double_t weight) :
RooTreeData(name,title,vars), _curWeight(0), _curVolume(1), _pbinv(0)
Constructor of a data hist from an TH1,TH2 or TH3
The RooArgSet 'vars' defines the dimensions of the histogram. The ranges
and number of bins are taken from the input histogram, and the corresponding
values are set accordingly on the arguments in 'vars'
void initialize(Bool_t fillTree)
Initialization procedure: allocate weights array, calculate
multipliers needed for N-space to 1-dim array jump table,
and fill the internal tree with all bin center coordinates
RooDataHist(const RooDataHist& other, const char* newname) :
RooTreeData(other,newname), RooDirItem(), _curWeight(0), _curVolume(1), _pbinv(0)
Copy constructor
RooDataHist(const char* name, const char* title, RooDataHist* h, const RooArgSet& varSubset,
const RooFormulaVar* cutVar, const char* cutRange, Int_t nStart, Int_t nStop, Bool_t copyCache) :
RooTreeData(name,title,h,varSubset,cutVar,cutRange,nStart,nStop,copyCache), _curWeight(0), _curVolume(1), _pbinv(0)
Constructor of a data hist from (part of) an existing data hist. The dimensions
of the data set are defined by the 'vars' RooArgSet, which can be identical
to 'dset' dimensions, or a subset thereof. Reduced dimensions will be projected
in the output data hist. The optional 'cutVar' formula variable can used to
select the subset of bins to be copied.
For most uses the RooAbsData::reduce() wrapper function, which uses this constructor,
is the most convenient way to create a subset of an existing data
RooAbsData* cacheClone(const RooArgSet* newCacheVars, const char* newName)
RooAbsData* reduceEng(const RooArgSet& varSubset, const RooFormulaVar* cutVar, const char* cutRange,
Int_t nStart, Int_t nStop, Bool_t /*copyCache*/)
Implementation of RooAbsData virtual method that drives the RooAbsData::reduce() methods
~RooDataHist()
Destructor
Int_t calcTreeIndex() const
Calculate the index for the weights array corresponding to
to the bin enclosing the current coordinates of the internal argset
void dump2()
Debug stuff, should go...
RooPlot* plotOn(RooPlot *frame, PlotOpt o) const
Double_t weight(const RooArgSet& bin, Int_t intOrder, Bool_t correctForBinSize)
Return the weight at given coordinates with optional
interpolation. If intOrder is zero, the weight
for the bin enclosing the coordinates
contained in 'bin' is returned. For higher values,
the result is interpolated in the real dimensions
of the dataset
void weightError(Double_t& lo, Double_t& hi, ErrorType etype) const
Return error on current weight
Double_t interpolateDim(RooRealVar& dim, Double_t xval, Int_t intOrder, Bool_t correctForBinSize)
Perform boundary safe 'intOrder'-th interpolation of weights in dimension 'dim'
at current value 'xval'
void add(const RooArgSet& row, Double_t weight, Double_t sumw2)
Increment the weight of the bin enclosing the coordinates
given by 'row' by the specified amount
void set(const RooArgSet& row, Double_t weight, Double_t wgtErrLo, Double_t wgtErrHi)
Increment the weight of the bin enclosing the coordinates
given by 'row' by the specified amount
void set(const RooArgSet& row, Double_t weight, Double_t wgtErr)
Increment the weight of the bin enclosing the coordinates
given by 'row' by the specified amount
void add(const RooAbsData& dset, const char* cut, Double_t weight)
Add all data points contained in 'dset' to this data set with given weight.
Optional cut string expression selects the data points to be added and can
reference any variable contained in this data set
void add(const RooAbsData& dset, const RooFormulaVar* cutVar, Double_t weight)
Add all data points contained in 'dset' to this data set with given weight.
Optional RooFormulaVar pointer selects the data points to be added.
Double_t sum(Bool_t correctForBinSize) const
Return the sum of the weights of all hist bins.
If correctForBinSize is specified, the sum of weights
is multiplied by the N-dimensional bin volume,
making the return value the integral over the function
represented by this histogram
Double_t sum(const RooArgSet& sumSet, const RooArgSet& sliceSet, Bool_t correctForBinSize)
Return the sum of the weights of a multi-dimensional slice of the histogram
by summing only over the dimensions specified in sumSet.
The coordinates of all other dimensions are fixed to those given in sliceSet
If correctForBinSize is specified, the sum of weights
is multiplied by the M-dimensional bin volume, (M = N(sumSet)),
making the return value the integral over the function
represented by this histogram
void calculatePartialBinVolume(const RooArgSet& dimSet) const
Allocate cache if not yet existing
Int_t numEntries(Bool_t useWeights) const
Return the number of bins (useWeights=false) or
the sum of the weights of all bins (useWeight=true)
Double_t sumEntries(const char* cutSpec, const char* cutRange) const
void reset()
Reset all bin weights to zero
const RooArgSet* get(Int_t masterIdx) const
Return an argset with the bin center coordinates for
bin sequential number 'masterIdx'. For iterative use.
const RooArgSet* get(const RooArgSet& coord) const
Double_t binVolume(const RooArgSet& coord)
Inline Functions
TObject* Clone(const char* newname = "0") const
RooAbsData* emptyClone(const char* newName = "0", const char* newTitle = "0") const
void add(const RooAbsData& dset, const char* cut, Double_t weight = 1.0)
const RooArgSet* get(const RooArgSet& coord) const
Bool_t isWeighted() const
Double_t weight(const RooArgSet& bin, Int_t intOrder = 1, Bool_t correctForBinSize = kFALSE)
Double_t binVolume(const RooArgSet& bin)
Double_t weightError(RooAbsData::ErrorType etype = Poisson) const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
RooDataHist& operator=(const RooDataHist&)
Last update: Tue Jun 28 18:11:49 2005
Copyright (c) 2000-2005, Regents of the University of California *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.