16#ifndef ROO_BIN_INTEGRATOR
17#define ROO_BIN_INTEGRATOR
59 mutable std::vector<Double_t>
_xmin;
60 mutable std::vector<Double_t>
_xmax;
61 std::vector<std::vector<double>>
_binb;
66 std::unique_ptr<RooBatchCompute::RunContext>
_evalData;
69 double*
xvec(
double xx) {
_x[0] = xx ;
return _x ; }
70 double*
xvec(
double xx,
double yy) {
_x[0] = xx ;
_x[1] = yy ;
return _x ; }
71 double*
xvec(
double xx,
double yy,
double zz) {
_x[0] = xx ;
_x[1] = yy ;
_x[2] = zz ;
return _x ; }
#define ClassDef(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_t setLimits(Double_t *, Double_t *)
RooBinIntegrator computes the integral over a binned distribution by summing the bin contents of all ...
double * xvec(double xx, double yy)
std::vector< Double_t > _xmin
static void registerIntegrator(RooNumIntFactory &fact)
Register RooBinIntegrator, is parameters and capabilities with RooNumIntFactory.
virtual Bool_t canIntegrate1D() const
RooBinIntegrator(const RooBinIntegrator &)
double * xvec(double xx, double yy, double zz)
Int_t _numBins
list of bin boundaries
virtual Bool_t setUseIntegrandLimits(Bool_t flag)
Interface function that allows to defer limit definition to integrand definition.
std::vector< Double_t > _xmax
Lower integration bound.
virtual ~RooBinIntegrator()
Destructor.
Bool_t _useIntegrandLimits
Size of integration range.
virtual RooAbsIntegrator * clone(const RooAbsFunc &function, const RooNumIntConfig &config) const
Clone integrator with new function binding and configuration. Needed by RooNumIntFactory.
std::vector< std::vector< double > > _binb
Upper integration bound.
virtual Bool_t canIntegrateOpenEnded() const
virtual Bool_t checkLimits() const
Check that our integration range is finite and otherwise return kFALSE.
virtual Double_t integral(const Double_t *yvec=0)
Calculate numeric integral at given set of function binding parameters.
double * xvec(double xx)
Run context to save bin centres in between invocations.
std::unique_ptr< RooBatchCompute::RunContext > _evalDataOrig
Run context for evaluating a function.
virtual Bool_t canIntegrateND() const
Bool_t setLimits(Double_t *xmin, Double_t *xmax)
Change our integration limits.
RooBinIntegrator()
Default constructor.
std::unique_ptr< RooBatchCompute::RunContext > _evalData
virtual Bool_t canIntegrate2D() const
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 ...
Namespace for dispatching RooFit computations to various backends.