Class nucmass_ame (o2scl)¶
-
class
o2scl
::
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, and Wang12. To load data from the
HDF5 data files, useo2scl_hdf::ame_load()
.- Note
This class requires data stored in an HDF file and thus requires HDF support for normal usage.
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 -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).
- Idea for Future:
Should m_neut and m_prot be set to the neutron and proton masses from the table by default?
Accuracy modes
-
const int
measured
= 0¶ Measured value from source data.
-
const int
estimated
= 1¶ Value estimated in source data.
-
const int
not_calculable
= 2¶ Value listed in data as not calculable.
-
const int
intl_computed
= 3¶ Value computed by.
-
int
last
¶ The last table index for caching.
-
const char *
type
()¶ Return the type,
"nucmass_ame"
.
-
bool
is_included
(int Z, int N)¶ Return false if the mass formula does not include specified nucleus.
-
double
mass_excess
(int Z, int N)¶ Given
Z
andN
, return the mass excess in MeV.
-
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.
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