
Class for performing numerical integration of a multidimensional function.
It uses the numerical integration algorithms of GSL, which reimplements the
algorithms used in the QUADPACK, a numerical integration package written in Fortran.
Plain MC, MISER and VEGAS integration algorithms are supported for integration over finite (hypercubic) ranges.
<A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_16.html#SEC248">GSL Manual</A>.
It implements also the interface ROOT::Math::VirtualIntegratorMultiDim so it can be
instantiate using the plugin manager (plugin name is "GSLMCIntegrator")
@ingroup MCIntegration
| virtual | ~GSLMCIntegrator() |
| double | ChiSqr() |
| virtual double | Error() const |
| ROOT::Math::IOptions* | ExtraOptions() const |
| ROOT::Math::IntegrationMultiDim::Type | GetType() const |
| const char* | GetTypeName() const |
| ROOT::Math::GSLMCIntegrator | GSLMCIntegrator(ROOT::Math::IntegrationMultiDim::Type type = MCIntegration::kVEGAS, double absTol = 0, double relTol = 0, unsigned int calls = 0) |
| ROOT::Math::GSLMCIntegrator | GSLMCIntegrator(const char* type, double absTol, double relTol, unsigned int calls) |
| virtual double | Integral(const double* a, const double* b) |
| double | Integral(const ROOT::Math::GSLMCIntegrator::GSLMonteFuncPointer& f, unsigned int dim, double* a, double* b, void* p = 0) |
| virtual int | NEval() const |
| virtual ROOT::Math::IntegratorMultiDimOptions | Options() const |
| virtual double | Result() const |
| virtual void | SetAbsTolerance(double absTolerance) |
| virtual void | SetFunction(const ROOT::Math::IMultiGenFunction& f) |
| void | SetFunction(ROOT::Math::GSLMCIntegrator::GSLMonteFuncPointer f, unsigned int dim, void* p = 0) |
| void | SetGenerator(ROOT::Math::GSLRngWrapper* r) |
| void | SetMode(ROOT::Math::MCIntegration::Mode mode) |
| virtual void | SetOptions(const ROOT::Math::IntegratorMultiDimOptions& opt) |
| void | SetParameters(const ROOT::Math::VegasParameters& p) |
| void | SetParameters(const ROOT::Math::MiserParameters& p) |
| virtual void | SetRelTolerance(double relTolerance) |
| void | SetType(ROOT::Math::IntegrationMultiDim::Type type) |
| void | SetTypeName(const char* typeName) |
| double | Sigma() |
| virtual int | Status() const |
| virtual ROOT::Math::IntegrationMultiDim::Type | ROOT::Math::VirtualIntegratorMultiDim::Type() const |
| bool | CheckFunction() |
| void | DoInitialize() |
| ROOT::Math::GSLMCIntegrator | GSLMCIntegrator(const ROOT::Math::GSLMCIntegrator&) |
| ROOT::Math::GSLMCIntegrator& | operator=(const ROOT::Math::GSLMCIntegrator&) |

constructors
/**
constructor of GSL MCIntegrator using all the default options
*
GSLMCIntegrator( );
constructor of GSL MCIntegrator. VEGAS MC is set as default integration type
@param type type of integration. The possible types are defined in the MCIntegration::Type enumeration
Default is VEGAS
@param absTol desired absolute Error
@param relTol desired relative Error
@param calls maximum number of function calls
NOTE: When the default values are used , the options are taken from teh static method of ROOT::Math::IntegratorMultiDimOptions
methods using GSLMonteFuncPointer
evaluate the Integral of a function f over the defined hypercube (a,b)
@param f integration function. The function type must implement the mathlib::IGenFunction interface
@param a lower value of the integration interval
@param b upper value of the integration interval
evaluate the integral using the previously defined function
return number of function evaluations in calculating the integral
(This is an fixed by the user)
{ return fCalls; } setter for control Parameters (getters are not needed so far )
set the desired relative Error
set integration method using a name instead of an enumeration
set integration mode for VEGAS method
The possible MODE are :
MCIntegration::kIMPORTANCE (default) : VEGAS will use importance sampling
MCIntegration::kSTRATIFIED : VEGAS will use stratified sampling if certain condition are satisfied
MCIntegration::kIMPORTANCE_ONLY : VEGAS will always use importance smapling
set parameters for PLAIN method
void SetPParameters(const PlainParameters &p);
returns the error sigma from the last iteration of the Vegas algorithm
returns chi-squared per degree of freedom for the estimate of the integral in the Vegas algorithm
return the type
(need to be called GetType to avois a conflict with typedef)
{ return fType; }
get the specific options (for Vegas or Miser)
in term of string- name