Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/GaudiKernel/PhysicalConstants.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 // -*- C++ -*-
0012 // ----------------------------------------------------------------------
0013 // HEP coherent Physical Constants
0014 //
0015 // This file has been provided by Geant4 (simulation toolkit for HEP).
0016 //
0017 // The basic units are :
0018 //          millimeter
0019 //      nanosecond
0020 //      Mega electron Volt
0021 //      positon charge
0022 //      degree Kelvin
0023 //              amount of substance (mole)
0024 //              luminous intensity (candela)
0025 //      radian
0026 //              steradian
0027 //
0028 // Below is a non exhaustive list of Physical CONSTANTS,
0029 // computed in the Internal HEP System Of Units.
0030 //
0031 // Most of them are extracted from the Particle Data Book :
0032 //        Phys. Rev. D  volume 50 3-1 (1994) page 1233
0033 //
0034 //        ...with a meaningful (?) name ...
0035 //
0036 // You can add your own constants.
0037 //
0038 // Author: M.Maire
0039 //
0040 // History:
0041 //
0042 // 23.02.96 Created
0043 // 26.03.96 Added constants for standard conditions of temperature
0044 //          and pressure; also added Gas threshold.
0045 // 28.04.06 Imported from CLHEP into GaudiKernel -- HD
0046 
0047 #ifndef GAUDI_PHYSICAL_CONSTANTS_H
0048 #define GAUDI_PHYSICAL_CONSTANTS_H
0049 
0050 #include <GaudiKernel/SystemOfUnits.h>
0051 
0052 namespace Gaudi {
0053   namespace Units {
0054 
0055     constexpr double pi     = 3.14159265358979323846;
0056     constexpr double twopi  = 2 * pi;
0057     constexpr double halfpi = pi / 2;
0058     constexpr double pi2    = pi * pi;
0059 
0060     constexpr double Avogadro = 6.0221367e+23 / mole;
0061 
0062     //
0063     // c   = 299.792458 mm/ns
0064     // c^2 = 898.7404 (mm/ns)^2
0065     //
0066     constexpr double c_light   = 2.99792458e+8 * m / s;
0067     constexpr double c_squared = c_light * c_light;
0068 
0069     //
0070     // h     = 4.13566e-12 MeV*ns
0071     // hbar  = 6.58212e-13 MeV*ns
0072     // hbarc = 197.32705e-12 MeV*mm
0073     //
0074     constexpr double h_Planck      = 6.62606896e-34 * joule * s;
0075     constexpr double hbar_Planck   = h_Planck / twopi;
0076     constexpr double hbarc         = hbar_Planck * c_light;
0077     constexpr double hbarc_squared = hbarc * hbarc;
0078 
0079     constexpr double electron_charge = -eplus; // see SystemOfUnits.h
0080     constexpr double e_squared       = eplus * eplus;
0081 
0082     //
0083     // amu_c2 - atomic equivalent mass unit
0084     // amu    - atomic mass unit
0085     //
0086     constexpr double electron_mass_c2 = 0.510998910 * MeV;
0087     constexpr double proton_mass_c2   = 938.272013 * MeV;
0088     constexpr double neutron_mass_c2  = 939.56536 * MeV;
0089     constexpr double amu_c2           = 931.494028 * MeV;
0090     constexpr double amu              = amu_c2 / c_squared;
0091 
0092     //
0093     // permeability of free space mu0    = 2.01334e-16 Mev*(ns*eplus)^2/mm
0094     // permittivity of free space epsil0 = 5.52636e+10 eplus^2/(MeV*mm)
0095     //
0096     constexpr double mu0      = 4 * pi * 1.e-7 * henry / m;
0097     constexpr double epsilon0 = 1. / ( c_squared * mu0 );
0098 
0099     //
0100     // electromagnetic coupling = 1.43996e-12 MeV*mm/(eplus^2)
0101     //
0102     constexpr double elm_coupling            = e_squared / ( 4 * pi * epsilon0 );
0103     constexpr double fine_structure_const    = elm_coupling / hbarc;
0104     constexpr double classic_electr_radius   = elm_coupling / electron_mass_c2;
0105     constexpr double electron_Compton_length = hbarc / electron_mass_c2;
0106     constexpr double Bohr_radius             = electron_Compton_length / fine_structure_const;
0107 
0108     constexpr double alpha_rcl2 = fine_structure_const * classic_electr_radius * classic_electr_radius;
0109 
0110     constexpr double twopi_mc2_rcl2 = twopi * electron_mass_c2 * classic_electr_radius * classic_electr_radius;
0111 
0112     constexpr double k_Boltzmann = 8.617343e-11 * MeV / kelvin;
0113 
0114     constexpr double STP_Temperature = 273.15 * kelvin;
0115     constexpr double STP_Pressure    = 1. * atmosphere;
0116     constexpr double kGasThreshold   = 10. * mg / cm3;
0117 
0118     constexpr double universe_mean_density = 1.e-25 * g / cm3;
0119 
0120   } // namespace Units
0121 } // namespace Gaudi
0122 
0123 #endif /* GAUDI_PHYSICAL_CONSTANTS_H */