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. | |
Public Member Functions inherited from o2scl::nucmass_table | |
| virtual double | mass_excess_d (double Z, double N) |
Given Z and N, return the mass excess in MeV. | |
Public Member Functions inherited from o2scl::nucmass | |
| 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) | |
Public Member Functions inherited from o2scl::nucmass_info | |
| 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 | Ztoname (size_t Z) |
| Return the element name given Z. | |
| std::string | tostring (size_t Z, size_t N) |
| Return a string of the form "Pb208" for a given Z and N. More... | |
Friends | |
| void | o2scl_hdf::ame_load_ext (nucmass_ame &ame, std::string file_name, std::string table_name, bool exp_only) |
| void | o2scl_hdf::ame_load (nucmass_ame &ame, std::string name, bool exp_only) |
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 . | |
| entry * | mass |
| The array containing the mass data of length ame::n. | |
| int | last |
| The last table index for caching. | |
| 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. | |
| size_t | get_nentries () |
| Return number of entries. | |
| std::string | get_reference () |
| Return the reference. | |
Additional Inherited Members | |
Public Attributes inherited from o2scl::nucmass_table | |
| size_t | n |
| The number of entries. | |
| std::string | reference |
| The reference for the original data. | |
Public Attributes inherited from o2scl::nucmass | |
| double | m_neut |
Neutron mass in (defaults to o2scl_mks::mass_neutron converted into MeV) | |
| double | m_prot |
Proton mass in (defaults to o2scl_mks::mass_proton converted into MeV) | |
| double | m_elec |
Electron mass in (defaults to o2scl_mks::mass_electron converted into MeV) | |
| double | m_amu |
Atomic mass unit in (defaults to o2scl_mks::unified_atomic_mass converted into MeV) | |
Protected Types inherited from o2scl::nucmass_info | |
| typedef std::map< std::string, int, std::greater< std::string > >::iterator | table_it |
| A convenient typedef for an iterator for element_table. | |
Protected Attributes inherited from o2scl::nucmass_info | |
| std::vector< std::string > | name_list |
| Element names. | |
| 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. | |
Static Protected Attributes inherited from o2scl::nucmass_info | |
| static const int | nelements =119 |
| The number of elements (proton number) | |
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).