00001 #ifndef RIVET_MATH_CONSTANTS 00002 #define RIVET_MATH_CONSTANTS 00003 00004 #include "Rivet/Math/MathHeader.hh" 00005 #include "Rivet/Math/Units.hh" 00006 00007 namespace Rivet { 00008 00009 // 00010 // 00011 // 00012 static const double pi = 3.14159265358979323846; 00013 static const double twopi = 2*pi; 00014 static const double halfpi = pi/2; 00015 static const double pi2 = pi*pi; 00016 00017 // 00018 // 00019 // 00020 static const double Avogadro = 6.0221367e+23/mole; 00021 00022 // 00023 // c = 299.792458 mm/ns 00024 // c^2 = 898.7404 (mm/ns)^2 00025 // 00026 static const double c_light = 2.99792458e+8 * m/s; 00027 static const double c_squared = c_light * c_light; 00028 00029 // 00030 // h = 4.13566e-12 MeV*ns 00031 // hbar = 6.58212e-13 MeV*ns 00032 // hbarc = 197.32705e-12 MeV*mm 00033 // 00034 static const double h_Planck = 6.6260755e-34 * joule*s; 00035 static const double hbar_Planck = h_Planck/twopi; 00036 static const double hbarc = hbar_Planck * c_light; 00037 static const double hbarc_squared = hbarc * hbarc; 00038 00039 // 00040 // 00041 // 00042 static const double electron_charge = - eplus; // see SystemOfUnits.h 00043 static const double e_squared = eplus * eplus; 00044 00045 // 00046 // amu_c2 - atomic equivalent mass unit 00047 // amu - atomic mass unit 00048 // 00049 static const double electron_mass_c2 = 0.51099906 * MeV; 00050 static const double proton_mass_c2 = 938.27231 * MeV; 00051 static const double neutron_mass_c2 = 939.56563 * MeV; 00052 static const double amu_c2 = 931.49432 * MeV; 00053 static const double amu = amu_c2/c_squared; 00054 00055 // 00056 // permeability of free space mu0 = 2.01334e-16 Mev*(ns*eplus)^2/mm 00057 // permittivity of free space epsil0 = 5.52636e+10 eplus^2/(MeV*mm) 00058 // 00059 static const double mu0 = 4*pi*1.e-7 * henry/m; 00060 static const double epsilon0 = 1./(c_squared*mu0); 00061 00062 // 00063 // electromagnetic coupling = 1.43996e-12 MeV*mm/(eplus^2) 00064 // 00065 static const double elm_coupling = e_squared/(4*pi*epsilon0); 00066 static const double fine_structure_const = elm_coupling/hbarc; 00067 static const double classic_electr_radius = elm_coupling/electron_mass_c2; 00068 static const double electron_Compton_length = hbarc/electron_mass_c2; 00069 static const double Bohr_radius = electron_Compton_length/fine_structure_const; 00070 00071 static const double alpha_rcl2 = fine_structure_const 00072 *classic_electr_radius 00073 *classic_electr_radius; 00074 00075 static const double twopi_mc2_rcl2 = twopi*electron_mass_c2 00076 *classic_electr_radius 00077 *classic_electr_radius; 00078 // 00079 // 00080 // 00081 static const double k_Boltzmann = 8.617385e-11 * MeV/kelvin; 00082 00083 // 00084 // 00085 // 00086 static const double STP_Temperature = 273.15*kelvin; 00087 static const double STP_Pressure = 1.*atmosphere; 00088 static const double kGasThreshold = 10.*mg/cm3; 00089 00090 // 00091 // 00092 // 00093 static const double universe_mean_density = 1.e-25*g/cm3; 00094 00095 } 00096 00097 #endif