MARLEY (Model of Argon Reaction Low Energy Yields)  v1.2.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Public Member Functions | Protected Attributes | List of all members
marley::OpticalModel Class Referenceabstract

Abstract base class for nuclear optical model implementations. More...

#include <OpticalModel.hh>

Inheritance diagram for marley::OpticalModel:
marley::KoningDelarocheOpticalModel

Public Member Functions

 OpticalModel (int Z, int A)
 
int A () const
 Get the mass number.
 
virtual std::complex< double > optical_model_potential (double r, double fragment_KE_lab, int fragment_pdg, int two_j, int l, int two_s, int target_charge=0)=0
 Calculate the optical model potential (including the Coulomb potential) More...
 
virtual double total_cross_section (double fragment_KE_lab, int fragment_pdg, int two_s, size_t l_max, int target_charge=0)=0
 Compute the energy-averaged total cross section (MeV -2) for a nuclear fragment projectile. More...
 
virtual double transmission_coefficient (double total_KE_CM, int fragment_pdg, int two_j, int l, int two_s, int target_charge=0)=0
 Calculate the transmission coefficient for a nuclear fragment. More...
 
int Z () const
 Get the atomic number.
 

Protected Attributes

int A_
 
int Z_
 

Detailed Description

Abstract base class for nuclear optical model implementations.

Constructor & Destructor Documentation

◆ OpticalModel()

marley::OpticalModel::OpticalModel ( int  Z,
int  A 
)
inline
Parameters
ZAtomic number of the desired nuclide
AMass number of the desired nuclide

Member Function Documentation

◆ optical_model_potential()

virtual std::complex<double> marley::OpticalModel::optical_model_potential ( double  r,
double  fragment_KE_lab,
int  fragment_pdg,
int  two_j,
int  l,
int  two_s,
int  target_charge = 0 
)
pure virtual

Calculate the optical model potential (including the Coulomb potential)

Parameters
rDistance from nuclear center (fm)
fragment_KE_labFragment kinetic energy (MeV) in the lab frame
fragment_pdgPDG code for the nuclear fragment
two_jTwo times the total angular momentum of the fragment
lOrbital angular momentum of the fragment
two_sTwo times the spin of the fragment
target_chargeNet charge of the target atom
Returns
Complex-valued optical model potential (MeV)

Implemented in marley::KoningDelarocheOpticalModel.

◆ total_cross_section()

virtual double marley::OpticalModel::total_cross_section ( double  fragment_KE_lab,
int  fragment_pdg,
int  two_s,
size_t  l_max,
int  target_charge = 0 
)
pure virtual

Compute the energy-averaged total cross section (MeV -2) for a nuclear fragment projectile.

The total cross section given here by the optical model may be directly compared to experiment. Expressions exist for the optical model elastic and reaction (absorption) cross sections, but these are hard to directly compare to the data because the absorption cross section includes the compound elastic channel.

For more details, see appendix A (especially equation A.12) of S. Gardiner, "Nuclear Effects in Neutrino Detection," PhD thesis, University of California, Davis, 2018. Note that we assume in this function that the target nucleus has zero spin (spherical optical model).

Parameters
fragment_KE_labLab-frame kinetic energy of the incident projectile (MeV)
fragment_pdgProjectile's PDG code
two_sTwo times the spin of the projectile
l_maxThe maximum value of the orbital angular momentum quantum number \(\ell\) to include in the sum over S-matrix elements
target_chargeNet charge of the target atom (used to adjust the atomic mass by the appropriate number of electron masses if the target is ionized)
Returns
Energy-averaged total scattering cross section (MeV -2)

Implemented in marley::KoningDelarocheOpticalModel.

◆ transmission_coefficient()

virtual double marley::OpticalModel::transmission_coefficient ( double  total_KE_CM,
int  fragment_pdg,
int  two_j,
int  l,
int  two_s,
int  target_charge = 0 
)
pure virtual

Calculate the transmission coefficient for a nuclear fragment.

Parameters
total_KE_CMTotal CM frame kinetic energy (MeV)
fragment_pdgPDG code of the fragment
two_jTwo times the total angular momentum of the fragment
lOrbital angular momentum of the fragment
two_sTwo times the spin of the fragment
target_chargeNet charge of the target atom

Implemented in marley::KoningDelarocheOpticalModel.


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