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  Vladimir Lyubushkin
18  Joint Institute for Nuclear Research \n
19 
20  Vadim Naumov <vnaumov@theor.jinr.ru>
21  Joint Institute for Nuclear Research \n
22 
23  based on code of: \n
24  Costas Andreopoulos <constantinos.andreopoulos \at cern.ch>
25  University of Liverpool & STFC Rutherford Appleton Laboratory
26 
27 \created May 05, 2017
28 
29 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
30  For the full text of the license visit http://copyright.genie-mc.org
31 
32 */
33 //____________________________________________________________________________
34 
35 #ifndef _SMITH_MONIZ_QEL_XSEC_H_
36 #define _SMITH_MONIZ_QEL_XSEC_H_
37 
38 #include <Math/IFunction.h>
39 
42 
43 namespace genie {
44 
45 
46 
48 
49 public:
52  virtual ~SmithMonizQELCCXSec();
53 
54  //! XSecIntegratorI interface implementation
55  double Integrate(const XSecAlgorithmI * model, const Interaction * i) const;
56 
57  //! Overload the Algorithm::Configure() methods to load private data
58  //! members from configuration options
59  void Configure(const Registry & config);
60  void Configure(string config);
61 
62 protected:
63  string fGSLIntgType2D; ///< name of GSL 2D numerical integrator
64  double fGSLRelTol2D; ///< required relative tolerance (error) for 2D integrator
65 
66 private:
68 
69  void LoadConfig (void);
70 
71 };
72 
73 //_____________________________________________________________________________________
74 //
75 // GSL wrappers
76 //
77 //_____________________________________________________________________________________
78 
79  namespace utils {
80  namespace gsl {
81 
82  class d2Xsec_dQ2dv: public ROOT::Math::IBaseFunctionMultiDim
83  {
84  public:
85  d2Xsec_dQ2dv(const XSecAlgorithmI * m, const Interaction * i);
86  ~d2Xsec_dQ2dv();
87  // ROOT::Math::IBaseFunctionMultiDim interface
88  unsigned int NDim (void) const;
89  double DoEval (const double * xin) const;
90  ROOT::Math::IBaseFunctionMultiDim * Clone (void) const;
91 
92  private:
97  };
98 
99 
100  } // gsl namespace
101  } // utils namespace
102 
103 } // genie namespace
104 #endif // _SMITH_MONIZ_QEL_XSEC_H_
Cross Section Calculation Interface.
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
Cross Section Integrator Interface.
A simple [min,max] interval for doubles.
Definition: Range1.h:42
double fGSLRelTol2D
required relative tolerance (error) for 2D integrator
Definition: model.py:1
string fGSLIntgType2D
name of GSL 2D numerical integrator
void Configure(const Registry &config)
Summary information for an interaction.
Definition: Interaction.h:56
static Config * config
Definition: config.cpp:1054
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
Definition: utils.py:1
double Integrate(const XSecAlgorithmI *model, const Interaction *i) const
XSecIntegratorI interface implementation.