Warning, file /include/root/RooCachedReal.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOCACHEDREAL
0013 #define ROOCACHEDREAL
0014
0015 #include "RooAbsCachedReal.h"
0016 #include "RooRealProxy.h"
0017 #include "RooAbsReal.h"
0018
0019
0020 class RooCachedReal : public RooAbsCachedReal {
0021 public:
0022 RooCachedReal() : _cacheSource(false) {
0023
0024 }
0025 RooCachedReal(const char *name, const char *title, RooAbsReal& _func, const RooArgSet& cacheObs);
0026 RooCachedReal(const char *name, const char *title, RooAbsReal& _func);
0027 RooCachedReal(const RooCachedReal& other, const char* name=nullptr) ;
0028 TObject* clone(const char* newname) const override { return new RooCachedReal(*this,newname); }
0029
0030
0031
0032
0033
0034 void setCdfBoundaries(bool flag) {
0035 _useCdfBoundaries = flag ;
0036 }
0037
0038 bool getCdfBoundaries() const {
0039 return _useCdfBoundaries ;
0040 }
0041
0042 bool cacheSource() const { return _cacheSource ; }
0043 void setCacheSource(bool flag) { _cacheSource = flag ; }
0044
0045 protected:
0046
0047
0048 const char* inputBaseName() const override {
0049 return func.arg().GetName() ;
0050 } ;
0051 RooFit::OwningPtr<RooArgSet> actualObservables(const RooArgSet& nset) const override ;
0052 RooFit::OwningPtr<RooArgSet> actualParameters(const RooArgSet& nset) const override;
0053 void fillCacheObject(FuncCacheElem& cacheFunc) const override ;
0054
0055 double evaluate() const override {
0056 return func ;
0057 }
0058
0059 void operModeHook() override ;
0060
0061 FuncCacheElem* createCache(const RooArgSet* nset) const override ;
0062
0063 const char* payloadUniqueSuffix() const override { return func.arg().aggregateCacheUniqueSuffix() ; }
0064
0065 RooRealProxy func ;
0066 RooSetProxy _cacheObs ;
0067 bool _useCdfBoundaries ;
0068 bool _cacheSource ;
0069
0070 private:
0071
0072 ClassDefOverride(RooCachedReal,2)
0073
0074 };
0075
0076 #endif