Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/RooAbsCacheElement.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*****************************************************************************
0002  * Project: RooFit                                                           *
0003  * Package: RooFitCore                                                       *
0004  *    File: $Id$
0005  * Authors:                                                                  *
0006  *   WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu       *
0007  *   DK, David Kirkby,    UC Irvine,         dkirkby@uci.edu                 *
0008  *                                                                           *
0009  * Copyright (c) 2000-2005, Regents of the University of California          *
0010  *                          and Stanford University. All rights reserved.    *
0011  *                                                                           *
0012  * Redistribution and use in source and binary forms,                        *
0013  * with or without modification, are permitted according to the terms        *
0014  * listed in LICENSE (http://roofit.sourceforge.net/license.txt)             *
0015  *****************************************************************************/
0016 #ifndef ROO_ABS_CACHE_ELEMENT
0017 #define ROO_ABS_CACHE_ELEMENT
0018 
0019 #include "Rtypes.h"
0020 #include "RooAbsArg.h"
0021 
0022 class RooAbsCollection ;
0023 class RooArgSet ;
0024 class RooArgList ;
0025 
0026 class RooAbsCacheElement {
0027 
0028 public:
0029   RooAbsCacheElement() : _owner(nullptr) {
0030     // Default constructor
0031   } ;
0032   virtual bool redirectServersHook(const RooAbsCollection& /*newServerList*/, bool /*mustReplaceAll*/,
0033                  bool /*nameChange*/, bool /*isRecursive*/)  ;
0034   virtual void printCompactTreeHook(std::ostream&, const char *, Int_t curElem, Int_t totElem) ;
0035   virtual ~RooAbsCacheElement() {
0036     // Destructor
0037   } ;
0038 
0039   enum Action { OperModeChange,OptimizeCaching,FindConstantNodes } ;
0040   virtual RooArgList containedArgs(Action) = 0 ;
0041   /// Interface for changes of operation mode.
0042   virtual void operModeHook(RooAbsArg::OperMode) { }
0043   virtual void optimizeCacheMode(const RooArgSet& obs, RooArgSet& optNodes, RooLinkedList& processedNodes)  ;
0044   virtual void findConstantNodes(const RooArgSet& obs, RooArgSet& cacheList, RooLinkedList& processedNodes) ;
0045 
0046   void setOwner(RooAbsArg* owner) {
0047     // Store pointer to owner
0048     _owner = owner ;
0049   }
0050 
0051 protected:
0052 
0053   RooAbsArg* _owner ; ///<! Pointer to owning RooAbsArg
0054 
0055   ClassDef(RooAbsCacheElement,1) // Base class for cache elements
0056 
0057 } ;
0058 
0059 
0060 #endif