Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooDataHist Class Reference

Container class to hold N-dimensional binned data.

Each bin's central coordinates in N-dimensional space are represented by a RooArgSet containing RooRealVar, RooCategory or RooStringVar objects, thus data can be binned in real and/or discrete dimensions.

There is an unbinned equivalent, RooDataSet.

Inspecting a datahist

Inspect a datahist using Print() to get the coordinates and weight() to get the bin contents:

datahist->Print("V");
datahist->get(0)->Print("V"); std::cout << "w=" << datahist->weight(0) << std::endl;
datahist->get(1)->Print("V"); std::cout << "w=" << datahist->weight(1) << std::endl;
...

Plotting data.

See RooAbsData::plotOn().

Creating a datahist using RDataFrame

See also
RooAbsDataHelper, rf408_RDataFrameToRooFit.C

PyROOT

Constructor of RooDataHist takes a RooCmdArg as argument also supports keyword arguments. For example, the following code is equivalent in PyROOT:

# Directly passing a RooCmdArg:
dh = ROOT.RooDataHist("dh", "dh", ROOT.RooArgList(x), ROOT.RooFit.Import("SampleA", histo))
# With keyword arguments:
dh = ROOT.RooDataHist("dh", "dh", ROOT.RooArgList(x), Import=("SampleA", histo))

Definition at line 40 of file RooDataHist.h.

Classes

struct  VarInfo
 Structure to cache information on the histogram variable that is frequently used for histogram weights retrieval. More...
 

Public Member Functions

 RooDataHist ()
 Default constructor.
 
 RooDataHist (const RooDataHist &other, const char *newname=nullptr)
 Copy constructor.
 
 RooDataHist (RooStringView name, RooStringView title, const RooArgList &vars, const RooCmdArg &arg1, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={})
 Constructor of a binned dataset from a RooArgSet defining the dimensions of the data space.
 
 RooDataHist (RooStringView name, RooStringView title, const RooArgList &vars, const TH1 *hist, double initWgt=1.0)
 Constructor of a data hist from an TH1,TH2 or TH3 The RooArgSet 'vars' defines the dimensions of the histogram.
 
template<class Val_t >
 RooDataHist (RooStringView name, RooStringView title, const RooArgList &vars, RooCategory &indexCat, RooFit::Detail::FlatMap< std::string, Val_t > const &histMap, double initWgt=1.0)
 For internal use in RooFit.
 
 RooDataHist (RooStringView name, RooStringView title, const RooArgList &vars, RooCategory &indexCat, std::map< std::string, RooDataHist * > dhistMap, double wgt=1.0)
 Constructor of a data hist from a map of RooDataHists that are collated into a x+1 dimensional RooDataHist where the added dimension is a category that labels the input source as defined in the histMap argument.
 
 RooDataHist (RooStringView name, RooStringView title, const RooArgList &vars, RooCategory &indexCat, std::map< std::string, TH1 * > histMap, double initWgt=1.0)
 Constructor of a data hist from a map of TH1,TH2 or TH3 that are collated into a x+1 dimensional RooDataHist where the added dimension is a category that labels the input source as defined in the histMap argument.
 
 RooDataHist (RooStringView name, RooStringView title, const RooArgSet &vars, const char *binningName=nullptr)
 Constructor of an empty data hist from a RooArgSet defining the dimensions of the data space.
 
 RooDataHist (RooStringView name, RooStringView title, const RooArgSet &vars, const RooAbsData &data, double initWgt=1.0)
 Constructor of a data hist from an existing data collection (binned or unbinned) The RooArgSet 'vars' defines the dimensions of the histogram.
 
 ~RooDataHist () override
 Destructor.
 
void add (const RooAbsData &dset, const char *cut, double weight=1.0)
 Add all data points contained in 'dset' to this data set with given weight.
 
void add (const RooAbsData &dset, const RooFormulaVar *cutVar=nullptr, double weight=1.0)
 Add all data points contained in 'dset' to this data set with given weight.
 
void add (const RooArgSet &row, double weight, double sumw2)
 Increment the bin content of the bin enclosing the given coordinates.
 
void add (const RooArgSet &row, double wgt=1.0) override
 Add wgt to the bin content enclosed by the coordinates passed in row.
 
int arraySize () const
 
double binVolume (const RooArgSet &bin) const
 Return the volume of the bin enclosing coordinates 'coord'.
 
double binVolume (std::size_t i) const
 Return bin volume of i-th bin.
 
std::span< const doublebinVolumes (std::size_t first, std::size_t len) const
 Retrieve all bin volumes. Bins are indexed according to getIndex().
 
std::string calculateTreeIndexForCodeSquash (RooAbsArg const *klass, RooFit::Detail::CodeSquashContext &ctx, const RooAbsCollection &coords, bool reverse=false) const
 
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility.
 
std::string declWeightArrayForCodeSquash (RooFit::Detail::CodeSquashContext &ctx, bool correctForBinSize) const
 
RooFit::OwningPtr< RooAbsDataemptyClone (const char *newName=nullptr, const char *newTitle=nullptr, const RooArgSet *vars=nullptr, const char *=nullptr) const override
 Return empty clone of this RooDataHist.
 
const RooArgSetget () const override
 Get bin centre of current bin.
 
virtual const RooArgSetget (const RooArgSet &coord) const
 Return a RooArgSet with whose coordinates denote the bin centre of the bin enclosing the point in coord.
 
const RooArgSetget (Int_t binNumber) const override
 Load bin binNumber, and return an argset with the coordinates of the bin centre.
 
std::vector< std::unique_ptr< const RooAbsBinning > > const & getBinnings () const
 
Int_t getIndex (const RooAbsCollection &coord, bool fast=false) const
 Calculate bin number of the given coordinates.
 
Int_t getIndex (const RooArgSet &coord, bool fast=false) const
 Calculate bin number of the given coordinates.
 
std::span< const doublegetWeightBatch (std::size_t first, std::size_t len, bool sumW2=false) const override
 Return event weights of all events in range [first, first+len).
 
TClassIsA () const override
 
bool isNonPoissonWeighted () const override
 Returns true if dataset contains entries with a non-integer weight.
 
bool isWeighted () const override
 Always returns true as all histograms use event weights.
 
RooDataHistoperator= (const RooDataHist &)=delete
 
virtual RooPlotplotOn (RooPlot *frame, const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={}) const
 
virtual RooPlotplotOn (RooPlot *frame, const RooLinkedList &cmdList) const
 Plot dataset on specified frame.
 
virtual RooPlotplotOn (RooPlot *frame, PlotOpt o) const
 Create and fill a histogram of the frame's variable and append it to the frame.
 
RooPlotplotOn (RooPlot *frame, PlotOpt o) const override
 Back end function to plotting functionality.
 
void printArgs (std::ostream &os) const override
 Print argument of dataset, i.e. the observable names.
 
void printDataHistogram (std::ostream &os, RooRealVar *obs) const
 
void printMultiline (std::ostream &os, Int_t content, bool verbose=false, TString indent="") const override
 Print the details on the dataset contents.
 
void printValue (std::ostream &os) const override
 Print value of the dataset, i.e. the sum of weights contained in the dataset.
 
void removeSelfFromDir ()
 
void reset () override
 Reset all bin weights to zero.
 
void set (const RooArgSet &row, double weight, double wgtErr=-1.)
 Set a bin content.
 
void set (const RooArgSet &row, double weight, double wgtErrLo, double wgtErrHi)
 Set a bin content.
 
void set (std::size_t binNumber, double weight, double wgtErr)
 Set bin content of bin that was last loaded with get(std::size_t).
 
void SetName (const char *name) override
 Change the name of the RooDataHist.
 
void SetNameTitle (const char *name, const char *title) override
 Change the title of this RooDataHist.
 
TIteratorsliceIterator (RooAbsArg &sliceArg, const RooArgSet &otherArgs)
 Create an iterator over all bins in a slice defined by the subset of observables listed in sliceArg.
 
void Streamer (TBuffer &) override
 Stream an object of class RooDataHist.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
double sum (bool correctForBinSize, bool inverseCorr=false) const
 Return the sum of the weights of all bins in the histogram.
 
double sum (const RooArgSet &sumSet, const RooArgSet &sliceSet, bool correctForBinSize, bool inverseCorr, const std::map< const RooAbsArg *, std::pair< double, double > > &ranges, std::function< double(int)> getBinScale=[](int){ return 1.0;})
 Return the sum of the weights of a multi-dimensional slice of the histogram by summing only over the dimensions specified in sumSet.
 
double sum (const RooArgSet &sumSet, const RooArgSet &sliceSet, bool correctForBinSize, bool inverseCorr=false)
 Return the sum of the weights of a multi-dimensional slice of the histogram by summing only over the dimensions specified in sumSet.
 
double sumEntries () const override
 Sum the weights of all bins.
 
double sumEntries (const char *cutSpec, const char *cutRange=nullptr) const override
 Return the sum of weights in all entries matching cutSpec (if specified) and in named range cutRange (if specified) Return the.
 
double const * sumW2Array () const
 
double weight (const RooArgSet &bin, Int_t intOrder=1, bool correctForBinSize=false, bool cdfBoundaries=false, bool oneSafe=false)
 Return the weight at given coordinates with optional interpolation.
 
double weight (std::size_t i) const
 Return weight of i-th bin.
 
double const * weightArray () const
 
void weightError (double &lo, double &hi, ErrorType etype=Poisson) const override
 Return the asymmetric errors on the current weight.
 
double weightError (ErrorType etype=Poisson) const override
 Return the symmetric error on the current weight.
 
double weightFast (const RooArgSet &bin, int intOrder, bool correctForBinSize, bool cdfBoundaries)
 A faster version of RooDataHist::weight that assumes the passed arguments are aligned with the histogram variables.
 
void weights (double *output, std::span< double const > xVals, int intOrder, bool correctForBinSize, bool cdfBoundaries)
 A vectorized version of RooDataHist::weight() for one dimensional histograms with up to one dimensional interpolation.
 
double weightSquared (std::size_t i) const
 Return squared weight sum of i-th bin.
 
double const * wgtErrHiArray () const
 
double const * wgtErrLoArray () const
 
Deprecated functions

These functions rely on the fact that an event has been loaded before they are called.

It is advised to switch to their counterparts that take bin numbers as arguments. In this way, code like,

const RooArgSet* coordinates = dataHist.get(i); // Need this to achieve side effect on next call of weight() - bad.
const double weight = dataHist.weight();
processEvent(coordinates, weight);
Storage_t const & get() const
Const access to the underlying stl container.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition RooArgSet.h:55
double weight(std::size_t i) const
Return weight of i-th bin.

becomes

processEvent(dataHist.get(i), dataHist.weight(i));

The index of a set of coordinates can be computed using getIndex().

double weight () const override
 Return weight of last bin that was requested with get().
 
double weightSquared () const override
 Return squared weight of last bin that was requested with get().
 
double binVolume () const
 Return volume of current bin.
 
void set (double wgt, double wgtErr=-1)
 Write weight into current bin.
 
- Public Member Functions inherited from RooAbsData
 RooAbsData ()
 Default constructor.
 
 RooAbsData (const RooAbsData &other, const char *newname=nullptr)
 Copy constructor.
 
 RooAbsData (RooStringView name, RooStringView title, const RooArgSet &vars, RooAbsDataStore *store=nullptr)
 Constructor from a set of variables.
 
 ~RooAbsData () override
 Destructor.
 
void addOwnedComponent (const char *idxlabel, RooAbsData &data)
 
void attachBuffers (const RooArgSet &extObs)
 
bool canSplitFast () const
 
virtual bool changeObservableName (const char *from, const char *to)
 
void checkInit () const
 
virtual void convertToTreeStore ()
 Convert vector-based storage to tree-based storage.
 
void convertToVectorStore ()
 Convert tree-based storage to vector-based storage.
 
double correlation (RooRealVar &x, RooRealVar &y, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
RooFit::OwningPtr< TMatrixDSymcorrelationMatrix (const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
RooFit::OwningPtr< TMatrixDSymcorrelationMatrix (const RooArgList &vars, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
double covariance (RooRealVar &x, RooRealVar &y, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
RooFit::OwningPtr< TMatrixDSymcovarianceMatrix (const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
RooFit::OwningPtr< TMatrixDSymcovarianceMatrix (const RooArgList &vars, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
TH1createHistogram (const char *name, const RooAbsRealLValue &xvar, const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={}) const
 Calls createHistogram(const char *name, const RooAbsRealLValue& xvar, const RooLinkedList& argList) const.
 
TH1createHistogram (const char *name, const RooAbsRealLValue &xvar, const RooLinkedList &argList) const
 Create and fill a ROOT histogram TH1,TH2 or TH3 with the values of this dataset.
 
TH1createHistogram (const char *varNameList, const RooCmdArg &binArgX={}, const RooCmdArg &binArgY={}, const RooCmdArg &binArgZ={}) const
 Create and fill a ROOT histogram TH1,TH2 or TH3 with the values of this dataset for the variables with given names.
 
TH2FcreateHistogram (const RooAbsRealLValue &var1, const RooAbsRealLValue &var2, const char *cuts="", const char *name="hist") const
 Create a TH2F histogram of the distribution of the specified variable using this dataset.
 
TH2FcreateHistogram (const RooAbsRealLValue &var1, const RooAbsRealLValue &var2, int nx, int ny, const char *cuts="", const char *name="hist") const
 Create a TH2F histogram of the distribution of the specified variable using this dataset.
 
Int_t defaultPrintContents (Option_t *opt) const override
 Define default print options, for a given print style.
 
void Draw (Option_t *option="") override
 Forward draw command to data store.
 
virtual void fill ()
 
virtual TH1fillHistogram (TH1 *hist, const RooArgList &plotVars, const char *cuts="", const char *cutRange=nullptr) const
 Loop over columns of our tree data and fill the input histogram.
 
RealSpans getBatches (std::size_t first=0, std::size_t len=std::numeric_limits< std::size_t >::max()) const
 Write information to retrieve data columns into evalData.spans.
 
CategorySpans getCategoryBatches (std::size_t first=0, std::size_t len=std::numeric_limits< std::size_t >::max()) const
 
TTreeGetClonedTree () const
 Return a clone of the TTree which stores the data or create such a tree if vector storage is used.
 
RooArgSet const * getGlobalObservables () const
 Returns snapshot of global observables stored in this data.
 
bool getRange (const RooAbsRealLValue &var, double &lowest, double &highest, double marginFrac=0.0, bool symMode=false) const
 Fill Doubles 'lowest' and 'highest' with the lowest and highest value of observable 'var' in this dataset.
 
RooAbsDatagetSimData (const char *idxstate)
 
bool hasFilledCache () const
 
double kurtosis (const RooRealVar &var, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
double mean (const RooRealVar &var, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
RooRealVarmeanVar (const RooRealVar &var, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 Create a RooRealVar containing the mean of observable 'var' in this dataset.
 
double moment (const RooRealVar &var, double order, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 Calculate moment of requested order.
 
double moment (const RooRealVar &var, double order, double offset, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 Return the 'order'-ed moment of observable 'var' in this dataset.
 
const TNamednamePtr () const
 De-duplicated pointer to this object's name.
 
virtual Int_t numEntries () const
 Return number of entries in dataset, i.e., count unweighted entries.
 
RooAbsDataoperator= (const RooAbsData &other)
 
void Print (Option_t *options=nullptr) const override
 This method must be overridden when a class wants to print itself.
 
void printClassName (std::ostream &os) const override
 Print class name of dataset.
 
void printName (std::ostream &os) const override
 Print name of dataset.
 
void printTitle (std::ostream &os) const override
 Print title of dataset.
 
void RecursiveRemove (TObject *obj) override
 If one of the TObject we have a referenced to is deleted, remove the reference.
 
RooFit::OwningPtr< RooAbsDatareduce (const char *cut)
 Create a subset of the data set by applying the given cut on the data points.
 
RooFit::OwningPtr< RooAbsDatareduce (const RooArgSet &varSubset, const char *cut=nullptr)
 Create a subset of the data set by applying the given cut on the data points and reducing the dimensions to the specified set.
 
RooFit::OwningPtr< RooAbsDatareduce (const RooArgSet &varSubset, const RooFormulaVar &cutVar)
 Create a subset of the data set by applying the given cut on the data points and reducing the dimensions to the specified set.
 
RooFit::OwningPtr< RooAbsDatareduce (const RooCmdArg &arg1, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={})
 Create a reduced copy of this dataset.
 
RooFit::OwningPtr< RooAbsDatareduce (const RooFormulaVar &cutVar)
 Create a subset of the data set by applying the given cut on the data points.
 
void resetBuffers ()
 
RooRealVarrmsVar (const RooRealVar &var, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 Create a RooRealVar containing the RMS of observable 'var' in this dataset.
 
void setDirtyProp (bool flag)
 Control propagation of dirty flags from observables in dataset.
 
void setGlobalObservables (RooArgSet const &globalObservables)
 Sets the global observables stored in this data.
 
double sigma (const RooRealVar &var, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
double skewness (const RooRealVar &var, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 
virtual RooFit::OwningPtr< TListsplit (const RooAbsCategory &splitCat, bool createEmptyDataSets=false) const
 Split the dataset into subsets based on states of a categorical variable in this dataset.
 
virtual RooFit::OwningPtr< TListsplit (const RooSimultaneous &simpdf, bool createEmptyDataSets=false) const
 Split the dataset into subsets based on the channels of a RooSimultaneous.
 
double standMoment (const RooRealVar &var, double order, const char *cutSpec=nullptr, const char *cutRange=nullptr) const
 Calculate standardized moment.
 
virtual RooPlotstatOn (RooPlot *frame, const char *what, const char *label="", Int_t sigDigits=2, Option_t *options="NELU", double xmin=0.15, double xmax=0.65, double ymax=0.85, const char *cutSpec=nullptr, const char *cutRange=nullptr, const RooCmdArg *formatCmd=nullptr)
 Implementation back-end of statOn() method with named arguments.
 
virtual RooPlotstatOn (RooPlot *frame, const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={}, const RooCmdArg &arg7={}, const RooCmdArg &arg8={})
 Add a box with statistics information to the specified frame.
 
RooAbsDataStorestore ()
 
const RooAbsDataStorestore () const
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
double sumEntriesW2 () const
 Return sum of squared weights of this data.
 
virtual Roo1DTabletable (const RooAbsCategory &cat, const char *cuts="", const char *opts="") const
 Create and fill a 1-dimensional table for given category column This functions is the equivalent of plotOn() for category dimensions.
 
virtual Roo1DTabletable (const RooArgSet &catSet, const char *cuts="", const char *opts="") const
 Construct table for product of categories in catSet.
 
const TTreetree () const
 Return a pointer to the TTree which stores the data.
 
RooFit::UniqueId< RooAbsData > const & uniqueId () const
 Returns a unique ID that is different for every instantiated RooAbsData object.
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor.
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor.
 
void Clear (Option_t *option="") override
 Set name and title to empty strings ("").
 
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility.
 
Int_t Compare (const TObject *obj) const override
 Compare two TNamed objects.
 
void Copy (TObject &named) const override
 Copy this to obj.
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer.
 
const char * GetName () const override
 Returns name of object.
 
const char * GetTitle () const override
 Returns title of object.
 
ULong_t Hash () const override
 Return hash value for this object.
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 List TNamed name and title.
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
void Print (Option_t *option="") const override
 Print TNamed name and title.
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject.
 
void Streamer (TBuffer &) override
 Stream an object of class TObject.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action.
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual void Delete (Option_t *option="")
 Delete this object.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes.
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification (the base implementation is no-op).
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete (void *ptr, void *vp)
 Only called by placement new when throwing an exception.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
void operator delete[] (void *ptr, void *vp)
 Only called by placement new[] when throwing an exception.
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory.
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory.
 
- Public Member Functions inherited from RooPrintable
 RooPrintable ()
 
virtual ~RooPrintable ()
 
virtual StyleOption defaultPrintStyle (Option_t *opt) const
 
virtual void printAddress (std::ostream &os) const
 Print class name of object.
 
virtual void printExtras (std::ostream &os) const
 Interface to print extras of object.
 
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 printTree (std::ostream &os, TString indent="") const
 Interface for tree structure printing of object.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from RooDirItem
 RooDirItem ()
 
 RooDirItem (const RooDirItem &)
 
virtual ~RooDirItem ()
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from RooAbsData
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static StorageType getDefaultStorageType ()
 
static void setDefaultStorageType (StorageType s)
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 
- Static Public Member Functions inherited from RooPrintable
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static std::ostream & defaultPrintStream (std::ostream *os=nullptr)
 Return a reference to the current default stream to use in Print().
 
static void nameFieldLength (Int_t newLen)
 Set length of field reserved from printing name of RooAbsArgs in multi-line collection printing to given amount.
 
- Static Public Member Functions inherited from RooDirItem
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 

Protected Types

enum  CacheSumState_t { kInvalid = 0 , kNoBinCorrection = 1 , kCorrectForBinSize = 2 , kInverseBinCorr = 3 }
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 

Protected Member Functions

void adjustBinning (const RooArgList &vars, const TH1 &href, Int_t *offset=nullptr)
 Adjust binning specification on first and optionally second and third observable to binning in given reference TH1.
 
Int_t calcTreeIndex () const
 Legacy overload to calculate the tree index from the current value of _vars.
 
std::size_t calcTreeIndex (const RooAbsCollection &coords, bool fast) const
 Calculate the bin index corresponding to the coordinates passed as argument.
 
const std::vector< double > & calculatePartialBinVolume (const RooArgSet &dimSet) const
 Fill the transient cache with partial bin volumes with up-to-date values for the partial volume specified by observables 'dimSet'.
 
void checkBinBounds () const
 
void importDHistSet (const RooArgList &vars, RooCategory &indexCat, std::map< std::string, RooDataHist * > dmap, double initWgt)
 Import data from given set of TH1/2/3 into this RooDataHist.
 
void importTH1 (const RooArgList &vars, const TH1 &histo, double initWgt, bool doDensityCorrection)
 Import data from given TH1/2/3 into this RooDataHist.
 
void importTH1Set (const RooArgList &vars, RooCategory &indexCat, std::map< std::string, TH1 * > hmap, double initWgt, bool doDensityCorrection)
 Import data from given set of TH1/2/3 into this RooDataHist.
 
void initialize (const char *binningName=nullptr, bool fillTree=true)
 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.
 
double interpolateDim (int iDim, double xval, size_t centralIdx, int intOrder, bool correctForBinSize, bool cdfBoundaries)
 Perform boundary safe 'intOrder'-th interpolation of weights in dimension 'dim' at current value 'xval'.
 
std::unique_ptr< RooAbsDatareduceEng (const RooArgSet &varSubset, const RooFormulaVar *cutVar, const char *cutRange=nullptr, std::size_t nStart=0, std::size_t nStop=std::numeric_limits< std::size_t >::max()) override
 Implementation of RooAbsData virtual method that drives the RooAbsData::reduce() methods.
 
- Protected Member Functions inherited from RooAbsData
bool allClientsCached (RooAbsArg *, const RooArgSet &)
 Utility function that determines if all clients of object 'var' appear in given list of cached nodes.
 
virtual void attachCache (const RooAbsArg *newOwner, const RooArgSet &cachedVars)
 Internal method – Attach dataset copied with cache contents to copied instances of functions.
 
virtual void cacheArgs (const RooAbsArg *owner, RooArgSet &varSet, const RooArgSet *nset=nullptr, bool skipZeroWeights=false)
 Internal method – Cache given set of functions with data.
 
double corrcov (const RooRealVar &x, const RooRealVar &y, const char *cutSpec, const char *cutRange, bool corr) const
 Internal method to calculate single correlation and covariance elements.
 
RooFit::OwningPtr< TMatrixDSymcorrcovMatrix (const RooArgList &vars, const char *cutSpec, const char *cutRange, bool corr) const
 Return covariance matrix from data for given list of observables.
 
RooRealVardataRealVar (const char *methodname, const RooRealVar &extVar) const
 Internal method to check if given RooRealVar maps to a RooRealVar in this dataset.
 
void initializeVars (RooArgSet const &vars)
 
virtual void optimizeReadingWithCaching (RooAbsArg &arg, const RooArgSet &cacheList, const RooArgSet &keepObsList)
 Prepare dataset for use with cached constant terms listed in 'cacheList' of expression 'arg'.
 
virtual RooPlotplotAsymOn (RooPlot *frame, const RooAbsCategoryLValue &asymCat, PlotOpt o) const
 Create and fill a histogram with the asymmetry N[+] - N[-] / ( N[+] + N[-] ), where N(+/-) is the number of data points with asymCat=+1 and asymCat=-1 as function of the frames variable.
 
virtual RooPlotplotEffOn (RooPlot *frame, const RooAbsCategoryLValue &effCat, PlotOpt o) const
 Create and fill a histogram with the efficiency N[1] / ( N[1] + N[0] ), where N(1/0) is the number of data points with effCat=1 and effCat=0 as function of the frames variable.
 
virtual void resetCache ()
 Internal method – Remove cached function values.
 
virtual void setArgStatus (const RooArgSet &set, bool active)
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void MakeZombie ()
 
- Protected Member Functions inherited from RooDirItem
void appendToDir (TObject *obj, bool forceMemoryResident=false)
 Append object to directory.
 
void removeFromDir (TObject *obj)
 Remove object from directory it was added to.
 

Protected Attributes

Int_t _arrSize {0}
 
std::vector< std::vector< double > > _binbounds
 ! list of bin bounds per dimension
 
double_binv {nullptr}
 [_arrSize] Bin volume array
 
double _cache_sum {0.}
 ! Cache for sum of entries ;
 
Int_t _cache_sum_valid {kInvalid}
 ! Is cache sum valid? Needs to be Int_t instead of CacheSumState_t for subclasses.
 
ULong64_t _curIndex {std::numeric_limits<ULong64_t>::max()}
 Current index.
 
double_errHi {nullptr}
 [_arrSize] High-side error on weight array
 
double_errLo {nullptr}
 [_arrSize] Low-side error on weight array
 
std::vector< Int_t_idxMult
 
std::vector< std::unique_ptr< const RooAbsBinning > > _lvbins
 ! List of used binnings associated with lvalues
 
std::vector< RooAbsLValue * > _lvvars
 ! List of observables casted as RooAbsLValue
 
std::unordered_map< int, std::vector< double > > _pbinvCache
 ! Cache for arrays of partial bin volumes
 
double_sumw2 {nullptr}
 [_arrSize] Sum of weights^2
 
double_wgt {nullptr}
 [_arrSize] Weight array
 
- Protected Attributes inherited from RooAbsData
RooArgSet _cachedVars
 ! External variables cached with this data set
 
std::unique_ptr< RooAbsDataStore_dstore
 Data storage implementation.
 
std::unique_ptr< RooArgSet_globalObservables
 Snapshot of global observables.
 
const TNamed_namePtr = nullptr
 ! De-duplicated name pointer. This will be equal for all objects with the same name.
 
std::map< std::string, RooAbsData * > _ownedComponents
 Owned external components.
 
RooArgSet _vars
 Dimensions of this data set.
 
StorageType storageType
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from RooDirItem
TDirectory_dir {nullptr}
 ! Associated directory
 

Private Member Functions

void _adjustBinning (RooRealVar &theirVar, const TAxis &axis, RooRealVar *ourVar, Int_t *offset)
 Helper doing the actual work of adjustBinning().
 
VarInfo const & getVarInfo ()
 Return reference to VarInfo struct with cached histogram variable information that is frequently used for histogram weights retrieval.
 
void initializeAsymErrArrays () const
 
void interpolateLinear (double *output, std::span< const double > xVals, bool correctForBinSize, bool cdfBoundaries)
 A vectorized version of interpolateDim for boundary safe linear interpolation of one dimensional histograms.
 
void interpolateQuadratic (double *output, std::span< const double > xVals, bool correctForBinSize, bool cdfBoundaries)
 A vectorized version of interpolateDim for boundary safe quadratic interpolation of one dimensional histograms.
 
void registerWeightArraysToDataStore () const
 Hand over pointers to our weight arrays to the data store implementation.
 
double weightInterpolated (const RooArgSet &bin, int intOrder, bool correctForBinSize, bool cdfBoundaries)
 Return the weight at given coordinates with interpolation.
 

Static Private Member Functions

static std::unique_ptr< RooAbsDataStoremakeDefaultDataStore (RooStringView name, RooStringView title, RooArgSet const &vars)
 

Private Attributes

std::vector< double_interpolationBuffer
 ! Buffer to contain values used for weight interpolation
 
VarInfo _varInfo
 !
 

Friends

class RooDataHistSliceIter
 

Additional Inherited Members

- Public Types inherited from RooAbsData
using CategorySpans = std::map< RooFit::Detail::DataKey, std::span< const RooAbsCategory::value_type > >
 
enum  ErrorType {
  Poisson , SumW2 , None , Auto ,
  Expected
}
 
using RealSpans = std::map< RooFit::Detail::DataKey, std::span< const double > >
 
enum  StorageType { Tree , Vector , Composite }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 
- Public Types inherited from RooPrintable
enum  ContentsOption {
  kName =1 , kClassName =2 , kValue =4 , kArgs =8 ,
  kExtras =16 , kAddress =32 , kTitle =64 , kCollectionHeader =128
}
 
enum  StyleOption {
  kInline =1 , kSingleLine =2 , kStandard =3 , kVerbose =4 ,
  kTreeStructure =5
}
 
- Static Protected Attributes inherited from RooAbsData
static StorageType defaultStorageType =RooAbsData::Vector
 
- Static Protected Attributes inherited from RooPrintable
static Int_t _nameLength
 

#include <RooDataHist.h>

Inheritance diagram for RooDataHist:
[legend]

Member Enumeration Documentation

◆ CacheSumState_t

Enumerator
kInvalid 
kNoBinCorrection 
kCorrectForBinSize 
kInverseBinCorr 

Definition at line 262 of file RooDataHist.h.

Constructor & Destructor Documentation

◆ RooDataHist() [1/9]

RooDataHist::RooDataHist ( )

Default constructor.

Definition at line 87 of file RooDataHist.cxx.

◆ RooDataHist() [2/9]

RooDataHist::RooDataHist ( RooStringView  name,
RooStringView  title,
const RooArgSet vars,
const char *  binningName = nullptr 
)

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 effectively bin real dimensions with variable bin 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 a function of the threshold category instead of the real variable.

Definition at line 118 of file RooDataHist.cxx.

◆ RooDataHist() [3/9]

RooDataHist::RooDataHist ( RooStringView  name,
RooStringView  title,
const RooArgSet vars,
const RooAbsData data,
double  wgt = 1.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 argument passed.

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 effectively bin real dimensions with variable bin 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 a 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.

Definition at line 154 of file RooDataHist.cxx.

◆ RooDataHist() [4/9]

RooDataHist::RooDataHist ( RooStringView  name,
RooStringView  title,
const RooArgList vars,
const TH1 hist,
double  wgt = 1.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'

Definition at line 216 of file RooDataHist.cxx.

◆ RooDataHist() [5/9]

RooDataHist::RooDataHist ( RooStringView  name,
RooStringView  title,
const RooArgList vars,
RooCategory indexCat,
std::map< std::string, TH1 * >  histMap,
double  wgt = 1.0 
)

Constructor of a data hist from a map of TH1,TH2 or TH3 that are collated into a x+1 dimensional RooDataHist where the added dimension is a category that labels the input source as defined in the histMap argument.

The state names used in histMap must correspond to predefined states 'indexCat'

The RooArgList 'vars' defines the dimensions of the histogram. The ranges and number of bins are taken from the input histogram and must be the same in all histograms

Definition at line 171 of file RooDataHist.cxx.

◆ RooDataHist() [6/9]

RooDataHist::RooDataHist ( RooStringView  name,
RooStringView  title,
const RooArgList vars,
RooCategory indexCat,
std::map< std::string, RooDataHist * >  dhistMap,
double  wgt = 1.0 
)

Constructor of a data hist from a map of RooDataHists that are collated into a x+1 dimensional RooDataHist where the added dimension is a category that labels the input source as defined in the histMap argument.

The state names used in histMap must correspond to predefined states 'indexCat'

The RooArgList 'vars' defines the dimensions of the histogram. The ranges and number of bins are taken from the input histogram and must be the same in all histograms

Definition at line 195 of file RooDataHist.cxx.

◆ RooDataHist() [7/9]

RooDataHist::RooDataHist ( RooStringView  name,
RooStringView  title,
const RooArgList vars,
const RooCmdArg arg1,
const RooCmdArg arg2 = {},
const RooCmdArg arg3 = {},
const RooCmdArg arg4 = {},
const RooCmdArg arg5 = {},
const RooCmdArg arg6 = {},
const RooCmdArg arg7 = {},
const RooCmdArg arg8 = {} 
)

Constructor of a binned dataset 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.

Optional Argument Effect
Import(TH1&, bool impDens)

Import contents of the given TH1/2/3 into this binned dataset. The ranges and binning of the binned dataset are automatically adjusted to match those of the imported histogram.

Please note: for TH1& with unequal binning only, you should decide if you want to import the absolute bin content, or the bin content expressed as density. The latter is default and will result in the same histogram as the original TH1. For certain types of bin contents (containing efficiencies, asymmetries, or ratio is general) you should import the absolute value and set impDens to false

Weight(double)

Apply given weight factor when importing histograms

Index(RooCategory&)

Prepare import of multiple TH1/1/2/3 into a N+1 dimensional RooDataHist where the extra discrete dimension labels the source of the imported histogram If the index category defines states for which no histogram is be imported the corresponding bins will be left empty.

Import(const char*, TH1&) Import a THx to be associated with the given state name of the index category specified in Index(). If the given state name is not yet defined in the index category it will be added on the fly. The import command can be specified multiple times.
Import(map<string,TH1*>&) As above, but allows specification of many imports in a single operation
GlobalObservables(const RooArgSet&) Define the set of global observables to be stored in this RooDataHist. A snapshot of the passed RooArgSet is stored, meaning the values wont't change unexpectedly.

Definition at line 277 of file RooDataHist.cxx.

◆ RooDataHist() [8/9]

template<class Val_t >
RooDataHist::RooDataHist ( RooStringView  name,
RooStringView  title,
const RooArgList vars,
RooCategory indexCat,
RooFit::Detail::FlatMap< std::string, Val_t > const &  histMap,
double  initWgt = 1.0 
)
inline

For internal use in RooFit.

Definition at line 55 of file RooDataHist.h.

◆ RooDataHist() [9/9]

RooDataHist::RooDataHist ( const RooDataHist other,
const char *  newname = nullptr 
)

Copy constructor.

Definition at line 887 of file RooDataHist.cxx.

◆ ~RooDataHist()

RooDataHist::~RooDataHist ( )
override

Destructor.

Definition at line 968 of file RooDataHist.cxx.

Member Function Documentation

◆ _adjustBinning()

void RooDataHist::_adjustBinning ( RooRealVar theirVar,
const TAxis axis,
RooRealVar ourVar,
Int_t offset 
)
private

Helper doing the actual work of adjustBinning().

Definition at line 667 of file RooDataHist.cxx.

◆ add() [1/4]

void RooDataHist::add ( const RooAbsData dset,
const char *  cut,
double  wgt = 1.0 
)

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

Definition at line 1802 of file RooDataHist.cxx.

◆ add() [2/4]

void RooDataHist::add ( const RooAbsData dset,
const RooFormulaVar cutVar = nullptr,
double  wgt = 1.0 
)

Add all data points contained in 'dset' to this data set with given weight.

Optional RooFormulaVar pointer selects the data points to be added.

Definition at line 1814 of file RooDataHist.cxx.

◆ add() [3/4]

void RooDataHist::add ( const RooArgSet row,
double  wgt,
double  sumw2 
)

Increment the bin content of the bin enclosing the given coordinates.

Parameters
[in]rowCoordinates of the bin.
[in]wgtIncrement by this weight.
[in]sumw2Optionally, track the sum of squared weights. If a value > 0 or a weight != 1. is passed for the first time, a vector for the squared weights will be allocated.

Definition at line 1704 of file RooDataHist.cxx.

◆ add() [4/4]

void RooDataHist::add ( const RooArgSet row,
double  wgt = 1.0 
)
inlineoverridevirtual

Add wgt to the bin content enclosed by the coordinates passed in row.

Implements RooAbsData.

Definition at line 72 of file RooDataHist.h.

◆ adjustBinning()

void RooDataHist::adjustBinning ( const RooArgList vars,
const TH1 href,
Int_t offset = nullptr 
)
protected

Adjust binning specification on first and optionally second and third observable to binning in given reference TH1.

Used by constructors that import data from an external TH1. Both the variables in vars and in this RooDataHist are adjusted.

Parameters
varsList with variables that are supposed to have their binning adjusted.
hrefReference histogram that dictates the binning
offsetIf not nullptr, a possible bin count offset for the axes x,y,z is saved here as Int_t[3]

Definition at line 737 of file RooDataHist.cxx.

◆ arraySize()

int RooDataHist::arraySize ( ) const
inline

Definition at line 215 of file RooDataHist.h.

◆ binVolume() [1/3]

double RooDataHist::binVolume ( ) const
inline

Return volume of current bin.

Deprecated:
Use binVolume(std::size_t) const.

Definition at line 194 of file RooDataHist.h.

◆ binVolume() [2/3]

double RooDataHist::binVolume ( const RooArgSet bin) const

Return the volume of the bin enclosing coordinates 'coord'.

Definition at line 2202 of file RooDataHist.cxx.

◆ binVolume() [3/3]

double RooDataHist::binVolume ( std::size_t  i) const
inline

Return bin volume of i-th bin.

See also
getIndex()

Definition at line 118 of file RooDataHist.h.

◆ binVolumes()

std::span< const double > RooDataHist::binVolumes ( std::size_t  first,
std::size_t  len 
) const
inline

Retrieve all bin volumes. Bins are indexed according to getIndex().

Definition at line 95 of file RooDataHist.h.

◆ calcTreeIndex() [1/2]

Int_t RooDataHist::calcTreeIndex ( ) const
inlineprotected

Legacy overload to calculate the tree index from the current value of _vars.

Deprecated:
Use calcTreeIndex(const RooArgSet&,bool) const.

Definition at line 232 of file RooDataHist.h.

◆ calcTreeIndex() [2/2]

std::size_t RooDataHist::calcTreeIndex ( const RooAbsCollection coords,
bool  fast 
) const
protected

Calculate the bin index corresponding to the coordinates passed as argument.

Parameters
[in]coordsCoordinates. If fast == false, these can be partial.
[in]fastPromise that the coordinates in coords have the same order as the internal coordinates. In this case, values are looked up only by index.

Definition at line 1054 of file RooDataHist.cxx.

◆ calculatePartialBinVolume()

const std::vector< double > & RooDataHist::calculatePartialBinVolume ( const RooArgSet dimSet) const
protected

Fill the transient cache with partial bin volumes with up-to-date values for the partial volume specified by observables 'dimSet'.

Definition at line 2065 of file RooDataHist.cxx.

◆ calculateTreeIndexForCodeSquash()

std::string RooDataHist::calculateTreeIndexForCodeSquash ( RooAbsArg const *  klass,
RooFit::Detail::CodeSquashContext ctx,
const RooAbsCollection coords,
bool  reverse = false 
) const

Definition at line 1011 of file RooDataHist.cxx.

◆ checkBinBounds()

void RooDataHist::checkBinBounds ( ) const
protected

Definition at line 867 of file RooDataHist.cxx.

◆ Class()

static TClass * RooDataHist::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * RooDataHist::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t RooDataHist::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 282 of file RooDataHist.h.

◆ Clone()

TObject * RooDataHist::Clone ( const char *  newname = "") const
inlineoverridevirtual

Make a clone of an object using the Streamer facility.

If the object derives from TNamed, this function is called by TNamed::Clone. TNamed::Clone uses the optional argument to set a new name to the newly created object.

If the object class has a DirectoryAutoAdd function, it will be called at the end of the function with the parameter gDirectory. This usually means that the object will be appended to the current ROOT directory.

Reimplemented from TObject.

Definition at line 61 of file RooDataHist.h.

◆ DeclFileName()

static const char * RooDataHist::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 282 of file RooDataHist.h.

◆ declWeightArrayForCodeSquash()

std::string RooDataHist::declWeightArrayForCodeSquash ( RooFit::Detail::CodeSquashContext ctx,
bool  correctForBinSize 
) const

Definition at line 995 of file RooDataHist.cxx.

◆ emptyClone()

RooFit::OwningPtr< RooAbsData > RooDataHist::emptyClone ( const char *  newName = nullptr,
const char *  newTitle = nullptr,
const RooArgSet vars = nullptr,
const char *  = nullptr 
) const
inlineoverridevirtual

Return empty clone of this RooDataHist.

Implements RooAbsData.

Definition at line 67 of file RooDataHist.h.

◆ get() [1/3]

const RooArgSet * RooDataHist::get ( ) const
inlineoverridevirtual

Get bin centre of current bin.

Reimplemented from RooAbsData.

Definition at line 82 of file RooDataHist.h.

◆ get() [2/3]

const RooArgSet * RooDataHist::get ( const RooArgSet coord) const
virtual

Return a RooArgSet with whose coordinates denote the bin centre of the bin enclosing the point in coord.

Note
The argset is owned by this data hist, and this function has a side effect, because it alters the currently active bin.

Definition at line 2194 of file RooDataHist.cxx.

◆ get() [3/3]

const RooArgSet * RooDataHist::get ( Int_t  binNumber) const
overridevirtual

Load bin binNumber, and return an argset with the coordinates of the bin centre.

Note
The argset is owned by this data hist, and this function has a side effect, because it alters the currently active bin.

Reimplemented from RooAbsData.

Definition at line 2179 of file RooDataHist.cxx.

◆ getBinnings()

std::vector< std::unique_ptr< const RooAbsBinning > > const & RooDataHist::getBinnings ( ) const
inline

Definition at line 213 of file RooDataHist.h.

◆ getIndex() [1/2]

Int_t RooDataHist::getIndex ( const RooAbsCollection coord,
bool  fast = false 
) const

Calculate bin number of the given coordinates.

If only a subset of the internal coordinates are passed, the missing coordinates are taken at their current value.

Parameters
[in]coordVariables that are representing the coordinates.
[in]fastIf the variables in coord and the ones of the data hist have the same size and layout, fast can be set to skip checking that all variables are present in coord.

Definition at line 990 of file RooDataHist.cxx.

◆ getIndex() [2/2]

Int_t RooDataHist::getIndex ( const RooArgSet coord,
bool  fast = false 
) const
inline

Calculate bin number of the given coordinates.

If only a subset of the internal coordinates are passed, the missing coordinates are taken at their current value.

Parameters
[in]coordVariables that are representing the coordinates.
[in]fastIf the variables in coord and the ones of the data hist have the same size and layout, fast can be set to skip checking that all variables are present in coord.
Note
This overload only exists because there is an implicit conversion from RooAbsArg to RooArgSet, and this needs to remain supported. This enables code like
dataHist.getIndex(x);
Variable that can be changed from the outside.
Definition RooRealVar.h:37
Double_t x[n]
Definition legend1.C:17
It is, however, recommended to use
dataHist.getIndex(RooArgSet(x));
in this case.

Definition at line 160 of file RooDataHist.h.

◆ getVarInfo()

RooDataHist::VarInfo const & RooDataHist::getVarInfo ( )
private

Return reference to VarInfo struct with cached histogram variable information that is frequently used for histogram weights retrieval.

If the _varInfo struct was not initialized yet, it will be initialized in this function.

Definition at line 2424 of file RooDataHist.cxx.

◆ getWeightBatch()

std::span< const double > RooDataHist::getWeightBatch ( std::size_t  first,
std::size_t  len,
bool  sumW2 = false 
) const
overridevirtual

Return event weights of all events in range [first, first+len).

If cacheValidEntries() has been called, out-of-range events will have a weight of 0.

Implements RooAbsData.

Definition at line 2406 of file RooDataHist.cxx.

◆ importDHistSet()

void RooDataHist::importDHistSet ( const RooArgList vars,
RooCategory indexCat,
std::map< std::string, RooDataHist * >  dmap,
double  initWgt 
)
protected

Import data from given set of TH1/2/3 into this RooDataHist.

The category indexCat labels the sources in the constructed RooDataHist. The stl map provides the mapping between the indexCat state labels and the import source

Definition at line 605 of file RooDataHist.cxx.

◆ importTH1()

void RooDataHist::importTH1 ( const RooArgList vars,
const TH1 histo,
double  initWgt,
bool  doDensityCorrection 
)
protected

Import data from given TH1/2/3 into this RooDataHist.

Definition at line 374 of file RooDataHist.cxx.

◆ importTH1Set()

void RooDataHist::importTH1Set ( const RooArgList vars,
RooCategory indexCat,
std::map< std::string, TH1 * >  hmap,
double  wgt,
bool  doDensityCorrection 
)
protected

Import data from given set of TH1/2/3 into this RooDataHist.

The category indexCat labels the sources in the constructed RooDataHist. The stl map provides the mapping between the indexCat state labels and the import source

Definition at line 497 of file RooDataHist.cxx.

◆ initialize()

void RooDataHist::initialize ( const char *  binningName = nullptr,
bool  fillTree = true 
)
protected

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.

Definition at line 783 of file RooDataHist.cxx.

◆ initializeAsymErrArrays()

void RooDataHist::initializeAsymErrArrays ( ) const
private

Definition at line 1551 of file RooDataHist.cxx.

◆ interpolateDim()

double RooDataHist::interpolateDim ( int  iDim,
double  xval,
size_t  centralIdx,
int  intOrder,
bool  correctForBinSize,
bool  cdfBoundaries 
)
protected

Perform boundary safe 'intOrder'-th interpolation of weights in dimension 'dim' at current value 'xval'.

Parameters
[in]iDimIndex of the histogram dimension along which to interpolate.
[in]xvalValue of histogram variable at dimension iDim for which we want to interpolate the histogram weight.
[in]centralIdxIndex of the bin that the point at which we interpolate the histogram weight falls into (can be obtained with RooDataHist::calcTreeIndex).
[in]intOrderInterpolation order, i.e. how many neighbouring bins are used for the interpolation.
[in]correctForBinSizeEnable the inverse bin volume correction factor.
[in]cdfBoundariesEnable the special boundary condition for a cdf: underflow bins are assumed to have weight zero and overflow bins have weight one. Otherwise, the histogram is mirrored at the boundaries for the interpolation.

Definition at line 1638 of file RooDataHist.cxx.

◆ interpolateLinear()

void RooDataHist::interpolateLinear ( double output,
std::span< const double xVals,
bool  correctForBinSize,
bool  cdfBoundaries 
)
private

A vectorized version of interpolateDim for boundary safe linear interpolation of one dimensional histograms.

Parameters
[out]outputAn array of interpolated weights corresponding to the values in xVals.
[in]xValsAn array of event coordinates for which the weights should be calculated.
[in]correctForBinSizeEnable the inverse bin volume correction factor.
[in]cdfBoundariesEnable the special boundary condition for a cdf: Underflow bins are assumed to have weight zero and overflow bins have weight one. Otherwise, the histogram is mirrored at the boundaries for the interpolation.

Definition at line 1263 of file RooDataHist.cxx.

◆ interpolateQuadratic()

void RooDataHist::interpolateQuadratic ( double output,
std::span< const double xVals,
bool  correctForBinSize,
bool  cdfBoundaries 
)
private

A vectorized version of interpolateDim for boundary safe quadratic interpolation of one dimensional histograms.

Parameters
[out]outputAn array of interpolated weights corresponding to the values in xVals.
[in]xValsAn array of event coordinates for which the weights should be calculated.
[in]correctForBinSizeEnable the inverse bin volume correction factor.
[in]cdfBoundariesEnable the special boundary condition for a cdf: Underflow bins are assumed to have weight zero and overflow bins have weight one. Otherwise, the histogram is mirrored at the boundaries for the interpolation.

Definition at line 1156 of file RooDataHist.cxx.

◆ IsA()

TClass * RooDataHist::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from RooAbsData.

Definition at line 282 of file RooDataHist.h.

◆ isNonPoissonWeighted()

bool RooDataHist::isNonPoissonWeighted ( ) const
overridevirtual

Returns true if dataset contains entries with a non-integer weight.

Reimplemented from RooAbsData.

Definition at line 2283 of file RooDataHist.cxx.

◆ isWeighted()

bool RooDataHist::isWeighted ( ) const
inlineoverridevirtual

Always returns true as all histograms use event weights.

Reimplemented from RooAbsData.

Definition at line 89 of file RooDataHist.h.

◆ makeDefaultDataStore()

std::unique_ptr< RooAbsDataStore > RooDataHist::makeDefaultDataStore ( RooStringView  name,
RooStringView  title,
RooArgSet const &  vars 
)
staticprivate

Definition at line 94 of file RooDataHist.cxx.

◆ operator=()

RooDataHist & RooDataHist::operator= ( const RooDataHist )
delete

◆ plotOn() [1/4]

RooAbsData::plotOn ( RooPlot frame,
const RooCmdArg arg1 = {},
const RooCmdArg arg2 = {},
const RooCmdArg arg3 = {},
const RooCmdArg arg4 = {},
const RooCmdArg arg5 = {},
const RooCmdArg arg6 = {},
const RooCmdArg arg7 = {},
const RooCmdArg arg8 = {} 
) const
virtual
See also
RooPlot* plotOn(RooPlot* frame, const RooLinkedList& cmdList) const

PyROOT

The RooAbsData::plotOn() function is pythonized with the command argument pythonization. The keywords must correspond to the CmdArgs of the function.

Reimplemented from RooAbsData.

Definition at line 169 of file RooAbsData.cxx.

◆ plotOn() [2/4]

RooPlot * RooAbsData::plotOn ( RooPlot frame,
const RooLinkedList argList 
) const
virtual

Plot dataset on specified frame.

By default:

  • An unbinned dataset will use the default binning of the target frame.
  • A binned dataset will retain its intrinsic binning.

The following optional named arguments can be used to modify the behaviour:

Note
Please follow the function links in the left column to learn about PyROOT specifics for a given option.
Data representation options
RooFit::Asymmetry(const RooCategory& c) Show the asymmetry of the data in given two-state category [F(+)-F(-)] / [F(+)+F(-)]. Category must have two states with indices -1 and +1 or three states with indices -1,0 and +1.
RooFit::Efficiency(const RooCategory& c) Show the efficiency F(acc)/[F(acc)+F(rej)]. Category must have two states with indices 0 and 1
RooFit::DataError(Int_t) Select the type of error drawn:
  • Auto(default) results in Poisson for unweighted data and SumW2 for weighted data
  • Poisson draws asymmetric Poisson confidence intervals.
  • SumW2 draws symmetric sum-of-weights error ( \( \left( \sum w \right)^2 / \sum\left(w^2\right) \) )
  • None draws no error bars
RooFit::Binning(int nbins, double xlo, double xhi) Use specified binning to draw dataset
RooFit::Binning(const RooAbsBinning&) Use specified binning to draw dataset
RooFit::Binning(const char* name) Use binning with specified name to draw dataset
RooFit::RefreshNorm() Force refreshing for PDF normalization information in frame. If set, any subsequent PDF will normalize to this dataset, even if it is not the first one added to the frame. By default only the 1st dataset added to a frame will update the normalization information
RooFit::Rescale(double f) Rescale drawn histogram by given factor.
RooFit::Cut(const char*)

Only plot entries that pass the given cut. Apart from cutting in continuous variables Cut("x>5"), this can also be used to plot a specific category state. Use something like Cut("myCategory == myCategory::stateA"), where myCategory resolves to the state number for a given entry and myCategory::stateA resolves to the state number of the state named "stateA".

RooFit::CutRange(const char*) Only plot data from given range. Separate multiple ranges with ",".
Note
This often requires passing the normalisation when plotting the PDF because RooFit does not save how many events were being plotted (it will only work for cutting slices out of uniformly distributed variables).
data->plotOn(frame01, CutRange("SB1"));
const double nData = data->sumEntries("", "SB1");
// Make clear that the target normalisation is nData. The enumerator NumEvent
// is needed to switch between relative and absolute scaling.
model.plotOn(frame01, Normalization(nData, RooAbsReal::NumEvent),
ProjectionRange("SB1"));
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Histogram drawing options
RooFit::DrawOption(const char* opt) Select ROOT draw option for resulting TGraph object
RooFit::LineStyle(Style_t style) Select line style by ROOT line style code, default is solid
RooFit::LineColor(Color_t color) Select line color by ROOT color code, default is black
RooFit::LineWidth(Width_t width) Select line with in pixels, default is 3
RooFit::MarkerStyle(Style_t style) Select the ROOT marker style, default is 21
RooFit::MarkerColor(Color_t color) Select the ROOT marker color, default is black
RooFit::MarkerSize(Size_t size) Select the ROOT marker size
RooFit::FillStyle(Style_t style) Select fill style, default is filled.
RooFit::FillColor(Color_t color) Select fill color by ROOT color code
RooFit::XErrorSize(double frac)

Select size of X error bar as fraction of the bin width, default is 1

Misc. other options
RooFit::Name(const char* name) Give curve specified name in frame. Useful if curve is to be referenced later
RooFit::Invisible() Add curve to frame, but do not display. Useful in combination AddTo()
RooFit::AddTo(const char* name, double wgtSel, double wgtOther)

Add constructed histogram to already existing histogram with given name and relative weight factors

Reimplemented from RooAbsData.

Definition at line 175 of file RooAbsData.cxx.

◆ plotOn() [3/4]

RooPlot * RooAbsData::plotOn ( RooPlot frame,
PlotOpt  o 
) const
virtual

Create and fill a histogram of the frame's variable and append it to the frame.

The frame variable must be one of the data sets dimensions.

The plot range and the number of plot bins is determined by the parameters of the plot variable of the frame (RooAbsReal::setPlotRange(), RooAbsReal::setPlotBins()).

The optional cut string expression can be used to select the events to be plotted. The cut specification may refer to any variable contained in the data set.

The drawOptions are passed to the TH1::Draw() method.

See also
RooAbsData::plotOn(RooPlot*,const RooLinkedList&) const

Reimplemented from RooAbsData.

Definition at line 326 of file RooAbsData.cxx.

◆ plotOn() [4/4]

RooPlot * RooDataHist::plotOn ( RooPlot frame,
PlotOpt  o 
) const
overridevirtual

Back end function to plotting functionality.

Plot RooDataHist on given frame in mode specified by plot options 'o'. The main purpose of this function is to match the specified binning on 'o' to the internal binning of the plot observable in this RooDataHist.

See also
RooAbsData::plotOn() for plotting options.

Reimplemented from RooAbsData.

Definition at line 1113 of file RooDataHist.cxx.

◆ printArgs()

void RooDataHist::printArgs ( std::ostream &  os) const
overridevirtual

Print argument of dataset, i.e. the observable names.

Reimplemented from RooPrintable.

Definition at line 2263 of file RooDataHist.cxx.

◆ printDataHistogram()

void RooDataHist::printDataHistogram ( std::ostream &  os,
RooRealVar obs 
) const

Definition at line 2320 of file RooDataHist.cxx.

◆ printMultiline()

void RooDataHist::printMultiline ( std::ostream &  os,
Int_t  content,
bool  verbose = false,
TString  indent = "" 
) const
overridevirtual

Print the details on the dataset contents.

Reimplemented from RooAbsData.

Definition at line 2299 of file RooDataHist.cxx.

◆ printValue()

void RooDataHist::printValue ( std::ostream &  os) const
overridevirtual

Print value of the dataset, i.e. the sum of weights contained in the dataset.

Reimplemented from RooPrintable.

Definition at line 2252 of file RooDataHist.cxx.

◆ reduceEng()

std::unique_ptr< RooAbsData > RooDataHist::reduceEng ( const RooArgSet varSubset,
const RooFormulaVar cutVar,
const char *  cutRange = nullptr,
std::size_t  nStart = 0,
std::size_t  nStop = std::numeric_limits<std::size_t>::max() 
)
overrideprotectedvirtual

Implementation of RooAbsData virtual method that drives the RooAbsData::reduce() methods.

Implements RooAbsData.

Definition at line 916 of file RooDataHist.cxx.

◆ registerWeightArraysToDataStore()

void RooDataHist::registerWeightArraysToDataStore ( ) const
private

Hand over pointers to our weight arrays to the data store implementation.

Definition at line 2413 of file RooDataHist.cxx.

◆ removeSelfFromDir()

void RooDataHist::removeSelfFromDir ( )
inline

Definition at line 164 of file RooDataHist.h.

◆ reset()

void RooDataHist::reset ( )
overridevirtual

Reset all bin weights to zero.

Reimplemented from RooAbsData.

Definition at line 2158 of file RooDataHist.cxx.

◆ set() [1/4]

void RooDataHist::set ( const RooArgSet row,
double  wgt,
double  wgtErr = -1. 
)

Set a bin content.

Parameters
[in]rowCoordinates to compute the bin from.
[in]wgtNew bin content.
[in]wgtErrOptional error of the bin content.

Definition at line 1791 of file RooDataHist.cxx.

◆ set() [2/4]

void RooDataHist::set ( const RooArgSet row,
double  wgt,
double  wgtErrLo,
double  wgtErrHi 
)

Set a bin content.

Parameters
[in]rowCoordinates of the bin to be set.
[in]wgtNew bin content.
[in]wgtErrLoLow error of the bin content.
[in]wgtErrHiHigh error of the bin content.

Definition at line 1732 of file RooDataHist.cxx.

◆ set() [3/4]

void RooDataHist::set ( double  wgt,
double  wgtErr = -1 
)

Write weight into current bin.

Set bin content of bin that was last loaded with get(std::size_t).

Deprecated:
Use set(std::size_t,double,double)
Parameters
[in]wgtNew bin content.
[in]wgtErrOptional error of the bin content.

Definition at line 1777 of file RooDataHist.cxx.

◆ set() [4/4]

void RooDataHist::set ( std::size_t  binNumber,
double  wgt,
double  wgtErr 
)

Set bin content of bin that was last loaded with get(std::size_t).

Parameters
[in]binNumberOptional bin number to set. If empty, currently active bin is set.
[in]wgtNew bin content.
[in]wgtErrError of the new bin content. If the weight need not have an error, use 0. or a negative number.

Definition at line 1754 of file RooDataHist.cxx.

◆ SetName()

void RooDataHist::SetName ( const char *  name)
overridevirtual

Change the name of the RooDataHist.

Reimplemented from RooAbsData.

Definition at line 2230 of file RooDataHist.cxx.

◆ SetNameTitle()

void RooDataHist::SetNameTitle ( const char *  name,
const char *  title 
)
overridevirtual

Change the title of this RooDataHist.

Reimplemented from RooAbsData.

Definition at line 2242 of file RooDataHist.cxx.

◆ sliceIterator()

TIterator * RooDataHist::sliceIterator ( RooAbsArg sliceArg,
const RooArgSet otherArgs 
)

Create an iterator over all bins in a slice defined by the subset of observables listed in sliceArg.

The position of the slice is given by otherArgs

Definition at line 2212 of file RooDataHist.cxx.

◆ Streamer()

void RooDataHist::Streamer ( TBuffer R__b)
overridevirtual

Stream an object of class RooDataHist.

Reimplemented from RooAbsData.

Definition at line 2332 of file RooDataHist.cxx.

◆ StreamerNVirtual()

void RooDataHist::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 282 of file RooDataHist.h.

◆ sum() [1/3]

double RooDataHist::sum ( bool  correctForBinSize,
bool  inverseBinCor = false 
) const

Return the sum of the weights of all bins in the histogram.

Parameters
[in]correctForBinSizeMultiply the sum of weights in each bin with the N-dimensional bin volume, making the return value the integral over the function represented by this histogram.
[in]inverseBinCorDivide by the N-dimensional bin volume.

Definition at line 1853 of file RooDataHist.cxx.

◆ sum() [2/3]

double RooDataHist::sum ( const RooArgSet sumSet,
const RooArgSet sliceSet,
bool  correctForBinSize,
bool  inverseBinCor,
const std::map< const RooAbsArg *, std::pair< double, double > > &  ranges,
std::function< double(int)>  getBinScale = [](int){ return 1.0; } 
)

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)), or the fraction of it that falls inside the range rangeName, making the return value the integral over the function represented by this histogram.

If correctForBinSize is not specified, the weights are multiplied by the fraction of the bin volume that falls inside the range, i.e. a factor of binVolumeInRange/totalBinVolume.

Definition at line 1966 of file RooDataHist.cxx.

◆ sum() [3/3]

double RooDataHist::sum ( const RooArgSet sumSet,
const RooArgSet sliceSet,
bool  correctForBinSize,
bool  inverseBinCor = false 
)

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

Definition at line 1889 of file RooDataHist.cxx.

◆ sumEntries() [1/2]

double RooDataHist::sumEntries ( ) const
overridevirtual

Sum the weights of all bins.

Implements RooAbsData.

Definition at line 2114 of file RooDataHist.cxx.

◆ sumEntries() [2/2]

double RooDataHist::sumEntries ( const char *  cutSpec,
const char *  cutRange = nullptr 
) const
overridevirtual

Return the sum of weights in all entries matching cutSpec (if specified) and in named range cutRange (if specified) Return the.

Implements RooAbsData.

Definition at line 2125 of file RooDataHist.cxx.

◆ sumW2Array()

double const * RooDataHist::sumW2Array ( ) const
inline

Definition at line 219 of file RooDataHist.h.

◆ weight() [1/3]

double RooDataHist::weight ( ) const
inlineoverridevirtual

Return weight of last bin that was requested with get().

Deprecated:
Use the safer weight(std::size_t) const.

Implements RooAbsData.

Definition at line 185 of file RooDataHist.h.

◆ weight() [2/3]

double RooDataHist::weight ( const RooArgSet bin,
Int_t  intOrder = 1,
bool  correctForBinSize = false,
bool  cdfBoundaries = false,
bool  oneSafe = false 
)

Return the weight at given coordinates with optional interpolation.

Parameters
[in]binCoordinates for which the weight should be calculated.
[in]intOrderInterpolation order, i.e. how many neighbouring bins are used for the interpolation. If zero, the bare weight for the bin enclosing the coordinatesis returned.
[in]correctForBinSizeEnable the inverse bin volume correction factor.
[in]cdfBoundariesEnable the special boundary condition for a cdf: underflow bins are assumed to have weight zero and overflow bins have weight one. Otherwise, the histogram is mirrored at the boundaries for the interpolation.
[in]oneSafeIgnored.

Definition at line 1434 of file RooDataHist.cxx.

◆ weight() [3/3]

double RooDataHist::weight ( std::size_t  i) const
inline

Return weight of i-th bin.

See also
getIndex()

Definition at line 110 of file RooDataHist.h.

◆ weightArray()

double const * RooDataHist::weightArray ( ) const
inline

Definition at line 216 of file RooDataHist.h.

◆ weightError() [1/2]

void RooDataHist::weightError ( double lo,
double hi,
ErrorType  etype = Poisson 
) const
overridevirtual

Return the asymmetric errors on the current weight.

See also
weightError(ErrorType) const for symmetric error.
Parameters
[out]loLow error.
[out]hiHigh error.
[in]etypeType of error to compute. May throw if not supported. Supported errors are
  • Poisson Default. Asymmetric Poisson errors (68% CL).
  • SumW2 The square root of the sum of weights. (Symmetric).
  • None Return zero.

Reimplemented from RooAbsData.

Definition at line 1570 of file RooDataHist.cxx.

◆ weightError() [2/2]

double RooDataHist::weightError ( ErrorType  etype = Poisson) const
inlineoverridevirtual

Return the symmetric error on the current weight.

See also weightError(double&,double&,ErrorType) const for asymmetric errors.

Reimplemented from RooAbsData.

Definition at line 125 of file RooDataHist.h.

◆ weightFast()

double RooDataHist::weightFast ( const RooArgSet bin,
int  intOrder,
bool  correctForBinSize,
bool  cdfBoundaries 
)

A faster version of RooDataHist::weight that assumes the passed arguments are aligned with the histogram variables.

Parameters
[in]binCoordinates for which the weight should be calculated. Has to be aligned with the internal histogram variables.
[in]intOrderInterpolation order, i.e. how many neighbouring bins are used for the interpolation. If zero, the bare weight for the bin enclosing the coordinatesis returned.
[in]correctForBinSizeEnable the inverse bin volume correction factor.
[in]cdfBoundariesEnable the special boundary condition for a cdf: underflow bins are assumed to have weight zero and overflow bins have weight one. Otherwise, the histogram is mirrored at the boundaries for the interpolation.

Definition at line 1399 of file RooDataHist.cxx.

◆ weightInterpolated()

double RooDataHist::weightInterpolated ( const RooArgSet bin,
int  intOrder,
bool  correctForBinSize,
bool  cdfBoundaries 
)
private

Return the weight at given coordinates with interpolation.

Parameters
[in]binCoordinates for which the weight should be calculated. Has to be aligned with the internal histogram variables.
[in]intOrderInterpolation order, i.e. how many neighbouring bins are used for the interpolation.
[in]correctForBinSizeEnable the inverse bin volume correction factor.
[in]cdfBoundariesEnable the special boundary condition for a cdf: underflow bins are assumed to have weight zero and overflow bins have weight one. Otherwise, the histogram is mirrored at the boundaries for the interpolation.

Definition at line 1470 of file RooDataHist.cxx.

◆ weights()

void RooDataHist::weights ( double output,
std::span< double const >  xVals,
int  intOrder,
bool  correctForBinSize,
bool  cdfBoundaries 
)

A vectorized version of RooDataHist::weight() for one dimensional histograms with up to one dimensional interpolation.

Parameters
[out]outputAn array of weights corresponding the values in xVals.
[in]xValsAn array of coordinates for which the weights should be calculated.
[in]intOrderInterpolation order; 0th and 1st order are supported.
[in]correctForBinSizeEnable the inverse bin volume correction factor.
[in]cdfBoundariesEnable the special boundary condition for a cdf: Underflow bins are assumed to have weight zero and overflow bins have weight one. Otherwise, the histogram is mirrored at the boundaries for the interpolation.

Definition at line 1351 of file RooDataHist.cxx.

◆ weightSquared() [1/2]

double RooDataHist::weightSquared ( ) const
inlineoverridevirtual

Return squared weight of last bin that was requested with get().

Deprecated:
Use the safer weightSquared(std::size_t) const.

Implements RooAbsData.

Definition at line 190 of file RooDataHist.h.

◆ weightSquared() [2/2]

double RooDataHist::weightSquared ( std::size_t  i) const
inline

Return squared weight sum of i-th bin.

See also
getIndex(). If sumw2 is not being tracked, assume that all previous fill operations had a weight of 1, i.e., return the bare weight of the bin.

Definition at line 116 of file RooDataHist.h.

◆ wgtErrHiArray()

double const * RooDataHist::wgtErrHiArray ( ) const
inline

Definition at line 218 of file RooDataHist.h.

◆ wgtErrLoArray()

double const * RooDataHist::wgtErrLoArray ( ) const
inline

Definition at line 217 of file RooDataHist.h.

Friends And Related Symbol Documentation

◆ RooDataHistSliceIter

friend class RooDataHistSliceIter
friend

Definition at line 227 of file RooDataHist.h.

Member Data Documentation

◆ _arrSize

Int_t RooDataHist::_arrSize {0}
protected

Definition at line 246 of file RooDataHist.h.

◆ _binbounds

std::vector<std::vector<double> > RooDataHist::_binbounds
mutableprotected

! list of bin bounds per dimension

Definition at line 260 of file RooDataHist.h.

◆ _binv

double* RooDataHist::_binv {nullptr}
protected

[_arrSize] Bin volume array

Definition at line 253 of file RooDataHist.h.

◆ _cache_sum

double RooDataHist::_cache_sum {0.}
mutableprotected

! Cache for sum of entries ;

Definition at line 264 of file RooDataHist.h.

◆ _cache_sum_valid

Int_t RooDataHist::_cache_sum_valid {kInvalid}
mutableprotected

! Is cache sum valid? Needs to be Int_t instead of CacheSumState_t for subclasses.

Definition at line 263 of file RooDataHist.h.

◆ _curIndex

ULong64_t RooDataHist::_curIndex {std::numeric_limits<ULong64_t>::max()}
mutableprotected

Current index.

Definition at line 255 of file RooDataHist.h.

◆ _errHi

double* RooDataHist::_errHi {nullptr}
mutableprotected

[_arrSize] High-side error on weight array

Definition at line 251 of file RooDataHist.h.

◆ _errLo

double* RooDataHist::_errLo {nullptr}
mutableprotected

[_arrSize] Low-side error on weight array

Definition at line 250 of file RooDataHist.h.

◆ _idxMult

std::vector<Int_t> RooDataHist::_idxMult
protected

Definition at line 247 of file RooDataHist.h.

◆ _interpolationBuffer

std::vector<double> RooDataHist::_interpolationBuffer
private

! Buffer to contain values used for weight interpolation

Definition at line 280 of file RooDataHist.h.

◆ _lvbins

std::vector<std::unique_ptr<const RooAbsBinning> > RooDataHist::_lvbins
protected

! List of used binnings associated with lvalues

Definition at line 259 of file RooDataHist.h.

◆ _lvvars

std::vector<RooAbsLValue*> RooDataHist::_lvvars
protected

! List of observables casted as RooAbsLValue

Definition at line 258 of file RooDataHist.h.

◆ _pbinvCache

std::unordered_map<int,std::vector<double> > RooDataHist::_pbinvCache
mutableprotected

! Cache for arrays of partial bin volumes

Definition at line 257 of file RooDataHist.h.

◆ _sumw2

double* RooDataHist::_sumw2 {nullptr}
mutableprotected

[_arrSize] Sum of weights^2

Definition at line 252 of file RooDataHist.h.

◆ _varInfo

VarInfo RooDataHist::_varInfo
private

!

Definition at line 279 of file RooDataHist.h.

◆ _wgt

double* RooDataHist::_wgt {nullptr}
protected

[_arrSize] Weight array

Definition at line 249 of file RooDataHist.h.

Libraries for RooDataHist:

The documentation for this class was generated from the following files: