Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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// 31.01.06 kilogray, milligray, microgray
40// 29.04.08 use PDG 2006 value of e_SI
41// 03.11.08 use PDG 2008 value of e_SI
42// 19.08.15 added liter and its sub units (mma)
43// 12.01.16 added symbols for microsecond (us) and picosecond (ps) (mma)
44// 17.07.20 use PDG 2019 value of e_SI
45
46#ifndef HEP_SYSTEM_OF_UNITS_H
47#define HEP_SYSTEM_OF_UNITS_H
48
49namespace CLHEP {
50
51 //
52 //
53 //
54 static constexpr double pi = 3.14159265358979323846;
55 static constexpr double twopi = 2*pi;
56 static constexpr double halfpi = pi/2;
57 static constexpr double pi2 = pi*pi;
58
59 //
60 // Length [L]
61 //
62 static constexpr double millimeter = 1.;
63 static constexpr double millimeter2 = millimeter*millimeter;
64 static constexpr double millimeter3 = millimeter*millimeter*millimeter;
65
66 static constexpr double centimeter = 10.*millimeter;
67 static constexpr double centimeter2 = centimeter*centimeter;
68 static constexpr double centimeter3 = centimeter*centimeter*centimeter;
69
70 static constexpr double meter = 1000.*millimeter;
71 static constexpr double meter2 = meter*meter;
72 static constexpr double meter3 = meter*meter*meter;
73
74 static constexpr double kilometer = 1000.*meter;
75 static constexpr double kilometer2 = kilometer*kilometer;
76 static constexpr double kilometer3 = kilometer*kilometer*kilometer;
77
78 static constexpr double parsec = 3.0856775807e+16*meter;
79
80 static constexpr double micrometer = 1.e-6 *meter;
81 static constexpr double nanometer = 1.e-9 *meter;
82 static constexpr double angstrom = 1.e-10*meter;
83 static constexpr double fermi = 1.e-15*meter;
84
85 static constexpr double barn = 1.e-28*meter2;
86 static constexpr double millibarn = 1.e-3 *barn;
87 static constexpr double microbarn = 1.e-6 *barn;
88 static constexpr double nanobarn = 1.e-9 *barn;
89 static constexpr double picobarn = 1.e-12*barn;
90
91 // symbols
92 static constexpr double nm = nanometer;
93 static constexpr double um = micrometer;
94
95 static constexpr double mm = millimeter;
96 static constexpr double mm2 = millimeter2;
97 static constexpr double mm3 = millimeter3;
98
99 static constexpr double cm = centimeter;
100 static constexpr double cm2 = centimeter2;
101 static constexpr double cm3 = centimeter3;
102
103 static constexpr double liter = 1.e+3*cm3;
104 static constexpr double L = liter;
105 static constexpr double dL = 1.e-1*liter;
106 static constexpr double cL = 1.e-2*liter;
107 static constexpr double mL = 1.e-3*liter;
108
109 static constexpr double m = meter;
110 static constexpr double m2 = meter2;
111 static constexpr double m3 = meter3;
112
113 static constexpr double km = kilometer;
114 static constexpr double km2 = kilometer2;
115 static constexpr double km3 = kilometer3;
116
117 static constexpr double pc = parsec;
118
119 //
120 // Angle
121 //
122 static constexpr double radian = 1.;
123 static constexpr double milliradian = 1.e-3*radian;
124 static constexpr double degree = (pi/180.0)*radian;
125
126 static constexpr double steradian = 1.;
127
128 // symbols
129 static constexpr double rad = radian;
130 static constexpr double mrad = milliradian;
131 static constexpr double sr = steradian;
132 static constexpr double deg = degree;
133
134 //
135 // Time [T]
136 //
137 static constexpr double nanosecond = 1.;
138 static constexpr double second = 1.e+9 *nanosecond;
139 static constexpr double millisecond = 1.e-3 *second;
140 static constexpr double microsecond = 1.e-6 *second;
141 static constexpr double picosecond = 1.e-12*second;
142
143 static constexpr double hertz = 1./second;
144 static constexpr double kilohertz = 1.e+3*hertz;
145 static constexpr double megahertz = 1.e+6*hertz;
146
147 // symbols
148 static constexpr double ns = nanosecond;
149 static constexpr double s = second;
150 static constexpr double ms = millisecond;
151 static constexpr double us = microsecond;
152 static constexpr double ps = picosecond;
153
154 //
155 // Electric charge [Q]
156 //
157 static constexpr double eplus = 1. ;// positron charge
158 static constexpr double e_SI = 1.602176634e-19;// positron charge in coulomb
159 static constexpr double coulomb = eplus/e_SI;// coulomb = 6.24150 e+18 * eplus
160
161 //
162 // Energy [E]
163 //
164 static constexpr double megaelectronvolt = 1. ;
165 static constexpr double electronvolt = 1.e-6*megaelectronvolt;
166 static constexpr double kiloelectronvolt = 1.e-3*megaelectronvolt;
167 static constexpr double gigaelectronvolt = 1.e+3*megaelectronvolt;
168 static constexpr double teraelectronvolt = 1.e+6*megaelectronvolt;
169 static constexpr double petaelectronvolt = 1.e+9*megaelectronvolt;
170
171 static constexpr double joule = electronvolt/e_SI;// joule = 6.24150 e+12 * MeV
172
173 // symbols
174 static constexpr double MeV = megaelectronvolt;
175 static constexpr double eV = electronvolt;
176 static constexpr double keV = kiloelectronvolt;
177 static constexpr double GeV = gigaelectronvolt;
178 static constexpr double TeV = teraelectronvolt;
179 static constexpr double PeV = petaelectronvolt;
180
181 //
182 // Mass [E][T^2][L^-2]
183 //
184 static constexpr double kilogram = joule*second*second/(meter*meter);
185 static constexpr double gram = 1.e-3*kilogram;
186 static constexpr double milligram = 1.e-3*gram;
187
188 // symbols
189 static constexpr double kg = kilogram;
190 static constexpr double g = gram;
191 static constexpr double mg = milligram;
192
193 //
194 // Power [E][T^-1]
195 //
196 static constexpr double watt = joule/second;// watt = 6.24150 e+3 * MeV/ns
197
198 //
199 // Force [E][L^-1]
200 //
201 static constexpr double newton = joule/meter;// newton = 6.24150 e+9 * MeV/mm
202
203 //
204 // Pressure [E][L^-3]
205 //
206#define pascal hep_pascal // a trick to avoid warnings
207 static constexpr double hep_pascal = newton/m2; // pascal = 6.24150 e+3 * MeV/mm3
208 static constexpr double bar = 100000*pascal; // bar = 6.24150 e+8 * MeV/mm3
209 static constexpr double atmosphere = 101325*pascal; // atm = 6.32420 e+8 * MeV/mm3
210
211 //
212 // Electric current [Q][T^-1]
213 //
214 static constexpr double ampere = coulomb/second; // ampere = 6.24150 e+9 * eplus/ns
215 static constexpr double milliampere = 1.e-3*ampere;
216 static constexpr double microampere = 1.e-6*ampere;
217 static constexpr double nanoampere = 1.e-9*ampere;
218
219 //
220 // Electric potential [E][Q^-1]
221 //
222 static constexpr double megavolt = megaelectronvolt/eplus;
223 static constexpr double kilovolt = 1.e-3*megavolt;
224 static constexpr double volt = 1.e-6*megavolt;
225
226 //
227 // Electric resistance [E][T][Q^-2]
228 //
229 static constexpr double ohm = volt/ampere;// ohm = 1.60217e-16*(MeV/eplus)/(eplus/ns)
230
231 //
232 // Electric capacitance [Q^2][E^-1]
233 //
234 static constexpr double farad = coulomb/volt;// farad = 6.24150e+24 * eplus/Megavolt
235 static constexpr double millifarad = 1.e-3*farad;
236 static constexpr double microfarad = 1.e-6*farad;
237 static constexpr double nanofarad = 1.e-9*farad;
238 static constexpr double picofarad = 1.e-12*farad;
239
240 //
241 // Magnetic Flux [T][E][Q^-1]
242 //
243 static constexpr double weber = volt*second;// weber = 1000*megavolt*ns
244
245 //
246 // Magnetic Field [T][E][Q^-1][L^-2]
247 //
248 static constexpr double tesla = volt*second/meter2;// tesla =0.001*megavolt*ns/mm2
249
250 static constexpr double gauss = 1.e-4*tesla;
251 static constexpr double kilogauss = 1.e-1*tesla;
252
253 //
254 // Inductance [T^2][E][Q^-2]
255 //
256 static constexpr double henry = weber/ampere;// henry = 1.60217e-7*MeV*(ns/eplus)**2
257
258 //
259 // Temperature
260 //
261 static constexpr double kelvin = 1.;
262
263 //
264 // Amount of substance
265 //
266 static constexpr double mole = 1.;
267
268 //
269 // Activity [T^-1]
270 //
271 static constexpr double becquerel = 1./second ;
272 static constexpr double curie = 3.7e+10 * becquerel;
273 static constexpr double kilobecquerel = 1.e+3*becquerel;
274 static constexpr double megabecquerel = 1.e+6*becquerel;
275 static constexpr double gigabecquerel = 1.e+9*becquerel;
276 static constexpr double millicurie = 1.e-3*curie;
277 static constexpr double microcurie = 1.e-6*curie;
278 static constexpr double Bq = becquerel;
279 static constexpr double kBq = kilobecquerel;
280 static constexpr double MBq = megabecquerel;
281 static constexpr double GBq = gigabecquerel;
282 static constexpr double Ci = curie;
283 static constexpr double mCi = millicurie;
284 static constexpr double uCi = microcurie;
285
286 //
287 // Absorbed dose [L^2][T^-2]
288 //
289 static constexpr double gray = joule/kilogram ;
290 static constexpr double kilogray = 1.e+3*gray;
291 static constexpr double milligray = 1.e-3*gray;
292 static constexpr double microgray = 1.e-6*gray;
293
294 //
295 // Luminous intensity [I]
296 //
297 static constexpr double candela = 1.;
298
299 //
300 // Luminous flux [I]
301 //
302 static constexpr double lumen = candela*steradian;
303
304 //
305 // Illuminance [I][L^-2]
306 //
307 static constexpr double lux = lumen/meter2;
308
309 //
310 // Miscellaneous
311 //
312 static constexpr double perCent = 0.01 ;
313 static constexpr double perThousand = 0.001;
314 static constexpr double perMillion = 0.000001;
315
316} // namespace CLHEP
317
318#endif /* HEP_SYSTEM_OF_UNITS_H */
#define pascal
Definition: DoubConv.h:17
#define ns
Definition: xmlparse.cc:614