Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
RooCacheManager< T > Class Template Reference

template<class T>
class RooCacheManager< T >

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 facilitate 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 dereferenced 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.

Definition at line 53 of file RooCacheManager.h.

Public Member Functions

 RooCacheManager (const RooCacheManager &other, RooAbsArg *owner=nullptr)
 Copy constructor.
 
 RooCacheManager (Int_t maxSize=2)
 Constructor for simple caches without RooAbsArg payload.
 
 RooCacheManager (RooAbsArg *owner, Int_t maxSize=2)
 Constructor for simple caches with RooAbsArg derived payload.
 
 ~RooCacheManager () override
 Destructor.
 
Int_t cacheSize () const
 Return size of cache.
 
T * getObj (const RooArgSet *nset, const RooArgSet *iset, Int_t *sterileIdx, const char *isetRangeName)
 
T * getObj (const RooArgSet *nset, const RooArgSet *iset, Int_t *sterileIndex=nullptr, const TNamed *isetRangeName=nullptr)
 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.
 
T * getObj (const RooArgSet *nset, Int_t *sterileIndex=nullptr, const TNamed *isetRangeName=nullptr)
 Getter function without integration set.
 
T * getObjByIndex (Int_t index) const
 Retrieve payload object by slot index.
 
virtual void insertObjectHook (T &)
 Interface function to perform post-insert operations on cached object.
 
TClassIsA () const override
 
Int_t lastIndex () const
 Return index of slot used in last get or set operation.
 
void operModeHook () override
 Interface function to intercept cache operation mode changes.
 
void printCompactTreeHook (std::ostream &, const char *) override
 Interface function to cache add contents to output in tree printing mode.
 
bool redirectServersHook (const RooAbsCollection &, bool, bool, bool) override
 Interface function to intercept server redirects.
 
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.
 
Int_t setObj (const RooArgSet *nset, const RooArgSet *iset, T *obj, const TNamed *isetRangeName=nullptr)
 Insert payload object 'obj' in cache indexed on nset,iset and isetRangeName.
 
Int_t setObj (const RooArgSet *nset, T *obj, const TNamed *isetRangeName=nullptr)
 Setter function without integration set.
 
virtual void sterilize ()
 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
 
- Public Member Functions inherited from RooAbsCache
 RooAbsCache (const RooAbsCache &, RooAbsArg *owner=nullptr)
 Copy constructor. Takes owner as argument and registers cache with owne.
 
 RooAbsCache (RooAbsArg *owner=nullptr)
 Constructor. Takes owner as argument and register cache with owner.
 
virtual ~RooAbsCache ()
 Destructor. Unregisters cache with owner.
 
virtual void findConstantNodes (const RooArgSet &, RooArgSet &, RooLinkedList &)
 Interface for constant term node finding calls.
 
virtual void optimizeCacheMode (const RooArgSet &, RooArgSet &, RooLinkedList &)
 Interface for processing of cache mode optimization calls.
 
void setOwner (RooAbsArg *owner)
 Reset the owner, triggering the owner to register this cache in its list of caches.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from RooAbsCache
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 

Protected Attributes

Int_t _lastIndex = -1
 ! Last slot accessed
 
Int_t _maxSize
 ! Maximum size
 
std::vector< RooNormSetCache_nsetCache
 ! Normalization/Integration set manager
 
std::vector< T * > _object
 ! Payload
 
Int_t _size = 0
 ! Actual use
 
bool _wired = false
 ! In wired mode, there is a single payload which is returned always
 
- Protected Attributes inherited from RooAbsCache
RooAbsArg_owner
 Pointer to owning RooAbsArg.
 

#include <RooCacheManager.h>

Inheritance diagram for RooCacheManager< T >:
[legend]

Constructor & Destructor Documentation

◆ RooCacheManager() [1/3]

template<class T >
RooCacheManager< T >::RooCacheManager ( Int_t maxSize = 2)

Constructor for simple caches without RooAbsArg payload.

A cache made with this constructor is not registered with its owner and will not receive information on server redirects and cache operation mode changes.

Definition at line 142 of file RooCacheManager.h.

◆ RooCacheManager() [2/3]

template<class T >
RooCacheManager< T >::RooCacheManager ( RooAbsArg * owner,
Int_t maxSize = 2 )

Constructor for simple caches with RooAbsArg derived payload.

A cache made with this constructor is registered with its owner and will receive information on server redirects and cache operation mode changes.

Definition at line 155 of file RooCacheManager.h.

◆ RooCacheManager() [3/3]

template<class T >
RooCacheManager< T >::RooCacheManager ( const RooCacheManager< T > & other,
RooAbsArg * owner = nullptr )

Copy constructor.

Definition at line 171 of file RooCacheManager.h.

◆ ~RooCacheManager()

template<class T >
RooCacheManager< T >::~RooCacheManager ( )
override

Destructor.

Definition at line 193 of file RooCacheManager.h.

Member Function Documentation

◆ cacheSize()

template<class T >
Int_t RooCacheManager< T >::cacheSize ( ) const
inline

Return size of cache.

Definition at line 88 of file RooCacheManager.h.

◆ Class()

template<class T >
static TClass * RooCacheManager< T >::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

template<class T >
static const char * RooCacheManager< T >::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

template<class T >
static constexpr Version_t RooCacheManager< T >::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 133 of file RooCacheManager.h.

◆ DeclFileName()

template<class T >
static const char * RooCacheManager< T >::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 133 of file RooCacheManager.h.

◆ getObj() [1/3]

template<class T >
T * RooCacheManager< T >::getObj ( const RooArgSet * nset,
const RooArgSet * iset,
Int_t * sterileIdx,
const char * isetRangeName )
inline

Definition at line 72 of file RooCacheManager.h.

◆ getObj() [2/3]

template<class T >
T * RooCacheManager< T >::getObj ( const RooArgSet * nset,
const RooArgSet * iset,
Int_t * sterileIndex = nullptr,
const TNamed * isetRangeName = nullptr )

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.

Definition at line 289 of file RooCacheManager.h.

◆ getObj() [3/3]

template<class T >
T * RooCacheManager< T >::getObj ( const RooArgSet * nset,
Int_t * sterileIndex = nullptr,
const TNamed * isetRangeName = nullptr )
inline

Getter function without integration set.

Definition at line 63 of file RooCacheManager.h.

◆ getObjByIndex()

template<class T >
T * RooCacheManager< T >::getObjByIndex ( Int_t index) const

Retrieve payload object by slot index.

Definition at line 320 of file RooCacheManager.h.

◆ insertObjectHook()

template<class T >
virtual void RooCacheManager< T >::insertObjectHook ( T & )
inlinevirtual

Interface function to perform post-insert operations on cached object.

Reimplemented in RooObjCacheManager.

Definition at line 109 of file RooCacheManager.h.

◆ IsA()

template<class T >
TClass * RooCacheManager< T >::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from RooAbsCache.

Reimplemented in RooObjCacheManager.

Definition at line 133 of file RooCacheManager.h.

◆ lastIndex()

template<class T >
Int_t RooCacheManager< T >::lastIndex ( ) const
inline

Return index of slot used in last get or set operation.

Definition at line 84 of file RooCacheManager.h.

◆ operModeHook()

template<class T >
void RooCacheManager< T >::operModeHook ( )
inlineoverridevirtual

Interface function to intercept cache operation mode changes.

Reimplemented from RooAbsCache.

Reimplemented in RooObjCacheManager.

Definition at line 98 of file RooCacheManager.h.

◆ printCompactTreeHook()

template<class T >
void RooCacheManager< T >::printCompactTreeHook ( std::ostream & ,
const char *  )
inlineoverridevirtual

Interface function to cache add contents to output in tree printing mode.

Reimplemented from RooAbsCache.

Reimplemented in RooObjCacheManager.

Definition at line 101 of file RooCacheManager.h.

◆ redirectServersHook()

template<class T >
bool RooCacheManager< T >::redirectServersHook ( const RooAbsCollection & ,
bool ,
bool ,
bool  )
inlineoverridevirtual

Interface function to intercept server redirects.

Reimplemented from RooAbsCache.

Reimplemented in RooObjCacheManager.

Definition at line 93 of file RooCacheManager.h.

◆ reset()

template<class T >
void RooCacheManager< T >::reset ( )

Clear the cache.

Definition at line 203 of file RooCacheManager.h.

◆ selectFromSet1()

template<class T >
RooArgSet RooCacheManager< T >::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.

Definition at line 334 of file RooCacheManager.h.

◆ selectFromSet2()

template<class T >
RooArgSet RooCacheManager< T >::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.

Definition at line 348 of file RooCacheManager.h.

◆ setObj() [1/2]

template<class T >
Int_t RooCacheManager< T >::setObj ( const RooArgSet * nset,
const RooArgSet * iset,
T * obj,
const TNamed * isetRangeName = nullptr )

Insert payload object 'obj' in cache indexed on nset,iset and isetRangeName.

Definition at line 230 of file RooCacheManager.h.

◆ setObj() [2/2]

template<class T >
Int_t RooCacheManager< T >::setObj ( const RooArgSet * nset,
T * obj,
const TNamed * isetRangeName = nullptr )
inline

Setter function without integration set.

Definition at line 68 of file RooCacheManager.h.

◆ sterilize()

template<class T >
void RooCacheManager< T >::sterilize ( )
virtual

Clear the cache payload but retain slot mapping w.r.t to normalization and integration sets.

Reimplemented in RooObjCacheManager.

Definition at line 218 of file RooCacheManager.h.

◆ Streamer()

template<class T >
void RooCacheManager< T >::Streamer ( TBuffer & )
overridevirtual

Reimplemented from RooAbsCache.

Reimplemented in RooObjCacheManager.

◆ StreamerNVirtual()

template<class T >
void RooCacheManager< T >::StreamerNVirtual ( TBuffer & ClassDef_StreamerNVirtual_b)
inline

Definition at line 133 of file RooCacheManager.h.

◆ wireCache()

template<class T >
void RooCacheManager< T >::wireCache ( )
inlineoverridevirtual

Reimplemented from RooAbsCache.

Definition at line 112 of file RooCacheManager.h.

Member Data Documentation

◆ _lastIndex

template<class T >
Int_t RooCacheManager< T >::_lastIndex = -1
protected

! Last slot accessed

Definition at line 127 of file RooCacheManager.h.

◆ _maxSize

template<class T >
Int_t RooCacheManager< T >::_maxSize
protected

! Maximum size

Definition at line 125 of file RooCacheManager.h.

◆ _nsetCache

template<class T >
std::vector<RooNormSetCache> RooCacheManager< T >::_nsetCache
protected

! Normalization/Integration set manager

Definition at line 129 of file RooCacheManager.h.

◆ _object

template<class T >
std::vector<T*> RooCacheManager< T >::_object
protected

! Payload

Definition at line 130 of file RooCacheManager.h.

◆ _size

template<class T >
Int_t RooCacheManager< T >::_size = 0
protected

! Actual use

Definition at line 126 of file RooCacheManager.h.

◆ _wired

template<class T >
bool RooCacheManager< T >::_wired = false
protected

! In wired mode, there is a single payload which is returned always

Definition at line 131 of file RooCacheManager.h.

  • roofit/roofitcore/inc/RooCacheManager.h