16#ifndef ROO_IMPROPER_INTEGRATOR_1D
17#define ROO_IMPROPER_INTEGRATOR_1D
39 double integral(
const double* yvec=0)
override ;
#define ClassDefOverride(name, id)
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
RooAbsIntegrator is the abstract interface for integrators of real-valued functions that implement th...
virtual bool setLimits(double *, double *)
Special numeric integrator that can handle integrals over open domains.
bool canIntegrate1D() const override
LimitsCase limitsCase() const
Classify the type of limits we have: OpenBothEnds,ClosedBothEnds,OpenBelow or OpenAbove.
RooIntegrator1D * _integrator1
RooIntegrator1D * _integrator3
Piece integrators.
RooInvTransform * _function
Binding with inverse of function.
RooImproperIntegrator1D()
Default constructor.
LimitsCase _case
Configuration of limits.
double _xmax
Value of limits.
double integral(const double *yvec=0) override
Calculate the integral at the given parameter values of the function binding.
bool checkLimits() const override
Check if the limits are valid.
RooAbsFunc * _origFunc
Original function binding.
bool setUseIntegrandLimits(bool flag) override
Interface function that allows to defer limit definition to integrand definition.
void initialize(const RooAbsFunc *function=0)
Initialize the integrator, construct and initialize subintegrators.
bool setLimits(double *xmin, double *xmax) override
Change our integration limits.
RooAbsIntegrator * clone(const RooAbsFunc &function, const RooNumIntConfig &config) const override
Return clone of integrator with given function and configuration. Needed by RooNumIntFactory.
bool canIntegrateOpenEnded() const override
bool canIntegrate2D() const override
RooIntegrator1D * _integrator2
bool canIntegrateND() const override
RooNumIntConfig _config
Configuration object.
static void registerIntegrator(RooNumIntFactory &fact)
Register RooImproperIntegrator1D, its parameters and capabilities with RooNumIntFactory.
~RooImproperIntegrator1D() override
Destructor.
bool _useIntegrandLimits
Use limits in function binding?
RooIntegrator1D implements an adaptive one-dimensional numerical integration algorithm.
RooNumIntConfig holds the configuration parameters of the various numeric integrators used by RooReal...
RooNumIntFactory is a factory to instantiate numeric integrators from a given function binding and a ...
void function(const Char_t *name_, T fun, const Char_t *docstring=0)