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::HelmNuclearFormFactor Class Reference

#include <NuclearFormFactor.hh>

Inheritance diagram for marley::HelmNuclearFormFactor:
marley::NuclearFormFactor

Public Member Functions

 HelmNuclearFormFactor (int Z, int A)
 
double a () const
 
double c () const
 
virtual double F (double kappa) const override final
 
double s () const
 
void set_a (double a)
 
void set_c (double c)
 
void set_s (double s)
 
void update_effective_radius ()
 
- Public Member Functions inherited from marley::NuclearFormFactor
 NuclearFormFactor (int Z, int A)
 
int A () const
 
int Z () const
 

Protected Attributes

double a_ = 0.52
 
double c_
 
double R_
 Effective nuclear radius (fm)
 
double s_ = 0.9
 Nuclear skin thickness parameter (fm)
 
- Protected Attributes inherited from marley::NuclearFormFactor
int A_
 Nucleon number.
 
int Z_
 Proton number.
 

Additional Inherited Members

- Static Public Member Functions inherited from marley::NuclearFormFactor
static std::shared_ptr< marley::NuclearFormFactorcreate (int Z, int A, const JSON &ff_config)
 

Detailed Description

Implements a nuclear form factor based on Phys. Rev. 104, 1466 (1956). Parameter values are taken J. Cosmol. Astropart. Phys. 4, 012 (2007) which itself took fit results from Astropart. Phys. 6, 87 (1996)

Definition at line 82 of file NuclearFormFactor.hh.

Constructor & Destructor Documentation

◆ HelmNuclearFormFactor()

marley::HelmNuclearFormFactor::HelmNuclearFormFactor ( int Z,
int A )
inline

Definition at line 85 of file NuclearFormFactor.hh.

85 : NuclearFormFactor( Z, A )
86 {
87 c_ = 1.23*std::pow( A, marley_utils::ONE_THIRD ) - 0.6; // fm
88 this->update_effective_radius();
89 }

Member Function Documentation

◆ a()

double marley::HelmNuclearFormFactor::a ( ) const
inline

Definition at line 101 of file NuclearFormFactor.hh.

101{ return a_; }

◆ c()

double marley::HelmNuclearFormFactor::c ( ) const
inline

Definition at line 108 of file NuclearFormFactor.hh.

108{ return c_; }

◆ F()

double marley::HelmNuclearFormFactor::F ( double kappa) const
finaloverridevirtual

Evaluate the nuclear form factor at a given 3-momentum transfer

Parameters
kappaMagnitude of the 3-momentum transfer (MeV)

Implements marley::NuclearFormFactor.

Definition at line 90 of file NuclearFormFactor.cc.

90 {
91 if ( kappa == 0. ) return 1.;
92 double kappa_in_inverse_fm = kappa / marley_utils::hbar_c;
93 double x = kappa_in_inverse_fm * R_;
94 double j1 = ( std::sin( x ) / x - std::cos( x ) ) / x;
95 double F = 3. * j1 / x * std::exp( -kappa_in_inverse_fm
96 * kappa_in_inverse_fm * s_ * s_ / 2. );
97 return F;
98}
double s_
Nuclear skin thickness parameter (fm)
virtual double F(double kappa) const override final
double R_
Effective nuclear radius (fm)

References F(), R_, and s_.

Referenced by F().

◆ s()

double marley::HelmNuclearFormFactor::s ( ) const
inline

Definition at line 95 of file NuclearFormFactor.hh.

95{ return s_; }

◆ set_a()

void marley::HelmNuclearFormFactor::set_a ( double a)
inline

Definition at line 103 of file NuclearFormFactor.hh.

103 {
104 a_ = a;
105 this->update_effective_radius();
106 }

◆ set_c()

void marley::HelmNuclearFormFactor::set_c ( double c)
inline

Definition at line 109 of file NuclearFormFactor.hh.

109 {
110 c_ = c;
111 this->update_effective_radius();
112 }

◆ set_s()

void marley::HelmNuclearFormFactor::set_s ( double s)
inline

Definition at line 96 of file NuclearFormFactor.hh.

96 {
97 s_ = s;
98 this->update_effective_radius();
99 }

◆ update_effective_radius()

void marley::HelmNuclearFormFactor::update_effective_radius ( )
inline

Definition at line 114 of file NuclearFormFactor.hh.

114 {
115 R_ = marley_utils::real_sqrt( c_*c_ + 7.*marley_utils::pi
116 *marley_utils::pi*a_*a_/3. - 5.*s_*s_ );
117 }

Member Data Documentation

◆ a_

double marley::HelmNuclearFormFactor::a_ = 0.52
protected

Definition at line 124 of file NuclearFormFactor.hh.

◆ c_

double marley::HelmNuclearFormFactor::c_
protected

Definition at line 125 of file NuclearFormFactor.hh.

◆ R_

double marley::HelmNuclearFormFactor::R_
protected

Effective nuclear radius (fm)

Definition at line 128 of file NuclearFormFactor.hh.

Referenced by F().

◆ s_

double marley::HelmNuclearFormFactor::s_ = 0.9
protected

Nuclear skin thickness parameter (fm)

Definition at line 123 of file NuclearFormFactor.hh.

Referenced by F().


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