00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_ABS_CACHE_ELEMENT
00017 #define ROO_ABS_CACHE_ELEMENT
00018
00019 #include "Rtypes.h"
00020 #include "RooAbsArg.h"
00021
00022 class RooAbsCollection ;
00023 class RooArgSet ;
00024 class RooArgList ;
00025
00026 class RooAbsCacheElement {
00027
00028 public:
00029 RooAbsCacheElement() : _owner(0) {
00030
00031 } ;
00032 virtual Bool_t redirectServersHook(const RooAbsCollection& , Bool_t ,
00033 Bool_t , Bool_t ) ;
00034 virtual void printCompactTreeHook(std::ostream&, const char *, Int_t curElem, Int_t totElem) ;
00035 virtual ~RooAbsCacheElement() {
00036
00037 } ;
00038
00039 enum Action { OperModeChange,OptimizeCaching,FindConstantNodes } ;
00040 virtual RooArgList containedArgs(Action) = 0 ;
00041 virtual void operModeHook(RooAbsArg::OperMode) ;
00042 virtual void optimizeCacheMode(const RooArgSet& obs, RooArgSet& optNodes, RooLinkedList& processedNodes) ;
00043 virtual void findConstantNodes(const RooArgSet& obs, RooArgSet& cacheList, RooLinkedList& processedNodes) ;
00044
00045 void setOwner(RooAbsArg* owner) {
00046
00047 _owner = owner ;
00048 }
00049
00050 protected:
00051
00052 RooAbsArg* _owner ;
00053
00054 ClassDef(RooAbsCacheElement,1)
00055
00056 } ;
00057
00058
00059 #endif