GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SmithMonizQELCCXSec.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::SmithMonizQELCCXSec
5 
6 \brief Computes the Quasi Elastic (QEL) cross section by Smith Moniz model. \n
7  Is a concrete implementation of the XSecIntegratorI interface. \n
8 
9 \author Igor Kakorin <kakorin@jinr.ru>
10  Joint Institute for Nuclear Research \n
11 
12  adapted from fortran code provided by: \n
13 
14  Konstantin Kuzmin <kkuzmin@theor.jinr.ru>
15  Joint Institute for Nuclear Research \n
16 
17  Vadim Naumov <vnaumov@theor.jinr.ru>
18  Joint Institute for Nuclear Research \n
19 
20  based on code of: \n
21  Costas Andreopoulos <c.andreopoulos \at cern.ch>
22  University of Liverpool
23 
24 \created May 05, 2017
25 
26 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
27  For the full text of the license visit http://copyright.genie-mc.org
28 
29 */
30 //____________________________________________________________________________
31 
32 #ifndef _SMITH_MONIZ_QEL_XSEC_H_
33 #define _SMITH_MONIZ_QEL_XSEC_H_
34 
35 #include <Math/IFunction.h>
36 
39 
40 namespace genie {
41 
42 
43 
45 
46 public:
48  SmithMonizQELCCXSec(string config);
49  virtual ~SmithMonizQELCCXSec();
50 
51  //! XSecIntegratorI interface implementation
52  double Integrate(const XSecAlgorithmI * model, const Interaction * i) const;
53 
54  //! Overload the Algorithm::Configure() methods to load private data
55  //! members from configuration options
56  void Configure(const Registry & config);
57  void Configure(string config);
58 
59 protected:
60  string fGSLIntgType2D; ///< name of GSL 2D numerical integrator
61  double fGSLRelTol2D; ///< required relative tolerance (error) for 2D integrator
62 
63 private:
65 
66  void LoadConfig (void);
67 
68 };
69 
70 //_____________________________________________________________________________________
71 //
72 // GSL wrappers
73 //
74 //_____________________________________________________________________________________
75 
76  namespace utils {
77  namespace gsl {
78 
79  class d2Xsec_dQ2dv: public ROOT::Math::IBaseFunctionMultiDim
80  {
81  public:
82  d2Xsec_dQ2dv(const XSecAlgorithmI * m, const Interaction * i);
83  ~d2Xsec_dQ2dv();
84  // ROOT::Math::IBaseFunctionMultiDim interface
85  unsigned int NDim (void) const;
86  double DoEval (const double * xin) const;
87  ROOT::Math::IBaseFunctionMultiDim * Clone (void) const;
88 
89  private:
94  };
95 
96 
97  } // gsl namespace
98  } // utils namespace
99 
100 } // genie namespace
101 #endif // _SMITH_MONIZ_QEL_XSEC_H_
Cross Section Calculation Interface.
Cross Section Integrator Interface.
A simple [min,max] interval for doubles.
Definition: Range1.h:42
double fGSLRelTol2D
required relative tolerance (error) for 2D integrator
string fGSLIntgType2D
name of GSL 2D numerical integrator
void Configure(const Registry &config)
Summary information for an interaction.
Definition: Interaction.h:56
Computes the Quasi Elastic (QEL) cross section by Smith Moniz model. Is a concrete implementation o...
Contains auxiliary functions for Smith-Moniz model. .
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
double DoEval(const double *xin) const
ROOT::Math::IBaseFunctionMultiDim * Clone(void) const
static constexpr double m
Definition: Units.h:71
double Integrate(const XSecAlgorithmI *model, const Interaction *i) const
XSecIntegratorI interface implementation.
d2Xsec_dQ2dv(const XSecAlgorithmI *m, const Interaction *i)