Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4SIunits.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29// ----------------------------------------------------------------------
30//
31// Class description:
32//
33// This file is a modified version of SystemOfUnits.h
34// It is provided for checking the overall 'units coherence' of the
35// Geant4 kernel.
36// -------
37// Warning: if you use it, do not forget to recompile the whole Geant4 kernel
38// -------
39// The basic units are those of the International System:
40//
41// meter
42// second
43// kilogram
44// ampere
45// degree kelvin
46// the amount of substance (mole)
47// luminous intensity (candela)
48// radian
49// steradian
50//
51//
52// The SI numerical value of the positron charge is defined here,
53// as it is needed for conversion factor : positron charge = e_SI (coulomb)
54//
55// The others physical constants are defined in the header file :
56// PhysicalConstants.h
57//
58
59// Authors: M.Maire, S.Giani
60//
61// History:
62//
63// 10.03.99 created
64// 01.03.01 parsec
65
66#ifndef G4UNITSTEST_HH
67#define G4UNITSTEST_HH
68
69//
70// Length [L]
71//
72static const double meter = 1.;
73static const double meter2 = meter*meter;
74static const double meter3 = meter*meter*meter;
75
76static const double millimeter = 0.001*meter;
77static const double millimeter2 = millimeter*millimeter;
78static const double millimeter3 = millimeter*millimeter*millimeter;
79
80static const double centimeter = 10.*millimeter;
81static const double centimeter2 = centimeter*centimeter;
82static const double centimeter3 = centimeter*centimeter*centimeter;
83
84static const double kilometer = 1000.*meter;
85static const double kilometer2 = kilometer*kilometer;
86static const double kilometer3 = kilometer*kilometer*kilometer;
87
88static const double parsec = 3.0856775807e+16*meter;
89
90static const double micrometer = 1.e-6 *meter;
91static const double nanometer = 1.e-9 *meter;
92static const double angstrom = 1.e-10*meter;
93static const double fermi = 1.e-15*meter;
94
95static const double barn = 1.e-28*meter2;
96static const double millibarn = 1.e-3 *barn;
97static const double microbarn = 1.e-6 *barn;
98static const double nanobarn = 1.e-9 *barn;
99static const double picobarn = 1.e-12*barn;
100
101// symbols
102static const double mm = millimeter;
103static const double mm2 = millimeter2;
104static const double mm3 = millimeter3;
105
106static const double cm = centimeter;
107static const double cm2 = centimeter2;
108static const double cm3 = centimeter3;
109
110static const double m = meter;
111static const double m2 = meter2;
112static const double m3 = meter3;
113
114static const double km = kilometer;
115static const double km2 = kilometer2;
116static const double km3 = kilometer3;
117
118static const double pc = parsec;
119
120//
121// Angle
122//
123static const double radian = 1.;
124static const double milliradian = 1.e-3*radian;
125static const double degree = (3.14159265358979323846/180.0)*radian;
126
127static const double steradian = 1.;
128
129// symbols
130static const double rad = radian;
131static const double mrad = milliradian;
132static const double sr = steradian;
133static const double deg = degree;
134
135//
136// Time [T]
137//
138static const double second = 1.;
139static const double nanosecond = 1.e-9 *second;
140static const double millisecond = 1.e-3 *second;
141static const double microsecond = 1.e-6 *second;
142static const double picosecond = 1.e-12*second;
143
144static const double hertz = 1./second;
145static const double kilohertz = 1.e+3*hertz;
146static const double megahertz = 1.e+6*hertz;
147
148// symbols
149static const double ns = nanosecond;
150static const double s = second;
151static const double ms = millisecond;
152
153//
154// Mass [E][T^2][L^-2]
155//
156static const double kilogram = 1.;
157static const double gram = 1.e-3*kilogram;
158static const double milligram = 1.e-3*gram;
159
160// symbols
161static const double kg = kilogram;
162static const double g = gram;
163static const double mg = milligram;
164
165//
166// Electric current [Q][T^-1]
167//
168static const double ampere = 1.;
169static const double milliampere = 1.e-3*ampere;
170static const double microampere = 1.e-6*ampere;
171static const double nanoampere = 1.e-9*ampere;
172
173//
174// Electric charge [Q]
175//
176static const double coulomb = ampere*second;
177static const double e_SI = 1.60217733e-19; // positron charge in coulomb
178static const double eplus = e_SI*coulomb ; // positron charge
179
180//
181// Energy [E]
182//
183static const double joule = kg*m*m/(s*s);
184
185static const double electronvolt = e_SI*joule;
186static const double kiloelectronvolt = 1.e+3*electronvolt;
187static const double megaelectronvolt = 1.e+6*electronvolt;
188static const double gigaelectronvolt = 1.e+9*electronvolt;
189static const double teraelectronvolt = 1.e+12*electronvolt;
190static const double petaelectronvolt = 1.e+15*electronvolt;
191
192// symbols
193static const double MeV = megaelectronvolt;
194static const double eV = electronvolt;
195static const double keV = kiloelectronvolt;
196static const double GeV = gigaelectronvolt;
197static const double TeV = teraelectronvolt;
198static const double PeV = petaelectronvolt;
199
200//
201// Power [E][T^-1]
202//
203static const double watt = joule/second; // watt = 6.24150 e+3 * MeV/ns
204
205//
206// Force [E][L^-1]
207//
208static const double newton = joule/meter; // newton = 6.24150 e+9 * MeV/mm
209
210//
211// Pressure [E][L^-3]
212//
213#define pascal hep_pascal // a trick to avoid warnings
214static const double hep_pascal = newton/m2; // pascal = 6.24150 e+3 * MeV/mm3
215static const double bar = 100000*pascal; // bar = 6.24150 e+8 * MeV/mm3
216static const double atmosphere = 101325*pascal; // atm = 6.32420 e+8 * MeV/mm3
217
218//
219// Electric potential [E][Q^-1]
220//
221static const double megavolt = megaelectronvolt/eplus;
222static const double kilovolt = 1.e-3*megavolt;
223static const double volt = 1.e-6*megavolt;
224
225//
226// Electric resistance [E][T][Q^-2]
227//
228static const double ohm = volt/ampere; // ohm = 1.60217e-16*(MeV/eplus)/(eplus/ns)
229
230//
231// Electric capacitance [Q^2][E^-1]
232//
233static const double farad = coulomb/volt; // farad = 6.24150e+24 * eplus/Megavolt
234static const double millifarad = 1.e-3*farad;
235static const double microfarad = 1.e-6*farad;
236static const double nanofarad = 1.e-9*farad;
237static const double picofarad = 1.e-12*farad;
238
239//
240// Magnetic Flux [T][E][Q^-1]
241//
242static const double weber = volt*second; // weber = 1000*megavolt*ns
243
244//
245// Magnetic Field [T][E][Q^-1][L^-2]
246//
247static const double tesla = volt*second/meter2; // tesla =0.001*megavolt*ns/mm2
248
249static const double gauss = 1.e-4*tesla;
250static const double kilogauss = 1.e-1*tesla;
251
252//
253// Inductance [T^2][E][Q^-2]
254//
255static const double henry = weber/ampere; // henry = 1.60217e-7*MeV*(ns/eplus)**2
256
257//
258// Temperature
259//
260static const double kelvin = 1.;
261
262//
263// Amount of substance
264//
265static const double mole = 1.;
266
267//
268// Activity [T^-1]
269//
270static const double becquerel = 1./second ;
271static const double curie = 3.7e+10 * becquerel;
272
273//
274// Absorbed dose [L^2][T^-2]
275//
276static const double gray = joule/kilogram ;
277
278//
279// Luminous intensity [I]
280//
281static const double candela = 1.;
282
283//
284// Luminous flux [I]
285//
286static const double lumen = candela*steradian;
287
288//
289// Illuminance [I][L^-2]
290//
291static const double lux = lumen/meter2;
292
293//
294// Miscellaneous
295//
296static const double perCent = 0.01 ;
297static const double perThousand = 0.001;
298static const double perMillion = 0.000001;
299
300#endif /* G4UNITSTEST_HH */
#define pascal
Definition: G4SIunits.hh:213
#define ns
Definition: xmlparse.cc:597