MARLEY (Model of Argon Reaction Low Energy Yields)  v1.0.0
A Monte Carlo event generator for tens-of-MeV neutrino-nucleus interactions in liquid argon
 All Classes Functions Variables Enumerations Pages
Public Types | Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
marley::GammaStrengthFunctionModel Class Referenceabstract

Abstract base class for models of gamma-ray strength functions. More...

#include <GammaStrengthFunctionModel.hh>

Inheritance diagram for marley::GammaStrengthFunctionModel:
marley::StandardLorentzianModel marley::WeisskopfSingleParticleModel

Public Types

enum  TransitionType { electric, magnetic, unphysical }
 Electromagnetic transitions in nuclei may be classified by their multipolarity (electric vs. magnetic multipole radiation)
 

Public Member Functions

 GammaStrengthFunctionModel (int Z, int A)
 
virtual double strength_function (TransitionType type, int l, double e_gamma)=0
 Returns the gamma-ray strength function (MeV –2 \(\ell\)–1) for the requested gamma energy and multipolarity. More...
 
virtual double transmission_coefficient (TransitionType type, int l, double e_gamma)=0
 Returns the gamma-ray transmission coefficient (dimensionless) for the requested gamma energy and multipolarity. More...
 
double transmission_coefficient (double Exi, int twoJ, marley::Parity Pi, marley::Level &level_f)
 Returns the gamma-ray transmission coefficient (dimensionless) for a transition from a given initial state to a final discrete Level. More...
 

Static Public Member Functions

static TransitionType determine_transition_type (int twoJi, marley::Parity Pi, int twoJf, marley::Parity Pf, int &l)
 Determines whether a given electromagnetic transition between two nuclear states corresponds to electric or magnetic multipole radiation. More...
 
static TransitionType determine_transition_type (int twoJi, marley::Parity Pi, marley::Level &level_f, int &l)
 Determines whether a given electromagnetic transition between two nuclear states corresponds to electric or magnetic multipole radiation. More...
 
static TransitionType determine_transition_type (marley::Level &level_i, marley::Level &level_f, int &l)
 Determines whether a given electromagnetic transition between two nuclear states corresponds to electric or magnetic multipole radiation. More...
 

Static Protected Member Functions

static void check_multipolarity (int l)
 Check that l > 0 and throw a marley::Error if it is not. More...
 

Protected Attributes

int A_
 Mass number.
 
int Z_
 Atomic number.
 

Detailed Description

Abstract base class for models of gamma-ray strength functions.

Classes derived from GammaStrengthFunctionModel may be used to simulate gamma-ray emission in situations where nuclear level data are unavailable. In particular, the HauserFeshbachDecay class uses instances of GammaStrengthFunctionModel to model the competition between gamma-ray emission and particle evaporation for highly-excited nuclear states.

Constructor & Destructor Documentation

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

Member Function Documentation

void marley::GammaStrengthFunctionModel::check_multipolarity ( int  l)
staticprotected

Check that l > 0 and throw a marley::Error if it is not.

Todo:
Improve error message
TrType marley::GammaStrengthFunctionModel::determine_transition_type ( int  twoJi,
marley::Parity  Pi,
int  twoJf,
marley::Parity  Pf,
int &  l 
)
static

Determines whether a given electromagnetic transition between two nuclear states corresponds to electric or magnetic multipole radiation.

Parameters
twoJiTwo times the initial nuclear spin
PiInitial parity
twoJfTwo times the final nuclear spin
PfFinal parity
[out]lMultipolarity of the transition ( \(\ell\) = 1 dipole, \(\ell\) = 2 quadrupole, )
Note
This function returns TransitionType::unphysical if the requested transition is impossible (e.g., nuclear spin changes by half, initial and final spins are both zero)
TrType marley::GammaStrengthFunctionModel::determine_transition_type ( int  twoJi,
marley::Parity  Pi,
marley::Level level_f,
int &  l 
)
static

Determines whether a given electromagnetic transition between two nuclear states corresponds to electric or magnetic multipole radiation.

Parameters
twoJiTwo times the initial nuclear spin
PiInitial parity
[in]level_fReference to the final nuclear Level
[out]lMultipolarity of the transition ( \(\ell\) = 1 dipole, \(\ell\) = 2 quadrupole, )
Note
This function returns TransitionType::unphysical if the requested transition is impossible (e.g., nuclear spin changes by half, initial and final spins are both zero)
TrType marley::GammaStrengthFunctionModel::determine_transition_type ( marley::Level level_i,
marley::Level level_f,
int &  l 
)
static

Determines whether a given electromagnetic transition between two nuclear states corresponds to electric or magnetic multipole radiation.

Parameters
[in]level_iReference to the initial nuclear Level
[in]level_fReference to the final nuclear Level
[out]lMultipolarity of the transition ( \(\ell\) = 1 dipole, \(\ell\) = 2 quadrupole, )
Note
This function returns TransitionType::unphysical if the requested transition is impossible (e.g., nuclear spin changes by half, initial and final spins are both zero)
virtual double marley::GammaStrengthFunctionModel::strength_function ( TransitionType  type,
int  l,
double  e_gamma 
)
pure virtual

Returns the gamma-ray strength function (MeV –2 \(\ell\)–1) for the requested gamma energy and multipolarity.

Parameters
typeElectric or magnetic transition
lMultipolarity of the transition
e_gammaGamma-ray energy (MeV)

Implemented in marley::StandardLorentzianModel, and marley::WeisskopfSingleParticleModel.

virtual double marley::GammaStrengthFunctionModel::transmission_coefficient ( TransitionType  type,
int  l,
double  e_gamma 
)
pure virtual

Returns the gamma-ray transmission coefficient (dimensionless) for the requested gamma energy and multipolarity.

The gamma-ray transmission coefficient and strength function are related via \(\text{T}_{\text{X}\ell}(\text{E}_\gamma) = 2\pi f_{\text{X}\ell}(\text{E}_\gamma)\text{E}_\gamma^{(2\ell + 1)},\) where X is the type of transition (electric or magnetic), \(\ell\) is the multipolarity, \(\text{T}_{\text{X}\ell}\) is the transmission coefficient, \(f_{\text{X}\ell}\) is the strength function, and \(\text{E}_\gamma\) is the gamma-ray energy.

Parameters
typeElectric or magnetic transition
lMultipolarity of the transition
e_gammaGamma-ray energy (MeV)

Implemented in marley::StandardLorentzianModel, and marley::WeisskopfSingleParticleModel.

double marley::GammaStrengthFunctionModel::transmission_coefficient ( double  Exi,
int  twoJ,
marley::Parity  Pi,
marley::Level level_f 
)

Returns the gamma-ray transmission coefficient (dimensionless) for a transition from a given initial state to a final discrete Level.

Parameters
ExiInitial nuclear excitation energy
twoJTwo times the initial nuclear spin
PiInitial nuclear parity
[in]level_fReference to the final nuclear Level

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