16#ifndef ROO_SEGMENTED_INTEGRATOR_1D
17#define ROO_SEGMENTED_INTEGRATOR_1D
35 double integral(
const double *yvec=
nullptr)
override ;
59 std::vector<std::unique_ptr<RooIntegrator1D>>
_array ;
#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 *)
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 ...
RooSegmentedIntegrator1D implements an adaptive one-dimensional numerical integration algorithm.
static void registerIntegrator(RooNumIntFactory &fact)
Register RooSegmentedIntegrator1D, its parameters, dependencies and capabilities with RooNumIntFactor...
bool canIntegrate2D() const override
bool canIntegrateOpenEnded() const override
bool canIntegrateND() const override
bool setUseIntegrandLimits(bool flag) override
Interface function that allows to defer limit definition to integrand definition.
double integral(const double *yvec=nullptr) override
Evaluate integral at given function binding parameter values.
bool checkLimits() const override
Check that our integration range is finite and otherwise return false.
bool canIntegrate1D() const override
~RooSegmentedIntegrator1D() override
RooAbsIntegrator * clone(const RooAbsFunc &function, const RooNumIntConfig &config) const override
Virtual constructor with given function and configuration. Needed by RooNumIntFactory.
bool setLimits(double *xmin, double *xmax) override
Change our integration limits.
std::vector< std::unique_ptr< RooIntegrator1D > > _array
Array of segment integrators.
RooSegmentedIntegrator1D()
bool initialize()
One-time integrator initialization.