65   _cacheMgr(other._cacheMgr,this),
 
   66   _ipOrder(other._ipOrder),
 
   67   _disableCache(other._disableCache)
 
  127  Int_t sterileIdx(-1) ;
 
  131      ccoutD(Eval) << 
"RooAbsCachedReal::getCache(" << 
GetName() << 
") cached function " 
  132        << cache->
func()->
GetName() << 
" requires recalculation as parameters changed" << endl ;
 
  142  for (
auto* arg : *(cache->
hist()->
get()) ) {
 
  165  ccoutD(Caching) << 
"RooAbsCachedReal("<<
this<<
")::getCache(" << 
GetName() << 
") creating new cache " << cache->
func()->
GetName() << 
" for nset " << (nset?*nset:
RooArgSet()) << 
" with code " << code << endl ;
 
  201  funcname.
Append(
"_CACHE") ;
 
  225  if (_sourceClone) { 
delete _sourceClone ; }
 
  226  delete _paramTracker ;
 
  249      name.Append(arg->GetName()) ;
 
  256    name.Append(payloadUS) ;
 
  287  ret.
add(*_paramTracker) ;
 
  289    ret.
add(*_sourceClone) ;
 
  301    os << 
indent << 
"--- RooAbsCachedReal begin cache ---" << endl ;
 
  305  indent2 += 
Form(
"[%d] ",curElem) ;
 
  306  func()->printCompactTree(os,indent2) ;
 
  308  if (curElem==maxElem) {
 
  309    os << 
indent << 
"--- RooAbsCachedReal end cache --- " << endl ;
 
static void indent(ostringstream &buf, int indent_level)
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
RooAbsArg is the common abstract base class for objects that represent a value and a "shape" in RooFi...
 
RooExpensiveObjectCache & expensiveObjectCache() const
 
void setOperMode(OperMode mode, bool recurseADirty=true)
Set the operation mode of this node.
 
void addServerList(RooAbsCollection &serverList, bool valueProp=true, bool shapeProp=false)
Register a list of RooAbsArg as servers to us by calling addServer() for each arg in the list.
 
void setValueDirty()
Mark the element dirty. This forces a re-evaluation when a value is requested.
 
OperMode operMode() const
Query the operation mode of this node.
 
RooAbsCacheElement is the abstract base class for objects to be stored in RooAbsCache cache manager o...
 
RooChangeTracker * _paramTracker
 
void printCompactTreeHook(std::ostream &, const char *, Int_t, Int_t) override
Print contents of cache when printing self as part of object tree.
 
RooAbsReal * _sourceClone
 
RooChangeTracker * paramTracker()
 
~FuncCacheElem() override
 
RooArgList containedArgs(Action) override
Return list of contained RooAbsArg objects.
 
FuncCacheElem(const RooAbsCachedReal &self, const RooArgSet *nset)
Constructor of cache storage unit class.
 
RooAbsCachedReal is the abstract base class for functions that need or want to cache their evaluate()...
 
void setInterpolationOrder(Int_t order)
Set interpolation order of RooHistFunct representing cache histogram.
 
virtual void fillCacheObject(FuncCacheElem &cache) const =0
 
virtual const char * inputBaseName() const =0
 
virtual FuncCacheElem * createCache(const RooArgSet *nset) const
Interface function to create an internal cache object that represent each cached function configurati...
 
virtual RooFit::OwningPtr< RooArgSet > actualParameters(const RooArgSet &nset) const =0
 
TString cacheNameSuffix(const RooArgSet &nset) const
Construct unique suffix name for cache p.d.f object.
 
FuncCacheElem * getCache(const RooArgSet *nset) const
Retrieve cache corresponding to observables in nset.
 
double analyticalIntegralWN(Int_t code, const RooArgSet *normSet, const char *rangeName=nullptr) const override
Forward call to implementation in relevant RooHistFunc instance.
 
RooObjCacheManager _cacheMgr
! The cache manager
 
Int_t _ipOrder
Interpolation order for cache histograms.
 
~RooAbsCachedReal() override
Destructor.
 
Int_t getInterpolationOrder() const
 
virtual RooFit::OwningPtr< RooArgSet > actualObservables(const RooArgSet &nset) const =0
 
std::map< Int_t, std::pair< const RooArgSet *, const RooArgSet * > > _anaIntMap
! Map for analytical integration codes
 
Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &analVars, const RooArgSet *normSet, const char *rangeName=nullptr) const override
Return analytical integration capabilities of the RooHistFunc that corresponds to the set of observab...
 
virtual const char * payloadUniqueSuffix() const
 
double getValV(const RooArgSet *set=nullptr) const override
Implementation of getVal() overriding default implementation of RooAbsReal.
 
virtual const char * binningName() const
 
Int_t getSize() const
Return the number of elements in the collection.
 
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
 
RooAbsArg * first() const
 
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
 
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
 
virtual double getValV(const RooArgSet *normalisationSet=nullptr) const
Return value of object.
 
virtual Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &analVars, const RooArgSet *normSet, const char *rangeName=nullptr) const
Variant of getAnalyticalIntegral that is also passed the normalization set that should be applied to ...
 
double _value
Cache for current value of object.
 
virtual void preferredObservableScanOrder(const RooArgSet &obs, RooArgSet &orderedObs) const
Interface method for function objects to indicate their preferred order of observables for scanning t...
 
virtual double analyticalIntegralWN(Int_t code, const RooArgSet *normSet, const char *rangeName=nullptr) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral.
 
RooArgList is a container object that can hold multiple RooAbsArg objects.
 
RooArgSet is a container object that can hold multiple RooAbsArg objects.
 
Int_t setObj(const RooArgSet *nset, T *obj, const TNamed *isetRangeName=nullptr)
Setter function without integration set.
 
Int_t cacheSize() const
Return size of cache.
 
T * getObjByIndex(Int_t index) const
Retrieve payload object by slot index.
 
T * getObj(const RooArgSet *nset, Int_t *sterileIndex=nullptr, const TNamed *isetRangeName=nullptr)
Getter function without integration set.
 
RooChangeTracker is a meta object that tracks value changes in a given set of RooAbsArgs by registeri...
 
bool hasChanged(bool clearState)
Returns true if state has changed since last call with clearState=true.
 
RooArgSet parameters() const
 
The RooDataHist is a container class to hold N-dimensional binned data.
 
virtual void add(const RooArgSet &row, double wgt=1.0)
Add wgt to the bin content enclosed by the coordinates passed in row.
 
void reset() override
Reset all bin weights to zero.
 
const RooArgSet * get() const override
Get bin centre of current bin.
 
bool registerObject(const char *ownerName, const char *objectName, TObject &cacheObject, const RooArgSet ¶ms)
Register object associated with given name and given associated parameters with given values in cache...
 
const TObject * retrieveObject(const char *name, TClass *tclass, const RooArgSet ¶ms)
Retrieve object from cache that was registered under given name with given parameters,...
 
void setInterpolationOrder(Int_t order)
Set histogram interpolation order.
 
const char * GetName() const override
Returns name of object.
 
const char * Data() const
 
TString & Append(const char *cs)