|
ROOT
Reference Guide |
|
Go to the documentation of this file.
28 #include <unordered_map>
66 void set(std::size_t binNumber,
double weight,
double wgtErr);
88 Double_t sum(
bool correctForBinSize,
bool inverseCorr=
false)
const ;
92 bool correctForBinSize,
94 const std::map<
const RooAbsArg*, std::pair<double, double> >& ranges,
95 std::function<
double(
int)> getBinScale = [](
int){
return 1.0; } );
122 void reset()
override;
125 virtual void printArgs(std::ostream& os)
const override;
126 virtual void printValue(std::ostream& os)
const override;
219 std::size_t nStart=0, std::size_t nStop=std::numeric_limits<std::size_t>::max(),
Bool_t copyCache=
kTRUE)
override;
256 mutable std::size_t
_curIndex{std::numeric_limits<std::size_t>::max()};
260 std::vector<std::unique_ptr<const RooAbsBinning>>
_lvbins ;
void removeFromDir(TObject *obj)
Remove object from directory it was added to.
std::vector< std::vector< Double_t > > _binbounds
List of used binnings associated with lvalues.
Class to manage histogram axis.
RooCmdArg is a named container for two doubles, two integers two object points and three string point...
void setAllWeights(Double_t value)
Set all the event weight of all bins to the specified value.
RooDataHist & operator=(const RooDataHist &)=delete
Int_t get_curIndex() const
RooAbsData * cacheClone(const RooAbsArg *newCacheOwner, const RooArgSet *newCacheVars, const char *newName=0) override
Construct a clone of this dataset that contains only the cached variables.
RooAbsData is the common abstract base class for binned and unbinned datasets.
double weight(std::size_t i) const
Return weight of i-th bin.
Double_t get_errLo(std::size_t idx) const
virtual const char * GetTitle() const
Returns title of object.
Double_t get_errHi(std::size_t idx) const
RooArgList is a container object that can hold multiple RooAbsArg objects.
RooDirItem is a utility base class for RooFit objects that are to be attached to ROOT directories.
void importTH1Set(const RooArgList &vars, RooCategory &indexCat, std::map< std::string, TH1 * > hmap, Double_t initWgt, Bool_t doDensityCorrection)
Import data from given set of TH1/2/3 into this RooDataHist.
Double_t sumEntries() const override
Sum the weights of all bins.
RooAbsData * emptyClone(const char *newName=0, const char *newTitle=0, const RooArgSet *vars=0, const char *=0) const override
Return empty clone of this RooDataHist.
void importTH1(const RooArgList &vars, const TH1 &histo, Double_t initWgt, Bool_t doDensityCorrection)
Import data from given TH1/2/3 into this RooDataHist.
#define R__SUGGEST_ALTERNATIVE(ALTERNATIVE)
RooSpan< const double > getWeightBatch(std::size_t first, std::size_t len) const override
Return event weights of all events in range [first, first+len).
RooDataHistSliceIter iterates over all bins in a RooDataHist that occur in a slice defined by the bin...
static void indent(ostringstream &buf, int indent_level)
bool valid() const override
Return true if currently loaded coordinate is considered valid within the current range definitions o...
void weightError(Double_t &lo, Double_t &hi, ErrorType etype=Poisson) const override
Return the error of current weight.
void importDHistSet(const RooArgList &vars, RooCategory &indexCat, std::map< std::string, RooDataHist * > dmap, Double_t initWgt)
Import data from given set of TH1/2/3 into this RooDataHist.
#define ClassDefOverride(name, id)
void SetNameTitle(const char *name, const char *title) override
Change the title of this RooDataHist.
void getBatches(RooBatchCompute::RunContext &evalData, std::size_t begin, std::size_t len) const override
Write information to retrieve data columns into evalData.spans.
Double_t sum(bool correctForBinSize, bool inverseCorr=false) const
Return the sum of the weights of all bins in the histogram.
Double_t _cache_sum
Is cache sum valid? Needs to be Int_t instead of CacheSumState_t for subclasses.
Iterator abstract base class.
void registerWeightArraysToDataStore() const
Hand over pointers to our weight arrays to the data store implementation.
Double_t weightSquared() const override
Return squared weight of last bin that was requested with get().
virtual void add(const RooArgSet &row, Double_t wgt=1.0)
Add wgt to the bin content enclosed by the coordinates passed in row.
double weightSquared(std::size_t i) const
Return squared weight sum of i-th bin.
Double_t get_curWgtErrLo() const
void checkBinBounds() const
std::vector< Int_t > _idxMult
float type_of_call hi(const int &, const int &)
Double_t binVolume() const
Return volume of current bin.
Double_t interpolateDim(RooRealVar &dim, const RooAbsBinning *binning, Double_t xval, Int_t intOrder, Bool_t correctForBinSize, Bool_t cdfBoundaries)
Perform boundary safe 'intOrder'-th interpolation of weights in dimension 'dim' at current value 'xva...
Int_t calcTreeIndex() const
Legacy overload to calculate the tree index from the current value of _vars.
The RooDataHist is a container class to hold N-dimensional binned data.
TObject * Clone(const char *newname="") const override
Make a clone of an object using the Streamer facility.
void dump2()
Debug stuff, should go...
const RooArgSet * get() const override
Get bin centre of current bin.
Double_t weightError(ErrorType etype=Poisson) const override
Return the error of the weight of the last-retrieved entry. See also weightError(Double_t&,...
std::vector< RooAbsLValue * > _lvvars
Cache for arrays of partial bin volumes.
RooAbsData * reduceEng(const RooArgSet &varSubset, const RooFormulaVar *cutVar, const char *cutRange=0, std::size_t nStart=0, std::size_t nStop=std::numeric_limits< std::size_t >::max(), Bool_t copyCache=kTRUE) override
Implementation of RooAbsData virtual method that drives the RooAbsData::reduce() methods.
Double_t get_curWeight() const
Int_t getIndex(const RooArgSet &coord, Bool_t fast=false) const
Calculate bin number of the given coordinates.
void _adjustBinning(RooRealVar &theirVar, const TAxis &axis, RooRealVar *ourVar, Int_t *offset)
Cache for sum of entries ;.
void initialize(const char *binningName=0, Bool_t fillTree=kTRUE)
Initialization procedure: allocate weights array, calculate multipliers needed for N-space to 1-dim a...
virtual RooPlot * plotOn(RooPlot *frame, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none()) const
void reset() override
Reset all bin weights to zero.
virtual void printArgs(std::ostream &os) const override
Print argument of dataset, i.e. the observable names.
void function(const Char_t *name_, T fun, const Char_t *docstring=0)
virtual void printValue(std::ostream &os) const override
Print value of the dataset, i.e. the sum of weights contained in the dataset.
RooAbsBinning is the abstract base class for RooRealVar binning definitions.
Int_t getIndex(const RooAbsCollection &coord, Bool_t fast=false) const
Calculate bin number of the given coordinates.
RooAbsCollection is an abstract container object that can hold multiple RooAbsArg objects.
A RooPlot is a plot frame and a container for graphics objects within that frame.
RooDataHist()
Default constructor.
std::vector< std::unique_ptr< const RooAbsBinning > > _lvbins
List of observables casted as RooAbsLValue.
void adjustBinning(const RooArgList &vars, const TH1 &href, Int_t *offset=0)
Adjust binning specification on first and optionally second and third observable to binning in given ...
void cacheValidEntries()
Compute which bins of the dataset are part of the currently set fit range.
std::vector< double > _maskedWeights
Bool_t isNonPoissonWeighted() const override
Returns true if dataset contains entries with a non-integer weight.
Double_t weight() const override
Return weight of last bin that was requested with get().
RooAbsCachedPdf is the abstract base class for p.d.f.s that need or want to cache their evaluate() ou...
bool valid(std::size_t i) const
Return true if bin i is considered valid within the current range definitions of all observables.
std::size_t _curIndex
Copy of _wgtVec, but masked events have a weight of zero.
virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const override
Print the details on the dataset contents.
double binVolume(std::size_t i) const
Return bin volume of i-th bin.
void SetName(const char *name) override
Change the name of the RooDataHist.
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 speci...
TIterator * sliceIterator(RooAbsArg &sliceArg, const RooArgSet &otherArgs)
Create an iterator over all bins in a slice defined by the subset of observables listed in sliceArg.
Int_t numEntries() const override
Return the number of bins.
Bool_t isWeighted() const override
Always returns true as all histograms use event weights.
RooCategory is an object to represent discrete states.
Mother of all ROOT objects.
TH1 is the base class of all histogram classes in ROOT.
Double_t get_sumw2(std::size_t idx) const
~RooDataHist() override
Destructor.
virtual RooPlot * plotOn(RooPlot *frame, const RooCmdArg &arg1=RooCmdArg::none(), const RooCmdArg &arg2=RooCmdArg::none(), const RooCmdArg &arg3=RooCmdArg::none(), const RooCmdArg &arg4=RooCmdArg::none(), const RooCmdArg &arg5=RooCmdArg::none(), const RooCmdArg &arg6=RooCmdArg::none(), const RooCmdArg &arg7=RooCmdArg::none(), const RooCmdArg &arg8=RooCmdArg::none()) const
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
Abstract base class for objects that are lvalues, i.e.
virtual const char * GetName() const
Returns name of object.
Double_t get_wgt(std::size_t idx) const
Double_t get_curWgtErrHi() const
RooRealVar represents a variable that can be changed from the outside.
CacheSumState_t
list of bin bounds per dimension
void printDataHistogram(std::ostream &os, RooRealVar *obs) const
void set(std::size_t binNumber, double weight, double wgtErr)
Set bin content of bin that was last loaded with get(std::size_t).
This struct enables passing computation data around between elements of a computation graph.
Double_t get_curSumW2() const
RooAbsCachedReal is the abstract base class for functions that need or want to cache their evaluate()...
A simple container to hold a batch of data values.
RooArgSet is a container object that can hold multiple RooAbsArg objects.
std::unordered_map< int, std::vector< double > > _pbinvCache