Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
RooAdaptiveIntegratorND Class Reference

Adaptive one-dimensional numerical integration algorithm.

Definition at line 32 of file RooAdaptiveIntegratorND.h.

Public Member Functions

 RooAdaptiveIntegratorND (const RooAbsFunc &function, const RooNumIntConfig &config)
 Constructor of integral on given function binding and with given configuration.
 
 ~RooAdaptiveIntegratorND () override
 Destructor.
 
bool checkLimits () const override
 Check that our integration range is finite and otherwise return false.
 
double integral (const double *yvec=nullptr) override
 Evaluate integral at given function binding parameter values.
 
virtual bool setLimits (double *, double *)
 
bool setLimits (double *xmin, double *xmax) override
 Change our integration limits.
 
virtual bool setLimits (double xmin, double xmax)
 Interface to set limits on integration.
 
bool setUseIntegrandLimits (bool flag) override
 Interface function that allows to defer limit definition to integrand definition.
 
- Public Member Functions inherited from RooAbsIntegrator
 RooAbsIntegrator ()
 
 RooAbsIntegrator (const RooAbsFunc &function, bool printEvalCounter=false)
 Copy constructor.
 
virtual ~RooAbsIntegrator ()=default
 
double calculate (const double *yvec=nullptr)
 Calculate integral value with given array of parameter values.
 
const RooAbsFuncintegrand () const
 Return integrand function binding.
 
double integrand (const double x[]) const
 Return value of integrand at given observable values.
 
bool isValid () const
 Is integrator in valid state.
 
bool printEvalCounter () const
 
void setPrintEvalCounter (bool value)
 

Protected Member Functions

 RooAdaptiveIntegratorND (const RooAdaptiveIntegratorND &)
 

Static Protected Member Functions

static void registerIntegrator (RooNumIntFactory &fact)
 Register RooAdaptiveIntegratorND, its parameters, dependencies and capabilities with RooNumIntFactory.
 

Protected Attributes

double _epsAbs
 Absolute precision.
 
double _epsRel
 Relative precision.
 
std::unique_ptr< ROOT::Math::IMultiGenFunction_func
 ! ROOT::Math multi-parameter function binding
 
ROOT::Math::AdaptiveIntegratorMultiDim_integrator
 
TString _intName
 Integrand name.
 
Int_t _nError
 Number of error occurrences.
 
Int_t _nmax
 Max number of divisions.
 
Int_t _nWarn
 Max number of warnings to be issued ;.
 
std::unique_ptr< RooFunctor_rooFunctor
 ! RooFunctor binding
 
bool _useIntegrandLimits
 If true limits of function binding are used.
 
std::vector< double_xmax
 Upper bound in each dimension.
 
std::vector< double_xmin
 Lower bound in each dimension.
 
- Protected Attributes inherited from RooAbsIntegrator
const RooAbsFunc_function = nullptr
 Pointer to function binding of integrand.
 
bool _printEvalCounter = false
 If true print number of function evaluation required for integration.
 
bool _valid = false
 Is integrator in valid state?
 

Friends

class RooNumIntFactory
 

#include </home/sftnight/build/workspace/root-makedoc-master/rootspi/rdoc/src/master/roofit/roofitcore/src/RooAdaptiveIntegratorND.h>

Inheritance diagram for RooAdaptiveIntegratorND:
[legend]

Constructor & Destructor Documentation

◆ RooAdaptiveIntegratorND() [1/2]

RooAdaptiveIntegratorND::RooAdaptiveIntegratorND ( const RooAbsFunc function,
const RooNumIntConfig config 
)

Constructor of integral on given function binding and with given configuration.

The integration limits are taken from the definition in the function binding _func = function.

Definition at line 73 of file RooAdaptiveIntegratorND.cxx.

◆ ~RooAdaptiveIntegratorND()

RooAdaptiveIntegratorND::~RooAdaptiveIntegratorND ( )
override

Destructor.

Definition at line 104 of file RooAdaptiveIntegratorND.cxx.

◆ RooAdaptiveIntegratorND() [2/2]

RooAdaptiveIntegratorND::RooAdaptiveIntegratorND ( const RooAdaptiveIntegratorND )
protected

Member Function Documentation

◆ checkLimits()

bool RooAdaptiveIntegratorND::checkLimits ( ) const
overridevirtual

Check that our integration range is finite and otherwise return false.

Update the limits from the integrand if requested.

Reimplemented from RooAbsIntegrator.

Definition at line 120 of file RooAdaptiveIntegratorND.cxx.

◆ integral()

double RooAdaptiveIntegratorND::integral ( const double yvec = nullptr)
overridevirtual

Evaluate integral at given function binding parameter values.

Implements RooAbsIntegrator.

Definition at line 163 of file RooAdaptiveIntegratorND.cxx.

◆ registerIntegrator()

void RooAdaptiveIntegratorND::registerIntegrator ( RooNumIntFactory fact)
staticprotected

Register RooAdaptiveIntegratorND, its parameters, dependencies and capabilities with RooNumIntFactory.

Definition at line 48 of file RooAdaptiveIntegratorND.cxx.

◆ setLimits() [1/3]

virtual bool RooAbsIntegrator::setLimits ( double ,
double  
)
inlinevirtual

Reimplemented from RooAbsIntegrator.

Definition at line 54 of file RooAbsIntegrator.h.

◆ setLimits() [2/3]

bool RooAdaptiveIntegratorND::setLimits ( double xmin,
double xmax 
)
overridevirtual

Change our integration limits.

Return true if the new limits are ok, or otherwise false. Always returns false and does nothing if this object was constructed to always use our integrand's limits.

Reimplemented from RooAbsIntegrator.

Definition at line 143 of file RooAdaptiveIntegratorND.cxx.

◆ setLimits() [3/3]

bool RooAbsIntegrator::setLimits ( double  xmin,
double  xmax 
)
virtual

Interface to set limits on integration.

Reimplemented from RooAbsIntegrator.

Definition at line 55 of file RooAbsIntegrator.cxx.

◆ setUseIntegrandLimits()

bool RooAdaptiveIntegratorND::setUseIntegrandLimits ( bool  flag)
inlineoverridevirtual

Interface function that allows to defer limit definition to integrand definition.

Reimplemented from RooAbsIntegrator.

Definition at line 45 of file RooAdaptiveIntegratorND.h.

Friends And Related Symbol Documentation

◆ RooNumIntFactory

friend class RooNumIntFactory
friend

Definition at line 68 of file RooAdaptiveIntegratorND.h.

Member Data Documentation

◆ _epsAbs

double RooAdaptiveIntegratorND::_epsAbs
protected

Absolute precision.

Definition at line 59 of file RooAdaptiveIntegratorND.h.

◆ _epsRel

double RooAdaptiveIntegratorND::_epsRel
protected

Relative precision.

Definition at line 58 of file RooAdaptiveIntegratorND.h.

◆ _func

std::unique_ptr<ROOT::Math::IMultiGenFunction> RooAdaptiveIntegratorND::_func
protected

! ROOT::Math multi-parameter function binding

Definition at line 64 of file RooAdaptiveIntegratorND.h.

◆ _integrator

ROOT::Math::AdaptiveIntegratorMultiDim* RooAdaptiveIntegratorND::_integrator
protected

Definition at line 65 of file RooAdaptiveIntegratorND.h.

◆ _intName

TString RooAdaptiveIntegratorND::_intName
protected

Integrand name.

Definition at line 66 of file RooAdaptiveIntegratorND.h.

◆ _nError

Int_t RooAdaptiveIntegratorND::_nError
protected

Number of error occurrences.

Definition at line 61 of file RooAdaptiveIntegratorND.h.

◆ _nmax

Int_t RooAdaptiveIntegratorND::_nmax
protected

Max number of divisions.

Definition at line 60 of file RooAdaptiveIntegratorND.h.

◆ _nWarn

Int_t RooAdaptiveIntegratorND::_nWarn
protected

Max number of warnings to be issued ;.

Definition at line 62 of file RooAdaptiveIntegratorND.h.

◆ _rooFunctor

std::unique_ptr<RooFunctor> RooAdaptiveIntegratorND::_rooFunctor
protected

! RooFunctor binding

Definition at line 63 of file RooAdaptiveIntegratorND.h.

◆ _useIntegrandLimits

bool RooAdaptiveIntegratorND::_useIntegrandLimits
protected

If true limits of function binding are used.

Definition at line 54 of file RooAdaptiveIntegratorND.h.

◆ _xmax

std::vector<double> RooAdaptiveIntegratorND::_xmax
mutableprotected

Upper bound in each dimension.

Definition at line 57 of file RooAdaptiveIntegratorND.h.

◆ _xmin

std::vector<double> RooAdaptiveIntegratorND::_xmin
mutableprotected

Lower bound in each dimension.

Definition at line 56 of file RooAdaptiveIntegratorND.h.

  • roofit/roofitcore/src/RooAdaptiveIntegratorND.h
  • roofit/roofitcore/src/RooAdaptiveIntegratorND.cxx