32using std::string, std::endl, std::ostream;
 
   66   _ipOrder(
other._ipOrder),
 
   67   _disableCache(
other._disableCache)
 
 
  120      ccoutD(Eval) << 
"RooAbsCachedReal::getCache(" << 
GetName() << 
") cached function " 
  121        << cache->
func()->
GetName() << 
" requires recalculation as parameters changed" << endl ;
 
  131  for (
auto* arg : *(cache->
hist()->
get()) ) {
 
  154  ccoutD(Caching) << 
"RooAbsCachedReal("<<
this<<
")::getCache(" << 
GetName() << 
") creating new cache " << cache->
func()->
GetName() << 
" for nset " << (nset?*nset:
RooArgSet()) << 
" with code " << code << endl ;
 
 
  170   : _sourceClone(nullptr), _cacheSource(
false)
 
  180  auto hname = std::string(
self.inputBaseName()) + 
"_CACHEHIST" + 
self.cacheNameSuffix(*nset2).Data();
 
  185  std::unique_ptr<RooArgSet> observables{
self.actualObservables(*
nset2)};
 
  198  std::unique_ptr<RooArgSet> params{
self.actualParameters(
orderedObs)};
 
 
  213  if (_sourceClone) { 
delete _sourceClone ; }
 
  214  delete _paramTracker ;
 
 
  228  name.Append(
"_Obs[") ;
 
  237      name.Append(arg->GetName()) ;
 
 
  275  ret.add(*_paramTracker) ;
 
  277    ret.add(*_sourceClone) ;
 
 
  289    os << 
indent << 
"--- RooAbsCachedReal begin cache ---" << endl ;
 
  294  func()->printCompactTree(os,
indent2) ;
 
  297    os << 
indent << 
"--- RooAbsCachedReal end cache --- " << endl ;
 
 
RooAbsReal * _func
Pointer to original input function.
 
static void indent(ostringstream &buf, int indent_level)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
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.
 
Abstract base class for objects to be stored in RooAbsCache cache manager objects.
 
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.
 
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.
 
Abstract base class for functions that need or want to cache their evaluate() output in a RooHistFunc...
 
void setInterpolationOrder(Int_t order)
Set interpolation order of RooHistFunct representing cache histogram.
 
virtual void fillCacheObject(FuncCacheElem &cache) const =0
 
virtual FuncCacheElem * createCache(const RooArgSet *nset) const
Interface function to create an internal cache object that represent each cached function configurati...
 
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.
 
std::map< Int_t, std::pair< const RooArgSet *, const RooArgSet * > > _anaIntMap
! Map for analytical integration codes
 
friend class FuncCacheElem
 
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.
 
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.
 
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 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.
 
Meta object that tracks value changes in a given set of RooAbsArgs by registering itself as value cli...
 
bool hasChanged(bool clearState)
Returns true if state has changed since last call with clearState=true.
 
RooArgSet parameters() const
 
Container class to hold N-dimensional binned data.
 
void add(const RooArgSet &row, double wgt=1.0) override
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.