TkN 2.4
Toolkit for Nuclei
Loading...
Searching...
No Matches
tkmeasure Class Reference

Stores information on an experimental measure. More...

Detailed Description

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 36 of file tkmeasure.h.

Inheritance diagram for tkmeasure:
tkproperty

#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 tkstringget_info_tag ()
 returns the info tag (calculation, systematic, approx value...)
 
const tkstringget_info_tag_const () const
 
const tkstringget_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.
 

Constructor & Destructor Documentation

◆ tkmeasure() [1/5]

tkmeasure ( )
inline

Definition at line 52 of file tkmeasure.h.

◆ tkmeasure() [2/5]

tkmeasure ( double _value,
const tkstring & _unit_name,
double _err = 0 )
inline

Definition at line 53 of file tkmeasure.h.

◆ tkmeasure() [3/5]

tkmeasure ( double _value,
const tkstring & _unit_name,
double _errlow,
double _errhigh )
inline

Definition at line 54 of file tkmeasure.h.

◆ tkmeasure() [4/5]

tkmeasure ( double _value,
const tkunit_manager::units_keys & _unit,
double _err = 0 )

Definition at line 103 of file tkmeasure.cpp.

◆ tkmeasure() [5/5]

tkmeasure ( double _value,
const tkunit_manager::units_keys & _unit,
double _errlow,
double _errhigh )

Definition at line 111 of file tkmeasure.cpp.

◆ ~tkmeasure()

virtual ~tkmeasure ( )
overridevirtualdefault

Member Function Documentation

◆ get_error() [1/3]

double get_error ( ) const

returns the error on the measured value

Definition at line 226 of file tkmeasure.cpp.

◆ get_error() [2/3]

double get_error ( const tkstring & _unit_name)
inline

returns the error on the measured value in the required string unit

Definition at line 95 of file tkmeasure.h.

◆ get_error() [3/3]

double get_error ( const tkunit_manager::units_keys & _unit)

returns the error on the measured value in the required unit key

Definition at line 235 of file tkmeasure.cpp.

◆ get_error_high() [1/3]

double get_error_high ( ) const

returns the high assymetric error on the measured value

Definition at line 261 of file tkmeasure.cpp.

◆ get_error_high() [2/3]

double get_error_high ( const tkstring & _unit_name)
inline

returns the high assymetric error on the measured value in the required string unit

Definition at line 109 of file tkmeasure.h.

◆ get_error_high() [3/3]

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 269 of file tkmeasure.cpp.

◆ get_error_low() [1/3]

double get_error_low ( ) const

returns the low assymetric error on the measured value

Definition at line 244 of file tkmeasure.cpp.

◆ get_error_low() [2/3]

double get_error_low ( const tkstring & _unit_name)
inline

returns the low assymetric error on the measured value in the required string unit

Definition at line 102 of file tkmeasure.h.

◆ get_error_low() [3/3]

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 252 of file tkmeasure.cpp.

◆ get_exp_error_precision()

int get_exp_error_precision ( const double & _err) const
inline

calculate the needed precision for printouts

Definition at line 274 of file tkmeasure.h.

◆ get_info_tag()

const tkstring & get_info_tag ( )
inline

returns the info tag (calculation, systematic, approx value...)

Definition at line 65 of file tkmeasure.h.

◆ get_info_tag_const()

const tkstring & get_info_tag_const ( ) const
inline

Definition at line 66 of file tkmeasure.h.

◆ get_type()

const tkstring & get_type ( ) const
inline

returns the measured data type (energy, lifetime...)

Definition at line 71 of file tkmeasure.h.

◆ get_unit()

tkstring get_unit ( ) const
inline

returns the unit name

Definition at line 112 of file tkmeasure.h.

◆ get_unit_key()

tkunit_manager::units_keys get_unit_key ( ) const
inline

returns the unit key

Definition at line 114 of file tkmeasure.h.

◆ get_value() [1/3]

double get_value ( ) const
inline

returns the measure value

Definition at line 74 of file tkmeasure.h.

◆ get_value() [2/3]

double get_value ( const tkstring & _unit_name)
inline

returns the measure value in the required string unit

Definition at line 78 of file tkmeasure.h.

◆ get_value() [3/3]

double get_value ( const tkunit_manager::units_keys & _unit)

returns the measure value in the required unit key

Definition at line 216 of file tkmeasure.cpp.

◆ is_asym_errors()

bool is_asym_errors ( ) const
inline

test is the measure uncertainty is asymmetric

Definition at line 60 of file tkmeasure.h.

◆ operator*()

tkmeasure operator* ( double _multiplier) const
inline

Definition at line 234 of file tkmeasure.h.

◆ operator+()

tkmeasure operator+ ( const tkmeasure & _measure) const
inline

Definition at line 192 of file tkmeasure.h.

◆ operator-() [1/2]

tkmeasure operator- ( ) const
inline

Definition at line 263 of file tkmeasure.h.

◆ operator-() [2/2]

tkmeasure operator- ( const tkmeasure & _measure) const
inline

Definition at line 267 of file tkmeasure.h.

◆ print()

void print ( bool with_return = true)
inline

print the measured properties

Definition at line 189 of file tkmeasure.h.

◆ set() [1/2]

void set ( const double & _val,
const tkstring & _unit = "" )

set the measured value and unit. No given units keeps the current one

Definition at line 155 of file tkmeasure.cpp.

◆ set() [2/2]

void set ( const double & _val,
const tkunit_manager::units_keys & _unit )

set the measured value and unit key

Definition at line 161 of file tkmeasure.cpp.

◆ set_error() [1/2]

virtual void set_error ( const double & _err)
inlinevirtual

set the error of this measured data

Definition at line 86 of file tkmeasure.h.

◆ set_error() [2/2]

virtual void set_error ( const double & _err_low,
const double & _err_high )
inlinevirtual

set the asymetruic error of this value

Definition at line 88 of file tkmeasure.h.

◆ set_info_tag()

void set_info_tag ( const tkstring & _tag)

define the info tag (calculation, systematic, approx value...)

Definition at line 121 of file tkmeasure.cpp.

◆ set_type()

void set_type ( const tkstring & _type)
inline

set the measured data type (energy, lifetime...)

Definition at line 69 of file tkmeasure.h.

◆ set_unit() [1/2]

bool set_unit ( const tkstring & _unit_name)
inline

set the measured data unit (value and errors)

Definition at line 117 of file tkmeasure.h.

◆ set_unit() [2/2]

bool set_unit ( const tkunit_manager::units_keys & _unit)

set the measured data unit (value and errors)

Definition at line 167 of file tkmeasure.cpp.

Friends And Related Symbol Documentation

◆ operator*

tkmeasure operator* ( double _multiplier,
const tkmeasure & obj )
friend

Definition at line 262 of file tkmeasure.h.

◆ operator<<

std::ostream & operator<< ( std::ostream & os,
const tkmeasure * _measure )
friend

redefinition of the << operator to take precision into account

Definition at line 122 of file tkmeasure.h.


The documentation for this class was generated from the following files: