00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_OBJ_CACHE_MANAGER
00017 #define ROO_OBJ_CACHE_MANAGER
00018
00019 #include "Rtypes.h"
00020
00021 #include "RooNormSetCache.h"
00022 #include "RooAbsReal.h"
00023 #include "RooArgSet.h"
00024 #include "RooArgList.h"
00025 #include "RooAbsCache.h"
00026 #include "RooAbsCacheElement.h"
00027 #include "RooCacheManager.h"
00028 #include <list>
00029
00030 class RooNameSet ;
00031
00032
00033 class RooObjCacheManager : public RooCacheManager<RooAbsCacheElement> {
00034
00035 public:
00036
00037 RooObjCacheManager(RooAbsArg* owner=0, Int_t maxSize=10, Bool_t clearCacheOnServerRedirect=kTRUE) ;
00038 RooObjCacheManager(const RooObjCacheManager& other, RooAbsArg* owner=0) ;
00039 virtual ~RooObjCacheManager() ;
00040
00041 virtual Bool_t redirectServersHook(const RooAbsCollection& , Bool_t , Bool_t , Bool_t ) ;
00042 virtual void operModeHook() ;
00043 virtual void optimizeCacheMode(const RooArgSet& , RooArgSet& , RooLinkedList& ) ;
00044 virtual void printCompactTreeHook(std::ostream&, const char *) ;
00045 virtual void findConstantNodes(const RooArgSet& , RooArgSet& , RooLinkedList& ) ;
00046
00047 virtual void insertObjectHook(RooAbsCacheElement&) ;
00048
00049 protected:
00050
00051 Bool_t _clearOnRedirect ;
00052 Bool_t _optCacheModeSeen ;
00053
00054 std::list<RooArgSet*> _optCacheObsList ;
00055 RooArgSet* _optCacheObservables ;
00056
00057 ClassDef(RooObjCacheManager,2)
00058 } ;
00059
00060
00061
00062 #endif