18#ifndef ROO_BIN_INTEGRATOR
19#define ROO_BIN_INTEGRATOR
30 RooBinIntegrator(
const RooAbsFunc &function,
int numBins = 100);
31 RooBinIntegrator(
const RooAbsFunc &function,
const RooNumIntConfig &config);
34 double integral(
const double *yvec =
nullptr)
override;
40 _useIntegrandLimits = flag;
45 friend class RooNumIntFactory;
46 static void registerIntegrator(RooNumIntFactory &fact);
47 RooBinIntegrator(
const RooBinIntegrator &);
50 mutable std::vector<double> _xmin;
51 mutable std::vector<double> _xmax;
52 std::vector<std::vector<double>> _binb;
53 mutable Int_t _numBins = 0;
55 bool _useIntegrandLimits =
false;
57 void recursive_integration(
const UInt_t d,
const double delta, ROOT::Math::KahanSum<double>&
sum);
59 std::vector<double> _x;
int Int_t
Signed integer 4 bytes (int).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
Abstract interface for integrators of real-valued functions that implement the RooAbsFunc interface.
virtual bool setUseIntegrandLimits(bool flag)
Interface function that allows to defer limit definition to integrand definition.
virtual bool checkLimits() const
If true, finite limits are required on the observable range.
virtual double integral(const double *yvec=nullptr)=0
virtual bool setLimits(double *, double *)
static uint64_t sum(uint64_t i)