![]() |
TkN 2.3
Toolkit for Nuclei
|
Stores information on an experimental measure. More...
Stores information on an experimental measure.
To handle the fact that a measure is always associated to a specific unit and an uncertainty, that can be in some cases assymetric, a dedicated class called tkn::tkmeasure has been created.
In addition, a tkmeasure gives some properties on the measure, like if the measure is uncertain, is coming from a systematic strudy or from calculations. It can also handle the fact that some measures are given as a limit value.
The standard way to access a tkmeasure is using the tkproperty_list::get() method:
cpp tknucleus nuc("14C"); auto measure = nuc.get("lifetime"); cout << measure->get_value() << " " << measure->get_unit() << " +- " << measure->get_error() << endl; shell 5700 y +- 30
To list the accessible tkmeasure properties, use:
cpp tknucleus nuc("14C"); nuc.list_data_properties() shell [ INFO ] nucleus data properties: [ INFO ] Qalpha Qalpha = -12012.500 (0.081) keV [ INFO ] QbetaMinus QbetaMinus = 156.4760 (0.0037) keV [ INFO ] QbetaMinusOneNeutronEmission QbetaMinusOneNeutronEmission = -10396.9000 (0.2696) keV [ INFO ] QbetaMinusTwoNeutronEmission QbetaMinusTwoNeutronEmission = -30460.80000000 (0.00537582) keV [ INFO ] QdeltaAlpha QdeltaAlpha = 2892.4400000 (0.0405445) keV [ INFO ] QdoubleBetaMinus QdoubleBetaMinus = -4987.8900 (0.0254) keV [ INFO ] QdoubleElectronCapture QdoubleElectronCapture = -36934.600 (132.245) keV [ INFO ] QelectronCapture QelectronCapture = -20643.8000 (21.2133) keV [ INFO ] QelectronCaptureOneProtonEmission QelectronCaptureOneProtonEmission = -37928.2000 (10.1805) keV [ INFO ] QpositronEmission QpositronEmission = -21665.8000 (21.2133) keV [ INFO ] XRay_Kalpha1 XRay_Kalpha1 = 0.277 keV [ INFO ] atomic_mass atomic_mass = 12.011 u [ INFO ] atomic_radius_van_der_Waals atomic_radius_van_der_Waals = 170 pm [ INFO ] binding_energy_ldm_fit_overA binding_energy_ldm_fit_overA = -37.0681 (0.0004) keV [ INFO ] binding_energy_overA binding_energy_overA = 7520.3200 (0.0004) keV [ INFO ] boiling_point boiling_point = 4098 K [ INFO ] density density = 2.267 [ INFO ] ionization_energy ionization_energy = 11.26 eV [ INFO ] lifetime lifetime = 5700 (30 ) y [ INFO ] mass_excess mass_excess = 3019.89000 (0.00375) keV [ INFO ] melting_point melting_point = 3823 K [ INFO ] neutronSeparationEnergy neutronSeparationEnergy = 8176.4300 (0.0038) keV [ INFO ] pairingGap pairingGap = 3479.180000 (0.399772) keV [ INFO ] protonSeparationEnergy protonSeparationEnergy = 20831.0000 (1.0001) keV [ INFO ] quadrupoleDeformation quadrupoleDeformation = 0.3593840 (0.0279568) [ INFO ] twoNeutronSeparationEnergy twoNeutronSeparationEnergy = 13122.7000 (0.0039) keV [ INFO ] twoProtonSeparationEnergy twoProtonSeparationEnergy = 36635.8000 (1.9086) keV
The same applies for a tklevel or a tkdecay: cpp tknucleus nuc("132Sn"); auto level = nuc.get_level_scheme()->get_level("2+1"); level->list_data_properties(); shell [ INFO ] data properties: [ INFO ] energy Level energy = 4041.20 (0.15 ) keV [ INFO ] lifetime lifetime = 2.4 (-0.5 ; +0.9 ) fs
In this case, the lifetime uncertainty is asymetric, we can access it as follows:
cpp tknucleus nuc("132Sn"); auto level = nuc.get_level_scheme()->get_level("2+1"); auto lifetime = level->get("lifetime"); cout << lifetime->get_value() << " " << lifetime->get_unit() << " - " << lifetime->get_error_low() << " + " << lifetime->get_error_high() << endl; shell 2.4 fs - 0.5 + 0.9
Definition at line 59 of file tkmeasure.h.
#include <tkmeasure.h>
Public Member Functions | |
| tkmeasure () | |
| tkmeasure (double _value, const tkstring &_unit_name, double _err=0) | |
| tkmeasure (double _value, const tkstring &_unit_name, double _errlow, double _errhigh) | |
| tkmeasure (double _value, const tkunit_manager::units_keys &_unit, double _err=0) | |
| tkmeasure (double _value, const tkunit_manager::units_keys &_unit, double _errlow, double _errhigh) | |
| virtual | ~tkmeasure () override=default |
| double | get_error () const |
| returns the error on the measured value | |
| double | get_error (const tkstring &_unit_name) |
| returns the error on the measured value in the required string unit | |
| double | get_error (const tkunit_manager::units_keys &_unit) |
| returns the error on the measured value in the required unit key | |
| double | get_error_high () const |
| returns the high assymetric error on the measured value | |
| double | get_error_high (const tkstring &_unit_name) |
| returns the high assymetric error on the measured value in the required string unit | |
| double | get_error_high (const tkunit_manager::units_keys &_unit) |
| returns the high assymetric error on the measured value in the required unit key | |
| double | get_error_low () const |
| returns the low assymetric error on the measured value | |
| double | get_error_low (const tkstring &_unit_name) |
| returns the low assymetric error on the measured value in the required string unit | |
| double | get_error_low (const tkunit_manager::units_keys &_unit) |
| returns the low assymetric error on the measured value in the required unit key | |
| int | get_exp_error_precision (const double &_err) const |
| calculate the needed precision for printouts | |
| const tkstring & | get_info_tag () |
| returns the info tag (calculation, systematic, approx value...) | |
| const tkstring & | get_info_tag_const () const |
| const tkstring & | get_type () const |
| returns the measured data type (energy, lifetime...) | |
| tkstring | get_unit () const |
| returns the unit name | |
| tkunit_manager::units_keys | get_unit_key () const |
| returns the unit key | |
| double | get_value () const |
| returns the measure value | |
| double | get_value (const tkstring &_unit_name) |
| returns the measure value in the required string unit | |
| double | get_value (const tkunit_manager::units_keys &_unit) |
| returns the measure value in the required unit key | |
| bool | is_asym_errors () const |
| test is the measure uncertainty is asymmetric | |
| tkmeasure | operator* (double _multiplier) const |
| tkmeasure | operator+ (const tkmeasure &_measure) const |
| tkmeasure | operator- () const |
| tkmeasure | operator- (const tkmeasure &_measure) const |
| void | print (bool with_return=true) |
| print the measured properties | |
| void | set (const double &_val, const tkstring &_unit="") |
| set the measured value and unit. No given units keeps the current one | |
| void | set (const double &_val, const tkunit_manager::units_keys &_unit) |
| set the measured value and unit key | |
| virtual void | set_error (const double &_err) |
| set the error of this measured data | |
| virtual void | set_error (const double &_err_low, const double &_err_high) |
| set the asymetruic error of this value | |
| void | set_info_tag (const tkstring &_tag) |
| define the info tag (calculation, systematic, approx value...) | |
| void | set_type (const tkstring &_type) |
| set the measured data type (energy, lifetime...) | |
| bool | set_unit (const tkstring &_unit_name) |
| set the measured data unit (value and errors) | |
| bool | set_unit (const tkunit_manager::units_keys &_unit) |
| set the measured data unit (value and errors) | |
Public Member Functions inherited from tkproperty | |
| tkproperty () | |
| tkproperty (tkproperty::data_info _info) | |
| virtual | ~tkproperty () |
| void | clear () |
| clear the property | |
| data_info | get_info () |
| to get information about this data | |
| data_info | get_info_const () const |
| tkstring | get_info_str (bool _showknown=true) const |
| to print in string the data_info | |
| tkstring | get_reference () |
| to get the reference of this data | |
| bool | is_converted () const |
| to know if the value has been converted | |
| bool | is_info (data_info _info) const |
| to get some information about this data | |
| bool | is_known () const |
| to get some information about this data | |
| void | set_converted (bool _val=true) |
| to define the value as a converted one | |
| void | set_info (tkproperty::data_info _info) |
| to set some information about this data | |
| void | set_reference (const char *_st) |
| to set the reference of this data | |
Friends | |
| tkmeasure | operator* (double _multiplier, const tkmeasure &obj) |
| std::ostream & | operator<< (std::ostream &os, const tkmeasure *_measure) |
| redefinition of the << operator to take precision into account | |
Additional Inherited Members | |
Public Types inherited from tkproperty | |
| enum | data_info { kKnown , kUnknown , kTentative , kTheo , kAbout , kSystematic , kLimit , kUncertain } |
| flags that qualify a given data More... | |
Static Public Member Functions inherited from tkproperty | |
| static data_info | what_is (const tkstring &_st) |
| It deduces from a string the kind of data. | |
|
inline |
Definition at line 75 of file tkmeasure.h.
Definition at line 76 of file tkmeasure.h.
Definition at line 77 of file tkmeasure.h.
| tkmeasure | ( | double | _value, |
| const tkunit_manager::units_keys & | _unit, | ||
| double | _err = 0 ) |
Definition at line 126 of file tkmeasure.cpp.
| tkmeasure | ( | double | _value, |
| const tkunit_manager::units_keys & | _unit, | ||
| double | _errlow, | ||
| double | _errhigh ) |
Definition at line 134 of file tkmeasure.cpp.
|
overridevirtualdefault |
| double get_error | ( | ) | const |
returns the error on the measured value
Definition at line 249 of file tkmeasure.cpp.
|
inline |
returns the error on the measured value in the required string unit
Definition at line 118 of file tkmeasure.h.
| double get_error | ( | const tkunit_manager::units_keys & | _unit | ) |
returns the error on the measured value in the required unit key
Definition at line 258 of file tkmeasure.cpp.
| double get_error_high | ( | ) | const |
returns the high assymetric error on the measured value
Definition at line 284 of file tkmeasure.cpp.
|
inline |
returns the high assymetric error on the measured value in the required string unit
Definition at line 132 of file tkmeasure.h.
| double get_error_high | ( | const tkunit_manager::units_keys & | _unit | ) |
returns the high assymetric error on the measured value in the required unit key
Definition at line 292 of file tkmeasure.cpp.
| double get_error_low | ( | ) | const |
returns the low assymetric error on the measured value
Definition at line 267 of file tkmeasure.cpp.
|
inline |
returns the low assymetric error on the measured value in the required string unit
Definition at line 125 of file tkmeasure.h.
| double get_error_low | ( | const tkunit_manager::units_keys & | _unit | ) |
returns the low assymetric error on the measured value in the required unit key
Definition at line 275 of file tkmeasure.cpp.
|
inline |
calculate the needed precision for printouts
Definition at line 297 of file tkmeasure.h.
|
inline |
returns the info tag (calculation, systematic, approx value...)
Definition at line 88 of file tkmeasure.h.
|
inline |
Definition at line 89 of file tkmeasure.h.
|
inline |
returns the measured data type (energy, lifetime...)
Definition at line 94 of file tkmeasure.h.
|
inline |
returns the unit name
Definition at line 135 of file tkmeasure.h.
|
inline |
returns the unit key
Definition at line 137 of file tkmeasure.h.
|
inline |
returns the measure value
Definition at line 97 of file tkmeasure.h.
|
inline |
returns the measure value in the required string unit
Definition at line 101 of file tkmeasure.h.
| double get_value | ( | const tkunit_manager::units_keys & | _unit | ) |
returns the measure value in the required unit key
Definition at line 239 of file tkmeasure.cpp.
|
inline |
test is the measure uncertainty is asymmetric
Definition at line 83 of file tkmeasure.h.
|
inline |
Definition at line 257 of file tkmeasure.h.
Definition at line 215 of file tkmeasure.h.
|
inline |
Definition at line 286 of file tkmeasure.h.
Definition at line 290 of file tkmeasure.h.
|
inline |
print the measured properties
Definition at line 212 of file tkmeasure.h.
| void set | ( | const double & | _val, |
| const tkstring & | _unit = "" ) |
set the measured value and unit. No given units keeps the current one
Definition at line 178 of file tkmeasure.cpp.
| void set | ( | const double & | _val, |
| const tkunit_manager::units_keys & | _unit ) |
set the measured value and unit key
Definition at line 184 of file tkmeasure.cpp.
|
inlinevirtual |
set the error of this measured data
Definition at line 109 of file tkmeasure.h.
|
inlinevirtual |
set the asymetruic error of this value
Definition at line 111 of file tkmeasure.h.
| void set_info_tag | ( | const tkstring & | _tag | ) |
define the info tag (calculation, systematic, approx value...)
Definition at line 144 of file tkmeasure.cpp.
|
inline |
set the measured data type (energy, lifetime...)
Definition at line 92 of file tkmeasure.h.
|
inline |
set the measured data unit (value and errors)
Definition at line 140 of file tkmeasure.h.
| bool set_unit | ( | const tkunit_manager::units_keys & | _unit | ) |
set the measured data unit (value and errors)
Definition at line 190 of file tkmeasure.cpp.
Definition at line 285 of file tkmeasure.h.
|
friend |
redefinition of the << operator to take precision into account
Definition at line 145 of file tkmeasure.h.