The Gaudi Framework  v33r1 (b1225454)
SystemOfUnits.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 // -*- C++ -*-
12 // ----------------------------------------------------------------------
13 // HEP coherent system of Units
14 //
15 // This file has been provided to CLHEP by Geant4 (simulation toolkit for HEP).
16 //
17 // The basic units are :
18 // millimeter (millimeter)
19 // nanosecond (nanosecond)
20 // Mega electron Volt (MeV)
21 // positron charge (eplus)
22 // degree Kelvin (kelvin)
23 // the amount of substance (mole)
24 // luminous intensity (candela)
25 // radian (radian)
26 // steradian (steradian)
27 //
28 // Below is a non exhaustive list of derived and pratical units
29 // (i.e. mostly the SI units).
30 // You can add your own units.
31 //
32 // The SI numerical value of the positron charge is defined here,
33 // as it is needed for conversion factor : positron charge = e_SI (coulomb)
34 //
35 // The others physical constants are defined in the header file :
36 // PhysicalConstants.h
37 //
38 // Authors: M.Maire, S.Giani
39 //
40 // History:
41 //
42 // 06.02.96 Created.
43 // 28.03.96 Added miscellaneous constants.
44 // 05.12.97 E.Tcherniaev: Redefined pascal (to avoid warnings on WinNT)
45 // 20.05.98 names: meter, second, gram, radian, degree
46 // (from Brian.Lasiuk@yale.edu (STAR)). Added luminous units.
47 // 05.08.98 angstrom, picobarn, microsecond, picosecond, petaelectronvolt
48 // 01.03.01 parsec
49 // 28.04.06 import from CLHEP to GaudiKernel -- HD
50 // 11.05.06 Rename pascal to Pa to avoid warnings on Windows - MC
51 
52 #ifndef GAUDI_SYSTEM_OF_UNITS_H
53 #define GAUDI_SYSTEM_OF_UNITS_H
54 
55 namespace Gaudi {
56  namespace Units {
57 
58  //
59  // Length [L]
60  //
61  constexpr double millimeter = 1.;
62  constexpr double millimeter2 = millimeter * millimeter;
63  constexpr double millimeter3 = millimeter * millimeter * millimeter;
64 
65  constexpr double centimeter = 10. * millimeter;
66  constexpr double centimeter2 = centimeter * centimeter;
67  constexpr double centimeter3 = centimeter * centimeter * centimeter;
68 
69  constexpr double meter = 1000. * millimeter;
70  constexpr double meter2 = meter * meter;
71  constexpr double meter3 = meter * meter * meter;
72 
73  constexpr double kilometer = 1000. * meter;
74  constexpr double kilometer2 = kilometer * kilometer;
75  constexpr double kilometer3 = kilometer * kilometer * kilometer;
76 
77  constexpr double parsec = 3.0856775807e+16 * meter;
78 
79  constexpr double micrometer = 1.e-6 * meter;
80  constexpr double nanometer = 1.e-9 * meter;
81  constexpr double angstrom = 1.e-10 * meter;
82  constexpr double fermi = 1.e-15 * meter;
83 
84  constexpr double barn = 1.e-28 * meter2;
85  constexpr double millibarn = 1.e-3 * barn;
86  constexpr double microbarn = 1.e-6 * barn;
87  constexpr double nanobarn = 1.e-9 * barn;
88  constexpr double picobarn = 1.e-12 * barn;
89 
90  // symbols
91  constexpr double nm = nanometer;
92  constexpr double um = micrometer;
93 
94  constexpr double mm = millimeter;
95  constexpr double mm2 = millimeter2;
96  constexpr double mm3 = millimeter3;
97 
98  constexpr double cm = centimeter;
99  constexpr double cm2 = centimeter2;
100  constexpr double cm3 = centimeter3;
101 
102  constexpr double m = meter;
103  constexpr double m2 = meter2;
104  constexpr double m3 = meter3;
105 
106  constexpr double km = kilometer;
107  constexpr double km2 = kilometer2;
108  constexpr double km3 = kilometer3;
109 
110  constexpr double pc = parsec;
111 
112  //
113  // Angle
114  //
115  constexpr double radian = 1.;
116  constexpr double milliradian = 1.e-3 * radian;
117  constexpr double degree = ( 3.14159265358979323846 / 180.0 ) * radian;
118 
119  constexpr double steradian = 1.;
120 
121  // symbols
122  constexpr double rad = radian;
123  constexpr double mrad = milliradian;
124  constexpr double sr = steradian;
125  constexpr double deg = degree;
126 
127  //
128  // Time [T]
129  //
130  constexpr double nanosecond = 1.;
131  constexpr double second = 1.e+9 * nanosecond;
132  constexpr double millisecond = 1.e-3 * second;
133  constexpr double microsecond = 1.e-6 * second;
134  constexpr double picosecond = 1.e-12 * second;
135  constexpr double femtosecond = 1.e-15 * second;
136 
137  constexpr double hertz = 1. / second;
138  constexpr double kilohertz = 1.e+3 * hertz;
139  constexpr double megahertz = 1.e+6 * hertz;
140 
141  // symbols
142  constexpr double ns = nanosecond;
143  constexpr double s = second;
144  constexpr double ms = millisecond;
145 
146  //
147  // Electric charge [Q]
148  //
149  constexpr double eplus = 1.; // positron charge
150  constexpr double e_SI = 1.60217733e-19; // positron charge in coulomb
151  constexpr double coulomb = eplus / e_SI; // coulomb = 6.24150 e+18 * eplus
152 
153  //
154  // Energy [E]
155  //
156  constexpr double megaelectronvolt = 1.;
157  constexpr double electronvolt = 1.e-6 * megaelectronvolt;
158  constexpr double kiloelectronvolt = 1.e-3 * megaelectronvolt;
159  constexpr double gigaelectronvolt = 1.e+3 * megaelectronvolt;
160  constexpr double teraelectronvolt = 1.e+6 * megaelectronvolt;
161  constexpr double petaelectronvolt = 1.e+9 * megaelectronvolt;
162 
163  constexpr double joule = electronvolt / e_SI; // joule = 6.24150 e+12 * MeV
164 
165  // symbols
166  constexpr double MeV = megaelectronvolt;
167  constexpr double eV = electronvolt;
168  constexpr double keV = kiloelectronvolt;
169  constexpr double GeV = gigaelectronvolt;
170  constexpr double TeV = teraelectronvolt;
171  constexpr double PeV = petaelectronvolt;
172 
173  //
174  // Mass [E][T^2][L^-2]
175  //
176  constexpr double kilogram = joule * second * second / ( meter * meter );
177  constexpr double gram = 1.e-3 * kilogram;
178  constexpr double milligram = 1.e-3 * gram;
179 
180  // symbols
181  constexpr double kg = kilogram;
182  constexpr double g = gram;
183  constexpr double mg = milligram;
184 
185  //
186  // Power [E][T^-1]
187  //
188  constexpr double watt = joule / second; // watt = 6.24150 e+3 * MeV/ns
189 
190  //
191  // Force [E][L^-1]
192  //
193  constexpr double newton = joule / meter; // newton = 6.24150 e+9 * MeV/mm
194 
195  //
196  // Pressure [E][L^-3]
197  //
198  constexpr double Pa = newton / m2; // pascal = 6.24150 e+3 * MeV/mm3
199  constexpr double bar = 100000 * Pa; // bar = 6.24150 e+8 * MeV/mm3
200  constexpr double atmosphere = 101325 * Pa; // atm = 6.32420 e+8 * MeV/mm3
201 
202  //
203  // Electric current [Q][T^-1]
204  //
205  constexpr double ampere = coulomb / second; // ampere = 6.24150 e+9 * eplus/ns
206  constexpr double milliampere = 1.e-3 * ampere;
207  constexpr double microampere = 1.e-6 * ampere;
208  constexpr double nanoampere = 1.e-9 * ampere;
209 
210  //
211  // Electric potential [E][Q^-1]
212  //
213  constexpr double megavolt = megaelectronvolt / eplus;
214  constexpr double kilovolt = 1.e-3 * megavolt;
215  constexpr double volt = 1.e-6 * megavolt;
216 
217  //
218  // Electric resistance [E][T][Q^-2]
219  //
220  constexpr double ohm = volt / ampere; // ohm = 1.60217e-16*(MeV/eplus)/(eplus/ns)
221 
222  //
223  // Electric capacitance [Q^2][E^-1]
224  //
225  constexpr double farad = coulomb / volt; // farad = 6.24150e+24 * eplus/Megavolt
226  constexpr double millifarad = 1.e-3 * farad;
227  constexpr double microfarad = 1.e-6 * farad;
228  constexpr double nanofarad = 1.e-9 * farad;
229  constexpr double picofarad = 1.e-12 * farad;
230 
231  //
232  // Magnetic Flux [T][E][Q^-1]
233  //
234  constexpr double weber = volt * second; // weber = 1000*megavolt*ns
235 
236  //
237  // Magnetic Field [T][E][Q^-1][L^-2]
238  //
239  constexpr double tesla = volt * second / meter2; // tesla =0.001*megavolt*ns/mm2
240 
241  constexpr double gauss = 1.e-4 * tesla;
242  constexpr double kilogauss = 1.e-1 * tesla;
243 
244  //
245  // Inductance [T^2][E][Q^-2]
246  //
247  constexpr double henry = weber / ampere; // henry = 1.60217e-7*MeV*(ns/eplus)**2
248 
249  //
250  // Temperature
251  //
252  constexpr double kelvin = 1.;
253 
254  //
255  // Amount of substance
256  //
257  constexpr double mole = 1.;
258 
259  //
260  // Activity [T^-1]
261  //
262  constexpr double becquerel = 1. / second;
263  constexpr double curie = 3.7e+10 * becquerel;
264 
265  //
266  // Absorbed dose [L^2][T^-2]
267  //
268  constexpr double gray = joule / kilogram;
269 
270  //
271  // Luminous intensity [I]
272  //
273  constexpr double candela = 1.;
274 
275  //
276  // Luminous flux [I]
277  //
278  constexpr double lumen = candela * steradian;
279 
280  //
281  // Illuminance [I][L^-2]
282  //
283  constexpr double lux = lumen / meter2;
284 
285  //
286  // Miscellaneous
287  //
288  constexpr double perCent = 0.01;
289  constexpr double perThousand = 0.001;
290  constexpr double perMillion = 0.000001;
291 
292  } // namespace Units
293 } // namespace Gaudi
294 
295 #endif /* GAUDI_SYSTEM_OF_UNITS_H */
constexpr double e_SI
constexpr double radian
constexpr double gigaelectronvolt
constexpr double candela
constexpr double sr
constexpr double degree
constexpr double teraelectronvolt
constexpr double deg
constexpr double s
constexpr double keV
constexpr double barn
Definition: SystemOfUnits.h:84
constexpr double m2
constexpr double um
Definition: SystemOfUnits.h:92
constexpr double km
constexpr double eplus
constexpr double Pa
constexpr double mg
constexpr double ohm
constexpr double parsec
Definition: SystemOfUnits.h:77
constexpr double kilogauss
constexpr double MeV
constexpr double henry
constexpr double fermi
Definition: SystemOfUnits.h:82
constexpr double kiloelectronvolt
constexpr double lux
constexpr double nanobarn
Definition: SystemOfUnits.h:87
constexpr double km3
constexpr double volt
constexpr double milligram
constexpr double milliradian
constexpr double microsecond
constexpr double rad
constexpr double pc
constexpr double perCent
constexpr double kilometer
Definition: SystemOfUnits.h:73
constexpr double mm
Definition: SystemOfUnits.h:94
constexpr double angstrom
Definition: SystemOfUnits.h:81
constexpr double kilometer3
Definition: SystemOfUnits.h:75
constexpr double mm3
Definition: SystemOfUnits.h:96
constexpr double becquerel
constexpr double millifarad
constexpr double PeV
constexpr double second
constexpr double meter3
Definition: SystemOfUnits.h:71
constexpr double eV
constexpr double milliampere
constexpr double electronvolt
constexpr double centimeter3
Definition: SystemOfUnits.h:67
constexpr double nanoampere
constexpr double petaelectronvolt
constexpr double picosecond
constexpr double m
constexpr double millibarn
Definition: SystemOfUnits.h:85
constexpr double lumen
constexpr double millimeter3
Definition: SystemOfUnits.h:63
constexpr double kilometer2
Definition: SystemOfUnits.h:74
constexpr double joule
constexpr double picobarn
Definition: SystemOfUnits.h:88
constexpr double kelvin
constexpr double kilovolt
constexpr double micrometer
Definition: SystemOfUnits.h:79
constexpr double perMillion
constexpr double nm
Definition: SystemOfUnits.h:91
constexpr double TeV
constexpr double mrad
constexpr double coulomb
constexpr double km2
constexpr double megaelectronvolt
constexpr double millimeter
Definition: SystemOfUnits.h:61
constexpr double nanosecond
constexpr double cm
Definition: SystemOfUnits.h:98
constexpr double microampere
constexpr double gauss
constexpr double meter2
Definition: SystemOfUnits.h:70
constexpr double megavolt
constexpr double weber
constexpr double perThousand
constexpr double centimeter2
Definition: SystemOfUnits.h:66
constexpr double kg
constexpr double kilogram
constexpr double megahertz
constexpr double kilohertz
constexpr double atmosphere
constexpr double cm2
Definition: SystemOfUnits.h:99
constexpr double watt
constexpr double m3
constexpr double millisecond
constexpr double picofarad
constexpr double gram
constexpr double newton
constexpr double millimeter2
Definition: SystemOfUnits.h:62
constexpr double GeV
constexpr double mm2
Definition: SystemOfUnits.h:95
constexpr double curie
constexpr double steradian
constexpr double bar
constexpr double microfarad
constexpr double meter
Definition: SystemOfUnits.h:69
constexpr double microbarn
Definition: SystemOfUnits.h:86
constexpr double hertz
constexpr double mole
constexpr double nanometer
Definition: SystemOfUnits.h:80
constexpr double nanofarad
constexpr double ms
constexpr double ns
constexpr double g
Header file for std:chrono::duration-based Counters.
Definition: __init__.py:1
constexpr double femtosecond
constexpr double centimeter
Definition: SystemOfUnits.h:65
constexpr double cm3
constexpr double farad
constexpr double tesla
constexpr double gray
constexpr double ampere