MARLEY (Model of Argon Reaction Low Energy Yields)
v1.2.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
|
Container for nuclear structure information organized by nuclide. More...
#include <StructureDatabase.hh>
Public Member Functions | |
StructureDatabase () | |
Creates an empty database. | |
void | add_decay_scheme (int pdg, std::unique_ptr< marley::DecayScheme > &ds) |
Add a DecayScheme object to the database that contains discrete level data for a specific nuclide. More... | |
void | clear () |
Removes all previously stored data from the database. | |
const std::unordered_map< int, std::unique_ptr< marley::DecayScheme > > & | decay_schemes () const |
Retrieves a const reference to the table of DecayScheme objects. | |
void | emplace_decay_scheme (int pdg, const std::string &filename, DecayScheme::FileFormat format=DecayScheme::FileFormat::talys) |
Construct and add a DecayScheme object to the database that contains discrete level data for a specific nuclide. More... | |
std::set< int > | find_all_nuclides (const std::string &filename, DecayScheme::FileFormat format=DecayScheme::FileFormat::talys) |
Create a set of Particle Data Group codes for every nuclide in a discrete level data file. More... | |
marley::DecayScheme * | get_decay_scheme (const int particle_id) |
Retrieves discrete level data from the database. More... | |
marley::DecayScheme * | get_decay_scheme (const int Z, const int A) |
Retrieves discrete level data from the database. More... | |
int | get_fragment_l_max () const |
Returns the maximum orbital angular momentum to consider when simulating fragment emission to the continuum. | |
int | get_gamma_l_max () const |
Returns the maximum multipolarity to consider when simulating gamma-ray emission to the continuum. | |
marley::GammaStrengthFunctionModel & | get_gamma_strength_function_model (const int nuc_pdg) |
Retrieves a gamma-ray strength function model object from the database, creating it if one did not already exist. More... | |
marley::GammaStrengthFunctionModel & | get_gamma_strength_function_model (const int Z, const int A) |
Retrieves a gamma-ray strength function model object from the database, creating it if one did not already exist. More... | |
marley::LevelDensityModel & | get_level_density_model (const int nucleus_pid) |
Retrieves a level density model object from the database, creating it if one did not already exist. More... | |
marley::LevelDensityModel & | get_level_density_model (const int Z, const int A) |
Retrieves a level density model object from the database, creating it if one did not already exist. More... | |
marley::OpticalModel & | get_optical_model (const int Z, const int A) |
Retrieves an optical model object from the database, creating it if one did not already exist. More... | |
marley::OpticalModel & | get_optical_model (int nucleus_pid) |
Retrieves an optical model object from the database, creating it if one did not already exist. More... | |
void | remove_decay_scheme (int pdg) |
Deletes the discrete level data in the database associated with a given nuclide. More... | |
void | set_fragment_l_max (int ell) |
Sets the maximum orbital angular momentum to consider when simulating fragment emission to the continuum. | |
void | set_gamma_l_max (int ell) |
Sets the maximum multipolarity to consider when simulating gamma-ray emission to the continuum. | |
Static Public Member Functions | |
static const std::map< int, marley::Fragment > & | fragments () |
Retrieves a const reference to the table of Fragment objects. | |
static const marley::Fragment * | get_fragment (const int fragment_pdg) |
Retrieves nuclear fragment data from the database. More... | |
static const marley::Fragment * | get_fragment (const int Z, const int A) |
Retrieves nuclear fragment data from the database. More... | |
static void | get_gs_spin_parity (const int Z, const int A, int &twoJ, marley::Parity &Pi) |
Looks up the ground-state spin-parity for a particular nuclide. More... | |
static void | get_gs_spin_parity (int nuc_pdg, int &twoJ, marley::Parity &Pi) |
Looks up the ground-state spin-parity for a particular nuclide. More... | |
Container for nuclear structure information organized by nuclide.
Currently, the StructureDatabase object can hold nuclear discrete level data (DecayScheme objects), optical models (OpticalModel objects), \(\gamma\)-ray strength function models (GammaStrengthFunctionModel objects), and level density models (LevelDensityModel objects)
void marley::StructureDatabase::add_decay_scheme | ( | int | pdg, |
std::unique_ptr< marley::DecayScheme > & | ds | ||
) |
Add a DecayScheme object to the database that contains discrete level data for a specific nuclide.
pdg | PDG code for the desired nuclide |
ds | A unique_ptr to DecayScheme object to move into the database. |
void marley::StructureDatabase::emplace_decay_scheme | ( | int | pdg, |
const std::string & | filename, | ||
DecayScheme::FileFormat | format = DecayScheme::FileFormat::talys |
||
) |
Construct and add a DecayScheme object to the database that contains discrete level data for a specific nuclide.
pdg | PDG code for the desired nuclide |
filename | Name of the file that contains the discrete level data |
format | DecayScheme::FileFormat specifier that indicates which nuclear data format is used in the file |
std::set< int > marley::StructureDatabase::find_all_nuclides | ( | const std::string & | filename, |
DecayScheme::FileFormat | format = DecayScheme::FileFormat::talys |
||
) |
Create a set of Particle Data Group codes for every nuclide in a discrete level data file.
filename | Name of the file that contains the discrete level data |
format | DecayScheme::FileFormat specifier that indicates which nuclear data format is used in the file |
marley::DecayScheme * marley::StructureDatabase::get_decay_scheme | ( | const int | particle_id | ) |
Retrieves discrete level data from the database.
particle_id | PDG code for the desired nuclide |
marley::DecayScheme * marley::StructureDatabase::get_decay_scheme | ( | const int | Z, |
const int | A | ||
) |
Retrieves discrete level data from the database.
Z | atomic number |
A | mass number |
|
static |
Retrieves nuclear fragment data from the database.
fragment_pdg | PDG code for the desired fragment |
|
static |
marley::GammaStrengthFunctionModel & marley::StructureDatabase::get_gamma_strength_function_model | ( | const int | nuc_pdg | ) |
Retrieves a gamma-ray strength function model object from the database, creating it if one did not already exist.
nuc_pdg | PDG code for the nuclide of interest |
marley::GammaStrengthFunctionModel & marley::StructureDatabase::get_gamma_strength_function_model | ( | const int | Z, |
const int | A | ||
) |
Retrieves a gamma-ray strength function model object from the database, creating it if one did not already exist.
Z | atomic number |
A | mass number |
|
static |
Looks up the ground-state spin-parity for a particular nuclide.
[in] | Z | Proton number for the nuclide of interest |
[in] | A | Mass number for the nuclide of interest |
[out] | twoJ | Two times the ground-state nuclear spin |
[out] | Pi | Ground-state nuclear parity |
|
static |
Looks up the ground-state spin-parity for a particular nuclide.
[in] | nuc_pdg | PDG code for the nuclide of interest |
[out] | twoJ | Two times the ground-state nuclear spin |
[out] | Pi | Ground-state nuclear parity |
marley::LevelDensityModel & marley::StructureDatabase::get_level_density_model | ( | const int | nucleus_pid | ) |
Retrieves a level density model object from the database, creating it if one did not already exist.
nucleus_pid | PDG particle ID for the desired nucleus |
marley::LevelDensityModel & marley::StructureDatabase::get_level_density_model | ( | const int | Z, |
const int | A | ||
) |
Retrieves a level density model object from the database, creating it if one did not already exist.
Z | atomic number |
A | mass number |
marley::OpticalModel & marley::StructureDatabase::get_optical_model | ( | const int | Z, |
const int | A | ||
) |
Retrieves an optical model object from the database, creating it if one did not already exist.
Z | atomic number |
A | mass number |
marley::OpticalModel & marley::StructureDatabase::get_optical_model | ( | int | nucleus_pid | ) |
Retrieves an optical model object from the database, creating it if one did not already exist.
particle_id | PDG particle ID for the desired nuclide |
void marley::StructureDatabase::remove_decay_scheme | ( | int | pdg | ) |
Deletes the discrete level data in the database associated with a given nuclide.
If a decay scheme does not exist in the database for the requested nuclide, then this function will return without making any changes.
pdg | PDG code for the nuclide to remove |