Logo ROOT   master
Reference Guide
RooCachedReal.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Project: RooFit *
3  * *
4  * Copyright (c) 2000-2005, Regents of the University of California *
5  * and Stanford University. All rights reserved. *
6  * *
7  * Redistribution and use in source and binary forms, *
8  * with or without modification, are permitted according to the terms *
9  * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
10  *****************************************************************************/
11 
12 #ifndef ROOCACHEDREAL
13 #define ROOCACHEDREAL
14 
15 #include "RooAbsCachedReal.h"
16 #include "RooRealProxy.h"
17 #include "RooAbsReal.h"
18 
19 
21 public:
23  // coverity[UNINIT_CTOR]
24  }
25  RooCachedReal(const char *name, const char *title, RooAbsReal& _func, const RooArgSet& cacheObs);
26  RooCachedReal(const char *name, const char *title, RooAbsReal& _func);
27  RooCachedReal(const RooCachedReal& other, const char* name=0) ;
28  virtual TObject* clone(const char* newname) const { return new RooCachedReal(*this,newname); }
29  virtual ~RooCachedReal() ;
30 
31  void setCdfBoundaries(Bool_t flag) {
32  // If flag is true the RooHistFunc that represent the cache histogram
33  // will use special boundary conditions for use with cumulative distribution
34  // functions: at the lower bound the function is forced to converge at zero and the upper
35  // bound is the function is forced to converge at 1.0
36  _useCdfBoundaries = flag ;
37  }
39  // If true the c.d.f boundary mode is active
40  return _useCdfBoundaries ;
41  }
42 
43  Bool_t cacheSource() const { return _cacheSource ; }
44  void setCacheSource(Bool_t flag) { _cacheSource = flag ; }
45 
46 protected:
47 
48  virtual const char* inputBaseName() const {
49  // Return base name for caches, i.e. the name of the cached function
50  return func.arg().GetName() ;
51  } ;
52  virtual RooArgSet* actualObservables(const RooArgSet& nset) const ;
53  virtual RooArgSet* actualParameters(const RooArgSet& nset) const ;
54  virtual void fillCacheObject(FuncCacheElem& cacheFunc) const ;
55  virtual Double_t evaluate() const {
56  // Dummy evaluate, it is never called
57  return func ;
58  }
59 
60  void operModeHook() ;
61 
62  virtual FuncCacheElem* createCache(const RooArgSet* nset) const ;
63 
64  virtual const char* payloadUniqueSuffix() const { return func.arg().aggregateCacheUniqueSuffix() ; }
65 
66  RooRealProxy func ; // Proxy to function being cached
67  RooSetProxy _cacheObs ; // Variables to be cached
68  Bool_t _useCdfBoundaries ; // Are c.d.f boundary conditions used by the RooHistFuncs?
69  Bool_t _cacheSource ; // Keep an attached clone of the source in the cache for fast operation
70 
71 private:
72 
73  ClassDef(RooCachedReal,2) // P.d.f class that wraps another p.d.f and caches its output
74 
75 };
76 
77 #endif
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
virtual RooArgSet * actualParameters(const RooArgSet &nset) const
If this p.d.f is operated with a fixed set of observables, return all variables of the external input...
virtual TObject * clone(const char *newname) const
Definition: RooCachedReal.h:28
const T & arg() const
Return reference to object held in proxy.
Definition: RooProxy.h:246
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
void setCdfBoundaries(Bool_t flag)
Definition: RooCachedReal.h:31
virtual const char * payloadUniqueSuffix() const
Definition: RooCachedReal.h:64
void setCacheSource(Bool_t flag)
Definition: RooCachedReal.h:44
virtual ~RooCachedReal()
Destructor.
Bool_t _useCdfBoundaries
Definition: RooCachedReal.h:68
#define ClassDef(name, id)
Definition: Rtypes.h:326
RooRealProxy func
Definition: RooCachedReal.h:66
virtual FuncCacheElem * createCache(const RooArgSet *nset) const
Interface function to create an internal cache object that represent each cached function configurati...
Bool_t getCdfBoundaries() const
Definition: RooCachedReal.h:38
RooAbsCachedReal is the abstract base class for functions that need or want to cache their evaluate()...
virtual const char * inputBaseName() const
Definition: RooCachedReal.h:48
RooSetProxy _cacheObs
Definition: RooCachedReal.h:67
RooCachedReal is an implementation of RooAbsCachedReal that can cache any external RooAbsReal input f...
Definition: RooCachedReal.h:20
virtual Double_t evaluate() const
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
Definition: RooCachedReal.h:55
const Bool_t kFALSE
Definition: RtypesCore.h:88
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:59
Mother of all ROOT objects.
Definition: TObject.h:37
Bool_t _cacheSource
Definition: RooCachedReal.h:69
RooSetProxy is the concrete proxy for RooArgSet objects.
Definition: RooSetProxy.h:24
virtual RooArgSet * actualObservables(const RooArgSet &nset) const
If this pdf is operated with a fixed set of observables, return the subset of the fixed observables t...
Bool_t cacheSource() const
Definition: RooCachedReal.h:43
const char * aggregateCacheUniqueSuffix() const
Definition: RooAbsArg.cxx:2185
char name[80]
Definition: TGX11.cxx:109
virtual void fillCacheObject(FuncCacheElem &cacheFunc) const
Update contents of cache histogram by resampling the input function.