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 <costas.andreopoulos \at stfc.ac.uk>
9  University of Liverpool & STFC Rutherford Appleton Lab
10 
11 \created May 03, 2004
12 
13 \cpright Copyright (c) 2003-2019, The GENIE Collaboration
14  For the full text of the license visit http://copyright.genie-mc.org
15  or see $GENIE/LICENSE
16 */
17 //____________________________________________________________________________
18 
19 #ifndef _XSEC_INTEGRATOR_I_H_
20 #define _XSEC_INTEGRATOR_I_H_
21 
25 
26 namespace genie {
27 
28 class IntegratorI;
29 
30  class XSecIntegratorI : public Algorithm {
31 
32 public:
33  virtual ~XSecIntegratorI();
34 
35  virtual double Integrate(const XSecAlgorithmI * model,
36  const Interaction * interaction
37  /*, const KPhaseSpaceCut * cut=0*/) const= 0;
38 protected:
40  XSecIntegratorI(string name);
41  XSecIntegratorI(string name, string config);
42 
43  const IntegratorI * fIntegrator; ///< GENIE numerical integrator
44 
45  string fGSLIntgType; ///< name of GSL numerical integrator
46  double fGSLRelTol; ///< required relative tolerance (error)
47  int fGSLMaxEval; ///< GSL max evaluations
48  int fGSLMinEval; ///< GSL min evaluations. Ignored by some integrators.
49  unsigned int fGSLMaxSizeOfSubintervals; ///< GSL maximum number of sub-intervals for 1D integrator
50  unsigned int fGSLRule; ///< GSL Gauss-Kronrod integration rule (only for GSL 1D adaptive type)
51 
52 };
53 
54 } // genie namespace
55 #endif // _XSEC_INTEGRATOR_I_H_
Cross Section Calculation Interface.
const XML_Char * name
Definition: expat.h:151
string fGSLIntgType
name of GSL numerical integrator
THE MAIN GENIE PROJECT NAMESPACE
Definition: GeneratorBase.h:8
Cross Section Integrator Interface.
Algorithm abstract base class.
Definition: Algorithm.h:54
const IntegratorI * fIntegrator
GENIE numerical integrator.
Definition: config.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
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
const XML_Char XML_Content * model
Definition: expat.h:151
int fGSLMinEval
GSL min evaluations. Ignored by some integrators.
double fGSLRelTol
required relative tolerance (error)