104  RooAbsData(
name,title,vars), _wgt(0), _binValid(0), _curWeight(0), _curVolume(1), _pbinv(0), _pbinvCacheMgr(0,10), _cache_sum_valid(0)
 
  142  RooAbsData(
name,title,vars), _wgt(0), _binValid(0), _curWeight(0), _curVolume(1), _pbinv(0), _pbinvCacheMgr(0,10), _cache_sum_valid(0)
 
  168          map<string,TH1*> histMap, 
Double_t wgt) :
 
  170  _wgt(0), _binValid(0), _curWeight(0), _curVolume(1), _pbinv(0), _pbinvCacheMgr(0,10), _cache_sum_valid(0)
 
  194          map<string,RooDataHist*> dhistMap, 
Double_t wgt) :
 
  196  _wgt(0), _binValid(0), _curWeight(0), _curVolume(1), _pbinv(0), _pbinvCacheMgr(0,10), _cache_sum_valid(0)
 
  217  RooAbsData(
name,title,vars), _wgt(0), _binValid(0), _curWeight(0), _curVolume(1), _pbinv(0), _pbinvCacheMgr(0,10), _cache_sum_valid(0)
 
  226           << 
"number of dimension variables" << endl ;
 
  274  RooAbsData(
name,title,
RooArgSet(vars,(
RooAbsArg*)
RooCmdConfig::decodeObjOnTheFly(
"RooDataHist::RooDataHist", 
"IndexCat",0,0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8))), 
 
  275  _wgt(0), _binValid(0), _curWeight(0), _curVolume(1), _pbinv(0), _pbinvCacheMgr(0,10), _cache_sum_valid(0)
 
  283  pc.defineObject(
"impHist",
"ImportHisto",0) ;
 
  284  pc.defineInt(
"impDens",
"ImportHisto",0) ;
 
  285  pc.defineObject(
"indexCat",
"IndexCat",0) ;
 
  286  pc.defineObject(
"impSliceHist",
"ImportHistoSlice",0,0,
kTRUE) ; 
 
  287  pc.defineString(
"impSliceState",
"ImportHistoSlice",0,
"",
kTRUE) ; 
 
  288  pc.defineObject(
"impSliceDHist",
"ImportDataHistSlice",0,0,
kTRUE) ; 
 
  289  pc.defineString(
"impSliceDState",
"ImportDataHistSlice",0,
"",
kTRUE) ; 
 
  290  pc.defineDouble(
"weight",
"Weight",0,1) ; 
 
  291  pc.defineObject(
"dummy1",
"ImportDataHistSliceMany",0) ;
 
  292  pc.defineObject(
"dummy2",
"ImportHistoSliceMany",0) ;
 
  293  pc.defineMutex(
"ImportHisto",
"ImportHistoSlice",
"ImportDataHistSlice") ;
 
  294  pc.defineDependency(
"ImportHistoSlice",
"IndexCat") ;
 
  295  pc.defineDependency(
"ImportDataHistSlice",
"IndexCat") ;
 
  310  TH1* impHist = 
static_cast<TH1*
>(
pc.getObject(
"impHist")) ;
 
  311  Bool_t impDens = 
pc.getInt(
"impDens") ;
 
  313  const char* impSliceNames = 
pc.getString(
"impSliceState",
"",
kTRUE) ;
 
  314  const RooLinkedList& impSliceHistos = 
pc.getObjectList(
"impSliceHist") ;
 
  316  const char* impSliceDNames = 
pc.getString(
"impSliceDState",
"",
kTRUE) ;
 
  317  const RooLinkedList& impSliceDHistos = 
pc.getObjectList(
"impSliceDHist") ;
 
  323    importTH1(vars,*impHist,initWgt, impDens) ;
 
  325  } 
else if (indexCat) {
 
  328    if (impSliceHistos.
GetSize()>0) {
 
  331      map<string,TH1*> hmap ;
 
  333      strlcpy(tmp,impSliceNames,1024) ;
 
  334      char* token = strtok(tmp,
",") ;
 
  337   hmap[token] = (
TH1*) hiter->
Next() ;
 
  338   token = strtok(0,
",") ;
 
  344      map<string,RooDataHist*> dmap ;
 
  346      strlcpy(tmp,impSliceDNames,1024) ;
 
  347      char* token = strtok(tmp,
",") ;
 
  351   token = strtok(0,
",") ;
 
  380  Int_t offset[3]{0, 0, 0};
 
  410  Int_t ix(0),iy(0),iz(0) ;
 
  411  for (ix=0 ; ix < xvar->
getBins() ; ix++) {
 
  414      for (iy=0 ; iy < yvar->
getBins() ; iy++) {
 
  417          for (iz=0 ; iz < zvar->
getBins() ; iz++) {
 
  450  for (map<string,TH1*>::iterator hiter = hmap.begin() ; hiter!=hmap.end() ; ++hiter) {
 
  453      histo = hiter->second ;
 
  456    if (!indexCat.
lookupType(hiter->first.c_str())) {
 
  458      coutI(
InputArguments) << 
"RooDataHist::importTH1Set(" << 
GetName() << 
") defining state \"" << hiter->first << 
"\" in index category " << indexCat.
GetName() << endl ;
 
  460    if (!icat->
lookupType(hiter->first.c_str())) { 
 
  468           << 
"number of continuous variables" << endl ;
 
  505  Int_t ic(0),ix(0),iy(0),iz(0) ;
 
  506  for (ic=0 ; ic < icat->
numBins(0) ; ic++) {
 
  509    for (ix=0 ; ix < xvar->
getBins() ; ix++) {
 
  512   for (iy=0 ; iy < yvar->
getBins() ; iy++) {
 
  515       for (iz=0 ; iz < zvar->
getBins() ; iz++) {
 
  545  for (map<string,RooDataHist*>::iterator diter = dmap.begin() ; diter!=dmap.end() ; ++diter) {
 
  548    if (!indexCat.
lookupType(diter->first.c_str())) {
 
  550      coutI(
InputArguments) << 
"RooDataHist::importDHistSet(" << 
GetName() << 
") defining state \"" << diter->first << 
"\" in index category " << indexCat.
GetName() << endl ;
 
  552    if (!icat->
lookupType(diter->first.c_str())) { 
 
  561  for (map<string,RooDataHist*>::iterator diter = dmap.begin() ; diter!=dmap.end() ; ++diter) {
 
  565    icat->
setLabel(diter->first.c_str()) ;
 
  587  const double xlo = theirVar.
getMin();
 
  588  const double xhi = theirVar.
getMax();
 
  602    if (
true || 
fabs(xloAdj - xlo) > tolerance || 
fabs(xhiAdj - xhi) > tolerance) {
 
  603      coutI(
DataHandling)<< 
"RooDataHist::adjustBinning(" << 
GetName() << 
"): fit range of variable " << ourVar->
GetName() << 
" expanded to nearest bin boundaries: [" << xlo << 
"," << xhi << 
"] --> [" << xloAdj << 
"," << xhiAdj << 
"]" << endl;
 
  623    if (
fabs(xloAdj - xlo) > tolerance || 
fabs(xhiAdj - xhi) > tolerance) {
 
  624      coutI(
DataHandling)<< 
"RooDataHist::adjustBinning(" << 
GetName() << 
"): fit range of variable " << ourVar->
GetName() << 
" expanded to nearest bin boundaries: [" << xlo << 
"," << xhi << 
"] --> [" << xloAdj << 
"," << xhiAdj << 
"]" << endl;
 
  712    for (i=0 ; i<
n ; i++) {
 
  743  if (!fillTree) return ;
 
  749  for (ibin=0 ; ibin<
_arrSize ; ibin++) {
 
  752    Int_t j(0), idx(0), tmp(ibin) ;
 
  762    _binv[ibin] = theBinVolume ;
 
  776  for (std::vector<const RooAbsBinning*>::const_iterator it = 
_lvbins.begin();
 
  778    _binbounds.push_back(std::vector<Double_t>());
 
  780      std::vector<Double_t>& bounds = 
_binbounds.back();
 
  781      bounds.reserve(2 * (*it)->numBins());
 
  782      for (
Int_t i = 0; i < (*it)->numBins(); ++i) {
 
  783   bounds.push_back((*it)->binLow(i));
 
  784   bounds.push_back((*it)->binHigh(i));
 
  794  RooAbsData(other,newname), 
RooDirItem(), _idxMult(other._idxMult), _binValid(0), _curWeight(0), _curVolume(1), _pbinv(0), _pbinvCacheMgr(other._pbinvCacheMgr,0), _cache_sum_valid(0)
 
  852  _wgt(0), _binValid(0), _curWeight(0), _curVolume(1), _pbinv(0), _pbinvCacheMgr(0,10), _cache_sum_valid(0)
 
  864    _wgt[i] = 
h->_wgt[i] ;
 
  888  delete selCacheVars ;
 
  912      coutE(
DataHandling) << 
"RooDataHist::reduceEng(" << 
GetName() << 
") Couldn't deep-clone cut variable, abort," << endl ;
 
  923  for (i=nStart ; i<nevt ; i++) {
 
  937    if (!doSelect) continue ;
 
  939    if (!cloneVar || cloneVar->
getVal()) {
 
  967  vector<const RooAbsBinning*>::iterator iter = 
_lvbins.begin() ;
 
 1002  Int_t masterIdx(0), i(0) ;
 
 1003  vector<RooAbsLValue*>::const_iterator iter = 
_lvvars.begin() ;
 
 1004  vector<const RooAbsBinning*>::const_iterator biter = 
_lvbins.begin() ;
 
 1005  for (;iter!=
_lvvars.end() ; ++iter) {
 
 1007    masterIdx += 
_idxMult[i++]*(*iter)->getBin(binning) ;
 
 1020  cout << 
"_arrSize = " << 
_arrSize << endl ;
 
 1022    cout << 
"wgt[" << i << 
"] = " << 
_wgt[i] << 
"sumw2[" << i << 
"] = " << 
_sumw2[i] << 
" vol[" << i << 
"] = " << 
_binv[i] << endl ;
 
 1046    << 
":plotOn: frame does not specify a plot variable" << endl;
 
 1053    << 
":plotOn: dataset doesn't contain plot frame variable" << endl;
 
 1098    if (correctForBinSize) {
 
 1137    for (i=ybinLo ; i<=intOrder+ybinLo ; i++) {
 
 1139      if (i>=0 && i<ybinM) {
 
 1143   xarr[i-ybinLo] = realY->
getVal() ;
 
 1144      } 
else if (i>=ybinM) {
 
 1146   ibin = 2*ybinM-i-1 ;
 
 1159      cout << 
"RooDataHist interpolating data is" << endl ;
 
 1161      for (
int q=0; 
q<=intOrder ; 
q++) cout << xarr[
q] << 
" " ;
 
 1162      cout << 
" yarr = " ;
 
 1163      for (
int q=0; 
q<=intOrder ; 
q++) cout << yarr[
q] << 
" " ;
 
 1199    throw string(
Form(
"RooDataHist::weightError(%s) error type Auto not allowed here",
GetName())) ;
 
 1203    throw string(
Form(
"RooDataHist::weightError(%s) error type Expected not allowed here",
GetName())) ;
 
 1248  Int_t fbinLo = fbinC-intOrder/2 - ((xval<binning->
binCenter(fbinC))?1:0) ;
 
 1255  for (i=fbinLo ; i<=intOrder+fbinLo ; i++) {
 
 1257    if (i>=0 && i<fbinM) {
 
 1262      xarr[i-fbinLo] = dim.
getVal() ;
 
 1264      yarr[i - fbinLo] = 
get_wgt(idx);
 
 1265      if (correctForBinSize) yarr[i-fbinLo] /=  
_binv[idx] ;
 
 1266    } 
else if (i>=fbinM) {
 
 1268      ibin = 2*fbinM-i-1 ;
 
 1271      if (cdfBoundaries) { 
 
 1272   xarr[i-fbinLo] = dim.
getMax()+1
e-10*(i-fbinM+1) ;
 
 1273   yarr[i-fbinLo] = 1.0 ;
 
 1277   yarr[i - fbinLo] = 
get_wgt(idx);
 
 1278   if (correctForBinSize)
 
 1279      yarr[i - fbinLo] /= 
_binv[idx];
 
 1286      if (cdfBoundaries) {
 
 1287   xarr[i-fbinLo] = dim.
getMin()-ibin*(1
e-10) ; ;
 
 1288   yarr[i-fbinLo] = 0.0 ;
 
 1292   yarr[i - fbinLo] = 
get_wgt(idx);
 
 1293   if (correctForBinSize)
 
 1294      yarr[i - fbinLo] /= 
_binv[idx];
 
 1325  _sumw2[idx] += (sumw2>0?sumw2:wgt*wgt) ;
 
 1391  _sumw2[idx] = wgtErr*wgtErr ;
 
 1406  add(dset,&cutVar,wgt) ;
 
 1437    if (!cloneVar || cloneVar->
getVal()) {
 
 1464  Int_t cache_code = 1 + (correctForBinSize?1:0) + ((correctForBinSize&&inverseBinCor)?1:0) ;
 
 1473    Double_t theBinVolume = correctForBinSize ? (inverseBinCor ? 1/
_binv[i] : 
_binv[i]) : 1.0 ;
 
 1512  _vars = *sliceOnlySet ;
 
 1514  delete sliceOnlySet ;
 
 1526    if (sumSet.
find(*arg)) {
 
 1531      refBin[i] = (
dynamic_cast<RooAbsLValue*
>(arg))->getBin() ;
 
 1539  for (ibin=0 ; ibin<
_arrSize ; ibin++) {
 
 1541    Int_t idx(0), tmp(ibin), ivar(0) ;
 
 1550      if (mask[ivar] && idx!=refBin[ivar]) skip=
kTRUE ;
 
 1555      Double_t theBinVolume = correctForBinSize ? (inverseBinCor ? 1/(*_pbinv)[i] : (*_pbinv)[i] ) : 1.0 ;
 
 1592   const std::map<
const RooAbsArg*, std::pair<Double_t, Double_t> >& ranges)
 
 1601    _vars = sliceOnlySet;
 
 1608  std::vector<Double_t> rangeLo(
_vars.
getSize(), -std::numeric_limits<Double_t>::infinity());
 
 1609  std::vector<Double_t> rangeHi(
_vars.
getSize(), +std::numeric_limits<Double_t>::infinity());
 
 1619      refBin[i] = (
dynamic_cast<RooAbsLValue*
>(arg))->getBin();
 
 1621    std::map<const RooAbsArg*, std::pair<Double_t, Double_t> >::const_iterator
 
 1622   it = ranges.find(sumsetv ? sumsetv : slicesetv);
 
 1623    if (ranges.end() != it) {
 
 1624      rangeLo[i] = it->second.first;
 
 1625      rangeHi[i] = it->second.second;
 
 1636    for (
Int_t ivar = 0, tmp = ibin;
 
 1640      if (mask[ivar] && idx!=refBin[ivar]) skip=
kTRUE;
 
 1646    for (
Int_t ivar = 0, tmp = ibin;
 
 1653      if (binHi < rangeLo[ivar] || binLo > rangeHi[ivar]) {
 
 1659   (std::min(rangeHi[ivar], binHi) - std::max(rangeLo[ivar], binLo));
 
 1662    if (0. == corrPartial) 
continue;
 
 1663    const Double_t corr = correctForBinSize ? (inverseBinCor ? 1. / 
_binv[ibin] : 
_binv[ibin] ) : 1.0;
 
 1692  pbinv = 
new vector<Double_t>(
_arrSize) ;
 
 1705  for (ibin=0 ; ibin<
_arrSize ; ibin++) {
 
 1708    Int_t j(0), idx(0), tmp(ibin) ;
 
 1718    (*pbinv)[ibin] = theBinVolume ;
 
 1753       carry = (t - 
n) - 
y;
 
 1771  if (cutSpec==0 && cutRange==0) {
 
 1786      if (select && select->
eval()==0.) continue ;
 
 1792   carry = (t - sumw) - 
y;
 
 1797    if (select) 
delete select ;
 
 1897    coutE(
InputArguments) << 
"RooDataHist::sliceIterator() variable " << sliceArg.
GetName() << 
" is not part of this RooDataHist" << endl ;
 
 2023  os << indent << 
"Binned Dataset " << 
GetName() << 
" (" << 
GetTitle() << 
")" << endl ;
 
 2024  os << indent << 
"  Contains " << 
numEntries() << 
" bins with a total weight of " << 
sumEntries() << endl;
 
 2027    os << indent << 
"  Observables " << 
_vars << endl ;
 
 2029    os << indent << 
"  Observables: " ;
 
 2035      os << indent << 
"  Caches " << 
_cachedVars << endl ;
 
 2045void RooDataHist::Streamer(
TBuffer &R__b)
 
 2068   RooAbsData::Streamer(R__b);
 
 2069   TTree* X_tree(0) ; R__b >> X_tree;
 
 2070   RooArgSet X_truth ; X_truth.Streamer(R__b);
 
 2071   TString X_blindString ; X_blindString.Streamer(R__b);
 
 2081   RooDirItem::Streamer(R__b);
 
static unsigned int total
float type_of_call hi(const int &, const int &)
double pow(double, double)
char * Form(const char *fmt,...)
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
virtual Bool_t inRange(const char *) const
void attachDataSet(const RooAbsData &set)
Replace server nodes with names matching the dataset variable names with those data set variables,...
RooAbsBinning is the abstract base class for RooRealVar binning definitions This class defines the in...
virtual RooAbsBinning * clone(const char *name=0) const =0
virtual Double_t binCenter(Int_t bin) const =0
virtual void setBin(Int_t ibin, const char *rangeName=0)
Set category to i-th fit bin, which is the i-th registered state.
virtual Int_t numBins(const char *rangeName) const
Returm the number of fit bins ( = number of types )
const RooCatType * lookupType(Int_t index, Bool_t printError=kFALSE) const
Find our type corresponding to the specified index, or return 0 for no match.
RooAbsCollection * selectCommon(const RooAbsCollection &refColl) const
Create a subset of the current collection, consisting only of those elements that are contained as we...
RooAbsCollection & assignValueOnly(const RooAbsCollection &other, Bool_t oneSafe=kFALSE)
The assignment operator sets the value of any argument in our set that also appears in the other set.
RooAbsCollection * snapshot(Bool_t deepCopy=kTRUE) const
Take a snap shot of current collection contents: An owning collection is returned containing clones o...
RooFIter fwdIterator() const
void assignFast(const RooAbsCollection &other, Bool_t setValDirty=kTRUE)
Functional equivalent of operator=() but assumes this and other collection have same layout.
Bool_t allInRange(const char *rangeSpec) const
Return true if all contained object report to have their value inside the specified range.
virtual Bool_t remove(const RooAbsArg &var, Bool_t silent=kFALSE, Bool_t matchByNameOnly=kFALSE)
Remove the specified argument from our list.
TIterator * createIterator(Bool_t dir=kIterForward) const
RooAbsArg * find(const char *name) const
Find object with given name in list.
RooAbsDataStore is the abstract base class for data collection that use a TTree as internal storage m...
virtual void checkInit() const
virtual void setExternalWeightArray(Double_t *, Double_t *, Double_t *, Double_t *)
RooAbsData is the common abstract base class for binned and unbinned datasets.
virtual const RooArgSet * get() const
void printMultiline(std::ostream &os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const
Interface for detailed printing of object.
TIterator * _iterator
External variables cached with this data set.
virtual Double_t weight() const =0
static StorageType defaultStorageType
virtual Double_t weightSquared() const =0
virtual void attachCache(const RooAbsArg *newOwner, const RooArgSet &cachedVars)
Internal method – Attach dataset copied with cache contents to copied instances of functions.
virtual Int_t numEntries() const
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
Calls RooPlot* plotOn(RooPlot* frame, const RooLinkedList& cmdList) const ;.
RooAbsDataStore * _dstore
Iterator over cached variables.
Abstract base class for objects that are lvalues, i.e.
virtual Double_t getBinWidth(Int_t i, const char *rangeName=0) const =0
virtual Int_t numBins(const char *rangeName=0) const =0
virtual void setBin(Int_t ibin, const char *rangeName=0)=0
RooAbsRealLValue is the common abstract base class for objects that represent a real value that may a...
virtual Double_t getMax(const char *name=0) const
virtual void setBin(Int_t ibin, const char *rangeName=0)
Set value to center of bin 'ibin' of binning 'rangeName' (or of default binning if no range is specif...
virtual Int_t numBins(const char *rangeName=0) const
virtual const RooAbsBinning * getBinningPtr(const char *rangeName) const
virtual Int_t getBins(const char *name=0) const
virtual Double_t getMin(const char *name=0) const
virtual Int_t getBin(const char *rangeName=0) const
virtual void setBinFast(Int_t ibin, const RooAbsBinning &binning)
Set value to center of bin 'ibin' of binning 'rangeName' (or of default binning if no range is specif...
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Double_t getVal(const RooArgSet *set=0) const
Evaluate object. Returns either cached value or triggers a recalculation.
RooAbsArg * at(Int_t idx) const
RooArgSet is a container object that can hold multiple RooAbsArg objects.
virtual Bool_t add(const RooAbsCollection &col, Bool_t silent=kFALSE)
Add a collection of arguments to this collection by calling add() for each element in the source coll...
virtual void addClone(const RooAbsCollection &col, Bool_t silent=kFALSE)
Add a collection of arguments to this collection by calling addOwned() for each element in the source...
Class RooBinning is an implements RooAbsBinning in terms of an array of boundary values,...
virtual void setRange(Double_t xlo, Double_t xhi)
Change the defined range associated with this binning.
virtual Int_t binNumber(Double_t x) const
Return sequential bin number that contains value x where bin zero is the first bin with an upper boun...
virtual Double_t averageBinWidth() const
virtual Double_t binLow(Int_t bin) const
Return the lower bound of the requested bin.
virtual Int_t rawBinNumber(Double_t x) const
Return sequential bin number that contains value x where bin zero is the first bin that is defined,...
void addUniform(Int_t nBins, Double_t xlo, Double_t xhi)
Add array of nbins uniformly sized bins in range [xlo,xhi].
virtual Double_t binHigh(Int_t bin) const
Return the upper bound of the requested bin.
RooCategory represents a fundamental (non-derived) discrete value object.
virtual const char * getLabel() const
Return label string of current state.
virtual Bool_t setLabel(const char *label, Bool_t printError=kTRUE)
Set value by specifying the name of the desired state If printError is set, a message will be printed...
Bool_t defineType(const char *label)
Define a state with given name, the lowest available positive integer is assigned as index.
RooCmdArg is a named container for two doubles, two integers two object points and three string point...
Class RooCmdConfig is a configurable parser for RooCmdArg named arguments.
RooDataSet is a container class to hold N-dimensional binned data.
std::vector< Double_t > * _pbinv
Double_t sum(Bool_t correctForBinSize, Bool_t inverseCorr=kFALSE) const
Return the sum of the weights of all hist bins.
virtual void printArgs(std::ostream &os) const
Print argument of dataset, i.e. the observable names.
virtual void reset()
Reset all bin weights to zero.
void dump2()
Debug stuff, should go...
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 Double_t weight() const
Int_t _cache_sum_valid
list of bin bounds per dimension
void SetNameTitle(const char *name, const char *title)
Change the title of this RooDataHist.
Double_t _curWeight
Valid bins with current range definition.
friend class RooDataHistSliceIter
RooAbsData * reduceEng(const RooArgSet &varSubset, const RooFormulaVar *cutVar, const char *cutRange=0, Int_t nStart=0, Int_t nStop=2000000000, Bool_t copyCache=kTRUE)
Implementation of RooAbsData virtual method that drives the RooAbsData::reduce() methods.
void set(Double_t weight, Double_t wgtErr=-1)
Increment the weight of the bin enclosing the coordinates given by 'row' by the specified amount.
virtual Double_t sumEntries() const
Double_t weightSquared() const
RooCacheManager< std::vector< Double_t > > _pbinvCacheMgr
Partial bin volume array.
void checkBinBounds() const
virtual void weightError(Double_t &lo, Double_t &hi, ErrorType etype=Poisson) const
Return the error on current weight.
virtual Int_t numEntries() const
Return the number of bins.
virtual RooAbsData * cacheClone(const RooAbsArg *newCacheOwner, const RooArgSet *newCacheVars, const char *newName=0)
Construct a clone of this dataset that contains only the cached variables.
virtual Double_t get_wgt(const Int_t &idx) const
virtual void add(const RooArgSet &row, Double_t wgt=1.0)
std::vector< const RooAbsBinning * > _lvbins
List of observables casted as RooAbsLValue.
RooDataHist()
Default constructor.
Bool_t * _binValid
Iterator over realVars.
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.
virtual void printValue(std::ostream &os) const
Print value of the dataset, i.e. the sum of weights contained in the dataset.
virtual Bool_t isNonPoissonWeighted() const
Returns true if datasets contains entries with a non-integer weight.
Int_t getIndex(const RooArgSet &coord, Bool_t fast=kFALSE)
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...
void _adjustBinning(RooRealVar &theirVar, const TAxis &axis, RooRealVar *ourVar, Int_t *offset)
Cache for sum of entries ;.
std::vector< std::vector< Double_t > > _binbounds
List of used binnings associated with lvalues.
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.
void importTH1(const RooArgList &vars, const TH1 &histo, Double_t initWgt, Bool_t doDensityCorrection)
Import data from given TH1/2/3 into this RooDataHist.
virtual const RooArgSet * get() const
Int_t calcTreeIndex() const
Calculate the index for the weights array corresponding to to the bin enclosing the current coordinat...
virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const
Print the details on the dataset contents.
void setAllWeights(Double_t value)
Set all the event weight of all bins to the specified value.
virtual ~RooDataHist()
Destructor.
virtual RooPlot * plotOn(RooPlot *frame, PlotOpt o) const
Back end function to plotting functionality.
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.
std::vector< RooAbsLValue * > _lvvars
Cache manager for arrays of partial bin volumes.
virtual Bool_t valid() const
Return true if currently loaded coordinate is considered valid within the current range definitions o...
void cacheValidEntries()
Cache the datahist entries with bin centers that are inside/outside the current observable definitio.
std::vector< Int_t > _idxMult
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 SetName(const char *name)
Change the name of the RooDataHist.
Double_t _cache_sum
Is cache sum valid.
Double_t binVolume() const
void calculatePartialBinVolume(const RooArgSet &dimSet) const
Fill the transient cache with partial bin volumes with up-to-date values for the partial volume speci...
RooDirItem is a utility base class for RooFit objects that are to be attached to ROOT directories.
void appendToDir(TObject *obj, Bool_t forceMemoryResident=kFALSE)
Append object to directory.
void removeFromDir(TObject *obj)
Remove object from directory it was added to.
Bool_t getPoissonInterval(Int_t n, Double_t &mu1, Double_t &mu2, Double_t nSigma=1) const
Return a confidence interval for the expected number of events given n observed (unweighted) events.
static const RooHistError & instance()
Return a reference to a singleton object that is created the first time this method is called.
RooLinkedList is an collection class for internal use, storing a collection of RooAbsArg pointers in ...
TIterator * MakeIterator(Bool_t dir=kTRUE) const
Return an iterator over this list.
static Double_t interpolate(Double_t yArr[], Int_t nOrder, Double_t x)
A RooPlot is a plot frame and a container for graphics objects within that frame.
RooAbsRealLValue * getPlotVar() const
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,...
RooRealVar represents a fundamental (non-derived) real valued object.
void setRange(const char *name, Double_t min, Double_t max)
Set range named 'name to [min,max].
const RooAbsBinning & getBinning(const char *name=0, Bool_t verbose=kTRUE, Bool_t createOnTheFly=kFALSE) const
Return binning definition with name.
void setBinning(const RooAbsBinning &binning, const char *name=0)
Add given binning under name 'name' with this variable.
RooTreeDataStore is the abstract base class for data collection that use a TTree as internal storage ...
RooVectorDataStore is the abstract base class for data collection that use a TTree as internal storag...
const Double_t * GetArray() const
Class to manage histogram axis.
const TArrayD * GetXbins() const
Buffer base class used for serializing objects.
virtual Int_t ReadClassBuffer(const TClass *cl, void *pointer, const TClass *onfile_class=0)=0
virtual Version_t ReadVersion(UInt_t *start=0, UInt_t *bcnt=0, const TClass *cl=0)=0
virtual Int_t CheckByteCount(UInt_t startpos, UInt_t bcnt, const TClass *clss)=0
virtual void ReadFastArray(Bool_t *b, Int_t n)=0
virtual Int_t WriteClassBuffer(const TClass *cl, void *pointer)=0
virtual TList * GetList() const
virtual Double_t GetBinError(Int_t bin) const
Return value of error associated to bin number bin.
virtual Int_t GetDimension() const
TAxis * GetXaxis()
Get the behaviour adopted by the object about the statoverflows. See EStatOverflows for more informat...
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
Iterator abstract base class.
virtual TObject * Next()=0
virtual void Add(TObject *obj)
virtual TObject * Remove(TObject *obj)
Remove object from the list.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
virtual void SetName(const char *name)
Set the name of the TNamed.
virtual const char * GetTitle() const
Returns title of object.
virtual const char * GetName() const
Returns name of object.
virtual void SetNameTitle(const char *name, const char *title)
Set all the TNamed parameters (name and title).
Mother of all ROOT objects.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
static constexpr double pc
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Bool_t correctForBinWidth