StrumiaVissaniIBDPXSec.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \class genie::StrumiaVissaniIBDPXSec
5 
6 \brief An implementation of the neutrino - (free) nucleon [inverse beta
7  decay] cross section, valid from the threshold energy (1.806MeV)
8  up to hundreds of MeV. Currently cut off at 1/2 nucleon mass.
9  Based on the Strumia/Vissani paper Phys.Lett.B564:42-54,2003
10 
11 \ref Strumia A., Vissani F., Phys. Lett. B564, pp42-54 (2003)
12 
13 \author Corey Reed <cjreed \at nikhef.nl>
14  Nikhef
15 
16 \created June 22, 2009
17 
18 \cpright Copyright (c) 2003-2020, The GENIE Collaboration
19  For the full text of the license visit http://copyright.genie-mc.org
20 */
21 //____________________________________________________________________________
22 
23 #ifndef _SV_QUASIELASTIC_NU_NUCLEON_XSEC_H_
24 #define _SV_QUASIELASTIC_NU_NUCLEON_XSEC_H_
25 
27 
28 namespace genie {
29 
30 class XSecIntegratorI;
31 
33 
34 public:
37  virtual ~StrumiaVissaniIBDPXSec();
38 
39  //-- XSecAlgorithmI interface implementation
40  double XSec (const Interaction * i, KinePhaseSpace_t k) const;
41  double Integral (const Interaction * i) const;
42  bool ValidProcess (const Interaction * i) const;
43  bool ValidKinematics (const Interaction * i) const;
44 
45  //-- overload the Algorithm::Configure() methods to load private data
46  // members from configuration options
47  void Configure(const Registry & config);
48  void Configure(string config);
49 
50 private:
51  void LoadConfig (void);
52 
53  //-- Routines for calculating the scattering amplitute
54  double dSigDt(const double sMinusU,
55  const double sMinusMnuc,
56  const double t) const;
57  double MtxElm(const double sMinusU,
58  const double t) const;
59  static double MAterm(const double t,
60  const double t2,
61  const double f124,
62  const double f22,
63  const double g124,
64  const double g224meM2,
65  const double f1cf2R8,
66  const double g1cg2R16me,
67  const double g1cFsumR);
68  static double MBterm(const double t,
69  const double f1cf2,
70  const double g1cg2,
71  const double g1cFsumR,
72  const double f22);
73  static double MCterm(const double t,
74  const double f124,
75  const double f22,
76  const double g124);
77  double RadiativeCorr(const double Ee) const;
78  double FinalStateCorr(const double Ee) const;
79 
80  // variables
81  double fCosCabibbo2; // cos^2(cabibbo)
82  double fg1of0; // axial form factor at q2=0
83  double fMa2; // axial mass squared
84  double fMv2; // vector mass squared
85  double fNucleonMMDiff; // nucleon magnetic moment difference
86  double fEpsilon; // small number used to compare floats with 0
87 
88  const XSecIntegratorI * fXSecIntegrator; //! the integrator to get total xsec
89 
90 public:
91  ClassDef(StrumiaVissaniIBDPXSec, 1) // Inverse Beta Decay partial cross section calculation based on a Strumia/Vissani paper
92 };
93 } // genie namespace
94 #endif // _SV_QUASIELASTIC_NU_NUCLEON_XSEC_H_
Cross Section Calculation Interface.
THE MAIN GENIE PROJECT NAMESPACE
Definition: AlgCmp.h:25
Cross Section Integrator Interface.
static double MAterm(const double t, const double t2, const double f124, const double f22, const double g124, const double g224meM2, const double f1cf2R8, const double g1cg2R16me, const double g1cFsumR)
double RadiativeCorr(const double Ee) const
static double MCterm(const double t, const double f124, const double f22, const double g124)
static double MBterm(const double t, const double f1cf2, const double g1cg2, const double g1cFsumR, const double f22)
enum genie::EKinePhaseSpace KinePhaseSpace_t
An implementation of the neutrino - (free) nucleon [inverse beta decay] cross section, valid from the threshold energy (1.806MeV) up to hundreds of MeV. Currently cut off at 1/2 nucleon mass. Based on the Strumia/Vissani paper Phys.Lett.B564:42-54,2003.
Summary information for an interaction.
Definition: Interaction.h:56
double FinalStateCorr(const double Ee) const
static Config * config
Definition: config.cpp:1054
double MtxElm(const double sMinusU, const double t) const
bool ValidKinematics(const Interaction *i) const
Is the input kinematical point a physically allowed one?
double Integral(const Interaction *i) const
bool ValidProcess(const Interaction *i) const
Can this cross section algorithm handle the input process?
double dSigDt(const double sMinusU, const double sMinusMnuc, const double t) const
A registry. Provides the container for algorithm configuration parameters.
Definition: Registry.h:65
double XSec(const Interaction *i, KinePhaseSpace_t k) const
Compute the cross section for the input interaction.
void Configure(const Registry &config)
const XSecIntegratorI * fXSecIntegrator