Masses from the Atomic Mass Evaluation. More...
#include <nucmass_ame.h>
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.
Classes | |
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, std::greater< std::string > > | 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, std::greater< std::string > >::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).