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