HighLAND
HEPConstants.hxx
1 ////////////////////////////////////////////////////////////
2 // $Id: HEPConstants.hxx,v 1.4 2015/11/18 13:05:08 izmaylov Exp $
3 //
4 // This is taken from CLHEP and is included into here so that we don't
5 // have to depend on CLHEP. All of the constants are in the UNO:: namespace.
6 // ----------------------------------------------------------------------
7 // HEP coherent Physical Constants
8 //
9 // This file has been provided by Geant4 (simulation toolkit for HEP).
10 //
11 // The basic units are :
12 // millimeter
13 // nanosecond
14 // Mega electron Volt
15 // positon charge
16 // degree Kelvin
17 // amount of substance (mole)
18 // luminous intensity (candela)
19 // radian
20 // steradian
21 //
22 // Below is a non exhaustive list of Physical CONSTANTS,
23 // computed in the Internal HEP System Of Units.
24 //
25 // Most of them are extracted from the Particle Data Book :
26 // Phys. Rev. D volume 50 3-1 (1994) page 1233
27 //
28 // ...with a meaningful (?) name ...
29 //
30 // You can add your own constants.
31 //
32 // Author: M.Maire
33 //
34 // History:
35 //
36 // 23.02.96 Created
37 // 26.03.96 Added constants for standard conditions of temperature
38 // and pressure; also added Gas threshold.
39 
40 #ifndef HEP_CONSTANTS_HXX
41 #define HEP_CONSTANTS_HXX
42 
43 #include "Units.hxx"
44 #include "TDatabasePDG.h"
45 
46 class TDatabasePDG;
47 
48 namespace units {
49 
50  const double pi = 3.14159265358979323846;
51  const double twopi = 2*pi;
52  const double halfpi = pi/2;
53  const double pi2 = pi*pi;
54 
55  //
56  //
57  //
58  const double Avogadro = 6.0221367e+23/mole;
59 
60  //
61  // c = 299.792458 mm/ns
62  // c^2 = 898.7404 (mm/ns)^2
63  //
64  const double c_light = 2.99792458e+8 * meter/second;
65  const double c_squared = c_light * c_light;
66 
67  //
68  // h = 4.13566e-12 MeV*ns
69  // hbar = 6.58212e-13 MeV*ns
70  // hbarc = 197.32705e-12 MeV*mm
71  //
72  const double h_Planck = 6.6260755e-34 * joule*second;
73  const double hbar_Planck = h_Planck/twopi;
74  const double hbarc = hbar_Planck * c_light;
75  const double hbarc_squared = hbarc * hbarc;
76 
77  //
78  //
79  //
80  const double electron_charge = - eplus; // see SystemOfUnits.h
81  const double e_squared = eplus * eplus;
82 
83  //
84  // amu_c2 - atomic equivalent mass unit
85  // amu - atomic mass unit
86  //
87  const double electron_mass_c2 = 0.51099906 * MeV;
88  const double proton_mass_c2 = 938.27231 * MeV;
89  const double neutron_mass_c2 = 939.56563 * MeV;
90  const double amu_c2 = 931.49432 * MeV;
91  const double amu = amu_c2/c_squared;
92 
93  //
94  // permeability of free space mu0 = 2.01334e-16 Mev*(ns*eplus)^2/mm
95  // permittivity of free space epsil0 = 5.52636e+10 eplus^2/(MeV*mm)
96  //
97  const double mu0 = 4*pi*1.e-7 * henry/meter;
98  const double epsilon0 = 1./(c_squared*mu0);
99 
100  //
101  // electromagnetic coupling = 1.43996e-12 MeV*mm/(eplus^2)
102  //
103  const double elm_coupling = e_squared/(4*pi*epsilon0);
104  const double fine_structure_const = elm_coupling/hbarc;
105  const double classic_electr_radius = elm_coupling/electron_mass_c2;
106  const double electron_Compton_length = hbarc/electron_mass_c2;
107  const double Bohr_radius = electron_Compton_length/fine_structure_const;
108 
109  const double alpha_rcl2 = fine_structure_const
110  *classic_electr_radius
111  *classic_electr_radius;
112 
113  const double twopi_mc2_rcl2 = twopi*electron_mass_c2
114  *classic_electr_radius
115  *classic_electr_radius;
116  //
117  //
118  //
119  const double k_Boltzmann = 8.617385e-11 * MeV/kelvin;
120 
121  //
122  //
123  //
124  const double STP_Temperature = 273.15*kelvin;
125  const double STP_Pressure = 1.*atmosphere;
126  const double kGasThreshold = 10.*milligram/centimeter3;
127 
128  //
129  //
130  //
131  const double universe_mean_density = 1.e-25*gram/centimeter3;
132 
133  //-----
134  //particle masses: keep them hard-coded for faster access (instead can use for example from TDatabasePDG)
135  //-----
136  extern const double mass_proton;
137  extern const double mass_neutron;
138 
139  extern const double mass_electron;
140  extern const double mass_muon;
141 
142  extern const double mass_pion_zero;
143  extern const double mass_pion_charged;
144  extern const double mass_kaon_zero;
145  extern const double mass_kaon_charged;
146 
147  extern TDatabasePDG* pdgBase;
148 
149 }
150 #endif
151 
152 
153 
154 
155