Logo ROOT   6.16/01
Reference Guide
TGeoSystemOfUnits.h
Go to the documentation of this file.
1/*************************************************************************
2 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
3 * All rights reserved. *
4 * *
5 * For the licensing terms see $ROOTSYS/LICENSE. *
6 * For the list of contributors see $ROOTSYS/README/CREDITS. *
7 *************************************************************************/
8
9// ----------------------------------------------------------------------
10// HEP coherent system of Units
11//
12// This file has been provided to CLHEP by Geant4 (simulation toolkit for HEP).
13// Adapted to TGeo units base by Marko Petric
14//
15// The basic units are :
16// millimeter (millimeter)
17// nanosecond (nanosecond)
18// Mega electron Volt (MeV)
19// positron charge (eplus)
20// degree Kelvin (kelvin)
21// the amount of substance (mole)
22// luminous intensity (candela)
23// radian (radian)
24// steradian (steradian)
25//
26// Below is a non exhaustive list of derived and pratical units
27// (i.e. mostly the SI units).
28// You can add your own units.
29//
30// The SI numerical value of the positron charge is defined here,
31// as it is needed for conversion factor : positron charge = e_SI (coulomb)
32//
33// The others physical constants are defined in the header file :
34// PhysicalConstants.h
35//
36// Authors: M.Maire, S.Giani
37//
38// History:
39//
40// 06.02.96 Created.
41// 28.03.96 Added miscellaneous constants.
42// 05.12.97 E.Tcherniaev: Redefined pascal (to avoid warnings on WinNT)
43// 20.05.98 names: meter, second, gram, radian, degree
44// (from Brian.Lasiuk@yale.edu (STAR)). Added luminous units.
45// 05.08.98 angstrom, picobarn, microsecond, picosecond, petaelectronvolt
46// 01.03.01 parsec
47// 31.01.06 kilogray, milligray, microgray
48// 29.04.08 use PDG 2006 value of e_SI
49// 03.11.08 use PDG 2008 value of e_SI
50// 19.08.15 added liter and its sub units (mma)
51// 12.01.16 added symbols for microsecond (us) and picosecond (ps) (mma)
52// 02.10.17 addopted units from CLHEP 2.3.4.3 and converted to TGeo unit base
53
54#ifndef TGEO_SYSTEM_OF_UNITS_H
55#define TGEO_SYSTEM_OF_UNITS_H
56
57namespace TGeoUnit {
58
59//
60// TGeo follows Geant3 convention as specified in manual
61// "Unless otherwise specified, the following units are used throughout the program:
62// centimeter, second, degree, GeV"
63
64//
65//
66//
67static constexpr double pi = 3.14159265358979323846;
68static constexpr double twopi = 2 * pi;
69static constexpr double halfpi = pi / 2;
70static constexpr double pi2 = pi * pi;
71
72//
73// Length [L]
74//
75static constexpr double millimeter = 0.1;
76static constexpr double millimeter2 = millimeter * millimeter;
77static constexpr double millimeter3 = millimeter * millimeter * millimeter;
78
79static constexpr double centimeter = 10. * millimeter; // Base unit
80static constexpr double centimeter2 = centimeter * centimeter;
81static constexpr double centimeter3 = centimeter * centimeter * centimeter;
82
83static constexpr double meter = 1000. * millimeter;
84static constexpr double meter2 = meter * meter;
85static constexpr double meter3 = meter * meter * meter;
86
87static constexpr double kilometer = 1000. * meter;
88static constexpr double kilometer2 = kilometer * kilometer;
89static constexpr double kilometer3 = kilometer * kilometer * kilometer;
90
91static constexpr double parsec = 3.0856775807e+16 * meter;
92
93static constexpr double micrometer = 1.e-6 * meter;
94static constexpr double nanometer = 1.e-9 * meter;
95static constexpr double angstrom = 1.e-10 * meter;
96static constexpr double fermi = 1.e-15 * meter;
97
98static constexpr double barn = 1.e-28 * meter2;
99static constexpr double millibarn = 1.e-3 * barn;
100static constexpr double microbarn = 1.e-6 * barn;
101static constexpr double nanobarn = 1.e-9 * barn;
102static constexpr double picobarn = 1.e-12 * barn;
103
104// symbols
105static constexpr double nm = nanometer;
106static constexpr double um = micrometer;
107
108static constexpr double mm = millimeter;
109static constexpr double mm2 = millimeter2;
110static constexpr double mm3 = millimeter3;
111
112static constexpr double cm = centimeter;
113static constexpr double cm2 = centimeter2;
114static constexpr double cm3 = centimeter3;
115
116static constexpr double liter = 1.e+3 * cm3;
117static constexpr double L = liter;
118static constexpr double dL = 1.e-1 * liter;
119static constexpr double cL = 1.e-2 * liter;
120static constexpr double mL = 1.e-3 * liter;
121
122static constexpr double m = meter;
123static constexpr double m2 = meter2;
124static constexpr double m3 = meter3;
125
126static constexpr double km = kilometer;
127static constexpr double km2 = kilometer2;
128static constexpr double km3 = kilometer3;
129
130static constexpr double pc = parsec;
131
132//
133// Angle
134//
135static constexpr double degree = 1.0; // Base unit
136static constexpr double radian = (180.0 / pi) * degree;
137static constexpr double milliradian = 1.e-3 * radian;
138
139static constexpr double steradian = 1.;
140
141// symbols
142static constexpr double rad = radian;
143static constexpr double mrad = milliradian;
144static constexpr double sr = steradian;
145static constexpr double deg = degree;
146
147//
148// Time [T]
149//
150static constexpr double nanosecond = 1.e-9;
151static constexpr double second = 1.e+9 * nanosecond; // Base unit
152static constexpr double millisecond = 1.e-3 * second;
153static constexpr double microsecond = 1.e-6 * second;
154static constexpr double picosecond = 1.e-12 * second;
155
156static constexpr double hertz = 1. / second;
157static constexpr double kilohertz = 1.e+3 * hertz;
158static constexpr double megahertz = 1.e+6 * hertz;
159
160// symbols
161static constexpr double ns = nanosecond;
162static constexpr double s = second;
163static constexpr double ms = millisecond;
164static constexpr double us = microsecond;
165static constexpr double ps = picosecond;
166
167//
168// Electric charge [Q]
169//
170static constexpr double eplus = 1.; // positron charge
171static constexpr double e_SI = 1.602176487e-19; // positron charge in coulomb
172static constexpr double coulomb = eplus / e_SI; // coulomb = 6.24150 e+18 * eplus
173
174//
175// Energy [E]
176//
177static constexpr double megaelectronvolt = 1.e-3;
178static constexpr double electronvolt = 1.e-6 * megaelectronvolt;
179static constexpr double kiloelectronvolt = 1.e-3 * megaelectronvolt;
180static constexpr double gigaelectronvolt = 1.e+3 * megaelectronvolt; // Base unit
181static constexpr double teraelectronvolt = 1.e+6 * megaelectronvolt;
182static constexpr double petaelectronvolt = 1.e+9 * megaelectronvolt;
183
184static constexpr double joule = electronvolt / e_SI; // joule = 6.24150 e+12 * MeV
185
186// symbols
187static constexpr double MeV = megaelectronvolt;
188static constexpr double eV = electronvolt;
189static constexpr double keV = kiloelectronvolt;
190static constexpr double GeV = gigaelectronvolt;
191static constexpr double TeV = teraelectronvolt;
192static constexpr double PeV = petaelectronvolt;
193
194//
195// Mass [E][T^2][L^-2]
196//
197static constexpr double kilogram = joule * second * second / (meter * meter);
198static constexpr double gram = 1.e-3 * kilogram;
199static constexpr double milligram = 1.e-3 * gram;
200
201// symbols
202static constexpr double kg = kilogram;
203static constexpr double g = gram;
204static constexpr double mg = milligram;
205
206//
207// Power [E][T^-1]
208//
209static constexpr double watt = joule / second; // watt = 6.24150 e+3 * MeV/ns
210
211//
212// Force [E][L^-1]
213//
214static constexpr double newton = joule / meter; // newton = 6.24150 e+9 * MeV/mm
215
216//
217// Pressure [E][L^-3]
218//
219#define pascal hep_pascal // a trick to avoid warnings
220static constexpr double hep_pascal = newton / m2; // pascal = 6.24150 e+3 * MeV/mm3
221static constexpr double bar = 100000 * pascal; // bar = 6.24150 e+8 * MeV/mm3
222static constexpr double atmosphere = 101325 * pascal; // atm = 6.32420 e+8 * MeV/mm3
223
224//
225// Electric current [Q][T^-1]
226//
227static constexpr double ampere = coulomb / second; // ampere = 6.24150 e+9 * eplus/ns
228static constexpr double milliampere = 1.e-3 * ampere;
229static constexpr double microampere = 1.e-6 * ampere;
230static constexpr double nanoampere = 1.e-9 * ampere;
231
232//
233// Electric potential [E][Q^-1]
234//
235static constexpr double megavolt = megaelectronvolt / eplus;
236static constexpr double kilovolt = 1.e-3 * megavolt;
237static constexpr double volt = 1.e-6 * megavolt;
238
239//
240// Electric resistance [E][T][Q^-2]
241//
242static constexpr double ohm = volt / ampere; // ohm = 1.60217e-16*(MeV/eplus)/(eplus/ns)
243
244//
245// Electric capacitance [Q^2][E^-1]
246//
247static constexpr double farad = coulomb / volt; // farad = 6.24150e+24 * eplus/Megavolt
248static constexpr double millifarad = 1.e-3 * farad;
249static constexpr double microfarad = 1.e-6 * farad;
250static constexpr double nanofarad = 1.e-9 * farad;
251static constexpr double picofarad = 1.e-12 * farad;
252
253//
254// Magnetic Flux [T][E][Q^-1]
255//
256static constexpr double weber = volt * second; // weber = 1000*megavolt*ns
257
258//
259// Magnetic Field [T][E][Q^-1][L^-2]
260//
261static constexpr double tesla = volt * second / meter2; // tesla =0.001*megavolt*ns/mm2
262
263static constexpr double gauss = 1.e-4 * tesla;
264static constexpr double kilogauss = 1.e-1 * tesla;
265
266//
267// Inductance [T^2][E][Q^-2]
268//
269static constexpr double henry = weber / ampere; // henry = 1.60217e-7*MeV*(ns/eplus)**2
270
271//
272// Temperature
273//
274static constexpr double kelvin = 1.;
275
276//
277// Amount of substance
278//
279static constexpr double mole = 1.;
280
281//
282// Activity [T^-1]
283//
284static constexpr double becquerel = 1. / second;
285static constexpr double curie = 3.7e+10 * becquerel;
286static constexpr double kilobecquerel = 1.e+3 * becquerel;
287static constexpr double megabecquerel = 1.e+6 * becquerel;
288static constexpr double gigabecquerel = 1.e+9 * becquerel;
289static constexpr double millicurie = 1.e-3 * curie;
290static constexpr double microcurie = 1.e-6 * curie;
291static constexpr double Bq = becquerel;
292static constexpr double kBq = kilobecquerel;
293static constexpr double MBq = megabecquerel;
294static constexpr double GBq = gigabecquerel;
295static constexpr double Ci = curie;
296static constexpr double mCi = millicurie;
297static constexpr double uCi = microcurie;
298
299//
300// Absorbed dose [L^2][T^-2]
301//
302static constexpr double gray = joule / kilogram;
303static constexpr double kilogray = 1.e+3 * gray;
304static constexpr double milligray = 1.e-3 * gray;
305static constexpr double microgray = 1.e-6 * gray;
306
307//
308// Luminous intensity [I]
309//
310static constexpr double candela = 1.;
311
312//
313// Luminous flux [I]
314//
315static constexpr double lumen = candela * steradian;
316
317//
318// Illuminance [I][L^-2]
319//
320static constexpr double lux = lumen / meter2;
321
322//
323// Miscellaneous
324//
325static constexpr double perCent = 0.01;
326static constexpr double perThousand = 0.001;
327static constexpr double perMillion = 0.000001;
328
329} // namespace TGeoUnit
330
331#endif /* TGEO_SYSTEM_OF_UNITS_H */
#define pascal
static constexpr double barn
static constexpr double second
static constexpr double centimeter
static constexpr double mg
static constexpr double milliampere
static constexpr double meter2
static constexpr double perMillion
static constexpr double gigabecquerel
static constexpr double cL
static constexpr double megahertz
static constexpr double mCi
static constexpr double us
static constexpr double atmosphere
static constexpr double picosecond
static constexpr double mm2
static constexpr double cm3
static constexpr double halfpi
static constexpr double weber
static constexpr double nm
static constexpr double newton
static constexpr double millisecond
static constexpr double ms
static constexpr double millicurie
static constexpr double centimeter2
static constexpr double millimeter
static constexpr double lumen
static constexpr double tesla
static constexpr double s
static constexpr double kBq
static constexpr double pc
static constexpr double kilometer2
static constexpr double eplus
static constexpr double megabecquerel
static constexpr double Bq
static constexpr double gray
static constexpr double watt
static constexpr double teraelectronvolt
static constexpr double mm
static constexpr double MeV
static constexpr double pi
static constexpr double keV
static constexpr double becquerel
static constexpr double um
static constexpr double millibarn
static constexpr double millifarad
static constexpr double kilometer3
static constexpr double nanoampere
static constexpr double kilovolt
static constexpr double picobarn
static constexpr double fermi
static constexpr double GeV
static constexpr double ps
static constexpr double henry
static constexpr double twopi
static constexpr double microfarad
static constexpr double parsec
static constexpr double millimeter3
static constexpr double megaelectronvolt
static constexpr double MBq
static constexpr double milliradian
static constexpr double ampere
static constexpr double rad
static constexpr double gigaelectronvolt
static constexpr double meter
static constexpr double ohm
static constexpr double kg
static constexpr double hep_pascal
static constexpr double nanofarad
static constexpr double TeV
static constexpr double joule
static constexpr double km2
static constexpr double perCent
static constexpr double kilobecquerel
static constexpr double cm
static constexpr double mole
static constexpr double milligray
static constexpr double microampere
static constexpr double gram
static constexpr double microsecond
static constexpr double electronvolt
static constexpr double curie
static constexpr double meter3
static constexpr double km3
static constexpr double m
static constexpr double milligram
static constexpr double e_SI
static constexpr double ns
static constexpr double microbarn
static constexpr double liter
static constexpr double candela
static constexpr double microgray
static constexpr double m2
static constexpr double kilometer
static constexpr double sr
static constexpr double centimeter3
static constexpr double millimeter2
static constexpr double microcurie
static constexpr double steradian
static constexpr double kilohertz
static constexpr double perThousand
static constexpr double picofarad
static constexpr double mm3
static constexpr double kilogram
static constexpr double kiloelectronvolt
static constexpr double deg
static constexpr double radian
static constexpr double uCi
static constexpr double megavolt
static constexpr double lux
static constexpr double volt
static constexpr double m3
static constexpr double dL
static constexpr double cm2
static constexpr double coulomb
static constexpr double angstrom
static constexpr double PeV
static constexpr double kilogray
static constexpr double GBq
static constexpr double nanometer
static constexpr double petaelectronvolt
static constexpr double mrad
static constexpr double bar
static constexpr double pi2
static constexpr double farad
static constexpr double degree
static constexpr double mL
static constexpr double gauss
static constexpr double hertz
static constexpr double nanosecond
static constexpr double nanobarn
static constexpr double eV
static constexpr double kelvin
static constexpr double Ci
static constexpr double L
static constexpr double g
static constexpr double micrometer
static constexpr double kilogauss
static constexpr double km