65 _cacheMgr(other._cacheMgr,this),
66 _ipOrder(other._ipOrder),
67 _disableCache(other._disableCache)
127 return new FuncCacheElem(const_cast<RooAbsCachedReal&>(*
this),nset) ;
138 Int_t sterileIdx(-1) ;
142 ccoutD(
Eval) <<
"RooAbsCachedReal::getCache(" <<
GetName() <<
") cached function " 143 << cache->
func()->
GetName() <<
" requires recalculation as parameters changed" << endl ;
155 while ( (arg=iarg.next()) ) {
178 ccoutD(
Caching) <<
"RooAbsCachedReal("<<
this<<
")::getCache(" <<
GetName() <<
") creating new cache " << cache->
func()->
GetName() <<
" for nset " << (nset?*nset:
RooArgSet()) <<
" with code " << code << endl ;
202 self.preferredObservableScanOrder(*nset2,orderedObs) ;
205 TString hname =
self.inputBaseName() ;
206 hname.
Append(
"_CACHEHIST") ;
210 _hist->removeSelfFromDir() ;
212 RooArgSet* observables=
self.actualObservables(*nset2) ;
215 TString funcname =
self.inputBaseName() ;
216 funcname.
Append(
"_CACHE") ;
222 _func->setValueDirty() ;
225 RooArgSet* params =
self.actualParameters(orderedObs) ;
226 string name=
Form(
"%s_CACHEPARAMS",_func->GetName()) ;
232 _func->addServerList(*params) ;
246 if (_sourceClone) {
delete _sourceClone ; }
247 delete _paramTracker ;
311 ret.
add(*_paramTracker) ;
313 ret.
add(*_sourceClone) ;
325 os << indent <<
"--- RooAbsCachedReal begin cache ---" << endl ;
329 indent2 +=
Form(
"[%d] ",curElem) ;
330 func()->printCompactTree(os,indent2) ;
332 if (curElem==maxElem) {
333 os << indent <<
"--- RooAbsCachedReal end cache --- " << endl ;
virtual const char * GetName() const
Returns name of object.
void setInterpolationOrder(Int_t order)
Set interpolation order of RooHistFunct representing cache histogram.
TIterator * createIterator(Bool_t dir=kIterForward) const
virtual Bool_t add(const RooAbsArg &var, Bool_t silent=kFALSE)
Add the specified argument to list.
virtual const RooArgSet * get() const
void setInterpolationOrder(Int_t order)
virtual Double_t getValV(const RooArgSet *set=0) const
Implementation of getVal() overriding default implementation of RooAbsReal.
Double_t getVal(const RooArgSet *set=0) const
TString cacheNameSuffix(const RooArgSet &nset) const
Construct unique suffix name for cache p.d.f object.
Bool_t _disableCache
Map for analytical integration codes.
Bool_t hasChanged(Bool_t clearState)
Returns true if state has changes since last call with clearState=kTRUE If clearState is true...
std::map< Int_t, std::pair< const RooArgSet *, const RooArgSet * > > _anaIntMap
T * getObjByIndex(Int_t index) const
void clearCacheObject(FuncCacheElem &cache) const
Mark all bins as unitialized (value -1)
const TObject * retrieveObject(const char *name, TClass *tclass, const RooArgSet ¶ms)
Retrieve object from cache that was registered under given name with given parameters, if current parameter values match those that were stored in the registry for this object.
Iterator abstract base class.
void setValueDirty() const
virtual Double_t getValV(const RooArgSet *set=0) const
Return value of object.
T * getObj(const RooArgSet *nset, Int_t *sterileIndex=0, const TNamed *isetRangeName=0)
TString & Append(const char *cs)
virtual Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &analVars, const RooArgSet *normSet, const char *rangeName=0) const
Return analytical integration capabilities of the RooHistFunc that corresponds to the set of observab...
RooChangeTracker * paramTracker()
virtual Double_t analyticalIntegralWN(Int_t code, const RooArgSet *normSet, const char *rangeName=0) const
Forward call to implementation in relevant RooHistFunc instance.
RooArgSet parameters() const
virtual void add(const RooArgSet &row, Double_t wgt=1.0)
RooExpensiveObjectCache & expensiveObjectCache() const
virtual Int_t getAnalyticalIntegralWN(RooArgSet &allVars, RooArgSet &analVars, const RooArgSet *normSet, const char *rangeName=0) const
Variant of getAnalyticalIntegral that is also passed the normalization set that should be applied to ...
char * Form(const char *fmt,...)
virtual RooArgList containedArgs(Action)
Return list of contained RooAbsArg objects.
friend class FuncCacheElem
OperMode operMode() const
static void indent(ostringstream &buf, int indent_level)
FuncCacheElem(const RooAbsCachedReal &self, const RooArgSet *nset)
Constructor of cache storage unit class.
FuncCacheElem * getCache(const RooArgSet *nset) const
Retrieve cache corresponding to observables in nset.
virtual const char * binningName() const
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Int_t getInterpolationOrder() const
RooFIter fwdIterator() const
double func(double *x, double *p)
Int_t _ipOrder
The cache manager.
RooObjCacheManager _cacheMgr
virtual void fillCacheObject(FuncCacheElem &cache) const =0
virtual void printCompactTreeHook(std::ostream &, const char *, Int_t, Int_t)
Print contents of cache when printing self as part of object tree.
virtual const char * payloadUniqueSuffix() const
virtual void reset()
Reset all bin weights to zero.
virtual TObject * Next()=0
Int_t setObj(const RooArgSet *nset, T *obj, const TNamed *isetRangeName=0)
virtual FuncCacheElem * createCache(const RooArgSet *nset) const
Interface function to create an internal cache object that represent each cached function configurati...
RooAbsArg is the common abstract base class for objects that represent a value (of arbitrary type) an...
void setAllWeights(Double_t value)
Set all the event weight of all bins to the specified value.
virtual ~RooAbsCachedReal()
Destructor.
Bool_t registerObject(const char *ownerName, const char *objectName, TObject &cacheObject, TIterator *paramIter)
Register object associated with given name and given associated parameters with given values in cache...
virtual Double_t analyticalIntegralWN(Int_t code, const RooArgSet *normSet, const char *rangeName=0) const
Implements the actual analytical integral(s) advertised by getAnalyticalIntegral. ...