18#ifndef ROO_ADAPTIVE_INTEGRATOR_ND
19#define ROO_ADAPTIVE_INTEGRATOR_ND
37 RooAdaptiveIntegratorND(
const RooAbsFunc &function,
const RooNumIntConfig &config);
39 ~RooAdaptiveIntegratorND()
override;
42 double integral(
const double *yvec =
nullptr)
override;
49 _useIntegrandLimits = flag;
54 RooAdaptiveIntegratorND(
const RooAdaptiveIntegratorND &);
56 bool _useIntegrandLimits;
58 mutable std::vector<double> _xmin;
59 mutable std::vector<double> _xmax;
65 std::unique_ptr<RooFunctor> _rooFunctor;
66 std::unique_ptr<ROOT::Math::IMultiGenFunction> _func;
67 ROOT::Math::AdaptiveIntegratorMultiDim *_integrator;
70 friend class RooNumIntFactory;
71 static void registerIntegrator(RooNumIntFactory &fact);
int Int_t
Signed integer 4 bytes (int).
Class for adaptive quadrature integration in multi-dimensions using rectangular regions.
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 *)
Lightweight interface adaptor that exports a RooAbsPdf as a functor.