StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
PhysicalConstants.h
1 /***************************************************************************
2  *
3  * $Id: PhysicalConstants.h,v 1.4 2015/05/19 20:36:18 perev Exp $
4  *
5  * Author: CLHEP (see below)
6  ***************************************************************************
7  *
8  * Description: Taken as-is from CLHEP.
9  * Modified original CVS-Id to retain version info.
10  ***************************************************************************
11  *
12  * $Log: PhysicalConstants.h,v $
13  * Revision 1.4 2015/05/19 20:36:18 perev
14  * WarnOff
15  *
16  * Revision 1.3 2012/06/11 15:29:26 fisyak
17  * std namespace
18  *
19  * Revision 1.2 1999/02/22 16:52:47 didenko
20  * updates from Gene
21  *
22  * Revision 1.1 1999/01/30 03:58:59 fisyak
23  * Root Version of StarClassLibrary
24  *
25  * Revision 1.1 1999/01/23 00:27:34 ullrich
26  * Initial Revision
27  *
28  **************************************************************************/
29 
30 #ifndef HEP_PHYSICAL_CONSTANTS_H
31 #ifndef __CINT__
32 #define HEP_PHYSICAL_CONSTANTS_H
33 
34 #include "SystemOfUnits.h"
35 #include "TMath.h"
36 
37 #ifndef ST_NO_NAMESPACES
38 using namespace units;
39 #endif
40 
41 //
42 //
43 //
44 static const double pi = TMath::Pi(); // from <math.h>
45 static const double twopi = 2*pi;
46 static const double halfpi = pi/2;
47 static const double pi2 = pi*pi;
48 
49 //
50 //
51 //
52 static const double Avogadro = 6.0221367e+23/mole;
53 
54 //
55 // c = 299.792458 mm/ns
56 // c^2 = 898.7404 (mm/ns)^2
57 //
58 static const double c_light = 2.99792458e+8 * meter/second;
59 static const double c_squared = c_light * c_light;
60 
61 //
62 // h = 4.13566e-12 MeV*ns
63 // hbar = 6.58212e-13 MeV*ns
64 // hbarc = 197.32705e-12 MeV*mm
65 //
66 static const double h_Planck = 6.6260755e-34 * joule*second;
67 static const double hbar_Planck = h_Planck/twopi;
68 static const double hbarc = hbar_Planck * c_light;
69 static const double hbarc_squared = hbarc * hbarc;
70 
71 //
72 //
73 //
74 static const double electron_charge = - eplus; // see SystemOfUnits.h
75 static const double e_squared = eplus * eplus;
76 
77 //
78 // amu_c2 - atomic equivalent mass unit
79 // amu - atomic mass unit
80 //
81 static const double electron_mass_c2 = 0.51099906 * MeV;
82 static const double proton_mass_c2 = 938.27231 * MeV;
83 static const double neutron_mass_c2 = 939.56563 * MeV;
84 static const double amu_c2 = 931.49432 * MeV;
85 //VP static const double amu = amu_c2/c_squared; //same name in SystemOfUnits.h
86 
87 static const double kaon_0_short_mass_c2 = 497.672 * MeV;
88 static const double pion_plus_mass_c2 = 139.5700 * MeV;
89 static const double pion_minus_mass_c2 = 139.5700 * MeV;
90 static const double lambda_mass_c2 = 1115.684 * MeV;
91 static const double antilambda_mass_c2 = 1115.684 * MeV;
92 static const double xi_minus_mass_c2 = 1321.32 * MeV;
93 
94 
95 //
96 // permeability of free space mu0 = 2.01334e-16 Mev*(ns*eplus)^2/mm
97 // permittivity of free space epsil0 = 5.52636e+10 eplus^2/(MeV*mm)
98 //
99 static const double mu0 = 4*pi*1.e-7 * henry/meter;
100 static const double epsilon0 = 1./(c_squared*mu0);
101 
102 //
103 // electromagnetic coupling = 1.43996e-12 MeV*mm/(eplus^2)
104 //
105 static const double elm_coupling = e_squared/(4*pi*epsilon0);
106 static const double fine_structure_const = elm_coupling/hbarc;
107 static const double classic_electr_radius = elm_coupling/electron_mass_c2;
108 static const double electron_Compton_length = hbarc/electron_mass_c2;
109 static const double Bohr_radius = electron_Compton_length/fine_structure_const;
110 
111 static const double alpha_rcl2 = fine_structure_const
112  *classic_electr_radius
113  *classic_electr_radius;
114 
115 static const double twopi_mc2_rcl2 = twopi*electron_mass_c2
116  *classic_electr_radius
117  *classic_electr_radius;
118 //
119 //
120 //
121 static const double k_Boltzmann = 8.617385e-11 * MeV/kelvin;
122 
123 //
124 //
125 //
126 static const double STP_Temperature = 273.15*kelvin;
127 static const double STP_Pressure = 1.*atmosphere;
128 static const double kGasThreshold = 1.e-2*gram/centimeter3;
129 #endif /* !__CINT__ */
130 inline int dummyPhysicalConstants()
131 {
132 return
133 pi
134 +halfpi
135 +pi2
136 +Avogadro
137 +c_light
138 +c_squared
139 +h_Planck
140 +hbar_Planck
141 +hbarc
142 +hbarc_squared
143 +electron_charge
144 +electron_mass_c2
145 +proton_mass_c2
146 +neutron_mass_c2
147 +amu_c2
148 +kaon_0_short_mass_c2
149 +pion_plus_mass_c2
150 +pion_minus_mass_c2
151 +lambda_mass_c2
152 +antilambda_mass_c2
153 +xi_minus_mass_c2
154 +mu0
155 +epsilon0
156 +elm_coupling
157 +fine_structure_const
158 +classic_electr_radius
159 +electron_Compton_length
160 +Bohr_radius
161 +alpha_rcl2
162 +twopi_mc2_rcl2
163 +k_Boltzmann
164 +STP_Temperature
165 +STP_Pressure
166 +kGasThreshold;
167 }
168 
169 
170 #endif /* HEP_PHYSICAL_CONSTANTS_H */
171 
172 
173 
174 
175