Warning, file /include/root/RooAbsReal.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
0013
0014
0015
0016 #ifndef ROO_ABS_REAL
0017 #define ROO_ABS_REAL
0018
0019 #include "RooAbsArg.h"
0020 #include "RooArgList.h"
0021 #include "RooArgProxy.h"
0022 #include "RooArgSet.h"
0023 #include "RooCmdArg.h"
0024 #include "RooCurve.h"
0025 #include "RooFit/CodegenContext.h"
0026 #include "RooFit/EvalContext.h"
0027 #include "RooGlobalFunc.h"
0028
0029 #include <ROOT/RSpan.hxx>
0030
0031 #include <TList.h>
0032 #include <TObjString.h>
0033
0034 class RooDataSet ;
0035 class RooPlot;
0036 class RooRealVar;
0037 class RooAbsFunc;
0038 class RooAbsCategoryLValue ;
0039 class RooLinkedList ;
0040 class RooNumIntConfig ;
0041 class RooDataHist ;
0042 class RooFunctor ;
0043 class RooFitResult ;
0044 class RooAbsMoment ;
0045 class RooDerivative ;
0046 class RooVectorDataStore ;
0047 struct TreeReadBuffer;
0048 namespace RooBatchCompute {
0049 struct RunContext;
0050 }
0051
0052 class TH1;
0053 class TH1F;
0054 class TH2F;
0055 class TH3F;
0056
0057 #include <iostream>
0058 #include <list>
0059 #include <map>
0060 #include <string>
0061 #include <sstream>
0062
0063 class RooAbsReal : public RooAbsArg {
0064 public:
0065 using value_type = double;
0066
0067
0068
0069
0070
0071
0072 class Ref {
0073 public:
0074 inline Ref(RooAbsReal &ref) : _ref{ref} {}
0075 Ref(double val);
0076 inline operator RooAbsReal &() const { return _ref; }
0077
0078 private:
0079 RooAbsReal &_ref;
0080 };
0081
0082
0083 RooAbsReal() ;
0084 RooAbsReal(const char *name, const char *title, const char *unit= "") ;
0085 RooAbsReal(const char *name, const char *title, double minVal, double maxVal,
0086 const char *unit= "") ;
0087 RooAbsReal(const RooAbsReal& other, const char* name=nullptr);
0088 ~RooAbsReal() override;
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107 inline double getVal(const RooArgSet* normalisationSet = nullptr) const {
0108
0109
0110
0111
0112
0113 if(normalisationSet && normalisationSet->empty()) {
0114 normalisationSet = nullptr;
0115 }
0116 #ifdef ROOFIT_CHECK_CACHED_VALUES
0117 return _DEBUG_getVal(normalisationSet);
0118 #else
0119
0120 #ifndef _WIN32
0121 return (_fast && !_inhibitDirty) ? _value : getValV(normalisationSet) ;
0122 #else
0123 return (_fast && !inhibitDirty()) ? _value : getValV(normalisationSet) ;
0124 #endif
0125
0126 #endif
0127 }
0128
0129
0130 inline double getVal(const RooArgSet& normalisationSet) const {
0131
0132
0133
0134
0135 return _fast ? _value : getValV(normalisationSet.empty() ? nullptr : &normalisationSet) ;
0136 }
0137
0138 double getVal(RooArgSet &&) const;
0139
0140 virtual double getValV(const RooArgSet* normalisationSet = nullptr) const ;
0141
0142 double getPropagatedError(const RooFitResult &fr, const RooArgSet &nset = {}) const;
0143
0144 bool operator==(double value) const ;
0145 bool operator==(const RooAbsArg& other) const override;
0146 bool isIdentical(const RooAbsArg& other, bool assumeSameType=false) const override;
0147
0148
0149 inline const Text_t *getUnit() const {
0150
0151 return _unit.Data();
0152 }
0153 inline void setUnit(const char *unit) {
0154
0155 _unit= unit;
0156 }
0157 TString getTitle(bool appendUnit= false) const;
0158
0159
0160 RooFit::OwningPtr<RooAbsFunc> bindVars(const RooArgSet &vars, const RooArgSet* nset=nullptr, bool clipInvalid=false) const;
0161
0162
0163 RooFit::OwningPtr<RooAbsArg> createFundamental(const char* newname=nullptr) const override;
0164
0165
0166 virtual Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet, const char* rangeName=nullptr) const ;
0167 virtual double analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName=nullptr) const ;
0168 virtual Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=nullptr) const ;
0169 virtual double analyticalIntegral(Int_t code, const char* rangeName=nullptr) const ;
0170 virtual bool forceAnalyticalInt(const RooAbsArg& ) const {
0171
0172
0173 return false ;
0174 }
0175 virtual void forceNumInt(bool flag=true) {
0176
0177
0178 _forceNumInt = flag ;
0179 }
0180 bool getForceNumInt() const { return _forceNumInt ; }
0181
0182
0183 virtual RooFit::OwningPtr<RooFitResult> chi2FitTo(RooDataHist& data, const RooCmdArg& arg1={}, const RooCmdArg& arg2={},
0184 const RooCmdArg& arg3={}, const RooCmdArg& arg4={}, const RooCmdArg& arg5={},
0185 const RooCmdArg& arg6={}, const RooCmdArg& arg7={}, const RooCmdArg& arg8={}) ;
0186 virtual RooFit::OwningPtr<RooFitResult> chi2FitTo(RooDataHist& data, const RooLinkedList& cmdList) ;
0187
0188 virtual RooFit::OwningPtr<RooAbsReal> createChi2(RooDataHist& data, const RooLinkedList& cmdList) ;
0189 virtual RooFit::OwningPtr<RooAbsReal> createChi2(RooDataHist& data, const RooCmdArg& arg1={}, const RooCmdArg& arg2={},
0190 const RooCmdArg& arg3={}, const RooCmdArg& arg4={}, const RooCmdArg& arg5={},
0191 const RooCmdArg& arg6={}, const RooCmdArg& arg7={}, const RooCmdArg& arg8={}) ;
0192
0193
0194 virtual RooFit::OwningPtr<RooFitResult> chi2FitTo(RooDataSet& xydata, const RooCmdArg& arg1={}, const RooCmdArg& arg2={},
0195 const RooCmdArg& arg3={}, const RooCmdArg& arg4={}, const RooCmdArg& arg5={},
0196 const RooCmdArg& arg6={}, const RooCmdArg& arg7={}, const RooCmdArg& arg8={}) ;
0197 virtual RooFit::OwningPtr<RooFitResult> chi2FitTo(RooDataSet& xydata, const RooLinkedList& cmdList) ;
0198
0199 virtual RooFit::OwningPtr<RooAbsReal> createChi2(RooDataSet& data, const RooLinkedList& cmdList) ;
0200 virtual RooFit::OwningPtr<RooAbsReal> createChi2(RooDataSet& data, const RooCmdArg& arg1={}, const RooCmdArg& arg2={},
0201 const RooCmdArg& arg3={}, const RooCmdArg& arg4={}, const RooCmdArg& arg5={},
0202 const RooCmdArg& arg6={}, const RooCmdArg& arg7={}, const RooCmdArg& arg8={}) ;
0203
0204 virtual RooFit::OwningPtr<RooAbsReal> createProfile(const RooArgSet& paramsOfInterest) ;
0205
0206
0207 RooFit::OwningPtr<RooAbsReal> createIntegral(const RooArgSet& iset, const RooCmdArg& arg1, const RooCmdArg& arg2={},
0208 const RooCmdArg& arg3={}, const RooCmdArg& arg4={},
0209 const RooCmdArg& arg5={}, const RooCmdArg& arg6={},
0210 const RooCmdArg& arg7={}, const RooCmdArg& arg8={}) const ;
0211
0212
0213 RooFit::OwningPtr<RooAbsReal> createIntegral(const RooArgSet& iset, const char* rangeName) const {
0214 return createIntegral(iset,nullptr,nullptr,rangeName) ;
0215 }
0216
0217 RooFit::OwningPtr<RooAbsReal> createIntegral(const RooArgSet& iset, const RooArgSet& nset, const char* rangeName=nullptr) const {
0218 return createIntegral(iset,&nset,nullptr,rangeName) ;
0219 }
0220
0221
0222 RooFit::OwningPtr<RooAbsReal> createIntegral(const RooArgSet& iset, const RooArgSet& nset, const RooNumIntConfig& cfg, const char* rangeName=nullptr) const {
0223 return createIntegral(iset,&nset,&cfg,rangeName) ;
0224 }
0225
0226 RooFit::OwningPtr<RooAbsReal> createIntegral(const RooArgSet& iset, const RooNumIntConfig& cfg, const char* rangeName=nullptr) const {
0227 return createIntegral(iset,nullptr,&cfg,rangeName) ;
0228 }
0229 virtual RooFit::OwningPtr<RooAbsReal> createIntegral(const RooArgSet& iset, const RooArgSet* nset=nullptr, const RooNumIntConfig* cfg=nullptr, const char* rangeName=nullptr) const ;
0230
0231
0232 void setParameterizeIntegral(const RooArgSet& paramVars) ;
0233
0234
0235 RooFit::OwningPtr<RooAbsReal> createRunningIntegral(const RooArgSet& iset, const RooArgSet& nset={}) ;
0236 RooFit::OwningPtr<RooAbsReal> createRunningIntegral(const RooArgSet& iset, const RooCmdArg& arg1, const RooCmdArg& arg2={},
0237 const RooCmdArg& arg3={}, const RooCmdArg& arg4={},
0238 const RooCmdArg& arg5={}, const RooCmdArg& arg6={},
0239 const RooCmdArg& arg7={}, const RooCmdArg& arg8={}) ;
0240 RooFit::OwningPtr<RooAbsReal> createIntRI(const RooArgSet& iset, const RooArgSet& nset={}) ;
0241 RooFit::OwningPtr<RooAbsReal> createScanRI(const RooArgSet& iset, const RooArgSet& nset, Int_t numScanBins, Int_t intOrder) ;
0242
0243
0244
0245 virtual Int_t getMaxVal(const RooArgSet& vars) const ;
0246 virtual double maxVal(Int_t code) const ;
0247 virtual Int_t minTrialSamples(const RooArgSet& ) const { return 0 ; }
0248
0249
0250
0251 void setPlotLabel(const char *label);
0252 const char *getPlotLabel() const;
0253
0254 virtual double defaultErrorLevel() const {
0255
0256 return 1.0 ;
0257 }
0258
0259 const RooNumIntConfig* getIntegratorConfig() const ;
0260 RooNumIntConfig* getIntegratorConfig() ;
0261 static RooNumIntConfig* defaultIntegratorConfig() ;
0262 RooNumIntConfig* specialIntegratorConfig() const ;
0263 RooNumIntConfig* specialIntegratorConfig(bool createOnTheFly) ;
0264 void setIntegratorConfig() ;
0265 void setIntegratorConfig(const RooNumIntConfig& config) ;
0266
0267 virtual void fixAddCoefNormalization(const RooArgSet& addNormSet=RooArgSet(),bool force=true) ;
0268 virtual void fixAddCoefRange(const char* rangeName=nullptr,bool force=true) ;
0269
0270 virtual void preferredObservableScanOrder(const RooArgSet& obs, RooArgSet& orderedObs) const ;
0271
0272
0273 virtual RooPlot* plotOn(RooPlot* frame,
0274 const RooCmdArg& arg1={}, const RooCmdArg& arg2={},
0275 const RooCmdArg& arg3={}, const RooCmdArg& arg4={},
0276 const RooCmdArg& arg5={}, const RooCmdArg& arg6={},
0277 const RooCmdArg& arg7={}, const RooCmdArg& arg8={},
0278 const RooCmdArg& arg9={}, const RooCmdArg& arg10={}
0279 ) const ;
0280
0281
0282 enum ScaleType { Raw, Relative, NumEvent, RelativeExpected } ;
0283
0284
0285 TH1 *fillHistogram(TH1 *hist, const RooArgList &plotVars,
0286 double scaleFactor= 1, const RooArgSet *projectedVars= nullptr, bool scaling=true,
0287 const RooArgSet* condObs=nullptr, bool setError=true) const;
0288
0289
0290 TH1 *createHistogram(RooStringView varNameList, Int_t xbins=0, Int_t ybins=0, Int_t zbins=0) const ;
0291 TH1* createHistogram(const char *name, const RooAbsRealLValue& xvar, RooLinkedList& argList) const ;
0292 TH1 *createHistogram(const char *name, const RooAbsRealLValue& xvar,
0293 const RooCmdArg& arg1={}, const RooCmdArg& arg2={},
0294 const RooCmdArg& arg3={}, const RooCmdArg& arg4={},
0295 const RooCmdArg& arg5={}, const RooCmdArg& arg6={},
0296 const RooCmdArg& arg7={}, const RooCmdArg& arg8={}) const ;
0297
0298
0299 RooDataHist* fillDataHist(RooDataHist *hist, const RooArgSet* nset, double scaleFactor,
0300 bool correctForBinVolume=false, bool showProgress=false) const ;
0301
0302
0303 bool readFromStream(std::istream& is, bool compact, bool verbose=false) override ;
0304 void writeToStream(std::ostream& os, bool compact) const override ;
0305
0306
0307 void printValue(std::ostream& os) const override ;
0308 void printMultiline(std::ostream& os, Int_t contents, bool verbose=false, TString indent="") const override ;
0309
0310 inline void setCachedValue(double value, bool notifyClients = true) final;
0311
0312
0313 class EvalError {
0314 public:
0315 EvalError() { }
0316 EvalError(const EvalError& other) : _msg(other._msg), _srvval(other._srvval) { }
0317 void setMessage(const char* tmp) { std::string s(tmp); s.swap(_msg); }
0318 void setServerValues(const char* tmp) { std::string s(tmp); s.swap(_srvval); }
0319 std::string _msg;
0320 std::string _srvval;
0321 } ;
0322
0323 enum ErrorLoggingMode { PrintErrors, CollectErrors, CountErrors, Ignore } ;
0324
0325
0326 class EvalErrorContext {
0327 public:
0328 EvalErrorContext(ErrorLoggingMode m) : _old{evalErrorLoggingMode()} { setEvalErrorLoggingMode(m); }
0329
0330 EvalErrorContext(EvalErrorContext const&) = delete;
0331 EvalErrorContext(EvalErrorContext &&) = delete;
0332 EvalErrorContext& operator=(EvalErrorContext const&) = delete;
0333 EvalErrorContext& operator=(EvalErrorContext &&) = delete;
0334
0335 ~EvalErrorContext() { setEvalErrorLoggingMode(_old); }
0336 private:
0337 ErrorLoggingMode _old;
0338 };
0339
0340 static ErrorLoggingMode evalErrorLoggingMode() ;
0341 static void setEvalErrorLoggingMode(ErrorLoggingMode m) ;
0342 void logEvalError(const char* message, const char* serverValueString=nullptr) const ;
0343 static void logEvalError(const RooAbsReal* originator, const char* origName, const char* message, const char* serverValueString=nullptr) ;
0344 static void printEvalErrors(std::ostream&os=std::cout, Int_t maxPerNode=10000000) ;
0345 static Int_t numEvalErrors() ;
0346 static Int_t numEvalErrorItems();
0347 static std::map<const RooAbsArg *, std::pair<std::string, std::list<RooAbsReal::EvalError>>>::iterator evalErrorIter();
0348
0349 static void clearEvalErrorLog() ;
0350
0351
0352 virtual bool isBinnedDistribution(const RooArgSet& ) const { return false ; }
0353 virtual std::list<double>* binBoundaries(RooAbsRealLValue& obs, double xlo, double xhi) const;
0354 virtual std::list<double>* plotSamplingHint(RooAbsRealLValue& obs, double xlo, double xhi) const;
0355
0356 RooFunctor* functor(const RooArgList& obs, const RooArgList& pars=RooArgList(), const RooArgSet& nset=RooArgSet()) const ;
0357 TF1* asTF(const RooArgList& obs, const RooArgList& pars=RooArgList(), const RooArgSet& nset=RooArgSet()) const ;
0358
0359 RooDerivative* derivative(RooRealVar& obs, Int_t order=1, double eps=0.001) ;
0360 RooDerivative* derivative(RooRealVar& obs, const RooArgSet& normSet, Int_t order, double eps=0.001) ;
0361
0362 RooAbsMoment* moment(RooRealVar& obs, Int_t order, bool central, bool takeRoot) ;
0363 RooAbsMoment* moment(RooRealVar& obs, const RooArgSet& normObs, Int_t order, bool central, bool takeRoot, bool intNormObs) ;
0364
0365 RooAbsMoment* mean(RooRealVar& obs) { return moment(obs,1,false,false) ; }
0366 RooAbsMoment* mean(RooRealVar& obs, const RooArgSet& nset) { return moment(obs,nset,1,false,false,true) ; }
0367 RooAbsMoment* sigma(RooRealVar& obs) { return moment(obs,2,true,true) ; }
0368 RooAbsMoment* sigma(RooRealVar& obs, const RooArgSet& nset) { return moment(obs,nset,2,true,true,true) ; }
0369
0370 double findRoot(RooRealVar& x, double xmin, double xmax, double yval) ;
0371
0372
0373 virtual bool setData(RooAbsData& , bool =true) { return true ; }
0374
0375 virtual void enableOffsetting(bool);
0376 virtual bool isOffsetting() const { return false ; }
0377 virtual double offset() const { return 0 ; }
0378
0379 static void setHideOffset(bool flag);
0380 static bool hideOffset() ;
0381
0382 bool isSelectedComp() const ;
0383 void selectComp(bool flag) {
0384
0385 _selectComp = flag ;
0386 }
0387
0388 const RooAbsReal* createPlotProjection(const RooArgSet& depVars, const RooArgSet& projVars, RooArgSet*& cloneSet) const ;
0389 const RooAbsReal *createPlotProjection(const RooArgSet &dependentVars, const RooArgSet *projectedVars,
0390 RooArgSet *&cloneSet, const char* rangeName=nullptr, const RooArgSet* condObs=nullptr) const;
0391 virtual void doEval(RooFit::EvalContext &) const;
0392
0393 virtual bool hasGradient() const { return false; }
0394 virtual void gradient(double *) const {
0395 if(!hasGradient()) throw std::runtime_error("RooAbsReal::gradient(double *) not implemented by this class!");
0396 }
0397
0398
0399 virtual RooPlot* plotOn(RooPlot* frame, RooLinkedList& cmdList) const ;
0400
0401 protected:
0402 friend class BatchInterfaceAccessor;
0403 friend class RooVectorDataStore;
0404 friend class RooRealBinding;
0405 friend class RooRealSumPdf;
0406 friend class RooRealSumFunc;
0407 friend class RooAddHelpers;
0408 friend class RooAddPdf;
0409 friend class RooAddModel;
0410 friend class AddCacheElem;
0411 friend class RooFit::EvalContext;
0412
0413
0414 virtual void selectNormalization(const RooArgSet* depSet=nullptr, bool force=false) ;
0415 virtual void selectNormalizationRange(const char* rangeName=nullptr, bool force=false) ;
0416
0417
0418 bool plotSanityChecks(RooPlot* frame) const ;
0419 void makeProjectionSet(const RooAbsArg* plotVar, const RooArgSet* allVars,
0420 RooArgSet& projectedVars, bool silent) const ;
0421
0422 TString integralNameSuffix(const RooArgSet& iset, const RooArgSet* nset=nullptr, const char* rangeName=nullptr, bool omitEmpty=false) const ;
0423
0424 void plotOnCompSelect(RooArgSet* selNodes) const ;
0425 RooPlot* plotOnWithErrorBand(RooPlot* frame,const RooFitResult& fr, double Z, const RooArgSet* params, const RooLinkedList& argList, bool method1) const ;
0426
0427 template<typename... Proxies>
0428 bool matchArgs(const RooArgSet& allDeps, RooArgSet& analDeps, const RooArgProxy& a, const Proxies&... proxies) const
0429 {
0430 TList nameList;
0431
0432 nameList.Add(new TObjString(a.absArg()->GetName()));
0433 (nameList.Add(new TObjString(proxies.absArg()->GetName())), ...);
0434
0435 bool result = matchArgsByName(allDeps, analDeps, nameList);
0436 nameList.Delete();
0437 return result;
0438 }
0439
0440 bool matchArgs(const RooArgSet& allDeps, RooArgSet& numDeps,
0441 const RooArgSet& set) const ;
0442
0443 RooFit::OwningPtr<RooAbsReal> createIntObj(const RooArgSet& iset, const RooArgSet* nset, const RooNumIntConfig* cfg, const char* rangeName) const ;
0444 void findInnerMostIntegration(const RooArgSet& allObs, RooArgSet& innerObs, const char* rangeName) const ;
0445
0446
0447
0448 bool isValid() const override { return isValidReal(_value); }
0449
0450 virtual bool isValidReal(double , bool printError = false) const { (void)printError; return true; }
0451
0452
0453 double traceEval(const RooArgSet* set) const ;
0454
0455
0456 virtual double evaluate() const = 0;
0457
0458
0459 void syncCache(const RooArgSet* set=nullptr) override { getVal(set) ; }
0460 void copyCache(const RooAbsArg* source, bool valueOnly=false, bool setValDirty=true) override ;
0461 void attachToTree(TTree& t, Int_t bufSize=32000) override ;
0462 void attachToVStore(RooVectorDataStore& vstore) override ;
0463 void setTreeBranchStatus(TTree& t, bool active) override ;
0464 void fillTreeBranch(TTree& t) override ;
0465
0466 struct PlotOpt {
0467 Option_t *drawOptions = "L";
0468 double scaleFactor = 1.0;
0469 ScaleType stype = Relative;
0470 const RooAbsData *projData = nullptr;
0471 bool binProjData = false;
0472 const RooArgSet *projSet = nullptr;
0473 double precision = 1e-3;
0474 bool shiftToZero = false;
0475 const RooArgSet *projDataSet = nullptr;
0476 const char *normRangeName = nullptr;
0477 double rangeLo = 0.0;
0478 double rangeHi = 0.0;
0479 bool postRangeFracScale = false;
0480 RooCurve::WingMode wmode = RooCurve::Extended;
0481 const char *projectionRangeName = nullptr;
0482 bool curveInvisible = false;
0483 const char *curveName = nullptr;
0484 const char *addToCurveName = nullptr;
0485 double addToWgtSelf = 1.0;
0486 double addToWgtOther = 1.0;
0487 Int_t numCPU = 1;
0488 RooFit::MPSplit interleave = RooFit::Interleave;
0489 const char *curveNameSuffix = "";
0490 Int_t numee = 10;
0491 double eeval = 0.0;
0492 bool doeeval = false;
0493 bool progress = false;
0494 const RooFitResult *errorFR = nullptr;
0495 };
0496
0497
0498 virtual RooPlot *plotOn(RooPlot* frame, PlotOpt o) const;
0499
0500 virtual RooPlot *plotAsymOn(RooPlot *frame, const RooAbsCategoryLValue& asymCat, PlotOpt o) const;
0501
0502 bool matchArgsByName(const RooArgSet &allArgs, RooArgSet &matchedArgs, const TList &nameList) const;
0503
0504 bool redirectServersHook(const RooAbsCollection & newServerList, bool mustReplaceAll,
0505 bool nameChange, bool isRecursiveStep) override;
0506
0507 static void globalSelectComp(bool flag) ;
0508
0509
0510
0511 struct GlobalSelectComponentRAII {
0512 GlobalSelectComponentRAII(bool state) :
0513 _oldState{_globalSelectComp} {
0514 if (state != RooAbsReal::_globalSelectComp)
0515 RooAbsReal::_globalSelectComp = state;
0516 }
0517
0518 ~GlobalSelectComponentRAII() {
0519 if (RooAbsReal::_globalSelectComp != _oldState)
0520 RooAbsReal::_globalSelectComp = _oldState;
0521 }
0522
0523 bool _oldState;
0524 };
0525
0526
0527 private:
0528
0529
0530 double _DEBUG_getVal(const RooArgSet* normalisationSet) const;
0531
0532
0533
0534 protected:
0535
0536 double _plotMin = 0.0;
0537 double _plotMax = 0.0;
0538 Int_t _plotBins = 100;
0539 mutable double _value = 0.0;
0540 TString _unit;
0541 TString _label;
0542 bool _forceNumInt = false;
0543 std::unique_ptr<RooNumIntConfig> _specIntegratorConfig;
0544 TreeReadBuffer *_treeReadBuffer = nullptr;
0545 bool _selectComp = true;
0546 mutable RooFit::UniqueId<RooArgSet>::Value_t _lastNormSetId = RooFit::UniqueId<RooArgSet>::nullval;
0547
0548 static bool _globalSelectComp;
0549 static bool _hideOffset;
0550
0551 ClassDefOverride(RooAbsReal,3);
0552 };
0553
0554
0555
0556
0557
0558
0559
0560
0561 void RooAbsReal::setCachedValue(double value, bool notifyClients) {
0562 _value = value;
0563
0564 if (notifyClients) {
0565 setValueDirty();
0566 _valueDirty = false;
0567 }
0568 }
0569
0570
0571 #endif