Template class RooCacheManager manages the storage of any type of data indexed on the choice of normalization and optionally the set of integrated observables. The purpose of this class is to faciliate storage of intermediate results in operator p.d.f.s whose value and inner working are often highly dependent on the user provided choice of normalization in getVal(). For efficiency reasons these normalization set pointer are derefenced as little as possible. This class contains a lookup table for RooArgSet pointer pairs -> normalization lists. Distinct pointer pairs that represent the same normalization/projection are recognized and will all point to the same normalization list. Lists for up to 'maxSize' different normalization/ projection configurations can be cached.
Int_t | _lastIndex | Last slot accessed |
Int_t | _maxSize | Maximum size |
vector<RooNormSetCache> | _nsetCache | ! Normalization/Integration set manager |
vector<RooAbsCacheElement*> | _object | ! Payload |
RooAbsArg* | RooAbsCache::_owner | Pointer to owning RooAbsArg |
Int_t | _size | Actual use |
Bool_t | _wired | ! In wired mode, there is a single payload which is returned always |
Clear the cache payload but retain slot mapping w.r.t to normalization and integration sets.
Insert payload object 'obj' in cache indexed on nset,iset and isetRangeName
Retrieve payload object indexed on nset,uset amd isetRangeName If sterileIdx is not null, it is set to the index of the sterile slot in cacse such a slot is recycled
Retrieve RooNameSet associated with slot at given index
Retrieve RooNameSet associated with slot at given index
Getter function without integration set
Setter function without integration set
Interface function to intercept server redirects
Interface function to cache add contents to output in tree printing mode
Interface function to perform post-insert operations on cached object