Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
externals
clhep
src
setSystemOfUnits.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
// $Id:$
3
// ----------------------------------------------------------------------
4
5
#include "
CLHEP/Evaluator/Evaluator.h
"
6
7
namespace
HepTool {
8
9
void
Evaluator::setSystemOfUnits
(
double
meter
,
10
double
kilogram
,
11
double
second
,
12
double
ampere
,
13
double
kelvin
,
14
double
mole
,
15
double
candela
)
16
{
17
const
double
kilo_ = 1.e+03;
// chilioi (Greek) "thousand"
18
const
double
mega_ = 1.e+06;
// megas (Greek) "large"
19
const
double
giga_ = 1.e+09;
// gigas (Greek) "giant"
20
const
double
tera_ = 1.e+12;
// teras (Greek) "monster"
21
const
double
peta_ = 1.e+15;
// pente (Greek) "five"
22
23
const
double
deci_ = 1.e-01;
// decimus (Latin) "tenth"
24
const
double
centi_ = 1.e-02;
// centum (Latin) "hundred"
25
const
double
milli_ = 1.e-03;
// mille (Latin) "thousand"
26
const
double
micro_ = 1.e-06;
// micro (Latin) or mikros (Greek) "small"
27
const
double
nano_ = 1.e-09;
// nanus (Latin) or nanos (Greek) "dwarf"
28
const
double
pico_ = 1.e-12;
// pico (Spanish) "bit"
29
30
// ======================================================================
31
//
32
// Base (default) SI units
33
// for the basic measurable quantities (dimensions):
34
//
35
// ======================================================================
36
37
// Length
38
// metrum (Latin) and metron (Greek) "measure"
39
const
double
m
=
meter
;
40
setVariable
(
"meter"
, m);
41
setVariable
(
"metre"
, m);
42
setVariable
(
"m"
, m);
43
44
// Mass
45
const
double
kg
=
kilogram
;
46
setVariable
(
"kilogram"
, kg);
47
setVariable
(
"kg"
, kg);
48
49
// Time
50
// minuta secundam (Latin) "second small one"
51
const
double
s
=
second
;
52
setVariable
(
"second"
, s);
53
setVariable
(
"s"
, s);
54
55
// Current
56
// --- honors Andre-Marie Ampere (1775-1836) of France
57
const
double
A =
ampere
;
58
setVariable
(
"ampere"
, A);
59
setVariable
(
"amp"
, A);
60
setVariable
(
"A"
, A);
61
62
// Temperature
63
// --- honors William Thomson, 1st Baron Lord Kelvin (1824-1907) of England
64
const
double
K =
kelvin
;
65
setVariable
(
"kelvin"
, K);
66
setVariable
(
"K"
, K);
67
68
// Amount of substance
69
const
double
mol =
mole
;
70
setVariable
(
"mole"
, mol);
71
setVariable
(
"mol"
, mol);
72
73
// Luminous intensity
74
const
double
cd
=
candela
;
75
setVariable
(
"candela"
, cd);
76
setVariable
(
"cd"
, cd);
77
78
// ======================================================================
79
//
80
// Supplementary SI units having special symbols:
81
//
82
// ======================================================================
83
84
// Plane angle
85
const
double
rad
= 1.;
86
setVariable
(
"radian"
, rad);
87
setVariable
(
"rad"
, rad);
88
setVariable
(
"milliradian"
, milli_ * rad);
89
setVariable
(
"mrad"
, milli_ * rad);
90
91
const
double
pi
= 3.14159265358979323846;
92
const
double
deg
= rad*pi/180.;
93
setVariable
(
"degree"
, deg);
94
setVariable
(
"deg"
, deg);
95
96
// Solid angle
97
const
double
sr
= 1.;
98
setVariable
(
"steradian"
, sr);
99
setVariable
(
"sr"
, sr);
100
101
// ======================================================================
102
//
103
// Derived SI units having special symbols:
104
//
105
// ======================================================================
106
107
// Frequency
108
// --- honors Heinrich Rudolf Hertz (1857-1894) of Germany
109
const
double
Hz = 1./
s
;
110
setVariable
(
"hertz"
, Hz);
111
setVariable
(
"Hz"
, Hz);
112
113
// Force
114
// --- honors Sir Isaac Newton (1642-1727) of England
115
const
double
N
= m * kg / (s*
s
);
116
setVariable
(
"newton"
, N);
117
setVariable
(
"N"
, N);
118
119
// Pressure
120
// --- honors Blaise Pascal (1623-1662) of France
121
const
double
Pa = N / (m*
m
);
122
setVariable
(
"pascal"
, Pa);
123
setVariable
(
"Pa"
, Pa);
124
125
const
double
atm = 101325. * Pa;
126
setVariable
(
"atmosphere"
, atm);
127
setVariable
(
"atm"
, atm);
128
129
const
double
bar
= 100000*Pa;
130
setVariable
(
"bar"
, bar);
131
132
// Energy
133
// --- honors James Prescott Joule (1818-1889) of England
134
const
double
J = N *
m
;
135
setVariable
(
"joule"
, J);
136
setVariable
(
"J"
, J);
137
138
// Power
139
// --- honors James Watt (1736-1819) of Scotland
140
const
double
W = J /
s
;
141
setVariable
(
"watt"
, W);
142
setVariable
(
"W"
, W);
143
144
// Electric charge
145
// --- honors Charles-Augustin de Coulomb (1736-1806) of France
146
const
double
C = A *
s
;
147
setVariable
(
"coulomb"
, C);
148
setVariable
(
"C"
, C);
149
150
// Electric potential
151
// --- honors Count Alessandro Volta (1745-1827) of Italy
152
const
double
V = J / C;
153
setVariable
(
"volt"
, V);
154
setVariable
(
"V"
, V);
155
156
// Electric resistance
157
// --- honors Georg Simon Ohm (1787-1854) of Germany
158
const
double
ohm
= V / A;
159
setVariable
(
"ohm"
, ohm);
160
161
// Electric conductance
162
// --- honors Ernst Werner von Siemens (1816-1892) or
163
// his brother Sir William (Karl Wilhelm von) Siemens (1823-1883)
164
// of Germany (England)
165
const
double
S = 1./
ohm
;
166
setVariable
(
"siemens"
, S);
167
setVariable
(
"S"
, S);
168
169
// Electric capacitance
170
// --- honors Michael Faraday (1791-1867) of England
171
const
double
F = C / V;
172
setVariable
(
"farad"
, F);
173
setVariable
(
"F"
, F);
174
175
// Magnetic flux density
176
// --- honors Nikola Tesla (1856-1943) of Croatia (United States)
177
const
double
T = V * s / (m*
m
);
178
setVariable
(
"tesla"
, T);
179
setVariable
(
"T"
, T);
180
181
// --- honors Karl Friedrich Gauss (1777-1855) of Germany
182
const
double
Gs = 1.e-4*T;
183
setVariable
(
"gauss"
, Gs);
184
setVariable
(
"Gs"
, Gs);
185
186
// Magnetic flux
187
// --- honors Wilhelm Eduard Weber (1804-1891) of Germany
188
const
double
Wb = V *
s
;
189
setVariable
(
"weber"
, Wb);
190
setVariable
(
"Wb"
, Wb);
191
192
// Inductance
193
// --- honors Joseph Henry (1797-1878) of the United States
194
const
double
H = Wb / A;
195
setVariable
(
"henry"
, H);
196
setVariable
(
"H"
, H);
197
198
// Luminous flux
199
const
double
lm = cd *
sr
;
200
setVariable
(
"lumen"
, lm);
201
setVariable
(
"lm"
, lm);
202
203
// Illuminace
204
const
double
lx = lm / (m*
m
);
205
setVariable
(
"lux"
, lx);
206
setVariable
(
"lx"
, lx);
207
208
// Radioactivity
209
// --- honors Antoine-Henri Becquerel (1852-1908) of France
210
const
double
Bq = 1./
s
;
211
setVariable
(
"becquerel"
, Bq);
212
setVariable
(
"Bq"
, Bq);
213
214
// --- honors Pierre Curie (1859-1906) of France
215
// and Marie Sklodowska Curie (1867-1934) of Poland
216
setVariable
(
"curie"
, 3.7
e
+10 * Bq);
217
setVariable
(
"Ci"
, 3.7
e
+10 * Bq);
218
219
// Specific energy
220
// --- honors Louis Harold Gray, F.R.S. (1905-1965) of England
221
const
double
Gy = J /
kg
;
222
setVariable
(
"gray"
, Gy);
223
setVariable
(
"Gy"
, Gy);
224
225
// Dose equivalent
226
const
double
Sv = J /
kg
;
227
setVariable
(
"sievert"
, Sv);
228
setVariable
(
"Sv"
, Sv);
229
230
// ======================================================================
231
//
232
// Selected units:
233
//
234
// ======================================================================
235
236
// Length
237
238
const
double
mm
= milli_ *
m
;
239
setVariable
(
"millimeter"
, mm);
240
setVariable
(
"mm"
, mm);
241
242
const
double
cm
= centi_ *
m
;
243
setVariable
(
"centimeter"
, cm);
244
setVariable
(
"cm"
, cm);
245
246
setVariable
(
"decimeter"
, deci_ * m);
247
248
const
double
km
= kilo_ *
m
;
249
setVariable
(
"kilometer"
, km);
250
setVariable
(
"km"
, km);
251
252
setVariable
(
"micrometer"
, micro_ * m);
253
setVariable
(
"micron"
, micro_ * m);
254
setVariable
(
"nanometer"
, nano_ * m);
255
256
// --- honors Anders Jonas Angstrom (1814-1874) of Sweden
257
setVariable
(
"angstrom"
, 1.
e
-10 * m);
258
259
// --- honors Enrico Fermi (1901-1954) of Italy
260
setVariable
(
"fermi"
, 1.
e
-15 * m);
261
262
// Length^2
263
264
setVariable
(
"m2"
, m*m);
265
setVariable
(
"mm2"
, mm*mm);
266
setVariable
(
"cm2"
, cm*cm);
267
setVariable
(
"km2"
, km*km);
268
269
const
double
barn
= 1.e-28 * m*
m
;
270
setVariable
(
"barn"
, barn);
271
setVariable
(
"millibarn"
, milli_ * barn);
272
setVariable
(
"mbarn"
, milli_ * barn);
273
setVariable
(
"microbarn"
, micro_ * barn);
274
setVariable
(
"nanobarn"
, nano_ * barn);
275
setVariable
(
"picobarn"
, pico_ * barn);
276
277
// LengthL^3
278
279
setVariable
(
"m3"
, m*m*m);
280
setVariable
(
"mm3"
, mm*mm*mm);
281
setVariable
(
"cm3"
, cm*cm*cm);
282
setVariable
(
"cc"
, cm*cm*cm);
283
setVariable
(
"km3"
, km*km*km);
284
285
const
double
L = 1.e-3*m*m*
m
;
286
setVariable
(
"liter"
, L);
287
setVariable
(
"litre"
, L);
288
setVariable
(
"L"
, L);
289
setVariable
(
"centiliter"
, centi_ * L);
290
setVariable
(
"cL"
, centi_ * L);
291
setVariable
(
"milliliter"
, milli_ * L);
292
setVariable
(
"mL"
, milli_ * L);
293
294
// Length^-1
295
296
const
double
dpt = 1./
m
;
297
setVariable
(
"diopter"
, dpt);
298
setVariable
(
"dioptre"
, dpt);
299
setVariable
(
"dpt"
, dpt);
300
301
// Mass
302
303
const
double
g
= 0.001*
kg
;
304
setVariable
(
"gram"
, g);
305
setVariable
(
"g"
, g);
306
setVariable
(
"milligram"
, milli_ * g);
307
setVariable
(
"mg"
, milli_ * g);
308
309
// Time
310
311
setVariable
(
"millisecond"
, milli_ * s);
312
setVariable
(
"ms"
, milli_ * s);
313
setVariable
(
"microsecond"
, micro_ * s);
314
setVariable
(
"nanosecond"
, nano_ * s);
315
setVariable
(
"ns"
, nano_ * s);
316
setVariable
(
"picosecond"
, pico_ * s);
317
318
// Current
319
320
setVariable
(
"milliampere"
, milli_ * A);
321
setVariable
(
"mA"
, milli_ * A);
322
setVariable
(
"microampere"
, micro_ * A);
323
setVariable
(
"nanoampere"
, nano_ * A);
324
325
// Frequency
326
327
setVariable
(
"kilohertz"
, kilo_ * Hz);
328
setVariable
(
"kHz"
, kilo_ * Hz);
329
setVariable
(
"megahertz"
, mega_ * Hz);
330
setVariable
(
"MHz"
, mega_ * Hz);
331
332
// Force
333
setVariable
(
"kilonewton"
, kilo_ * N);
334
setVariable
(
"kN"
, kilo_ * N);
335
336
// Pressure
337
setVariable
(
"kilobar"
, kilo_ * bar);
338
setVariable
(
"kbar"
, kilo_ * bar);
339
setVariable
(
"millibar"
, milli_ * bar);
340
setVariable
(
"mbar"
, milli_ * bar);
341
342
// Energy
343
setVariable
(
"kilojoule"
, kilo_ * J);
344
setVariable
(
"kJ"
, kilo_ * J);
345
setVariable
(
"megajoule"
, mega_ * J);
346
setVariable
(
"MJ"
, mega_ * J);
347
setVariable
(
"gigajoule"
, giga_ * J);
348
setVariable
(
"GJ"
, giga_ * J);
349
350
const
double
e_SI
= 1.60217733e-19;
// positron charge in coulomb
351
const
double
ePlus = e_SI * C;
// positron charge
352
const
double
eV
= ePlus * V;
353
setVariable
(
"electronvolt"
, eV);
354
setVariable
(
"eV"
, eV);
355
setVariable
(
"kiloelectronvolt"
, kilo_ * eV);
356
setVariable
(
"keV"
, kilo_ * eV);
357
setVariable
(
"megaelectronvolt"
, mega_ * eV);
358
setVariable
(
"MeV"
, mega_ * eV);
359
setVariable
(
"gigaelectronvolt"
, giga_ * eV);
360
setVariable
(
"GeV"
, giga_ * eV);
361
setVariable
(
"teraelectronvolt"
, tera_ * eV);
362
setVariable
(
"TeV"
, tera_ * eV);
363
setVariable
(
"petaelectronvolt"
, peta_ * eV);
364
setVariable
(
"PeV"
, peta_ * eV);
365
366
// Power
367
setVariable
(
"kilowatt"
, kilo_ * W);
368
setVariable
(
"kW"
, kilo_ * W);
369
setVariable
(
"megawatt"
, mega_ * W);
370
setVariable
(
"MW"
, mega_ * W);
371
setVariable
(
"gigawatt"
, giga_ * W);
372
setVariable
(
"GW"
, giga_ * W);
373
374
// Electric potential
375
setVariable
(
"kilovolt"
, kilo_ * V);
376
setVariable
(
"kV"
, kilo_ * V);
377
setVariable
(
"megavolt"
, mega_ * V);
378
setVariable
(
"MV"
, mega_ * V);
379
380
// Electric capacitance
381
setVariable
(
"millifarad"
, milli_ * F);
382
setVariable
(
"mF"
, milli_ * F);
383
setVariable
(
"microfarad"
, micro_ * F);
384
setVariable
(
"uF"
, micro_ * F);
385
setVariable
(
"nanofarad"
, nano_ * F);
386
setVariable
(
"nF"
, nano_ * F);
387
setVariable
(
"picofarad"
, pico_ * F);
388
setVariable
(
"pF"
, pico_ * F);
389
390
// Magnetic flux density
391
setVariable
(
"kilogauss"
, kilo_ * Gs);
392
setVariable
(
"kGs"
, kilo_ * Gs);
393
}
394
395
}
// namespace HepTool
Generated on Sat May 25 2013 14:33:07 for Geant4 by
1.8.4