Warning, file /include/root/RooAbsIntegrator.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_INTEGRATOR
0017 #define ROO_ABS_INTEGRATOR
0018
0019 #include "RooAbsFunc.h"
0020 #include "RooNumIntConfig.h"
0021
0022 class RooAbsIntegrator {
0023 public:
0024 RooAbsIntegrator() ;
0025 RooAbsIntegrator(const RooAbsFunc& function, bool printEvalCounter=false);
0026 virtual ~RooAbsIntegrator() = default;
0027
0028
0029 inline bool isValid() const {
0030 return _valid;
0031 }
0032
0033
0034 inline double integrand(const double x[]) const {
0035 return (*_function)(x);
0036 }
0037
0038
0039 inline const RooAbsFunc *integrand() const {
0040 return _function;
0041 }
0042
0043
0044 inline virtual bool checkLimits() const {
0045 return true;
0046 }
0047
0048 double calculate(const double *yvec=nullptr) ;
0049 virtual double integral(const double *yvec=nullptr)=0 ;
0050
0051 bool printEvalCounter() const { return _printEvalCounter ; }
0052 void setPrintEvalCounter(bool value) { _printEvalCounter = value ; }
0053
0054 virtual bool setLimits(double*, double*) { return false ; }
0055 virtual bool setLimits(double xmin, double xmax) ;
0056 virtual bool setUseIntegrandLimits(bool flag) ;
0057
0058 protected:
0059
0060 const RooAbsFunc *_function = nullptr;
0061 bool _valid = false;
0062 bool _printEvalCounter = false;
0063 };
0064
0065 #endif