Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/include/CLHEP/Units/SystemOfUnits.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

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