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

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.
 
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::DecaySchemeget_decay_scheme (const int particle_id)
 Retrieves discrete level data from the database. More...
 
marley::DecaySchemeget_decay_scheme (const int Z, const int A)
 Retrieves discrete level data from the database. More...
 
marley::GammaStrengthFunctionModelget_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::LevelDensityModelget_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::OpticalModelget_optical_model (int nucleus_pid)
 Retrieves an optical model object from the database, creating it if one did not already exist. More...
 
marley::OpticalModelget_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...
 
void remove_decay_scheme (int pdg)
 Deletes the discrete level data in the database associated with a given nuclide. More...
 

Detailed Description

Container for nuclear structure information organized by nuclide.

Currently, the StructureDatabase object can hold nuclear discrete level data (DecayScheme objects), optical models (OpticalModel objects), and level density models (LevelDensityModel objects)

Member Function Documentation

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.

Parameters
pdgPDG code for the desired nuclide
dsA 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.

Parameters
pdgPDG code for the desired nuclide
filenameName of the file that contains the discrete level data
formatDecayScheme::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.

Parameters
filenameName of the file that contains the discrete level data
formatDecayScheme::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.

Parameters
particle_idPDG code for the desired nuclide
Returns
pointer to the requested nuclide's DecayScheme object, or nullptr if one could not be found
marley::DecayScheme * marley::StructureDatabase::get_decay_scheme ( const int  Z,
const int  A 
)

Retrieves discrete level data from the database.

Parameters
Zatomic number
Amass number
Returns
pointer to the requested nuclide's DecayScheme object, or nullptr if one could not be found
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.

Parameters
Zatomic number
Amass number
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.

Parameters
Zatomic number
Amass 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.

Parameters
particle_idPDG particle ID for the desired nuclide
Todo:
add check for invalid nucleus particle ID value
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.

Parameters
Zatomic number
Amass number
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.

Parameters
pdgPDG code for the nuclide to remove

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