Implementation of a RooCacheManager<RooAbsCacheElement> that specializes in the storage of cache elements that contain RooAbsArg objects.
Caches with RooAbsArg derived payload require special care as server redirects cache operation mode changes and constant term optimization calls may need to be forwarded to such cache payload. This cache manager takes care of all these operations by forwarding these calls to the RooAbsCacheElement interface functions, which have a sensible default implementation.
Definition at line 29 of file RooObjCacheManager.h.
Public Member Functions | |
| RooObjCacheManager (const RooObjCacheManager &other, RooAbsArg *owner=nullptr) | |
| Copy constructor. | |
| RooObjCacheManager (RooAbsArg *owner=nullptr, Int_t maxSize=2, bool clearCacheOnServerRedirect=true, bool allowOptimize=false) | |
| Constructor of object cache manager for given owner. | |
| ~RooObjCacheManager () override | |
| Destructor. | |
| Int_t | cacheSize () const |
| Return size of cache. | |
| void | findConstantNodes (const RooArgSet &, RooArgSet &, RooLinkedList &) override |
| If clearOnRedirect is false, forward constant term optimization calls to cache elements. | |
| RooAbsCacheElement * | getObj (const RooArgSet *nset, Int_t *sterileIndex=nullptr, const TNamed *isetRangeName=nullptr) |
| Getter function without integration set. | |
| RooAbsCacheElement * | getObjByIndex (Int_t index) const |
| Retrieve payload object by slot index. | |
| void | insertObjectHook (RooAbsCacheElement &) override |
| Set owner link on all object inserted into cache. | |
| TClass * | IsA () const override |
| Int_t | lastIndex () const |
| Return index of slot used in last get or set operation. | |
| void | operModeHook () override |
| Intercept changes to cache operation mode and forward to cache elements. | |
| void | optimizeCacheMode (const RooArgSet &, RooArgSet &, RooLinkedList &) override |
| Intercept calls to perform automatic optimization of cache mode operation. | |
| void | printCompactTreeHook (std::ostream &, const char *) override |
| Add details on cache contents when printing in tree mode. | |
| bool | redirectServersHook (const RooAbsCollection &, bool, bool, bool) override |
| Intercept server redirect calls. | |
| void | reset () |
| Clear the cache. | |
| RooArgSet | selectFromSet1 (RooArgSet const &argSet, int index) const |
| Create RooArgSet containing the objects that are both in the cached set 1 with a given index and an input argSet. | |
| RooArgSet | selectFromSet2 (RooArgSet const &argSet, int index) const |
| Create RooArgSet containing the objects that are both in the cached set 2 with a given index and an input argSet. | |
| void | setClearOnRedirect (bool flag) |
| Int_t | setObj (const RooArgSet *nset, RooAbsCacheElement *obj, const TNamed *isetRangeName=nullptr) |
| Setter function without integration set. | |
| void | setOwner (RooAbsArg *owner) |
| Reset the owner, triggering the owner to register this cache in its list of caches. | |
| void | sterilize () override |
| Clear the cache payload but retain slot mapping w.r.t to normalization and integration sets. | |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| void | wireCache () override |
Static Public Member Functions | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static bool | clearObsList () |
| static const char * | DeclFileName () |
| static void | doClearObsList (bool flag) |
Protected Attributes | |
| bool | _allowOptimize |
| bool | _clearOnRedirect |
| Int_t | _lastIndex |
| ! Last slot accessed | |
| Int_t | _maxSize |
| ! Maximum size | |
| std::vector< RooNormSetCache > | _nsetCache |
| ! Normalization/Integration set manager | |
| std::vector< RooAbsCacheElement * > | _object |
| ! Payload | |
| bool | _optCacheModeSeen |
| ! | |
| RooArgSet * | _optCacheObservables = nullptr |
| ! current optCacheObservables | |
| RooAbsArg * | _owner |
| Pointer to owning RooAbsArg. | |
| Int_t | _size |
| ! Actual use | |
| bool | _wired |
| ! In wired mode, there is a single payload which is returned always | |
Static Protected Attributes | |
| static bool | _clearObsList |
| Clear obslist on sterilize? | |
#include <RooObjCacheManager.h>
| RooObjCacheManager::RooObjCacheManager | ( | RooAbsArg * | owner = nullptr, |
| Int_t | maxSize = 2, | ||
| bool | clearCacheOnServerRedirect = true, | ||
| bool | allowOptimize = false ) |
Constructor of object cache manager for given owner.
If clearCacheOnServerRedirect is true all cache elements will be cleared when a server redirect is intercepted by the cache manager. This is the default strategy and should only be overridden when you really understand what you're doing as properly implementing server redirect in cache elements can get very complicated, especially if there are (cyclical) reference back to the owning object
Definition at line 46 of file RooObjCacheManager.cxx.
| RooObjCacheManager::RooObjCacheManager | ( | const RooObjCacheManager & | other, |
| RooAbsArg * | owner = nullptr ) |
Copy constructor.
Definition at line 58 of file RooObjCacheManager.cxx.
|
override |
Destructor.
Definition at line 70 of file RooObjCacheManager.cxx.
|
inlineinherited |
Return size of cache.
Definition at line 88 of file RooCacheManager.h.
|
static |
|
static |
|
inlinestaticconstexpr |
Definition at line 62 of file RooObjCacheManager.h.
|
inlinestatic |
Definition at line 48 of file RooObjCacheManager.h.
|
inlinestatic |
Definition at line 62 of file RooObjCacheManager.h.
|
inlinestatic |
Definition at line 47 of file RooObjCacheManager.h.
|
overridevirtual |
If clearOnRedirect is false, forward constant term optimization calls to cache elements.
Reimplemented from RooAbsCache.
Definition at line 208 of file RooObjCacheManager.cxx.
|
inlineinherited |
Getter function without integration set.
Definition at line 63 of file RooCacheManager.h.
|
inherited |
Retrieve payload object by slot index.
Definition at line 104 of file RooCacheManager.h.
|
overridevirtual |
Set owner link on all object inserted into cache.
Also if cache mode optimization was requested, apply it now to cache element being inserted
Reimplemented from RooCacheManager< RooAbsCacheElement >.
Definition at line 174 of file RooObjCacheManager.cxx.
|
inlineoverridevirtual |
Reimplemented from RooCacheManager< RooAbsCacheElement >.
Definition at line 62 of file RooObjCacheManager.h.
|
inlineinherited |
Return index of slot used in last get or set operation.
Definition at line 84 of file RooCacheManager.h.
|
overridevirtual |
Intercept changes to cache operation mode and forward to cache elements.
Reimplemented from RooCacheManager< RooAbsCacheElement >.
Definition at line 107 of file RooObjCacheManager.cxx.
|
overridevirtual |
Intercept calls to perform automatic optimization of cache mode operation.
Forward calls to existing cache elements and save configuration of cache mode optimization so that it can be applied on new cache elements upon insertion
Reimplemented from RooAbsCache.
Definition at line 128 of file RooObjCacheManager.cxx.
|
overridevirtual |
Add details on cache contents when printing in tree mode.
Reimplemented from RooCacheManager< RooAbsCacheElement >.
Definition at line 193 of file RooObjCacheManager.cxx.
|
overridevirtual |
Intercept server redirect calls.
If clearOnRedirect was set, sterilize the cache (i.e. keep the structure but delete all contents). If not forward serverRedirect to cache elements
Reimplemented from RooCacheManager< RooAbsCacheElement >.
Definition at line 83 of file RooObjCacheManager.cxx.
|
inherited |
Clear the cache.
Definition at line 80 of file RooCacheManager.h.
|
inherited |
Create RooArgSet containing the objects that are both in the cached set 1 with a given index and an input argSet.
Definition at line 105 of file RooCacheManager.h.
|
inherited |
Create RooArgSet containing the objects that are both in the cached set 2 with a given index and an input argSet.
Definition at line 106 of file RooCacheManager.h.
|
inline |
Definition at line 50 of file RooObjCacheManager.h.
|
inlineinherited |
Setter function without integration set.
Definition at line 68 of file RooCacheManager.h.
|
inherited |
Reset the owner, triggering the owner to register this cache in its list of caches.
Definition at line 37 of file RooAbsCache.cxx.
|
overridevirtual |
Clear the cache payload but retain slot mapping w.r.t to normalization and integration sets.
Reimplemented from RooCacheManager< RooAbsCacheElement >.
Definition at line 151 of file RooObjCacheManager.cxx.
|
overridevirtual |
Reimplemented from RooCacheManager< RooAbsCacheElement >.
|
inline |
Definition at line 62 of file RooObjCacheManager.h.
|
inlineoverridevirtualinherited |
Reimplemented from RooAbsCache.
Definition at line 112 of file RooCacheManager.h.
|
protected |
Definition at line 55 of file RooObjCacheManager.h.
|
staticprotected |
Clear obslist on sterilize?
Definition at line 60 of file RooObjCacheManager.h.
|
protected |
Definition at line 54 of file RooObjCacheManager.h.
|
protectedinherited |
! Last slot accessed
Definition at line 127 of file RooCacheManager.h.
|
protectedinherited |
! Maximum size
Definition at line 125 of file RooCacheManager.h.
|
protectedinherited |
! Normalization/Integration set manager
Definition at line 129 of file RooCacheManager.h.
|
protectedinherited |
! Payload
Definition at line 130 of file RooCacheManager.h.
|
protected |
!
Definition at line 56 of file RooObjCacheManager.h.
|
protected |
! current optCacheObservables
Definition at line 58 of file RooObjCacheManager.h.
|
protectedinherited |
Pointer to owning RooAbsArg.
Definition at line 61 of file RooAbsCache.h.
|
protectedinherited |
! Actual use
Definition at line 126 of file RooCacheManager.h.
|
protectedinherited |
! In wired mode, there is a single payload which is returned always
Definition at line 131 of file RooCacheManager.h.