19#include "marley/Error.hh"
20#include "marley/Level.hh"
78 type,
double err_low,
double err_high,
163 pdf = 1. + beta_c_cm * cos_theta_c_cm;
166 pdf = (3. - beta_c_cm * cos_theta_c_cm) / 3.;
168 else throw marley::Error(
"Unrecognized transition type encountered"
169 " in marley::MatrixElement::cos_theta_pdf()");
181 else throw marley::Error(
"Unrecognized transition type encountered"
182 " in marley::MatrixElement::type_str()" );
Base class for all exceptions thrown by MARLEY functions.
A discrete nuclear energy level.
double tabulated_level_energy() const
Get the excitation energy (MeV) listed for this level in the reaction matrix element data file.
TransitionType type() const
Get the kind of nuclear transition (e.g., Fermi, Gamow-Teller) represented by the matrix element.
double strength_
Numerical value of the matrix element (dimensionless)
void set_level_energy(double energy)
Set the excitation energy (MeV) of the final-state nuclear level accessed by the matrix element.
double level_energy_
Energy (MeV) of the final-state nuclear level accessed by this matrix element.
std::string type_str() const
Returns a string representation of the transition type for this matrix element.
void set_type(TransitionType type)
Set the kind of nuclear transition (e.g., Fermi, Gamow-Teller) represented by the matrix element.
double strength() const
Get the numerical value (dimensionless) of the matrix element.
MatrixElement(double level_energy, double strength, TransitionType type, double err_low, double err_high, marley::Level *final_level=nullptr)
double level_energy() const
Get the excitation energy (MeV) of the final-state nuclear level accessed by the matrix element.
void set_level(marley::Level *lev)
Set the pointer to the final nuclear Level object accessed by the matrix element.
TransitionType
Enumerated type that represents the possible kinds of nuclear transitions recognized by MARLEY.
void set_strength(double strength)
Set the numerical value (dimensionless) of the matrix element.
double strength_err_high() const
Get the upper uncertainty on the matrix element strength.
marley::Level * final_level_
Pointer to the final Level object for a transition to a discrete nuclear level, or nullptr for an unb...
MatrixElement(double level_energy, double strength, TransitionType type, marley::Level *final_level=nullptr)
Construct a MatrixElement without uncertainty information (errors default to zero)
double strength_err_high_
Upper uncertainty on the matrix element strength (zero if not specified)
double strength_err_low_
Lower uncertainty on the matrix element strength (zero if not specified)
TransitionType type_
The kind of transition represented by this matrix element (Fermi, Gamow-Teller, etc....
marley::Level * level()
Get a pointer to the final-state nuclear Level accessed by the matrix element, or nullptr if it is a ...
double cos_theta_pdf(double cos_theta_c_cm, double beta_c_cm) const
Compute the PDF for the CM frame scattering cosine.
double strength_err_low() const
Get the lower uncertainty on the matrix element strength.
const marley::Level * level() const
Get a pointer to the final-state nuclear Level accessed by the matrix element, or nullptr if it is a ...