#include #include "Math/GSLMCIntegrator.h" #include "TF2.h" #include "Math/WrappedMultiTF1.h" #include "Math/IntegratorMultiDim.h" #include "TMath.h" #include "Math/Integrator.h" #include "Math/AllIntegrationTypes.h" #include "Math/Functor.h" #include "Math/GaussIntegrator.h" #include int IntegralNumerical() { // Create the function TF2 f("Sin Function", "sin(x) + y", 0, TMath::Pi(), 0 ,1); ROOT::Math::WrappedMultiTF1 wf1(f); // Create the integrator ROOT::Math::GSLMCIntegrator ig(ROOT::Math::IntegrationMultiDim::kVEGAS); // Set parameters of integration ig.SetFunction(wf1); ig.SetRelTolerance(0.001); double xmin[] = {0,0}; double xmax[] = {TMath::PiOver2(), 3}; cout << ig.Integral(xmin, xmax) << endl; return 0; } int main() { return IntegralNumerical(); }