RooAbsCacheElement.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * Project: RooFit                                                           *
00003  * Package: RooFitCore                                                       *
00004  *    File: $Id: RooAbsCacheElement.h 24247 2008-06-12 14:54:32Z wouter $
00005  * Authors:                                                                  *
00006  *   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
00007  *   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
00008  *                                                                           *
00009  * Copyright (c) 2000-2005, Regents of the University of California          *
00010  *                          and Stanford University. All rights reserved.    *
00011  *                                                                           *
00012  * Redistribution and use in source and binary forms,                        *
00013  * with or without modification, are permitted according to the terms        *
00014  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
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     // Default constructor
00031   } ;
00032   virtual Bool_t redirectServersHook(const RooAbsCollection& /*newServerList*/, Bool_t /*mustReplaceAll*/, 
00033                                      Bool_t /*nameChange*/, Bool_t /*isRecursive*/)  ;
00034   virtual void printCompactTreeHook(std::ostream&, const char *, Int_t curElem, Int_t totElem) ;
00035   virtual ~RooAbsCacheElement() {
00036     // Destructor
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     // Store pointer to owner
00047     _owner = owner ; 
00048   }
00049   
00050 protected:
00051 
00052   RooAbsArg* _owner ; //! Pointer to owning RooAbsArg
00053 
00054   ClassDef(RooAbsCacheElement,1) // Base class for cache elements
00055 
00056 } ;
00057 
00058 
00059 #endif 

Generated on Tue Jul 5 14:25:57 2011 for ROOT_528-00b_version by  doxygen 1.5.1