29 #ifndef ROOT_Math_GSLMCIntegrator 30 #define ROOT_Math_GSLMCIntegrator 32 #ifndef ROOT_Math_MCIntegrationTypes 36 #ifndef ROOT_Math_IFunctionfwd 40 #ifndef ROOT_Math_IFunction 45 #ifndef ROOT_Math_MCIntegrationTypes 50 #ifndef ROOT_Math_MCParameters 54 #ifndef ROOT_Math_VirtualIntegrator 66 class GSLMCIntegrationWorkspace;
67 class GSLMonteFunctionWrapper;
68 class GSLRandomEngine;
176 double Integral(
const double*
a,
const double*
b);
197 double Error()
const;
ROOT::Math::IntegratorMultiDimOptions Options() const
get the option used for the integration
double Result() const
return the type of the integration used
GSLMCIntegrator(MCIntegration::Type type=MCIntegration::kVEGAS, double absTol=-1, double relTol=-1, unsigned int calls=0)
constructor of GSL MCIntegrator using all the default options
double(* GSLMonteFuncPointer)(double *, size_t, void *)
This namespace contains pre-defined functions to be used in conjuction with TExecutor::Map and TExecu...
GSLMonteFunctionWrapper * fFunction
double Integral(const GSLMonteFuncPointer &f, unsigned int dim, double *a, double *b, void *p=0)
evaluate the Integral of a function f over the defined hypercube (a,b)
Type
enumeration specifying the integration types.
MCIntegration::Type GetType() const
return the type (need to be called GetType to avois a conflict with typedef)
structures collecting parameters for MISER multidimensional integration
void SetFunction(const IMultiGenFunction &f)
method to set the a generic integration function
structures collecting parameters for VEGAS multidimensional integration FOr implementation of default...
int NEval() const
return number of function evaluations in calculating the integral (This is an fixed by the user) ...
double Error() const
return the estimate of the absolute Error of the last Integral calculation
void SetRelTolerance(double relTolerance)
set the desired relative Error
double ChiSqr()
returns chi-squared per degree of freedom for the estimate of the integral in the Vegas algorithm ...
const char * GetTypeName() const
return the name
GSLRandomEngine Base class for all GSL random engines, normally user instantiate the derived classes ...
virtual ~GSLMCIntegrator()
destructor
GSLMCIntegrationWorkspace * fWorkspace
GSLRngWrapper class to wrap gsl_rng structure.
Numerical multi dimensional integration options.
Interface (abstract) class for multi numerical integration It must be implemented by the concrete Int...
MCIntegration::Type fType
void SetParameters(const VegasParameters &p)
set default parameters for VEGAS method
void SetOptions(const ROOT::Math::IntegratorMultiDimOptions &opt)
set the integration options
void SetType(MCIntegration::Type type)
set integration method
void SetTypeName(const char *typeName)
set integration method using a name instead of an enumeration
GSLMCIntegrator & operator=(const GSLMCIntegrator &)
void SetGenerator(GSLRandomEngine &r)
set random number generator
int Status() const
return the Error Status of the last Integral calculation
double Sigma()
set parameters for PLAIN method
ROOT::Math::IOptions * ExtraOptions() const
get the specific options (for Vegas or Miser) in term of string- name
Namespace for new Math classes and functions.
void SetMode(MCIntegration::Mode mode)
set integration mode for VEGAS method The possible MODE are : MCIntegration::kIMPORTANCE (default) : ...
Generic interface for defining configuration options of a numerical algorithm.
wrapper to a multi-dim function withtout derivatives for Monte Carlo multi-dimensional integration al...
void SetAbsTolerance(double absTolerance)
set the desired absolute Error
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Documentation for the abstract class IBaseFunctionMultiDim.