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