Masses from the Atomic Mass Evaluation. More...
This class provides an interface to the atomic mass table using data from Audi95, Audi03, Audi12, and Wang12. To load data from the O2scl HDF5 data files, use o2scl_hdf::ame_load()
.
The 1995 data provided the binding energy (stored in nucmass_ame::entry::be and nucmass_ame::entry::dbe), while the 2003 data provided the binding energy divided by the mass number (stored in nucmass_ame::entry::beoa and nucmass_ame::entry::dbeoa). When the 1995 data is used, nucmass_ame::entry::beoa and nucmass_ame::entry::dbeoa are calculated automatically, and when the 2003 data is used nucmass_ame::entry::be and nucmass_ame::entry::dbe are calculated automatically. To indicate that O2scl has automatically calculated a value in this way, the associated accuracy field is set to o2scl::nucmass_ame::intl_computed.
Note that all uncertainties are 1 sigma uncertainties.
The functions mass_excess() and o2scl::nucmass::mass_excess_d() directly return the value from the data. For consistency, the functions o2scl::nucmass::binding_energy(), o2scl::nucmass::binding_energy_d(), o2scl::nucmass::total_mass(), and o2scl::nucmass::total_mass_d() return values which are automatically computed from the mass excess with the neutron and proton mass in m_neut and m_prot. In order to obtain the value of the binding energy as reported in the original data instead of the value computed from the mass excess, you can use the function get_ZN(), and access the corresponding entry from the data directly.
In cases where the decimal point in the original table was replaced with a #
, the associated accuracy field is set to o2scl::nucmass_ame::estimated. In cases where the original table contained a asterisk to indicate a value was not calculable, the accuracy field is set to o2scl::nucmass_ame::not_calculable and the value is set to zero. If O2scl internally computed the value because it was not present in the original table, the accuracy field is set to o2scl::nucmass_ame::intl_computed. In cases where either o2scl::nucmass_ame::entry::orig or o2scl::nucmass_ame::entry::bdmode in the original table was blank, the string is set to "blank"
.
In the original table, binding energies are defined with a positive sign, so that lead has a binding energy of +8 MeV and this is what is stored in o2scl::nucmass_ame::entry::be. However, for consistency with the other mass formulas, o2scl::nucmass_ame::binding_energy() gives -8 MeV for lead. See also the documentation for the class structure for each table entry in o2scl::nucmass_ame::entry.
Create a caching and more intelligent search system for the table. The table is sorted by A and then N, so we could probably just copy the search routine from mnmsk_mass, which is sorted by Z and then N (some code written for this, but it doesn't work yet).
Should m_neut and m_prot be set to the neutron and proton masses from the table by default?
Definition at line 123 of file nucmass_ame.h.
#include <nucmass_ame.h>
Data Structures | |
struct | entry |
Atomic mass entry structure. More... | |
Public Member Functions | |
nucmass_ame () | |
Create an AME mass object. | |
virtual const char * | type () |
Return the type, "nucmass_ame" . | |
virtual bool | is_included (int Z, int N) |
Return false if the mass formula does not include specified nucleus. | |
virtual double | mass_excess (int Z, int N) |
Given Z and N , return the mass excess in MeV. | |
entry | get_ZN (int l_Z, int l_N) |
Get element with Z=l_Z and N=l_N (e.g. 82,126). | |
entry | get_ZA (int l_Z, int l_A) |
Get element with Z=l_Z and A=l_A (e.g. 82,208). | |
entry | get_elA (std::string l_el, int l_A) |
Get element with name l_el and A=l_A (e.g. "Pb",208). | |
entry | get (std::string nucleus) |
Get element with string (e.g. "Pb208") | |
bool | is_loaded () |
Returns true if data has been loaded. | |
int | get_nentries () |
Return number of entries. | |
std::string | get_reference () |
Return the reference. | |
![]() | |
virtual double | mass_excess_d (double Z, double N) |
Given Z and N , return the mass excess in MeV. | |
![]() | |
virtual int | get_nucleus (int Z, int N, nucleus &n) |
Fill n with the information from nucleus with the given neutron and proton number. More... | |
virtual double | electron_binding (double Z) |
Return the approximate electron binding energy in MeV. | |
virtual double | binding_energy (int Z, int N) |
Return the binding energy in MeV. More... | |
virtual double | binding_energy_d (double Z, double N) |
Return the binding energy in MeV. More... | |
virtual double | total_mass (int Z, int N) |
Return the total mass of the nucleus (without the electrons) in MeV. | |
virtual double | total_mass_d (double Z, double N) |
Return the total mass of the nucleus (without the electrons) in MeV. | |
virtual double | atomic_mass (int Z, int N) |
Return the atomic mass of the nucleus in MeV (includes electrons and their binding energy) | |
virtual double | atomic_mass_d (double Z, double N) |
Return the atomic mass of the nucleus in MeV (includes electrons and their binding energy) | |
![]() | |
int | parse_elstring (std::string ela, int &Z, int &N, int &A) |
Parse a string representing an element. More... | |
int | eltoZ (std::string el) |
Return Z given the element name abbreviation. More... | |
std::string | Ztoel (size_t Z) |
Return the element name abbreviation given Z. More... | |
std::string | tostring (size_t Z, size_t N) |
Return a string of the form "Pb208" for a given Z and N. More... | |
Static Public Attributes | |
Accuracy modes | |
static const int | measured =0 |
Measured value from source data. | |
static const int | estimated =1 |
Value estimated in source data. | |
static const int | not_calculable =2 |
Value listed in data as not calculable. | |
static const int | intl_computed =3 |
Value computed by O2scl . | |
Protected Attributes | |
int | n |
The number of entries (about 3000). | |
std::string | reference |
The reference for the original data. | |
entry * | mass |
The array containing the mass data of length ame::n. More... | |
int | last |
The last table index for caching. | |
![]() | |
std::map< std::string, int, string_comp > | element_table |
A map containing the proton numbers organized by element abbreviation. | |
std::string | element_list [nelements] |
The list of elements organized by proton number. | |
Friends | |
void | o2scl_hdf::ame_load (nucmass_ame &ame, std::string file_name, std::string table_name) |
void | o2scl_hdf::ame_load (nucmass_ame &ame, std::string name) |
Additional Inherited Members | |
![]() | |
double | m_neut |
Neutron mass in ![]() | |
double | m_prot |
Proton mass in ![]() | |
double | m_elec |
Electron mass in ![]() | |
double | m_amu |
Atomic mass unit in ![]() | |
![]() | |
typedef std::map< std::string, int, string_comp >::iterator | table_it |
A convenient typedef for an iterator for element_table. | |
![]() | |
static const int | nelements =119 |
The number of elements (proton number) | |
|
protected |
Definition at line 280 of file nucmass_ame.h.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).
Hosted at
.