32using std::string, std::endl, std::ostream;
115 Int_t sterileIdx(-1) ;
119 ccoutD(Eval) <<
"RooAbsCachedReal::getCache(" <<
GetName() <<
") cached function "
120 << cache->
func()->
GetName() <<
" requires recalculation as parameters changed" << std::endl ;
130 for (
auto* arg : *(cache->
hist()->
get()) ) {
141 ccoutD(Caching) <<
"RooAbsCachedReal("<<
this<<
")::getCache(" <<
GetName() <<
") creating new cache " << cache->
func()->
GetName() <<
" for nset " << (nset?*nset:
RooArgSet()) <<
" with code " << code << std::endl ;
170 _hist->removeSelfFromDir() ;
176 funcname.
Append(
"_CACHE") ;
182 _func->setValueDirty() ;
192 _func->addServerList(*params) ;
215 name.Append(
"_Obs[") ;
224 name.Append(arg->GetName()) ;
231 name.Append(payloadUS) ;
276 os <<
indent <<
"--- RooAbsCachedReal begin cache ---" << std::endl ;
280 indent2 +=
Form(
"[%d] ",curElem) ;
281 func()->printCompactTree(os,indent2) ;
283 if (curElem==maxElem) {
284 os <<
indent <<
"--- RooAbsCachedReal end cache --- " << std::endl ;
int Int_t
Signed integer 4 bytes (int).
static void indent(ostringstream &buf, int indent_level)
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
void setValueDirty()
Mark the element dirty. This forces a re-evaluation when a value is requested.
RooAbsArg()
Default constructor.
OperMode operMode() const
Query the operation mode of this node.
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.
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.
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.
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
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.
virtual const char * binningName() const
double getVal(const RooArgSet *normalisationSet=nullptr) const
Evaluate object.
virtual double getValV(const RooArgSet *normalisationSet=nullptr) const
Return value of object.
RooAbsReal()
coverity[UNINIT_CTOR] Default constructor
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.
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.
Container class to hold N-dimensional binned data.
const RooArgSet * get() const override
Get bin centre of current bin.
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)