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