Class nucmass_ame (o2scl)¶
-
class nucmass_ame : public o2scl::nucmass_table¶
Masses from the Atomic Mass Evaluation.
This class provides an interface to the atomic mass table using data from [Audi95], [Audi03], [Audi12], [Wang12], [Huang17], [Wang17], [Huang21ta], and [Wang21ta].
To load data from the 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 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 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, e.g., about \( -8 \) MeV for lead. See also the documentation for the class structure for each table entry in o2scl::nucmass_ame::entry.
- Idea for Future:
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?
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 .
-
static const int unc_less_than_half_eV = 4¶
Value computed by .
-
int last¶
The last table index for caching.
-
inline 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
andN
, return the mass excess in MeV.
-
inline virtual bool is_loaded()¶
Returns true if data has been loaded.
-
inline virtual size_t get_nentries()¶
Return number of entries.
-
inline std::string get_reference()¶
Return the reference.
Friends
-
friend void ame_load_ext(nucmass_ame &ame, std::string file_name, std::string table_name, bool exp_only)¶
-
friend void ame_load(nucmass_ame &ame, std::string name, bool exp_only)¶
-
struct entry¶
Atomic mass entry structure.
Atomic mass entry data object for o2scl::nucmass_ame.
This has to be a struct, not a class, so that it can be processed by the HDF5 make table functions.
Public Members
-
int NMZ¶
N-Z.
-
int N¶
Neutron number.
-
int Z¶
Proton number.
-
int A¶
Mass number.
-
char el[4]¶
Element name.
-
char orig[5]¶
Data origin.
-
double mass¶
Mass excess (in keV)
-
double dmass¶
Mass excess uncertainty (in keV)
-
int mass_acc¶
Mass accuracy flag.
-
double be¶
Binding energy (in keV, given in the ‘95 data)
-
double dbe¶
Binding energy uncertainty (in keV, given in the ‘95 data)
-
int be_acc¶
Binding energy accuracy flag.
-
double beoa¶
Binding energy / A (in keV, given in the ‘03 data)
-
double dbeoa¶
Binding energy / A uncertainty (in keV, given in the ‘03 data)
-
int beoa_acc¶
Binding energy / A accuracy flag.
-
char bdmode[3]¶
Beta decay mode.
-
double bde¶
Beta-decay energy (in keV)
-
double dbde¶
Beta-decay energy uncertainty (in keV)
-
int bde_acc¶
Beta-decay energy accuracy flag.
-
int A2¶
Mass number (reported twice in original table)
-
double amass¶
Atomic mass (in keV)
-
double damass¶
Atomic mass uncertainty (in keV)
-
int amass_acc¶
Atomic mass accuracy flag.
-
int NMZ¶