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=nullptr) ;
28 TObject* clone(const char* newname) const override { return new RooCachedReal(*this,newname); }
29 ~RooCachedReal() override ;
30
31 /// If flag is true the RooHistFunc that represent the cache histogram
32 /// will use special boundary conditions for use with cumulative distribution
33 /// functions: at the lower bound the function is forced to converge at zero and the upper
34 /// bound is the function is forced to converge at 1.0
35 void setCdfBoundaries(bool flag) {
36 _useCdfBoundaries = flag ;
37 }
38 /// If true the c.d.f boundary mode is active
39 bool getCdfBoundaries() const {
40 return _useCdfBoundaries ;
41 }
42
43 bool cacheSource() const { return _cacheSource ; }
44 void setCacheSource(bool flag) { _cacheSource = flag ; }
45
46protected:
47
48 /// Return base name for caches, i.e. the name of the cached function
49 const char* inputBaseName() const override {
50 return func.arg().GetName() ;
51 } ;
52 RooArgSet* actualObservables(const RooArgSet& nset) const override ;
53 RooArgSet* actualParameters(const RooArgSet& nset) const override ;
54 void fillCacheObject(FuncCacheElem& cacheFunc) const override ;
55 /// Dummy evaluate, it is never called
56 double evaluate() const override {
57 return func ;
58 }
59
60 void operModeHook() override ;
61
62 FuncCacheElem* createCache(const RooArgSet* nset) const override ;
63
64 const char* payloadUniqueSuffix() const override { return func.arg().aggregateCacheUniqueSuffix() ; }
65
66 RooRealProxy func ; ///< Proxy to function being cached
67 RooSetProxy _cacheObs ; ///< Variables to be cached
68 bool _useCdfBoundaries ; ///< Are c.d.f boundary conditions used by the RooHistFuncs?
69 bool _cacheSource ; ///< Keep an attached clone of the source in the cache for fast operation
70
71private:
72
73 ClassDefOverride(RooCachedReal,2) // P.d.f class that wraps another p.d.f and caches its output
74
75};
76
77#endif
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
char name[80]
Definition: TGX11.cxx:110
const char * aggregateCacheUniqueSuffix() const
Definition: RooAbsArg.cxx:2283
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:62
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:56
RooCachedReal is an implementation of RooAbsCachedReal that can cache any external RooAbsReal input f...
Definition: RooCachedReal.h:20
bool _useCdfBoundaries
Are c.d.f boundary conditions used by the RooHistFuncs?
Definition: RooCachedReal.h:68
TObject * clone(const char *newname) const override
Definition: RooCachedReal.h:28
const char * payloadUniqueSuffix() const override
Definition: RooCachedReal.h:64
void fillCacheObject(FuncCacheElem &cacheFunc) const override
Update contents of cache histogram by resampling the input function.
double evaluate() const override
Dummy evaluate, it is never called.
Definition: RooCachedReal.h:56
void operModeHook() override
bool _cacheSource
Keep an attached clone of the source in the cache for fast operation.
Definition: RooCachedReal.h:69
bool getCdfBoundaries() const
If true the c.d.f boundary mode is active.
Definition: RooCachedReal.h:39
RooRealProxy func
Proxy to function being cached.
Definition: RooCachedReal.h:66
void setCdfBoundaries(bool flag)
If flag is true the RooHistFunc that represent the cache histogram will use special boundary conditio...
Definition: RooCachedReal.h:35
RooArgSet * actualObservables(const RooArgSet &nset) const override
If this pdf is operated with a fixed set of observables, return the subset of the fixed observables t...
~RooCachedReal() override
Destructor.
bool cacheSource() const
Definition: RooCachedReal.h:43
void setCacheSource(bool flag)
Definition: RooCachedReal.h:44
FuncCacheElem * createCache(const RooArgSet *nset) const override
Interface function to create an internal cache object that represent each cached function configurati...
RooSetProxy _cacheObs
Variables to be cached.
Definition: RooCachedReal.h:67
RooArgSet * actualParameters(const RooArgSet &nset) const override
If this p.d.f is operated with a fixed set of observables, return all variables of the external input...
const char * inputBaseName() const override
Return base name for caches, i.e. the name of the cached function.
Definition: RooCachedReal.h:49
const T & arg() const
Return reference to object held in proxy.
const char * GetName() const override
Returns name of object.
Definition: TNamed.h:47
Mother of all ROOT objects.
Definition: TObject.h:41