Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:51

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 //
0027 //
0028 // ----------------------
0029 // Class description:
0030 //
0031 // The table of elements.
0032 // In the constructor an array of strings with element name,
0033 // symbol and A are created. 
0034 // The G4Element instances of given Z are created when
0035 // GetEle(G4double Z) is called using the string array.
0036 // For each Z the G4Element is created only once.
0037 
0038 // ----------------------
0039 
0040 #ifndef G4ELETABLE_HH
0041 #define G4ELETABLE_HH 1
0042 
0043 #include "G3toG4Defs.hh"
0044 #include "globals.hh"
0045 #include "G4Element.hh"
0046 
0047 class G3EleTable
0048 {
0049 
0050 public:  // with description
0051 
0052   G3EleTable();
0053   virtual ~G3EleTable();
0054   G4Element* GetEle(G4double Z);
0055 
0056 private:
0057 
0058   void LoadUp();
0059   G4int parse(G4double& Z, char* name, char* sym, G4double& A); 
0060 
0061 private:
0062 
0063   G4Element** _Ele;
0064   static const G4int _MaxEle = 109;
0065   G4String _EleNames[_MaxEle] = { "Hydrogen H 1.00794", "Helium He 4.0026",
0066                             "Lithium Li 6.941", "Beryllium Be 9.012182",
0067                             "Boron B 10.811", "Carbon C 12.011",
0068                             "Nitrogen N 14.00674", "Oxygen O 15.9994",
0069                             "Fluorine F 18.9984032", "Neon Ne 20.1797",
0070 
0071                             "Sodium Na 22.989768", "Magnesium Mg 24.3050",
0072                             "Aluminum Al 26.981539", "Silicon Si 28.0855",
0073                             "Phosphorus P 30.973762", "Sulfur S 32.066",
0074                             "Chlorine Cl 35.4527", "Argon Ar 39.948",
0075                             "Potassium K 39.0983", "Calcium Ca 40.078",
0076 
0077                             "Scandium Sc 44.955910", "Titanium Ti 47.867",
0078                             "Vanadium V 50.9415", "Chromium Cr 51.9961",
0079                             "Manganese Mn 54.93805", "Iron Fe 55.845",
0080                             "Cobalt Co 58.93320", "Nickel Ni 58.6934",
0081                             "Copper Cu 63.546", "Zinc Zn 65.39",
0082 
0083                             "Gallium Ga 69.723", "Germanium Ge 72.61",
0084                             "Arsenic As 74.92159", "Selenium Se 78.96",
0085                             "Bromine Br 79.904", "Krypton Kr 83.80",
0086                             "Rubidium Rb 85.4678", "Strontium Sr 87.62",
0087                             "Yttrium Y 88.90585", "Zirconium Zr 91.224",
0088 
0089                             "Niobium Nb 92.90638", "Molybdenum Mo 95.94",
0090                             "Technetium Tc 97.907215", "Ruthenium Ru 101.07",
0091                             "Rhodium Rh 102.90550", "Palladium Pd 106.42",
0092                             "Silver Ag 107.8682", "Cadmium Cd 112.41",
0093                             "Indium In 114.818", "Tin Sn 118.710",
0094 
0095                             "Antimony Sb 121.760", "Tellurium Te 127.60",
0096                             "Iodine I 126.90447", "Xenon Xe 131.29",
0097                             "Cesium Cs 132.90543", "Barium Ba 137.27",
0098                             "Lanthanum La 138.9055", "Cerium Ce 140.115",
0099                             "Praeseodymium Pr 140.90765", "NeoDymium Nd 144.24",
0100 
0101                             "Promethium Pm 144.912745", "Samarium Sm 150.36",
0102                             "Europium Eu 151.965", "Gadolinium Gd 157.25",
0103                             "Terbium Tb 158.92534", "Dysprosium Dy 162.50",
0104                             "Holmium Ho 164.93032", "Erbium Er 167.26",
0105                             "Thulium Tm 168.93421", "Ytterbium Yb 173.04",
0106 
0107                             "Lutetium Lu 174.967", "Hafnium Hf 178.49",
0108                             "Tantalum Ta 180.9479", "Tungsten W 183.84",
0109                             "Rhenium Re 186.207", "Osmium Os 190.23",
0110                             "Iridium Ir 192.217", "Platinum Pt 195.08",
0111                             "Gold Au 196.96654", "Mercury Hg 200.59",
0112 
0113                             "Thallium Tl 204.3833", "Lead Pb 207.2",
0114                             "Bismuth Bi 208.98037", "Polonium Po 208.982415",
0115                             "Astatine At 209.987131", "Radon Rn 222.017570",
0116                             "Francium Fr 223.019731", "Radium Ra 226.025402",
0117                             "Actinium Ac 227.027747", "Thorium Th 232.0381",
0118 
0119                             "Protactinium Pa 231.03588", "Uranium U 238.0289",
0120                             "Neptunium Np 237.048166", "Plutonium Pu 244.064197",
0121                             "Americium Am 243.061372", "Curium Cm 247.070346",
0122                             "Berkelium Bk 247.070298", "Californium Cf 251.079579",
0123                             "Einsteinium Es 252.08297", "Fermium Fm 257.095096",
0124 
0125                             "Mendelevium Md 258.098427", "Nobelium No 259.1011",
0126                             "Lawrencium Lr 262.1098", "Rutherfordium Rf 261.1089",
0127                             "Hahnium Ha 262.1144", "Seaborgium Sg 263.1186",
0128                             "Nielsborium Ns 262.1231", "Hassium Hs 265.1306",
0129                             "Meitnerium Mt 266.1378" };
0130 };
0131 
0132 extern G3G4DLL_API G3EleTable G3Ele;
0133 #endif