TkN 2.3
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 59 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 75 of file tkmeasure.h.

◆ tkmeasure() [2/5]

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

Definition at line 76 of file tkmeasure.h.

◆ tkmeasure() [3/5]

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

Definition at line 77 of file tkmeasure.h.

◆ tkmeasure() [4/5]

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

Definition at line 126 of file tkmeasure.cpp.

◆ tkmeasure() [5/5]

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

Definition at line 134 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 249 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 118 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 258 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 284 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 132 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 292 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 267 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 125 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 275 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 297 of file tkmeasure.h.

◆ get_info_tag()

const tkstring & get_info_tag ( )
inline

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

Definition at line 88 of file tkmeasure.h.

◆ get_info_tag_const()

const tkstring & get_info_tag_const ( ) const
inline

Definition at line 89 of file tkmeasure.h.

◆ get_type()

const tkstring & get_type ( ) const
inline

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

Definition at line 94 of file tkmeasure.h.

◆ get_unit()

tkstring get_unit ( ) const
inline

returns the unit name

Definition at line 135 of file tkmeasure.h.

◆ get_unit_key()

tkunit_manager::units_keys get_unit_key ( ) const
inline

returns the unit key

Definition at line 137 of file tkmeasure.h.

◆ get_value() [1/3]

double get_value ( ) const
inline

returns the measure value

Definition at line 97 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 101 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 239 of file tkmeasure.cpp.

◆ is_asym_errors()

bool is_asym_errors ( ) const
inline

test is the measure uncertainty is asymmetric

Definition at line 83 of file tkmeasure.h.

◆ operator*()

tkmeasure operator* ( double _multiplier) const
inline

Definition at line 257 of file tkmeasure.h.

◆ operator+()

tkmeasure operator+ ( const tkmeasure & _measure) const
inline

Definition at line 215 of file tkmeasure.h.

◆ operator-() [1/2]

tkmeasure operator- ( ) const
inline

Definition at line 286 of file tkmeasure.h.

◆ operator-() [2/2]

tkmeasure operator- ( const tkmeasure & _measure) const
inline

Definition at line 290 of file tkmeasure.h.

◆ print()

void print ( bool with_return = true)
inline

print the measured properties

Definition at line 212 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 178 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 184 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 109 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 111 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 144 of file tkmeasure.cpp.

◆ set_type()

void set_type ( const tkstring & _type)
inline

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

Definition at line 92 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 140 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 190 of file tkmeasure.cpp.

Friends And Related Symbol Documentation

◆ operator*

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

Definition at line 285 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 145 of file tkmeasure.h.


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