16#ifndef ROO_BIN_INTEGRATOR
17#define ROO_BIN_INTEGRATOR
32 double integral(
const double *yvec =
nullptr)
override;
48 mutable std::vector<double>
_xmin;
49 mutable std::vector<double>
_xmax;
50 std::vector<std::vector<double>>
_binb;
60 double *
xvec(
double xx,
double yy)
66 double *
xvec(
double xx,
double yy,
double zz)
74 std::vector<double>
_x;
Abstract interface for evaluating a real-valued function of one real variable and performing numerica...
virtual bool setLimits(double *, double *)
double * xvec(double xx, double yy)
std::vector< double > _xmax
! Upper integration bound
static void registerIntegrator(RooNumIntFactory &fact)
Register RooBinIntegrator, is parameters and capabilities with RooNumIntFactory.
RooBinIntegrator(const RooBinIntegrator &)
friend class RooNumIntFactory
double * xvec(double xx, double yy, double zz)
Int_t _numBins
! Size of integration range
bool setLimits(double *xmin, double *xmax) override
Change our integration limits.
std::vector< std::vector< double > > _binb
! list of bin boundaries
std::vector< double > _xmin
! Lower integration bound
RooBinIntegrator(const RooAbsFunc &function, int numBins=100)
Construct integrator on given function binding binding.
std::vector< double > _x
! do not persist
bool _useIntegrandLimits
If true limits of function binding are ued.
bool checkLimits() const override
Check that our integration range is finite and otherwise return false.
double integral(const double *yvec=nullptr) override
Calculate numeric integral at given set of function binding parameters.
bool setUseIntegrandLimits(bool flag) override
Interface function that allows to defer limit definition to integrand definition.
Holds the configuration parameters of the various numeric integrators used by RooRealIntegral.