GENIEGenerator
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Framework/Conventions/Constants.h
Go to the documentation of this file.
1 //____________________________________________________________________________
2 /*!
3 
4 \namespace genie::constants
5 
6 \brief Basic constants
7 
8 \author Costas Andreopoulos <c.andreopoulos \at cern.ch>
9  University of Liverpool
10 
11 \created May 03, 2004
12 
13 \cpright Copyright (c) 2003-2024, The GENIE Collaboration
14  For the full text of the license visit http://copyright.genie-mc.org
15 */
16 //____________________________________________________________________________
17 
18 #ifndef _CONSTANTS_H_
19 #define _CONSTANTS_H_
20 
21 #include <TMath.h>
22 
24 
25 namespace genie {
26 namespace constants {
27 
28 //
29 // Fundamental constants
30 //
31 static const double kLightSpeed = 1.;
32 static const double kPlankConstant = 1.;
33 
34 //
35 // pi, e,...
36 //
37 static const double kPi = TMath::Pi();
38 static const double kPi2 = TMath::Power(kPi,2);
39 static const double kPi3 = TMath::Power(kPi,3);
40 static const double kPi4 = TMath::Power(kPi,4);
41 static const double kSqrtPi= TMath::Sqrt(kPi);
42 
43 static const double kNapierConst = TMath::E();
44 static const double kSqrtNapierConst = TMath::Sqrt(kNapierConst);
45 
46 //
47 // Avogadro number, compton wavelength and such...
48 //
49 static const double kNA = 6.02214179E+23;
50 static const double kLe = 3.8616E-11 *units::cm;
51 static const double kLe2 = TMath::Power(kLe,2);
52 
53 //
54 // Coupling constants -> Deprecated, please use the values from CommonParam[WeakInt]
55 //
56 static const double kAem = 1./137.03599976; // EM coupling const, dimensionless
57 static const double kAem2 = TMath::Power(kAem,2);
58 static const double kGF = 1.16639E-5; // Fermi const from b-decay, in GeV^-2
59 static const double kGF2 = TMath::Power(kGF,2);
60 
61 //
62 // Masses
63 //
64 // For simplicity, the most commonly used particle masses defined here.
65 // In general, however, particle masses in GENIE classes should be obtained
66 // through the genie::PDGLibrary as shown below:
67 // double mass = PDGLibrary::Instance()->Find(pdg_code)->Mass();
68 // For consistency, the values below must match whatever is used in PDGLibrary.
69 //
70 static const double kElectronMass = 5.109989461e-04; // GeV
71 static const double kMuonMass = 1.056583745e-01; // GeV
72 static const double kTauMass = 1.77686e+00; // GeV
73 static const double kPionMass = 1.3957018e-01; // GeV
74 static const double kPi0Mass = 1.349766e-01; // GeV
75 static const double kProtonMass = 9.38272081e-01; // GeV
76 static const double kNeutronMass = 9.39565413e-01; // GeV
77 static const double kNucleonMass = (kProtonMass+kNeutronMass)/2.; //GeV
78 static const double kLightestChmHad = 1.870; // GeV ~lightest charm hadron+
79 static const double kPhotontest = 1E-6; // GeV
80 
81 
82 
83 static const double kElectronMass2 = TMath::Power(kElectronMass,2); // GeV^2
84 static const double kMuonMass2 = TMath::Power(kMuonMass,2); // GeV^2
85 static const double kTauMass2 = TMath::Power(kTauMass,2); // GeV^2
86 static const double kPionMass2 = TMath::Power(kPionMass,2); // GeV^2
87 static const double kProtonMass2 = TMath::Power(kProtonMass,2); // GeV^2
88 static const double kNeutronMass2 = TMath::Power(kNeutronMass,2); // GeV^2
89 static const double kNucleonMass2 = TMath::Power(kNucleonMass,2); // GeV^2
90 
91 static const double kMw = 8.0385e+01; // GeV - W boson mass
92 static const double kMz = 9.11876e+01; // GeV - Z boson mass
93 static const double kMw2 = TMath::Power(kMw,2); // GeV^2
94 static const double kMz2 = TMath::Power(kMz,2); // GeV^2
95 
96 //
97 // Misc constants for empirical formulas
98 //
99 static const double kNucRo = 1.2E-15 * units::m; // Ro in nuclear radius formula R=Ro*A^(1/3), in GeV^-1
100 static const double kNucDensity = 2.3E+17 * units::kg/units::m3; // Nuclear density (in nuclear core), in GeV^4
101 
102 
103 //FMTOGEV
104 static const double FMTOGEV= 5.0761421;
105 
106 
107 //
108 // Earth consts
109 //
110 static const double kREarth = 6371 * units::km;
111 
112 //
113 // Sqrts frequently encountered in helicity amplitude calculations
114 //
115 static const double kSqrt2 = TMath::Sqrt2(); //static const double kSqrt2 = 1.4142136;
116 static const double kSqrt3 = TMath::Sqrt(3); //static const double kSqrt3 = 1.7320508;
117 static const double kSqrt4 = TMath::Sqrt(4); //static const double kSqrt4 = 2.0;
118 static const double kSqrt5 = TMath::Sqrt(5); //static const double kSqrt5 = 2.236068;
119 static const double kSqrt6 = TMath::Sqrt(6); //static const double kSqrt6 = 2.4494897;
120 static const double kSqrt7 = TMath::Sqrt(7); //static const double kSqrt7 = 2.6457513;
121 static const double kSqrt8 = TMath::Sqrt(8); //static const double kSqrt8 = 2.8284271;
122 static const double kSqrt9 = TMath::Sqrt(9); //static const double kSqrt9 = 3.0;
123 static const double kSqrt10 = TMath::Sqrt(10); //static const double kSqrt10 = 3.1622777;
124 static const double kSqrt12 = TMath::Sqrt(12); //static const double kSqrt12 = 3.4641016;
125 static const double kSqrt15 = TMath::Sqrt(15); //static const double kSqrt15 = 3.8729833;
126 static const double kSqrt18 = TMath::Sqrt(18); //static const double kSqrt18 = 4.2426407;
127 static const double kSqrt20 = TMath::Sqrt(20); //static const double kSqrt20 = 4.472136;
128 static const double kSqrt24 = TMath::Sqrt(24); //static const double kSqrt24 = 4.8989795;
129 static const double kSqrt27 = TMath::Sqrt(27); //static const double kSqrt27 = 5.1961524;
130 static const double kSqrt30 = TMath::Sqrt(30); //static const double kSqrt30 = 5.4772256;
131 static const double kSqrt35 = TMath::Sqrt(35); //static const double kSqrt35 = 5.9160798;
132 static const double kSqrt40 = TMath::Sqrt(40); //static const double kSqrt40 = 6.3245553;
133 static const double kSqrt60 = TMath::Sqrt(60); //static const double kSqrt60 = 7.7459667;
134 static const double kSqrt120 = TMath::Sqrt(120); //static const double kSqrt120 = 10.954451;
135 static const double k1_Sqrt2 = 1/TMath::Sqrt2(); //static const double k1_Sqrt2 = 0.70710678;
136 static const double k1_Sqrt3 = 1/TMath::Sqrt(3); //static const double k1_Sqrt3 = 0.57735027;
137 static const double k1_Sqrt5 = 1/TMath::Sqrt(5); //static const double k1_Sqrt5 = 0.44721360;
138 static const double k1_Sqrt6 = 1/TMath::Sqrt(6); //static const double k1_Sqrt6 = 0.40824829;
139 static const double k1_Sqrt7 = 1/TMath::Sqrt(7); //static const double k1_Sqrt7 = 0.37796447;
140 static const double k1_Sqrt10 = 1/TMath::Sqrt(10); //static const double k1_Sqrt10 = 0.31622777;
141 static const double k1_Sqrt15 = 1/TMath::Sqrt(15); //static const double k1_Sqrt15 = 0.25819889;
142 static const double k1_Sqrt24 = 1/TMath::Sqrt(24); //static const double k1_Sqrt24 = 0.20412415;
143 static const double k1_Sqrt30 = 1/TMath::Sqrt(30); //static const double k1_Sqrt30 = 0.18257419;
144 static const double k1_Sqrt35 = 1/TMath::Sqrt(35); //static const double k1_Sqrt35 = 0.16903085;
145 static const double k1_Sqrt60 = 1/TMath::Sqrt(60); //static const double k1_Sqrt60 = 0.12909944;
146 static const double k1_Sqrt120 = 1/TMath::Sqrt(120); //static const double k1_Sqrt120 = 0.091287093;
147 static const double k2_Sqrt3 = 2/TMath::Sqrt(3); //static const double k2_Sqrt3 = 1.1547005;
148 static const double k2_Sqrt5 = 2/TMath::Sqrt(5); //static const double k2_Sqrt5 = 0.89442719;
149 static const double k2_Sqrt15 = 2/TMath::Sqrt(15); //static const double k2_Sqrt15 = 0.51639778;
150 static const double k2_Sqrt35 = 2/TMath::Sqrt(35); //static const double k2_Sqrt35 = 0.3380617;
151 static const double k3_Sqrt2 = 3/TMath::Sqrt2(); //static const double k3_Sqrt2 = 2.1213203;
152 static const double k3_Sqrt5 = 3/TMath::Sqrt(5); //static const double k3_Sqrt5 = 1.3416408;
153 static const double k3_Sqrt10 = 3/TMath::Sqrt(10); //static const double k3_Sqrt10 = 0.9486833;
154 static const double k3_Sqrt20 = 3/TMath::Sqrt(20); //static const double k3_Sqrt20 = 0.67082039;
155 static const double k3_Sqrt40 = 3/TMath::Sqrt(40); //static const double k3_Sqrt40 = 0.47434165;
156 static const double kSqrt2_3 = TMath::Sqrt(2.0/3); //static const double kSqrt2_3 = 0.81649658;
157 static const double kSqrt2_5 = TMath::Sqrt(2.0/5); //static const double kSqrt2_5 = 0.63245553;
158 static const double kSqrt2_6 = TMath::Sqrt(2.0/6); //static const double kSqrt2_6 = 0.57735027;
159 static const double kSqrt2_7 = TMath::Sqrt(2.0/7); //static const double kSqrt2_7 = 0.53452248;
160 static const double kSqrt2_15 = TMath::Sqrt(2.0/15); //static const double kSqrt2_15 = 0.36514837;
161 static const double kSqrt3_2 = TMath::Sqrt(3.0/2); //static const double kSqrt3_2 = 1.2247449;
162 static const double kSqrt3_4 = TMath::Sqrt(3.0/4); //static const double kSqrt3_4 = 0.8660254;
163 static const double kSqrt3_5 = TMath::Sqrt(3.0/5); //static const double kSqrt3_5 = 0.77459667;
164 static const double kSqrt3_8 = TMath::Sqrt(3.0/8); //static const double kSqrt3_8 = 0.61237244;
165 static const double kSqrt3_10 = TMath::Sqrt(3.0/10); //static const double kSqrt3_10 = 0.54772256;
166 static const double kSqrt3_18 = TMath::Sqrt(3.0/18); //static const double kSqrt3_18 = 0.40824829;
167 static const double kSqrt3_20 = TMath::Sqrt(3.0/20); //static const double kSqrt3_20 = 0.38729833;
168 static const double kSqrt3_35 = TMath::Sqrt(3.0/35); //static const double kSqrt3_35 = 0.29277002;
169 static const double kSqrt3_40 = TMath::Sqrt(3.0/40); //static const double kSqrt3_40 = 0.27386128;
170 static const double kSqrt4_15 = TMath::Sqrt(4.0/15); //static const double kSqrt4_15 = 0.51639778;
171 static const double kSqrt5_2 = TMath::Sqrt(5.0/2); //static const double kSqrt5_2 = 1.5811388;
172 static const double kSqrt5_3 = TMath::Sqrt(5.0/3); //static const double kSqrt5_3 = 1.2909944;
173 static const double kSqrt5_8 = TMath::Sqrt(5.0/8); //static const double kSqrt5_8 = 0.79056942;
174 static const double kSqrt5_12 = TMath::Sqrt(5.0/12); //static const double kSqrt5_12 = 0.64549722;
175 static const double kSqrt6_5 = TMath::Sqrt(6.0/5); //static const double kSqrt6_5 = 1.0954451;
176 static const double kSqrt6_35 = TMath::Sqrt(6.0/35); //static const double kSqrt6_35 = 0.41403934;
177 static const double kSqrt9_10 = TMath::Sqrt(9.0/10); //static const double kSqrt9_10 = 0.9486833;
178 static const double kSqrt9_40 = TMath::Sqrt(9.0/40); //static const double kSqrt9_40 = 0.47434165;
179 static const double kSqrt18_5 = TMath::Sqrt(18.0/5); //static const double kSqrt18_5 = 1.8973666;
180 static const double kSqrt18_20 = TMath::Sqrt(18.0/20); //static const double kSqrt18_20 = 0.9486833;
181 static const double kSqrt18_35 = TMath::Sqrt(18.0/35); //static const double kSqrt18_35 = 0.71713717;
182 static const double kSqrt24_35 = TMath::Sqrt(24.0/35); //static const double kSqrt24_35 = 0.82807867;
183 static const double kSqrt27_10 = TMath::Sqrt(27.0/10); //static const double kSqrt27_10 = 1.6431677;
184 static const double kSqrt27_40 = TMath::Sqrt(27.0/40); //static const double kSqrt27_40 = 0.82158384;
185 
186 } // namespace constants
187 } // namespace genie
188 
189 #endif // _CONSTANTS_H_
static constexpr double cm
Definition: Units.h:68
static const double kNapierConst
static const double kNucleonMass
static const double kSqrtNapierConst
static constexpr double kg
Definition: Units.h:143
static const double kLightestChmHad
static constexpr double km
Definition: Units.h:64
static const double kElectronMass
static const double kElectronMass2
static const double kNeutronMass
static const double kNucleonMass2
static constexpr double m3
Definition: Units.h:73
static const double kProtonMass2
static const double kNeutronMass2
static const double kPlankConstant
static constexpr double m
Definition: Units.h:71