// requires ROOT: http://root.cern.ch/ // // usage: compile using ROOT by: ".L library_pc.C+" (note the plus sign) // // By: Jaideep Singh // // Date: 03/24/07 // // descp: Fundamental Physical Constants (CODATA 2002) // // To use this library, place the following line in your macro to load the lib: // // gSystem->Load("library_pc_C.so"); // // Make sure that it has been compiled as described in the usage above. // Make sure that the path is correct in the "Load" command // // now you can call the "pc_X" functions, where X is the symbol of the // desired constant // the parameter is the units, default is SI // // data from: http://physics.nist.gov/cuu/Constants/index.html // (NIST) downloaded on 03/20/07, this is based on CODATA 2002! #include "TString.h" #include "Riostream.h" #include "TMath.h" // Faraday constant // default units = C/mol Double_t pc_F(TString units = "C/mol") { Double_t output = 0.0; if (units == "C/mol") { output = 96485.3383; } else if (units == "C_90/mol") { output = 96485.336; } else { cerr << "(library_pc) Unrecognized units for F: " << units << endl; } return output; } // Newtonian constant of gravitation // default units = SI Double_t pc_G(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 6.6742e-11; } else if (units == "hbarc") { output = 6.7087e-39; } else { cerr << "(library_pc) Unrecognized units for G: " << units << endl; } return output; } // Fermi coupling constant in 1/GeV^2 // default units = 1/GeV^2 Double_t pc_GF(TString units = "1/GeV^2") { Double_t output = 0.0; if (units == "1/GeV^2") { output = 1.16639e-5; } else { cerr << "(library_pc) Unrecognized units for GF: " << units << endl; } return output; } // Josephson constant // default units = SI Double_t pc_KJ(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 483597.879e9; } else { cerr << "(library_pc) Unrecognized units for KJ: " << units << endl; } return output; } // Avogadro constant // default units = 1/mol Double_t pc_NA(TString units = "1/mol") { Double_t output = 0.0; if (units == "1/mol") { output = 6.0221415e23; } else { cerr << "(library_pc) Unrecognized units for NA: " << units << endl; } return output; } // Planck scale (mass,temperature,length,time) // default units = kg Double_t pc_Planck(TString units = "kg") { Double_t output = 0.0; if (units == "kg") { output = 2.17645e-8; } else if (units == "K") { output = 1.41679e32; } else if (units == "m") { output = 1.61624e-35; } else if (units == "s") { output = 5.39121e-44; } else { cerr << "(library_pc) Unrecognized units for Planck: " << units << endl; } return output; } // molar gas constant // default units = SI Double_t pc_R(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 8.314472; } else { cerr << "(library_pc) Unrecognized units for R: " << units << endl; } return output; } // von Klitzing constant // default units = SI Double_t pc_RK(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 25812.807449; } else { cerr << "(library_pc) Unrecognized units for RK: " << units << endl; } return output; } // Rydberg constant // default units = SI Double_t pc_Rinfty(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 10973731.568525; } else if (units == "Hz") { output = 3.289841960360e15; } else if (units == "J") { output = 2.17987209e-18; } else if (units == "eV") { output = 13.6056923; } else { cerr << "(library_pc) Unrecognized units for Rinfty: " << units << endl; } return output; } // Bohr radius // default units = SI Double_t pc_a0(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 0.5291772108e-10; } else { cerr << "(library_pc) Unrecognized units for a0: " << units << endl; } return output; } // fine-structure constant // default units = unitless Double_t pc_alpha() { return 1.0/137.03599911; } // molar volume of ideal gas (273.15 K, 101.325 kPa) // default units = SI Double_t pc_amg(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.0/22.413996e-3; } else if (units == "1/m^3") { output = 2.6867773e25; } else { cerr << "(library_pc) Unrecognized units for amg: " << units << endl; } return output; } // atomic mass unit conversions // default units = SI Double_t pc_amu(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.66053886e-27; } else if (units == "J") { output = 1.49241790e-10; } else if (units == "kg") { output = 1.66053886e-27; } else if (units == "1/m") { output = 7.513006608e14; } else if (units == "Hz") { output = 2.252342718e23; } else if (units == "K") { output = 1.0809527e13; } else if (units == "eV") { output = 931.494043e6; } else if (units == "MeV") { output = 931.494043; } else if (units == "Eh") { output = 3.423177686e7; } else { cerr << "(library_pc) Unrecognized units for amu: " << units << endl; } return output; } // Wien displacement law constant // default units = SI Double_t pc_bWien(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 2.8977685e-3; } else { cerr << "(library_pc) Unrecognized units for bWien: " << units << endl; } return output; } // speed of light in vacuum // default units = SI Double_t pc_c(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 299792458.0; } else { cerr << "(library_pc) Unrecognized units for c: " << units << endl; } return output; } // elementary charge // default units = SI Double_t pc_e(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.60217653e-19; } else if (units == "A/J") { output = 2.41798940e14; } else { cerr << "(library_pc) Unrecognized units for e: " << units << endl; } return output; } // electron volt conversions // default units = SI Double_t pc_eV(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.60217653e-19; } else if (units == "J") { output = 1.60217653e-19; } else if (units == "kg") { output = 1.78266181e-36; } else if (units == "1/m") { output = 8.06554445e5; } else if (units == "Hz") { output = 2.41798940e14; } else if (units == "K") { output = 1.1604505e4; } else if (units == "amu") { output = 1.073544171e-9; } else if (units == "Eh") { output = 3.67493245e-2; } else { cerr << "(library_pc) Unrecognized units for eV: " << units << endl; } return output; } // standard acceleration of gravity // default units = SI Double_t pc_g(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 9.80665; } else { cerr << "(library_pc) Unrecognized units for g: " << units << endl; } return output; } // Planck constant // default units = SI Double_t pc_h(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 6.6260693e-34; } else if (units == "eV*s") { output = 4.13566743e-15; } else { cerr << "(library_pc) Unrecognized units for h: " << units << endl; } return output; } // hartree conversions // default units = SI Double_t pc_hartree(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 4.35974417e-18; } else if (units == "J") { output = 4.35974417e-18; } else if (units == "kg") { output = 4.85086960e-35; } else if (units == "1/m") { output = 2.194746313705e7; } else if (units == "Hz") { output = 6.579683920721e15; } else if (units == "K") { output = 3.1577465e5; } else if (units == "eV") { output = 27.2113845; } else if (units == "amu") { output = 2.921262323e-8; } else { cerr << "(library_pc) Unrecognized units for hartree: " << units << endl; } return output; } // Planck constant over 2 pi // default units = SI Double_t pc_hbar(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.05457168e-34; } else if (units == "eV*s") { output = 6.58211915e-16; } else { cerr << "(library_pc) Unrecognized units for hbar: " << units << endl; } return output; } // Planck constant over 2 pi times c in MeV fm // default units = MeV*fm Double_t pc_hbarc(TString units = "MeV*fm") { Double_t output = 0.0; if (units == "MeV*fm") { output = 197.326968; } else { cerr << "(library_pc) Unrecognized units for hbarc: " << units << endl; } return output; } // hertz conversions // default units = SI Double_t pc_hertz(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.0; } else if (units == "J") { output = 6.6260693e-34; } else if (units == "kg") { output = 7.3724964e-51; } else if (units == "1/m") { output = 1.0/pc_c(); } else if (units == "K") { output = 4.7992374e-11; } else if (units == "eV") { output = 4.13566743e-15; } else if (units == "amu") { output = 4.439821667e-24; } else if (units == "Eh") { output = 1.519829846006e-16; } else { cerr << "(library_pc) Unrecognized units for hertz: " << units << endl; } return output; } // joule conversions // default units = SI Double_t pc_joule(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.0; } else if (units == "kg") { output = 1.0/pc_c()/pc_c(); } else if (units == "1/m") { output = 5.03411720e24; } else if (units == "Hz") { output = 1.50919037e33; } else if (units == "K") { output = 7.242963e22; } else if (units == "eV") { output = 6.24150947e18; } else if (units == "amu") { output = 6.7005361e9; } else if (units == "Eh") { output = 2.29371257e17; } else { cerr << "(library_pc) Unrecognized units for joule: " << units << endl; } return output; } // Boltzmann constant // default units = SI Double_t pc_k(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.3806505e-23; } else if (units == "eV/K") { output = 8.617343e-5; } else if (units == "Hz/K") { output = 2.0836644e10; } else { cerr << "(library_pc) Unrecognized units for k: " << units << endl; } return output; } // kelvin conversions // default units = SI Double_t pc_kelvin(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.0; } else if (units == "J") { output = 1.3806505e-23; } else if (units == "kg") { output = 1.5361808e-40; } else if (units == "1/m") { output = 69.50356; } else if (units == "Hz") { output = 2.0836644e10; } else if (units == "eV") { output = 8.617343e-5; } else if (units == "amu") { output = 9.251098e-14; } else if (units == "Eh") { output = 3.1668153e-6; } else { cerr << "(library_pc) Unrecognized units for kelvin: " << units << endl; } return output; } // kilograms conversions // default units = SI Double_t pc_kilogram(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.0; } else if (units == "J") { output = pc_c()*pc_c(); } else if (units == "1/m") { output = 4.52443891e41; } else if (units == "Hz") { output = 1.35639266e50; } else if (units == "K") { output = 6.509650e39; } else if (units == "eV") { output = 5.60958896e35; } else if (units == "amu") { output = 6.0221415e26; } else if (units == "Eh") { output = 2.06148605e34; } else { cerr << "(library_pc) Unrecognized units for kilogram: " << units << endl; } return output; } // alpha particle mass // default units = SI Double_t pc_m_alpha(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 6.6446565e-27; } else if (units == "amu") { output = 4.001506179149; } else if (units == "J") { output = 5.9719194e-10; } else if (units == "MeV") { output = 3727.37917; } else if (units == "m_e") { output = 7294.2995363; } else if (units == "m_p") { output = 3.97259968907; } else if (units == "g/mol") { output = 4.001506179149; } else { cerr << "(library_pc) Unrecognized units for m_alpha: " << units << endl; } return output; } // deuteron mass // default units = SI Double_t pc_m_d(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 3.34358335e-27; } else if (units == "amu") { output = 2.01355321270; } else if (units == "J") { output = 3.00506285e-10; } else if (units == "MeV") { output = 1875.61282; } else if (units == "m_e") { output = 3670.4829652; } else if (units == "m_p") { output = 1.99900750082; } else if (units == "g/mol") { output = 2.01355321270; } else { cerr << "(library_pc) Unrecognized units for m_d: " << units << endl; } return output; } // electron mass // default units = SI Double_t pc_m_e(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 9.1093826e-31; } else if (units == "amu") { output = 5.4857990945e-4; } else if (units == "J") { output = 8.1871047e-14; } else if (units == "MeV") { output = 0.510998918; } else if (units == "m_mu") { output = 4.83633167e-3; } else if (units == "m_tau") { output = 2.87564e-4; } else if (units == "m_p") { output = 5.4461702173e-4; } else if (units == "m_n") { output = 5.4386734481e-4; } else if (units == "m_d") { output = 2.7244371095e-4; } else if (units == "m_alpha") { output = 1.37093355575e-4; } else if (units == "g/mol") { output = 5.4857990945e-4; } else if (units == "1/m") { output = 1.0/2.426310238e-12; } else { cerr << "(library_pc) Unrecognized units for m_e: " << units << endl; } return output; } // helion mass // default units = SI Double_t pc_m_he3(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 5.00641214e-27; } else if (units == "amu") { output = 3.0149322434; } else if (units == "J") { output = 4.49953884e-10; } else if (units == "MeV") { output = 2808.39142; } else if (units == "m_e") { output = 5495.885269; } else if (units == "m_p") { output = 2.9931526671; } else if (units == "g/mol ") { output = 3.0149322434; } else { cerr << "(library_pc) Unrecognized units for m_he3: " << units << endl; } return output; } // muon mass // default units = SI Double_t pc_m_mu(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.88353140e-28; } else if (units == "amu") { output = 0.1134289264; } else if (units == "J") { output = 1.69283360e-11; } else if (units == "MeV") { output = 105.6583692; } else if (units == "m_e") { output = 206.7682838; } else if (units == "m_tau") { output = 5.94592e-2; } else if (units == "m_p") { output = 0.1126095269; } else if (units == "m_n") { output = 0.1124545175; } else if (units == "g/mol") { output = 0.1134289264; } else if (units == "1/m") { output = 1.0/11.73444105e-15; } else { cerr << "(library_pc) Unrecognized units for m_mu: " << units << endl; } return output; } // neutron mass // default units = SI Double_t pc_m_n(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.67492728e-27; } else if (units == "amu") { output = 1.00866491560; } else if (units == "J") { output = 1.50534957e-10; } else if (units == "MeV") { output = 939.565360; } else if (units == "m_e") { output = 1838.6836598; } else if (units == "m_mu") { output = 8.89248402; } else if (units == "m_tau") { output = 0.528740; } else if (units == "m_p") { output = 1.00137841870; } else if (units == "g/mol") { output = 1.00866491560; } else if (units == "1/m") { output = 1.0/1.3195909067e-15; } else { cerr << "(library_pc) Unrecognized units for m_n: " << units << endl; } return output; } // proton mass // default units = SI Double_t pc_m_p(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.67262171e-27; } else if (units == "amu") { output = 1.00727646688; } else if (units == "J") { output = 1.50327743e-10; } else if (units == "MeV") { output = 938.272029; } else if (units == "m_e") { output = 1836.15267261; } else if (units == "m_mu") { output = 8.88024333; } else if (units == "m_tau") { output = 0.528012; } else if (units == "m_n") { output = 0.99862347872; } else if (units == "g/mol") { output = 1.00727646688; } else if (units == "1/m") { output = 1.0/1.3214098555e-15; } else { cerr << "(library_pc) Unrecognized units for m_p: " << units << endl; } return output; } // tau mass // default units = SI Double_t pc_m_tau(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 3.16777e-27; } else if (units == "amu") { output = 1.90768; } else if (units == "J") { output = 2.84705e-10; } else if (units == "MeV") { output = 1776.99; } else if (units == "m_e") { output = 3477.48; } else if (units == "m_mu") { output = 16.8183; } else if (units == "m_p") { output = 1.89390; } else if (units == "m_n") { output = 1.89129; } else if (units == "g/mol") { output = 1.90768; } else if (units == "1/m") { output = 1.0/0.69772e-15; } else { cerr << "(library_pc) Unrecognized units for m_tau: " << units << endl; } return output; } // meter conversions // default units = SI Double_t pc_meter(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.0; } else if (units == "1/J") { output = 1.0/1.98644561e-25; } else if (units == "1/kg") { output = 1.0/2.21021881e-42; } else if (units == "1/Hz") { output = 1.0/299792458; } else if (units == "1/K") { output = 1.0/1.4387752e-2; } else if (units == "1/eV") { output = 1.0/1.23984191e-6; } else if (units == "1/amu") { output = 1.0/1.3310250506e-15; } else if (units == "1/Eh") { output = 1.0/4.556335252760e-8; } else { cerr << "(library_pc) Unrecognized units for meter: " << units << endl; } return output; } // magnetic constant (permeability of free space) // default units = SI Double_t pc_mu0(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 4.0E-7*TMath::Pi(); } else { cerr << "(library_pc) Unrecognized units for mu0: " << units << endl; } return output; } // Bohr magneton // default units = SI Double_t pc_muB(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 927.400949e-26; } else if (units == "eV/T") { output = 5.788381804e-5; } else if (units == "Hz/T") { output = 13.9962458e9; } else if (units == "K/T") { output = 0.6717131; } else { cerr << "(library_pc) Unrecognized units for muB: " << units << endl; } return output; } // nuclear magneton // default units = SI Double_t pc_muN(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 5.05078343e-27; } else if (units == "eV/T") { output = 3.152451259e-8; } else if (units == "MHz/T") { output = 7.62259371; } else if (units == "K/T") { output = 3.6582637e-4; } else { cerr << "(library_pc) Unrecognized units for muN: " << units << endl; } return output; } // deuteron magnetic moment // default units = SI Double_t pc_mu_d(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 0.433073482e-26; } else if (units == "muB") { output = 0.4669754567e-3; } else if (units == "muN") { output = 0.8574382329; } else if (units == "g") { output = 0.8574382329; } else if (units == "mu_e") { output = -4.664345548e-4; } else if (units == "mu_p") { output = 0.3070122084; } else if (units == "mu_n") { output = -0.44820652; } else { cerr << "(library_pc) Unrecognized units for mu_d: " << units << endl; } return output; } // electron magnetic moment // default units = SI Double_t pc_mu_e(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = -928.476412e-26; } else if (units == "muB") { output = -1.0011596521859; } else if (units == "muN") { output = -1838.28197107; } else if (units == "g") { output = -2.0023193043718; } else if (units == "mu_mu") { output = 206.7669894; } else if (units == "mu_p") { output = -658.2106862; } else if (units == "mu_psh") { output = -658.2275956; } else if (units == "mu_n") { output = 960.92050; } else if (units == "mu_d") { output = -2143.923493; } else if (units == "mu_he3sh") { output = 864.058255; } else { cerr << "(library_pc) Unrecognized units for mu_e: " << units << endl; } return output; } // shielded helion magnetic moment (He3 nucleus in He3 atom) // default units = SI Double_t pc_mu_he3sh(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = -1.074553024e-26; } else if (units == "muB") { output = -1.158671474e-3; } else if (units == "muN") { output = -2.127497723; } else if (units == "g") { output = -2.0*2.127497723; } else if (units == "mu_p") { output = -0.761766562; } else if (units == "mu_psh") { output = -0.7617861313; } else { cerr << "(library_pc) Unrecognized units for mu_he3sh: " << units << endl; } return output; } // muon magnetic moment // default units = SI Double_t pc_mu_mu(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = -4.49044799e-26; } else if (units == "muB") { output = -4.84197045e-3; } else if (units == "muN") { output = -8.89059698; } else if (units == "g") { output = -2.0023318396; } else if (units == "mu_p") { output = -3.183345118; } else { cerr << "(library_pc) Unrecognized units for mu_mu: " << units << endl; } return output; } // neutron magnetic moment // default units = SI Double_t pc_mu_n(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = -0.96623645e-26; } else if (units == "muB") { output = -1.04187563e-3; } else if (units == "muN") { output = -1.91304273; } else if (units == "g") { output = -3.82608546; } else if (units == "mu_e") { output = 1.04066882e-3; } else if (units == "mu_p") { output = -0.68497934; } else if (units == "mu_psh") { output = -0.68499694; } else { cerr << "(library_pc) Unrecognized units for mu_n: " << units << endl; } return output; } // proton magnetic moment // default units = SI Double_t pc_mu_p(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.41060671e-26; } else if (units == "muB") { output = 1.521032206e-3; } else if (units == "muN") { output = 2.792847351; } else if (units == "g") { output = 5.585694701; } else if (units == "mu_n") { output = -1.45989805; } else { cerr << "(library_pc) Unrecognized units for mu_p: " << units << endl; } return output; } // shielded proton magnetic moment (protons in water) // default units = SI Double_t pc_mu_psh(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.41057047e-26; } else if (units == "muB") { output = 1.520993132e-3; } else if (units == "muN") { output = 2.792775604; } else if (units == "g") { output = 2.0*2.792775604; } else { cerr << "(library_pc) Unrecognized units for mu_psh: " << units << endl; } return output; } // magnentic flux quantum // default units = SI Double_t pc_phi0(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 2.06783372e-15; } else { cerr << "(library_pc) Unrecognized units for phi0: " << units << endl; } return output; } // classical electron radius // default units = SI Double_t pc_re(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 2.817940325e-15; } else { cerr << "(library_pc) Unrecognized units for re: " << units << endl; } return output; } // deuteron rms charge radius // default units = SI Double_t pc_rhoRMS_d(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 2.1394e-15; } else { cerr << "(library_pc) Unrecognized units for rhoRMS_d: " << units << endl; } return output; } // proton rms charge radius // default units = SI Double_t pc_rhoRMS_p(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 0.8750e-15; } else { cerr << "(library_pc) Unrecognized units for rhoRMS_p: " << units << endl; } return output; } // Stefan-Boltzmann constant // default units = SI Double_t pc_sigmaSB(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 5.670400e-8; } else { cerr << "(library_pc) Unrecognized units for sigmaSB: " << units << endl; } return output; } // Thomson cross section // default units = SI Double_t pc_sigmaT(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 0.665245873e-28; } else { cerr << "(library_pc) Unrecognized units for sigmaT: " << units << endl; } return output; } // weak mixing angle // default units = rad Double_t pc_thetaW(TString units = "rad") { Double_t output = 0.0; if (units == "rad") { output = 0.490796; } else if (units == "sin^2") { output = 0.22215; } else if (units == "deg") { output = 28.1205; } else { cerr << "(library_pc) Unrecognized units for thetaW: " << units << endl; } return output; } // characteristic impedance of vacuum // default units = SI Double_t pc_Z0(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = pc_mu0()*pc_c(); } else { cerr << "(library_pc) Unrecognized units for Z0: " << units << endl; } return output; } // electric constant (permittivity of free space) // default units = SI Double_t pc_epsilon0(TString units = "SI") { Double_t output = 0.0; if (units == "SI") { output = 1.0/pc_c()/pc_mu0()/pc_mu0(); } else { cerr << "(library_pc) Unrecognized units for epsilon0: " << units << endl; } return output; }