Logo ROOT  
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
21public:
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
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
46protected:
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
71private:
72
73 ClassDef(RooCachedReal,2) // P.d.f class that wraps another p.d.f and caches its output
74
75};
76
77#endif
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
#define ClassDef(name, id)
Definition: Rtypes.h:326
char name[80]
Definition: TGX11.cxx:109
const char * aggregateCacheUniqueSuffix() const
Definition: RooAbsArg.cxx:2188
RooAbsCachedReal is the abstract base class for functions that need or want to cache their evaluate()...
friend class FuncCacheElem
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:59
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
RooCachedReal is an implementation of RooAbsCachedReal that can cache any external RooAbsReal input f...
Definition: RooCachedReal.h:20
virtual void fillCacheObject(FuncCacheElem &cacheFunc) const
Update contents of cache histogram by resampling the input function.
Bool_t getCdfBoundaries() const
Definition: RooCachedReal.h:38
virtual const char * inputBaseName() const
Definition: RooCachedReal.h:48
virtual FuncCacheElem * createCache(const RooArgSet *nset) const
Interface function to create an internal cache object that represent each cached function configurati...
Bool_t _cacheSource
Definition: RooCachedReal.h:69
RooRealProxy func
Definition: RooCachedReal.h:66
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...
virtual Double_t evaluate() const
Evaluate this PDF / function / constant. Needs to be overridden by all derived classes.
Definition: RooCachedReal.h:55
void setCacheSource(Bool_t flag)
Definition: RooCachedReal.h:44
Bool_t _useCdfBoundaries
Definition: RooCachedReal.h:68
virtual const char * payloadUniqueSuffix() const
Definition: RooCachedReal.h:64
virtual ~RooCachedReal()
Destructor.
virtual TObject * clone(const char *newname) const
Definition: RooCachedReal.h:28
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...
void setCdfBoundaries(Bool_t flag)
Definition: RooCachedReal.h:31
RooSetProxy _cacheObs
Definition: RooCachedReal.h:67
Bool_t cacheSource() const
Definition: RooCachedReal.h:43
RooSetProxy is the concrete proxy for RooArgSet objects.
Definition: RooSetProxy.h:24
const T & arg() const
Return reference to object held in proxy.
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
Mother of all ROOT objects.
Definition: TObject.h:37