Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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:101
double Double_t
Definition RtypesCore.h:59
#define ClassDef(name, id)
Definition Rtypes.h:325
char name[80]
Definition TGX11.cxx:110
const char * aggregateCacheUniqueSuffix() const
RooAbsCachedReal is the abstract base class for functions that need or want to cache their evaluate()...
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition RooAbsReal.h:64
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition RooArgSet.h:35
RooCachedReal is an implementation of RooAbsCachedReal that can cache any external RooAbsReal input f...
virtual void fillCacheObject(FuncCacheElem &cacheFunc) const
Update contents of cache histogram by resampling the input function.
Bool_t getCdfBoundaries() const
virtual const char * inputBaseName() const
virtual FuncCacheElem * createCache(const RooArgSet *nset) const
Interface function to create an internal cache object that represent each cached function configurati...
Bool_t _cacheSource
RooRealProxy func
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.
void setCacheSource(Bool_t flag)
Bool_t _useCdfBoundaries
virtual const char * payloadUniqueSuffix() const
virtual ~RooCachedReal()
Destructor.
virtual TObject * clone(const char *newname) const
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)
RooSetProxy _cacheObs
Bool_t cacheSource() const
RooSetProxy is the concrete proxy for RooArgSet objects.
Definition RooSetProxy.h:23
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:41