Logo ROOT  
Reference Guide
ROOT::Math::GSLMCIntegrator Class Reference

Definition at line 112 of file GSLMCIntegrator.h.

Public Types

typedef double(* GSLMonteFuncPointer) (double *, size_t, void *)
 
typedef MCIntegration::Type Type
 

Public Member Functions

 GSLMCIntegrator (const char *type, double absTol, double relTol, unsigned int calls)
 constructor of GSL MCIntegrator. More...
 
 GSLMCIntegrator (MCIntegration::Type type=MCIntegration::kVEGAS, double absTol=-1, double relTol=-1, unsigned int calls=0)
 constructor of GSL MCIntegrator. More...
 
virtual ~GSLMCIntegrator ()
 destructor More...
 
double ChiSqr ()
 returns chi-squared per degree of freedom for the estimate of the integral in the Vegas algorithm More...
 
double Error () const
 return the estimate of the absolute Error of the last Integral calculation More...
 
ROOT::Math::IOptionsExtraOptions () const
 get the specific options (for Vegas or Miser) in term of string- name More...
 
MCIntegration::Type GetType () const
 return the type (need to be called GetType to avois a conflict with typedef) More...
 
const char * GetTypeName () const
 return the name More...
 
double Integral (const double *a, const double *b)
 evaluate the integral using the previously defined function More...
 
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) More...
 
int NEval () const
 return number of function evaluations in calculating the integral (This is an fixed by the user) More...
 
ROOT::Math::IntegratorMultiDimOptions Options () const
 get the option used for the integration More...
 
double Result () const
 return the type of the integration used More...
 
void SetAbsTolerance (double absTolerance)
 set the desired absolute Error More...
 
void SetFunction (const IMultiGenFunction &f)
 method to set the a generic integration function More...
 
void SetFunction (GSLMonteFuncPointer f, unsigned int dim, void *p=0)
 
void SetGenerator (GSLRandomEngine &r)
 set random number generator More...
 
void SetMode (MCIntegration::Mode mode)
 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 More...
 
void SetOptions (const ROOT::Math::IntegratorMultiDimOptions &opt)
 set the integration options More...
 
void SetParameters (const MiserParameters &p)
 set default parameters for MISER method More...
 
void SetParameters (const VegasParameters &p)
 set default parameters for VEGAS method More...
 
void SetRelTolerance (double relTolerance)
 set the desired relative Error More...
 
void SetType (MCIntegration::Type type)
 set integration method More...
 
void SetTypeName (const char *typeName)
 set integration method using a name instead of an enumeration More...
 
double Sigma ()
 set parameters for PLAIN method More...
 
int Status () const
 return the Error Status of the last Integral calculation More...
 
- Public Member Functions inherited from ROOT::Math::VirtualIntegratorMultiDim
virtual ~VirtualIntegratorMultiDim ()
 destructor: no operation More...
 
virtual ROOT::Math::IntegrationMultiDim::Type Type () const
 
- Public Member Functions inherited from ROOT::Math::VirtualIntegrator
virtual ~VirtualIntegrator ()
 

Protected Member Functions

bool CheckFunction ()
 
void DoInitialize ()
 

Private Member Functions

 GSLMCIntegrator (const GSLMCIntegrator &)
 
GSLMCIntegratoroperator= (const GSLMCIntegrator &)
 

Private Attributes

double fAbsTol
 
unsigned int fCalls
 
unsigned int fDim
 
double fError
 
bool fExtGen
 
GSLMonteFunctionWrapperfFunction
 
double fRelTol
 
double fResult
 
GSLRngWrapperfRng
 
int fStatus
 
MCIntegration::Type fType
 
GSLMCIntegrationWorkspacefWorkspace
 

#include <Math/GSLMCIntegrator.h>

Inheritance diagram for ROOT::Math::GSLMCIntegrator:
[legend]

Member Typedef Documentation

◆ GSLMonteFuncPointer

typedef double( * ROOT::Math::GSLMCIntegrator::GSLMonteFuncPointer) (double *, size_t, void *)

Definition at line 179 of file GSLMCIntegrator.h.

◆ Type

Constructor & Destructor Documentation

◆ GSLMCIntegrator() [1/3]

ROOT::Math::GSLMCIntegrator::GSLMCIntegrator ( MCIntegration::Type  type = MCIntegration::kVEGAS,
double  absTol = -1,
double  relTol = -1,
unsigned int  calls = 0 
)
explicit

constructor of GSL MCIntegrator.

VEGAS MC is set as default integration type

Parameters
typetype of integration. The possible types are defined in the MCIntegration::Type enumeration Default is VEGAS
absToldesired absolute Error (this parameter is actually not used and it can be ignored. The tolerance is fixed by the number of given calls)
relToldesired relative Error (this parameter is actually not used and it can be ignored. The tolerance is fixed by the number of given calls)
callsmaximum number of function calls

NOTE: When the default values are used , the options are taken from teh static method of ROOT::Math::IntegratorMultiDimOptions

Definition at line 111 of file GSLMCIntegrator.cxx.

◆ GSLMCIntegrator() [2/3]

ROOT::Math::GSLMCIntegrator::GSLMCIntegrator ( const char *  type,
double  absTol,
double  relTol,
unsigned int  calls 
)

constructor of GSL MCIntegrator.

VEGAS MC is set as default integration type

Parameters
typetype of integration using a char * (required by plug-in manager)
absToldesired absolute Error
relToldesired relative Error
callsmaximum number of function calls

Definition at line 140 of file GSLMCIntegrator.cxx.

◆ ~GSLMCIntegrator()

ROOT::Math::GSLMCIntegrator::~GSLMCIntegrator ( )
virtual

destructor

Definition at line 171 of file GSLMCIntegrator.cxx.

◆ GSLMCIntegrator() [3/3]

ROOT::Math::GSLMCIntegrator::GSLMCIntegrator ( const GSLMCIntegrator )
private

Definition at line 185 of file GSLMCIntegrator.cxx.

Member Function Documentation

◆ CheckFunction()

bool ROOT::Math::GSLMCIntegrator::CheckFunction ( )
protected

Definition at line 490 of file GSLMCIntegrator.cxx.

◆ ChiSqr()

double ROOT::Math::GSLMCIntegrator::ChiSqr ( )

returns chi-squared per degree of freedom for the estimate of the integral in the Vegas algorithm

Definition at line 472 of file GSLMCIntegrator.cxx.

◆ DoInitialize()

void ROOT::Math::GSLMCIntegrator::DoInitialize ( )
protected

Definition at line 434 of file GSLMCIntegrator.cxx.

◆ Error()

double ROOT::Math::GSLMCIntegrator::Error ( ) const
virtual

return the estimate of the absolute Error of the last Integral calculation

Implements ROOT::Math::VirtualIntegrator.

Definition at line 285 of file GSLMCIntegrator.cxx.

◆ ExtraOptions()

ROOT::Math::IOptions * ROOT::Math::GSLMCIntegrator::ExtraOptions ( ) const

get the specific options (for Vegas or Miser) in term of string- name

Definition at line 517 of file GSLMCIntegrator.cxx.

◆ GetType()

MCIntegration::Type ROOT::Math::GSLMCIntegrator::GetType ( ) const
inline

return the type (need to be called GetType to avois a conflict with typedef)

Definition at line 309 of file GSLMCIntegrator.h.

◆ GetTypeName()

const char * ROOT::Math::GSLMCIntegrator::GetTypeName ( ) const

return the name

Definition at line 499 of file GSLMCIntegrator.cxx.

◆ Integral() [1/2]

double ROOT::Math::GSLMCIntegrator::Integral ( const double a,
const double b 
)
virtual

evaluate the integral using the previously defined function

Implements ROOT::Math::VirtualIntegratorMultiDim.

Definition at line 214 of file GSLMCIntegrator.cxx.

◆ Integral() [2/2]

double ROOT::Math::GSLMCIntegrator::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)

Parameters
fintegration function. The function type must implement the mathlib::IGenFunction interface
alower value of the integration interval
bupper value of the integration interval

Definition at line 260 of file GSLMCIntegrator.cxx.

◆ NEval()

int ROOT::Math::GSLMCIntegrator::NEval ( ) const
inlinevirtual

return number of function evaluations in calculating the integral (This is an fixed by the user)

Reimplemented from ROOT::Math::VirtualIntegrator.

Definition at line 231 of file GSLMCIntegrator.h.

◆ operator=()

GSLMCIntegrator & ROOT::Math::GSLMCIntegrator::operator= ( const GSLMCIntegrator )
private

Definition at line 189 of file GSLMCIntegrator.cxx.

◆ Options()

ROOT::Math::IntegratorMultiDimOptions ROOT::Math::GSLMCIntegrator::Options ( ) const
virtual

get the option used for the integration

Implements ROOT::Math::VirtualIntegratorMultiDim.

Definition at line 506 of file GSLMCIntegrator.cxx.

◆ Result()

double ROOT::Math::GSLMCIntegrator::Result ( ) const
virtual

return the type of the integration used

return the Result of the last Integral calculation

Implements ROOT::Math::VirtualIntegrator.

Definition at line 280 of file GSLMCIntegrator.cxx.

◆ SetAbsTolerance()

void ROOT::Math::GSLMCIntegrator::SetAbsTolerance ( double  absTolerance)
virtual

set the desired absolute Error

Implements ROOT::Math::VirtualIntegrator.

Definition at line 303 of file GSLMCIntegrator.cxx.

◆ SetFunction() [1/2]

void ROOT::Math::GSLMCIntegrator::SetFunction ( const IMultiGenFunction f)
virtual

method to set the a generic integration function

Parameters
fintegration function. The function type must implement the assigment operator, double operator() ( double x )

Implements ROOT::Math::VirtualIntegratorMultiDim.

Definition at line 195 of file GSLMCIntegrator.cxx.

◆ SetFunction() [2/2]

void ROOT::Math::GSLMCIntegrator::SetFunction ( GSLMonteFuncPointer  f,
unsigned int  dim,
void p = 0 
)

Definition at line 203 of file GSLMCIntegrator.cxx.

◆ SetGenerator()

void ROOT::Math::GSLMCIntegrator::SetGenerator ( GSLRandomEngine r)

set random number generator

Definition at line 305 of file GSLMCIntegrator.cxx.

◆ SetMode()

void ROOT::Math::GSLMCIntegrator::SetMode ( MCIntegration::Mode  mode)

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

Definition at line 363 of file GSLMCIntegrator.cxx.

◆ SetOptions()

void ROOT::Math::GSLMCIntegrator::SetOptions ( const ROOT::Math::IntegratorMultiDimOptions opt)
virtual

set the integration options

Reimplemented from ROOT::Math::VirtualIntegratorMultiDim.

Definition at line 378 of file GSLMCIntegrator.cxx.

◆ SetParameters() [1/2]

void ROOT::Math::GSLMCIntegrator::SetParameters ( const MiserParameters p)

set default parameters for MISER method

Definition at line 420 of file GSLMCIntegrator.cxx.

◆ SetParameters() [2/2]

void ROOT::Math::GSLMCIntegrator::SetParameters ( const VegasParameters p)

set default parameters for VEGAS method

Definition at line 407 of file GSLMCIntegrator.cxx.

◆ SetRelTolerance()

void ROOT::Math::GSLMCIntegrator::SetRelTolerance ( double  relTolerance)
virtual

set the desired relative Error

Implements ROOT::Math::VirtualIntegrator.

Definition at line 298 of file GSLMCIntegrator.cxx.

◆ SetType()

void ROOT::Math::GSLMCIntegrator::SetType ( MCIntegration::Type  type)

set integration method

Definition at line 312 of file GSLMCIntegrator.cxx.

◆ SetTypeName()

void ROOT::Math::GSLMCIntegrator::SetTypeName ( const char *  typeName)

set integration method using a name instead of an enumeration

Definition at line 338 of file GSLMCIntegrator.cxx.

◆ Sigma()

double ROOT::Math::GSLMCIntegrator::Sigma ( )

set parameters for PLAIN method

returns the error sigma from the last iteration of the Vegas algorithm

Definition at line 452 of file GSLMCIntegrator.cxx.

◆ Status()

int ROOT::Math::GSLMCIntegrator::Status ( ) const
virtual

return the Error Status of the last Integral calculation

Implements ROOT::Math::VirtualIntegrator.

Definition at line 290 of file GSLMCIntegrator.cxx.

Member Data Documentation

◆ fAbsTol

double ROOT::Math::GSLMCIntegrator::fAbsTol
private

Definition at line 345 of file GSLMCIntegrator.h.

◆ fCalls

unsigned int ROOT::Math::GSLMCIntegrator::fCalls
private

Definition at line 344 of file GSLMCIntegrator.h.

◆ fDim

unsigned int ROOT::Math::GSLMCIntegrator::fDim
private

Definition at line 343 of file GSLMCIntegrator.h.

◆ fError

double ROOT::Math::GSLMCIntegrator::fError
private

Definition at line 351 of file GSLMCIntegrator.h.

◆ fExtGen

bool ROOT::Math::GSLMCIntegrator::fExtGen
private

Definition at line 353 of file GSLMCIntegrator.h.

◆ fFunction

GSLMonteFunctionWrapper* ROOT::Math::GSLMCIntegrator::fFunction
private

Definition at line 357 of file GSLMCIntegrator.h.

◆ fRelTol

double ROOT::Math::GSLMCIntegrator::fRelTol
private

Definition at line 346 of file GSLMCIntegrator.h.

◆ fResult

double ROOT::Math::GSLMCIntegrator::fResult
private

Definition at line 350 of file GSLMCIntegrator.h.

◆ fRng

GSLRngWrapper* ROOT::Math::GSLMCIntegrator::fRng
private

Definition at line 341 of file GSLMCIntegrator.h.

◆ fStatus

int ROOT::Math::GSLMCIntegrator::fStatus
private

Definition at line 352 of file GSLMCIntegrator.h.

◆ fType

MCIntegration::Type ROOT::Math::GSLMCIntegrator::fType
private

Definition at line 339 of file GSLMCIntegrator.h.

◆ fWorkspace

GSLMCIntegrationWorkspace* ROOT::Math::GSLMCIntegrator::fWorkspace
private

Definition at line 356 of file GSLMCIntegrator.h.

Libraries for ROOT::Math::GSLMCIntegrator:
[legend]

The documentation for this class was generated from the following files: