54  _depList(
"depList",
"List of dependents",
this),
 
   65    coutE(InputArguments) << 
"RooHistFunc::ctor(" << 
GetName()
 
   66           << 
") ERROR variable list and RooDataHist must contain the same variables." << std::endl ;
 
   67    throw std::invalid_argument(
"RooHistFunc: ERROR variable list and RooDataHist must contain the same variables.");
 
   70  for (
const auto arg : vars) {
 
   71    if (!
dvars->find(arg->GetName())) {
 
   72      coutE(InputArguments) << 
"RooHistFunc::ctor(" << 
GetName()
 
   73             << 
") ERROR variable list and RooDataHist must contain the same variables." << std::endl ;
 
   74      throw std::invalid_argument(
"RooHistFunc: ERROR variable list and RooDataHist must contain the same variables.");
 
 
   93  _depList(
"depList",
"List of dependents",
this),
 
  104    coutE(InputArguments) << 
"RooHistFunc::ctor(" << 
GetName()
 
  105           << 
") ERROR variable list and RooDataHist must contain the same variables." << std::endl ;
 
  106    throw std::invalid_argument(
"RooHistFunc: ERROR variable list and RooDataHist must contain the same variables.");
 
  109  for (
const auto arg : 
histObs) {
 
  110    if (!
dvars->find(arg->GetName())) {
 
  111      coutE(InputArguments) << 
"RooHistFunc::ctor(" << 
GetName()
 
  112             << 
") ERROR variable list and RooDataHist must contain the same variables." << std::endl ;
 
  113      throw std::invalid_argument(
"RooHistFunc: ERROR variable list and RooDataHist must contain the same variables.");
 
 
  141  _dataHist(
other._dataHist),
 
  142  _codeReg(
other._codeReg),
 
  143  _intOrder(
other._intOrder),
 
  144  _cdfBoundaries(
other._cdfBoundaries),
 
  145  _totVolume(
other._totVolume),
 
  146  _unitNorm(
other._unitNorm)
 
 
  181        if (!
harg->inRange(
nullptr)) {
 
 
  195  std::size_t nEvents = 
output.size();
 
  213  for (std::size_t i = 0; i < nEvents; ++i) {
 
  221        if (!
histObs->inRange(
nullptr)) {
 
 
  371      std::cout << 
"RooHistFunc::binBoundaries(" << 
GetName() << 
") obs = " << obs.
GetName() << 
" hobs is not found, returning null" << std::endl ;
 
  387    std::cout << 
"RooHistFunc::binBoundaries(" << 
GetName() << 
") hobs = " << 
hobs->GetName() << 
" is not found in dataset?" << std::endl ;
 
  393    std::cout << 
"RooHistFunc::binBoundaries(" << 
GetName() << 
") hobs = " << 
hobs->GetName() << 
" but is not an LV, returning null" << std::endl ;
 
  399  double* boundaries = binning->
array() ;
 
  401  auto hint = 
new std::list<double> ;
 
  403  double delta = (xhi-xlo)*1
e-8 ;
 
  408    if (boundaries[i]>xlo-delta && boundaries[i]<xhi+delta) {
 
 
  453          coutE(ObjectHandling) << 
" RooHistPdf::importWorkspaceHook(" << 
GetName() << 
") unable to import clone of underlying RooDataHist with unique name " << 
uniqueName << 
", abort" << std::endl ;
 
  465        coutE(ObjectHandling) << 
" RooHistPdf::importWorkspaceHook(" << 
GetName() << 
") unable to import clone of underlying RooDataHist with unique name " << 
uniqueName << 
", abort" << std::endl ;
 
 
  487  if (std::abs(
dh1.sumEntries()-
dh2.sumEntries())>1
e-8) 
return false ;
 
  488  if (
dh1.numEntries() != 
dh2.numEntries()) 
return false ;
 
  489  for (
int i=0 ; i < 
dh1.numEntries() ; i++) {
 
  492    if (std::abs(
dh1.weight()-
dh2.weight())>1
e-8) 
return false ;
 
  495  if (getColonSeparatedNameString(*
dh1.get()) != getColonSeparatedNameString(*
dh2.get())) 
return false ;
 
 
  506   if (
R__b.IsReading()) {
 
 
  544        if (!
harg->inRange(
nullptr)) {
 
 
  559  std::vector<std::span<const double>> 
depData;
 
  570      [](
const std::span<const double>& 
a, 
const std::span<const double>& 
b){ return a.size() < b.size(); })->size();
 
  573  for (std::size_t 
evt = 0; 
evt < batchSize; ++
evt) {
 
  581        if (!
harg->inRange(
nullptr)) {
 
 
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
#define R__ASSERT(e)
Checks condition e and reports a fatal error if it's false.
 
const_iterator begin() const
 
const_iterator end() const
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
void registerProxy(RooArgProxy &proxy)
Register an RooArgProxy in the proxy list.
 
friend void RooRefArray::Streamer(TBuffer &)
 
virtual void ioStreamerPass2()
Method called by workspace container to finalize schema evolution issues that cannot be handled in a ...
 
Abstract base class for RooRealVar binning definitions.
 
virtual Int_t numBoundaries() const =0
 
virtual double * array() const =0
 
Int_t numTypes(const char *=nullptr) const
Return number of types defined (in range named rangeName if rangeName!=nullptr)
 
Storage_t::size_type size() const
 
virtual RooAbsArg * addClone(const RooAbsArg &var, bool silent=false)
Add a clone of the specified argument to list.
 
Abstract base class for binned and unbinned datasets.
 
virtual Int_t numEntries() const
Return number of entries in dataset, i.e., count unweighted entries.
 
Abstract base class for objects that are lvalues, i.e.
 
Abstract base class for objects that represent a real value that may appear on the left hand side of ...
 
Abstract base class for objects that represent a real value and implements functionality common to al...
 
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet * selectCommon(const RooAbsCollection &refColl) const
Use RooAbsCollection::selecCommon(), but return as RooArgSet.
 
Object to represent discrete states.
 
bool add(const RooAbsArg &var, bool valueServer, bool shapeServer, bool silent)
Overloaded RooCollection_t::add() method insert object into set and registers object as server to own...
 
Container class to hold N-dimensional binned data.
 
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 dimension...
 
TObject * Clone(const char *newname="") const override
Make a clone of an object using the Streamer facility.
 
Int_t getIndex(const RooAbsCollection &coord, bool fast=false) const
Calculate bin number of the given coordinates.
 
double weight(std::size_t i) const
Return weight of i-th bin.
 
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 histog...
 
const RooArgSet * get() const override
Get bin centre of current bin.
 
std::span< const double > at(RooAbsArg const *arg, RooAbsArg const *caller=nullptr)
 
std::span< double > output()
 
A real-valued function sampled from a multidimensional histogram.
 
bool _cdfBoundaries
Use boundary conditions for CDFs.
 
RooDataHist * _dataHist
Unowned pointer to underlying histogram.
 
double _totVolume
! Total volume of space (product of ranges of observables)
 
void doEval(RooFit::EvalContext &) const override
Base function for computing multiple values of a RooAbsReal.
 
bool forceAnalyticalInt(const RooAbsArg &dep) const override
 
double analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Return integral identified by 'code'.
 
std::list< double > * binBoundaries(RooAbsRealLValue &, double, double) const override
Return sampling hint for making curves of (projections) of this function as the recursive division st...
 
std::unique_ptr< RooDataHist > _ownedDataHist
! Owned pointer to underlying histogram
 
void ioStreamerPass2() override
Schema evolution: if histObsList wasn't filled from persistence (v1) then fill it here.
 
void initializeOwnedDataHist(std::unique_ptr< RooDataHist > &&dataHist)
 
double evaluate() const override
Return the current value: The value of the bin enclosing the current coordinates of the dependents,...
 
std::list< double > * plotSamplingHint(RooAbsRealLValue &obs, double xlo, double xhi) const override
Return sampling hint for making curves of (projections) of this function as the recursive division st...
 
Int_t getMaxVal(const RooArgSet &vars) const override
Only handle case of maximum in all variables.
 
double totVolume() const
Get total bin volume spanned by this hist function.
 
Int_t getBin() const
Compute bin number corresponding to current coordinates.
 
bool areIdentical(const RooDataHist &dh1, const RooDataHist &dh2)
 
double maxVal(Int_t code) const override
Return maximum value for set of observables identified by code assigned in getMaxVal.
 
std::vector< Int_t > getBins(RooFit::EvalContext &ctx) const
Compute bin numbers corresponding to all coordinates in evalData.
 
bool importWorkspaceHook(RooWorkspace &ws) override
Check if our datahist is already in the workspace.
 
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Determine integration scenario.
 
RooDataHist * cloneAndOwnDataHist(const char *newname="")
Replaces underlying RooDataHist with a clone, which is now owned, and returns the clone.
 
Int_t _intOrder
Interpolation order.
 
RooSetProxy _depList
List of observables mapped onto histogram observables.
 
RooArgSet _histObsList
List of observables defining dimensions of histogram.
 
bool forceAnalyticalInt(const RooAbsArg &dep) const override
 
double analyticalIntegral(Int_t code, const char *rangeName=nullptr) const override
Return integral identified by 'code'.
 
std::list< double > * plotSamplingHint(RooAbsRealLValue &obs, double xlo, double xhi) const override
Return sampling hint for making curves of (projections) of this function as the recursive division st...
 
Int_t getAnalyticalIntegral(RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=nullptr) const override
Determine integration scenario.
 
Variable that can be changed from the outside.
 
Persistable container for RooFit projects.
 
RooAbsData * embeddedData(RooStringView name) const
Retrieve dataset (binned or unbinned) with given name. A null pointer is returned if not found.
 
bool import(const RooAbsArg &arg, 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 RooCmdArg &arg9={})
Import a RooAbsArg object, e.g.
 
Buffer base class used for serializing objects.
 
const char * GetName() const override
Returns name of object.
 
void Clear(Option_t *option="") override
Remove all objects from the array.
 
RooCmdArg Rename(const char *suffix)
 
RooCmdArg Embedded(bool flag=true)
 
std::string getColonSeparatedNameString(RooArgSet const &argSet, char delim=':')