|
MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
|
Discrete level and γ-ray data for a specific nuclide. More...
#include <DecayScheme.hh>
Public Types | |
| enum class | FileFormat { native , talys } |
| The FileFormat type is used to tell the DecayScheme class which format to assume when parsing a discrete level data file. More... | |
Public Member Functions | |
| DecayScheme (int Z, int A) | |
| Create a DecayScheme without any levels. | |
| DecayScheme (int Z, int A, const std::string &filename, FileFormat format=FileFormat::talys) | |
| Create a DecayScheme using discrete level data from a file. | |
| int | A () const |
| Get the mass number. | |
| marley::Level & | add_level (const marley::Level &level) |
| Add a level to the DecayScheme. | |
| void | do_cascade (marley::Level &initial_level, HepMC3::GenEvent &event, marley::Generator &gen, std::shared_ptr< HepMC3::GenParticle > &residue) |
| Simulates nuclear de-excitation via γ-ray emission(s) | |
| const std::vector< std::unique_ptr< marley::Level > > & | get_levels () const |
| Get a const reference to the vector that holds the Level objects. | |
| marley::Level * | get_pointer_to_closest_level (double E_level) |
| Gets a pointer to the Level in the DecayScheme whose excitation energy is closest to E_level. | |
| int | pdg () const |
| Returns the nuclear PDG code corresponding to Z and A. | |
| void | print (std::ostream &out=std::cout) const |
| Print this DecayScheme object to a std::ostream. | |
| void | print_latex_table (std::ostream &ostr=std::cout) |
| Print LaTeX source code that gives a tabular representation of the DecayScheme object. | |
| void | print_report (std::ostream &ostr=std::cout) const |
| Print a human-readable text representation of the DecayScheme object. | |
| void | read_from_stream (std::istream &in) |
| Use a std::istream to initialize this DecayScheme object, replacing any previous data. | |
| int | Z () const |
| Get the atomic number. | |
Protected Member Functions | |
| size_t | level_lower_bound_index (double Ex) |
| Get the index of the first level whose energy is not less than Ex. | |
Protected Attributes | |
| int | A_ |
| Mass number. | |
| std::vector< std::unique_ptr< marley::Level > > | levels_ |
| Level objects owned by this DecayScheme. | |
| int | Z_ |
| Atomic number. | |
Discrete level and γ-ray data for a specific nuclide.
Definition at line 34 of file DecayScheme.hh.
|
strong |
The FileFormat type is used to tell the DecayScheme class which format to assume when parsing a discrete level data file.
Currently, only discrete level data in MARLEY's native format (which may be read from a std::istream to initialize a marley::DecayScheme object via the >> operator) or in the format used by the TALYS nuclear code are allowed.
Definition at line 45 of file DecayScheme.hh.
|
inline |
Definition at line 47 of file DecayScheme.hh.
| marley::DecayScheme::DecayScheme | ( | int | Z, |
| int | A ) |
Create a DecayScheme without any levels.
| Z | Atomic number of the desired nuclide |
| A | Mass number of the desired nuclide |
Definition at line 221 of file DecayScheme.cc.
| marley::DecayScheme::DecayScheme | ( | int | Z, |
| int | A, | ||
| const std::string & | filename, | ||
| FileFormat | format = FileFormat::talys ) |
Create a DecayScheme using discrete level data from a file.
| Z | Atomic number of the desired nuclide |
| A | Mass number of the desired nuclide |
| filename | Name of the file containing the discrete level data |
| format | FileFormat specifier that indicates which nuclear data format is used in the file |
Definition at line 225 of file DecayScheme.cc.
|
inline |
Get the mass number.
Definition at line 155 of file DecayScheme.hh.
References A_.
Referenced by DecayScheme(), and DecayScheme().
| marley::Level & marley::DecayScheme::add_level | ( | const marley::Level & | level | ) |
Add a level to the DecayScheme.
Definition at line 444 of file DecayScheme.cc.
References marley::Level::energy(), level_lower_bound_index(), and levels_.
Referenced by read_from_stream().
| void marley::DecayScheme::do_cascade | ( | marley::Level & | initial_level, |
| HepMC3::GenEvent & | event, | ||
| marley::Generator & | gen, | ||
| std::shared_ptr< HepMC3::GenParticle > & | residue ) |
Simulates nuclear de-excitation via γ-ray emission(s)
Gamma-rays will be randomly emitted until the nucleus reaches its ground state.
| [in] | initial_level | Reference to the first level that will de-excite via γ-ray emission |
| [in,out] | event | Reference to an Event object that will store the emitted γs |
| [in] | gen | Reference to the Generator to use for random sampling |
| qIon | Net charge of the atom or ion whose nucleus is de-exciting |
Definition at line 80 of file DecayScheme.cc.
References A_, marley::Gamma::end_level(), marley::Gamma::energy(), marley::Level::energy(), marley::MassTable::get_atomic_mass(), marley::MassTable::get_particle_mass(), marley::Level::half_life(), marley::MassTable::Instance(), marley::Level::parity(), pdg(), marley::Level::sample_gamma(), HepMC3::GenParticle::set_status(), marley::Level::twoJ(), marley::Generator::uniform_random_double(), and Z_.
Referenced by marley::NucleusDecayer::process_event().
|
inline |
Get a const reference to the vector that holds the Level objects.
Definition at line 158 of file DecayScheme.hh.
References levels_.
| marley::Level * marley::DecayScheme::get_pointer_to_closest_level | ( | double | E_level | ) |
Gets a pointer to the Level in the DecayScheme whose excitation energy is closest to E_level.
| E_level | excitation energy (MeV) |
Definition at line 44 of file DecayScheme.cc.
References level_lower_bound_index(), and levels_.
Referenced by marley::NucleusDecayer::process_event().
|
protected |
Get the index of the first level whose energy is not less than Ex.
| Ex | Excitation energy (MeV) |
Definition at line 435 of file DecayScheme.cc.
References levels_, and marley::Level::make_energy_iterator().
Referenced by add_level(), and get_pointer_to_closest_level().
| int marley::DecayScheme::pdg | ( | ) | const |
Returns the nuclear PDG code corresponding to Z and A.
Definition at line 76 of file DecayScheme.cc.
Referenced by do_cascade().
| void marley::DecayScheme::print | ( | std::ostream & | out = std::cout | ) | const |
Print this DecayScheme object to a std::ostream.
Definition at line 457 of file DecayScheme.cc.
| void marley::DecayScheme::print_latex_table | ( | std::ostream & | ostr = std::cout | ) |
Print LaTeX source code that gives a tabular representation of the DecayScheme object.
Definition at line 368 of file DecayScheme.cc.
| void marley::DecayScheme::print_report | ( | std::ostream & | ostr = std::cout | ) | const |
Print a human-readable text representation of the DecayScheme object.
Definition at line 341 of file DecayScheme.cc.
References levels_.
| void marley::DecayScheme::read_from_stream | ( | std::istream & | in | ) |
Use a std::istream to initialize this DecayScheme object, replacing any previous data.
The expected format for data in the std::istream is the same as the output format in DecayScheme::print()
Definition at line 482 of file DecayScheme.cc.
References A_, marley::Level::add_gamma(), add_level(), marley::MassTable::Instance(), levels_, and Z_.
|
inline |
Get the atomic number.
Definition at line 154 of file DecayScheme.hh.
References Z_.
Referenced by DecayScheme(), and DecayScheme().
|
protected |
Mass number.
Definition at line 122 of file DecayScheme.hh.
Referenced by DecayScheme(), DecayScheme(), A(), do_cascade(), pdg(), print(), print_latex_table(), and read_from_stream().
|
protected |
Level objects owned by this DecayScheme.
Definition at line 125 of file DecayScheme.hh.
Referenced by add_level(), get_levels(), get_pointer_to_closest_level(), level_lower_bound_index(), print(), print_latex_table(), print_report(), and read_from_stream().
|
protected |
Atomic number.
Definition at line 121 of file DecayScheme.hh.
Referenced by DecayScheme(), DecayScheme(), do_cascade(), pdg(), print(), print_latex_table(), read_from_stream(), and Z().