XSecIntegratorI.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::XSecIntegratorI
5 
6 \brief Cross Section Integrator Interface.
7 
8 \author Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
9  University of Liverpool & STFC Rutherford Appleton Laboratory
10 
11 \created May 03, 2004
12 
13 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
14  For the full text of the license visit http://copyright.genie-mc.org
15 */
16 //____________________________________________________________________________
17 
18 #ifndef _XSEC_INTEGRATOR_I_H_
19 #define _XSEC_INTEGRATOR_I_H_
20 
24 
25 namespace genie {
26 
27 class IntegratorI;
28 
29  class XSecIntegratorI : public Algorithm {
30 
31 public:
32  virtual ~XSecIntegratorI();
33 
34  virtual double Integrate(const XSecAlgorithmI * model,
35  const Interaction * interaction
36  /*, const KPhaseSpaceCut * cut=0*/) const= 0;
37 protected:
39  XSecIntegratorI(string name);
40  XSecIntegratorI(string name, string config);
41 
42  const IntegratorI * fIntegrator; ///< GENIE numerical integrator
43 
44  string fGSLIntgType; ///< name of GSL numerical integrator
45  double fGSLRelTol; ///< required relative tolerance (error)
46  int fGSLMaxEval; ///< GSL max evaluations
47  int fGSLMinEval; ///< GSL min evaluations. Ignored by some integrators.
48  unsigned int fGSLMaxSizeOfSubintervals; ///< GSL maximum number of sub-intervals for 1D integrator
49  unsigned int fGSLRule; ///< GSL Gauss-Kronrod integration rule (only for GSL 1D adaptive type)
50 
51 };
52 
53 } // genie namespace
54 #endif // _XSEC_INTEGRATOR_I_H_
static QCString name
Definition: declinfo.cpp:673
Cross Section Calculation Interface.
string fGSLIntgType
name of GSL numerical integrator
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
Cross Section Integrator Interface.
Algorithm abstract base class.
Definition: Algorithm.h:53
const IntegratorI * fIntegrator
GENIE numerical integrator.
Definition: model.py:1
unsigned int fGSLRule
GSL Gauss-Kronrod integration rule (only for GSL 1D adaptive type)
Summary information for an interaction.
Definition: Interaction.h:56
static Config * config
Definition: config.cpp:1054
int fGSLMaxEval
GSL max evaluations.
unsigned int fGSLMaxSizeOfSubintervals
GSL maximum number of sub-intervals for 1D integrator.
virtual double Integrate(const XSecAlgorithmI *model, const Interaction *interaction) const =0
int fGSLMinEval
GSL min evaluations. Ignored by some integrators.
double fGSLRelTol
required relative tolerance (error)