MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Loading...
Searching...
No Matches
marley::BBBA05SachsFormFactors Class Reference
Inheritance diagram for marley::BBBA05SachsFormFactors:
marley::SachsFormFactors

Public Member Functions

virtual double GEn (double Q2) override final
 
virtual double GEp (double Q2) override final
 
virtual double GMn (double Q2) override final
 
virtual double GMp (double Q2) override final
 
- Public Member Functions inherited from marley::SachsFormFactors
virtual double tau (double Q2)
 

Protected Member Functions

double bbba05_G (double tau, const std::vector< double > &a_coeffs, const std::vector< double > &b_coeffs)
 Helper function for the form factor calculation.
 

Detailed Description

Definition at line 87 of file NucleonFormFactors.hh.

Constructor & Destructor Documentation

◆ BBBA05SachsFormFactors()

marley::BBBA05SachsFormFactors::BBBA05SachsFormFactors ( )
inline

Definition at line 91 of file NucleonFormFactors.hh.

91{}

Member Function Documentation

◆ bbba05_G()

double marley::BBBA05SachsFormFactors::bbba05_G ( double tau,
const std::vector< double > & a_coeffs,
const std::vector< double > & b_coeffs )
protected

Helper function for the form factor calculation.

Implements Eq. (6) from Nucl. Phys. B Proc. Suppl. 159, 127 (2006) https://doi.org/10.1016/j.nuclphysbps.2006.08.028

Parameters
tauDimensionless negative square of the four-momentum transfer \( \tau = \frac{ Q^{2} }{ 4 m_N^{2} } \)
a_coeffsCoefficients \( a_k \) of polynomial involving \(\tau^k \) in the numerator
b_coeffsCoefficients \( b_k \) of polynomial involving \(\tau^k \) in the denominator

Definition at line 38 of file NucleonFormFactors.cc.

41{
42 double numer = 0.;
43 double denom = 1.;
44
45 double tau_pow = 1.;
46 for ( const auto& a : a_coeffs ) {
47 numer += a * tau_pow;
48 tau_pow *= tau;
49 }
50
51 tau_pow = tau;
52 for ( const auto& b : b_coeffs ) {
53 denom += b * tau_pow;
54 tau_pow *= tau;
55 }
56
57 double ff_G = numer / denom;
58 return ff_G;
59}
virtual double tau(double Q2)

References marley::SachsFormFactors::tau().

Referenced by GEn(), GEp(), GMn(), and GMp().

◆ GEn()

double marley::BBBA05SachsFormFactors::GEn ( double Q2)
finaloverridevirtual

Neutron electric form factor

Parameters
Q2Negative square \( Q^{2} \) of the four-momentum transfer (MeV 2)

Implements marley::SachsFormFactors.

Definition at line 75 of file NucleonFormFactors.cc.

75 {
76 double tau = this->tau( Q2 );
77 // TODO: remove hard-coding here and make the parameters configurable
78 return this->bbba05_G( tau, { 0., 1.25, 1.30 },
79 { -9.86, 305., -758., 802. } );
80}
double bbba05_G(double tau, const std::vector< double > &a_coeffs, const std::vector< double > &b_coeffs)
Helper function for the form factor calculation.

References bbba05_G(), and marley::SachsFormFactors::tau().

◆ GEp()

double marley::BBBA05SachsFormFactors::GEp ( double Q2)
finaloverridevirtual

Proton electric form factor

Parameters
Q2Negative square \( Q^{2} \) of the four-momentum transfer (MeV 2)

Implements marley::SachsFormFactors.

Definition at line 61 of file NucleonFormFactors.cc.

61 {
62 double tau = this->tau( Q2 );
63 // TODO: remove hard-coding here and make the parameters configurable
64 return marley_utils::g_V * this->bbba05_G( tau, { 1., -0.0578 },
65 { 11.1, 13.6, 33. } );
66}

References bbba05_G(), and marley::SachsFormFactors::tau().

◆ GMn()

double marley::BBBA05SachsFormFactors::GMn ( double Q2)
finaloverridevirtual

Neutron magnetic form factor

Parameters
Q2Negative square \( Q^{2} \) of the four-momentum transfer (MeV 2)

Implements marley::SachsFormFactors.

Definition at line 82 of file NucleonFormFactors.cc.

82 {
83 double tau = this->tau( Q2 );
84 // TODO: remove hard-coding here and make the parameters configurable
85 return marley_utils::mu_n * this->bbba05_G( tau, { 1., 1.81 },
86 { 14.1, 20.7, 68.7 } );
87}

References bbba05_G(), and marley::SachsFormFactors::tau().

◆ GMp()

double marley::BBBA05SachsFormFactors::GMp ( double Q2)
finaloverridevirtual

Proton magnetic form factor

Parameters
Q2Negative square \( Q^{2} \) of the four-momentum transfer (MeV 2)

Implements marley::SachsFormFactors.

Definition at line 68 of file NucleonFormFactors.cc.

68 {
69 double tau = this->tau( Q2 );
70 // TODO: remove hard-coding here and make the parameters configurable
71 return marley_utils::mu_p * this->bbba05_G( tau, { 1., 0.150 },
72 { 11.1, 19.6, 7.54 } );
73}

References bbba05_G(), and marley::SachsFormFactors::tau().


The documentation for this class was generated from the following files: