View Javadoc

1   //$Id: PhysicalConstants.java,v 1.4 2007/02/23 02:48:48 jeremy Exp $
2   package org.lcsim.units.clhep;
3   
4   import static org.lcsim.units.clhep.SystemOfUnits.MeV;
5   import static org.lcsim.units.clhep.SystemOfUnits.atmosphere;
6   import static org.lcsim.units.clhep.SystemOfUnits.cm3;
7   import static org.lcsim.units.clhep.SystemOfUnits.eplus;
8   import static org.lcsim.units.clhep.SystemOfUnits.henry;
9   import static org.lcsim.units.clhep.SystemOfUnits.joule;
10  import static org.lcsim.units.clhep.SystemOfUnits.kelvin;
11  import static org.lcsim.units.clhep.SystemOfUnits.m;
12  import static org.lcsim.units.clhep.SystemOfUnits.mg;
13  import static org.lcsim.units.clhep.SystemOfUnits.mole;
14  import static org.lcsim.units.clhep.SystemOfUnits.s;
15  
16  /**
17   * Port of CLHEP's PhysicalConstants.h C++ header file,
18   * containing common physical constants from the PDG guide.
19   * 
20   * @author Jeremy McCormick <jeremym@slac.stanford.edu>
21   * @version $Id: PhysicalConstants.java,v 1.4 2007/02/23 02:48:48 jeremy Exp $
22   */
23  
24  public final class PhysicalConstants 
25  {
26  	public static final double     pi  = 3.14159265358979323846;
27  	public static final double  twopi  = 2*pi;
28  	public static final double halfpi  = pi/2;
29  	public static final double     pi2 = pi*pi;
30  
31  	//
32  	//
33  	//
34  	public static final double Avogadro = 6.0221367e+23/mole;
35  
36  	//
37  	//	 c   = 299.792458 mm/ns
38  	//	c^2 = 898.7404 (mm/ns)^2
39  	//
40  	public static final double c_light   = 2.99792458e+8 * m/s;
41  	public static final double c_squared = c_light * c_light;
42  
43  	//
44  	//	h     = 4.13566e-12 MeV*ns
45  	//	hbar  = 6.58212e-13 MeV*ns
46  	//	hbarc = 197.32705e-12 MeV*mm
47  	//
48  	public static final double h_Planck      = 6.6260755e-34 * joule*s;
49  	public static final double hbar_Planck   = h_Planck/twopi;
50  	public static final double hbarc         = hbar_Planck * c_light;
51  	public static final double hbarc_squared = hbarc * hbarc;
52  
53  	//
54  	//
55  	//
56  	public static final double electron_charge = - eplus; // see SystemOfUnits.h
57  	public static final double e_squared = eplus * eplus;
58  
59  	//
60  	//	 amu_c2 - atomic equivalent mass unit
61  	//	 amu    - atomic mass unit
62  	//
63  	public static final double electron_mass_c2 = 0.51099906 * MeV;
64  	public static final double   proton_mass_c2 = 938.27231 * MeV;
65  	public static final double  neutron_mass_c2 = 939.56563 * MeV;
66  	public static final double           amu_c2 = 931.49432 * MeV;
67  	public static final double              amu = amu_c2/c_squared;
68  
69  	//
70  	//	 permeability of free space mu0    = 2.01334e-16 Mev*(ns*eplus)^2/mm
71  	//	 permittivity of free space epsil0 = 5.52636e+10 eplus^2/(MeV*mm)
72  	//
73  	public static final double mu0      = 4*pi*1.e-7 * henry/m;
74  	public static final double epsilon0 = 1./(c_squared*mu0);
75  
76  	//
77  	//	 electromagnetic coupling = 1.43996e-12 MeV*mm/(eplus^2)
78  	//
79  	public static final double elm_coupling           = e_squared/(4*pi*epsilon0);
80  	public static final double fine_structure_const   = elm_coupling/hbarc;
81  	public static final double classic_electr_radius  = elm_coupling/electron_mass_c2;
82  	public static final double electron_Compton_length = hbarc/electron_mass_c2;
83  	public static final double Bohr_radius = electron_Compton_length/fine_structure_const;
84  
85  	public static final double alpha_rcl2 = fine_structure_const
86  	*classic_electr_radius
87  	*classic_electr_radius;
88  
89  	public static final double twopi_mc2_rcl2 = twopi*electron_mass_c2
90  	*classic_electr_radius
91  	*classic_electr_radius;
92  	//
93  	//
94  	//
95  	public static final double k_Boltzmann = 8.617385e-11 * MeV/kelvin;
96  
97  	//
98  	//
99  	//
100 	public static final double STP_Temperature = 273.15*kelvin;
101 	public static final double STP_Pressure    = 1.*atmosphere;
102 	public static final double kGasThreshold   = 10.*mg/cm3;
103 }