16#ifndef ROO_ABS_INTEGRATOR
17#define ROO_ABS_INTEGRATOR
48 double calculate(
const double *yvec=
nullptr) ;
49 virtual double integral(
const double *yvec=
nullptr)=0 ;
54 virtual bool setLimits(
double*,
double*) {
return false ; }
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
virtual bool setUseIntegrandLimits(bool flag)
Interface function that allows to defer limit definition to integrand definition.
bool isValid() const
Is integrator in valid state.
virtual ~RooAbsIntegrator()=default
void setPrintEvalCounter(bool value)
double integrand(const double x[]) const
Return value of integrand at given observable values.
virtual bool checkLimits() const
If true, finite limits are required on the observable range.
double calculate(const double *yvec=nullptr)
Calculate integral value with given array of parameter values.
virtual double integral(const double *yvec=nullptr)=0
const RooAbsFunc * _function
Pointer to function binding of integrand.
const RooAbsFunc * integrand() const
Return integrand function binding.
bool printEvalCounter() const
bool _valid
Is integrator in valid state?
virtual bool setLimits(double *, double *)
bool _printEvalCounter
If true print number of function evaluation required for integration.