Belle II Software  release-05-02-19
Unit.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2012 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Andreas Moll, Martin Heck, Martin Ritter *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <string>
14 #include <map>
15 
16 namespace Belle2 {
42  class Unit {
43 
44  public:
45 
49  static const double cm;
50  static const double ns;
51  static const double GHz;
52  static const double rad;
53  static const double GeV;
54  static const double K;
55  static const double e;
62  static const double g_cm3;
69  // length units
70  static const double km;
71  static const double m;
72  static const double mm;
73  static const double um;
74  static const double nm;
75  static const double pm;
76  static const double fm;
78  // area units
79  static const double m2;
80  static const double cm2;
81  static const double mm2;
83  static const double b;
84  static const double mb;
85  static const double ub;
86  static const double nb;
87  static const double pb;
88  static const double fb;
89  static const double ab;
91  // volume units
92  static const double m3;
93  static const double cm3;
94  static const double mm3;
96  // time units
97  static const double s;
98  static const double ms;
99  static const double us;
100  static const double ps;
101  static const double fs;
103  // frequency units
104  static const double Hz;
105  static const double kHz;
106  static const double MHz;
107  static const double mHz;
109  // angle units
110  static const double mrad;
111  static const double deg;
113  // energy units
114  static const double eV;
115  static const double keV;
116  static const double MeV;
117  static const double TeV;
118  static const double J;
119  static const double V;
121  // magnetic field units
122  static const double T;
123  static const double mT;
124  static const double Gauss;
125  static const double kGauss;
127  // charge units
128  static const double C;
129  static const double fC;
131  // density units
132  static const double mg_cm3;
133  static const double kg_cm3;
134  static const double g_mm3;
135  static const double mg_mm3;
136  static const double kg_mm3;
148  static double convertValue(double value, const std::string& unitString);
149 
159  static double convertValueToUnit(double value, const std::string& unitString);
160 
161  protected:
163  static double registerConversion(const std::string& name, double value);
165  static std::map<std::string, double> s_conversionFactors;
166 
167  private:
172  Unit() = delete;
173  Unit(const Unit&) = delete;
174  Unit& operator=(const Unit&) = delete;
175  ~Unit() = delete;
177  };
178 
180 }
Belle2::Unit::s
static const double s
[second]
Definition: Unit.h:105
Belle2::Unit::cm
static const double cm
Standard units with the value = 1.
Definition: Unit.h:57
Belle2::Unit::ms
static const double ms
[millisecond]
Definition: Unit.h:106
Belle2::Unit::fm
static const double fm
[femtometers]
Definition: Unit.h:84
Belle2::Unit::ns
static const double ns
Standard of [time].
Definition: Unit.h:58
Belle2::Unit::ps
static const double ps
[picosecond]
Definition: Unit.h:108
Belle2::Unit::MHz
static const double MHz
[Megahertz]
Definition: Unit.h:114
Belle2::Unit::nb
static const double nb
[nanobarn]
Definition: Unit.h:94
Belle2::Unit::mb
static const double mb
[millibarn]
Definition: Unit.h:92
Belle2::Unit::g_mm3
static const double g_mm3
[g/mm^3]
Definition: Unit.h:142
Belle2::Unit::mm3
static const double mm3
[cubic millimeters]
Definition: Unit.h:102
Belle2::Unit::mrad
static const double mrad
[millirad]
Definition: Unit.h:118
Belle2::Unit::kg_mm3
static const double kg_mm3
[kg/mm^3]
Definition: Unit.h:144
Belle2::Unit::mHz
static const double mHz
[Millihertz]
Definition: Unit.h:115
Belle2::Unit::fb
static const double fb
[femtobarn]
Definition: Unit.h:96
Belle2::Unit::fs
static const double fs
[femtosecond]
Definition: Unit.h:109
Belle2::Unit::kGauss
static const double kGauss
[kilogauss]
Definition: Unit.h:133
Belle2::Unit::mg_mm3
static const double mg_mm3
[mg/mm^3]
Definition: Unit.h:143
Belle2::Unit::GHz
static const double GHz
Standard of [frequency].
Definition: Unit.h:59
Belle2::Unit::pb
static const double pb
[picobarn]
Definition: Unit.h:95
Belle2::Unit::ub
static const double ub
[microbarn]
Definition: Unit.h:93
Belle2::Unit::s_conversionFactors
static std::map< std::string, double > s_conversionFactors
Map to be able to convert between units using string representations of the unit name.
Definition: Unit.h:173
Belle2::Unit::TeV
static const double TeV
[teraelectronvolt]
Definition: Unit.h:125
Belle2::Unit::J
static const double J
[joule]
Definition: Unit.h:126
Belle2::Unit::rad
static const double rad
Standard of [angle].
Definition: Unit.h:60
Belle2::Unit::convertValue
static double convertValue(double value, const std::string &unitString)
Converts a floating point value to the standard framework unit.
Definition: UnitConst.cc:136
Belle2::Unit::MeV
static const double MeV
[megaelectronvolt]
Definition: Unit.h:124
Belle2::Unit::keV
static const double keV
[kiloelectronvolt]
Definition: Unit.h:123
Belle2::Unit::T
static const double T
[tesla]
Definition: Unit.h:130
Belle2::Unit::eV
static const double eV
[electronvolt]
Definition: Unit.h:122
Belle2::Unit::nm
static const double nm
[nanometers]
Definition: Unit.h:82
Belle2::Unit::Unit
Unit()=delete
no Unit instances allowed.
Belle2::Unit::cm3
static const double cm3
[cubic centimeters]
Definition: Unit.h:101
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Unit::mT
static const double mT
[millitesla]
Definition: Unit.h:131
Belle2::Unit::m3
static const double m3
[cubic meters]
Definition: Unit.h:100
Belle2::Unit::kg_cm3
static const double kg_cm3
[kg/cm^3]
Definition: Unit.h:141
Belle2::Unit::Gauss
static const double Gauss
[gauss]
Definition: Unit.h:132
Belle2::Unit::fC
static const double fC
[femtocoulomb]
Definition: Unit.h:137
Belle2::Unit::convertValueToUnit
static double convertValueToUnit(double value, const std::string &unitString)
Converts a floating point value from the standard framework unit to the given unit.
Definition: UnitConst.cc:146
Belle2::Unit::ab
static const double ab
[attobarn]
Definition: Unit.h:97
Belle2::Unit::deg
static const double deg
degree to radians
Definition: Unit.h:119
Belle2::Unit::m
static const double m
[meters]
Definition: Unit.h:79
Belle2::Unit::Hz
static const double Hz
[Hertz]
Definition: Unit.h:112
Belle2::Unit::kHz
static const double kHz
[Kilohertz]
Definition: Unit.h:113
Belle2::Unit::mm2
static const double mm2
[square millimeters]
Definition: Unit.h:89
Belle2::Unit::b
static const double b
[barn]
Definition: Unit.h:91
Belle2::Unit::registerConversion
static double registerConversion(const std::string &name, double value)
registers the name and value of a conversion in s_conversionFactors.
Definition: UnitConst.cc:156
Belle2::Unit::mg_cm3
static const double mg_cm3
[mg/cm^3]
Definition: Unit.h:140
Belle2::Unit::mm
static const double mm
[millimeters]
Definition: Unit.h:80
Belle2::Unit::K
static const double K
Standard of [temperature].
Definition: Unit.h:62
Belle2::Unit::pm
static const double pm
[picometers]
Definition: Unit.h:83
Belle2::Unit::C
static const double C
[coulomb]
Definition: Unit.h:136
Belle2::Unit::cm2
static const double cm2
[square centimeters]
Definition: Unit.h:88
Belle2::Unit
The Unit class.
Definition: Unit.h:50
Belle2::Unit::GeV
static const double GeV
Standard of [energy, momentum, mass].
Definition: Unit.h:61
Belle2::Unit::m2
static const double m2
[square meters]
Definition: Unit.h:87
Belle2::Unit::e
static const double e
Standard of [electric charge].
Definition: Unit.h:63
Belle2::Unit::km
static const double km
Derived units.
Definition: Unit.h:78
Belle2::Unit::g_cm3
static const double g_cm3
Practical units with the value set at 1.
Definition: Unit.h:70
Belle2::Unit::us
static const double us
[microsecond]
Definition: Unit.h:107
Belle2::Unit::um
static const double um
[micrometers]
Definition: Unit.h:81
Belle2::Unit::V
static const double V
[voltage]
Definition: Unit.h:127