Docs | All | Real | Category | PDF | DataSet | Plot | Container | Misc | Aux | User

RooFit Toolkit for Data Modeling
#include "RooDataHist.hh"

RooDataHist


class description - source file - inheritance tree (.pdf)

class RooDataHist : public RooTreeData, public RooDirItem

Inheritance Chart:
TObject
<-
TNamed
RooPrintable
<-
RooAbsData
<-
RooTreeData
RooDirItem
<-
RooDataHist

    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 RooArgSet* vars = 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

Data Members


    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

Class Description

 RooDataSet is a container class to hold N-dimensional binned data. Each bins central
 coordinates in N-dimensional space are represented by a RooArgSet of RooRealVar, RooCategory
 or RooStringVar objects, thus data can be binned in real and/or discrete dimensions


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 RooArgSet* vars = 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 CVS Update: v 1.50 2005/12/05 14:58:16 wverkerke Top
Copyright © 2000-2005 University of California, Stanford University

Page maintained by Wouter Verkerke and David Kirkby

SourceForge.net Logo