Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // 26 // 27 // 27 // 28 // ---------------------- 28 // ---------------------- 29 // Class description: 29 // Class description: 30 // 30 // 31 // The table of elements. 31 // The table of elements. 32 // In the constructor an array of strings with 32 // In the constructor an array of strings with element name, 33 // symbol and A are created. 33 // symbol and A are created. 34 // The G4Element instances of given Z are crea 34 // The G4Element instances of given Z are created when 35 // GetEle(G4double Z) is called using the stri 35 // GetEle(G4double Z) is called using the string array. 36 // For each Z the G4Element is created only on 36 // For each Z the G4Element is created only once. 37 37 38 // ---------------------- 38 // ---------------------- 39 39 40 #ifndef G4ELETABLE_HH 40 #ifndef G4ELETABLE_HH 41 #define G4ELETABLE_HH 1 41 #define G4ELETABLE_HH 1 42 42 43 #include "G3toG4Defs.hh" 43 #include "G3toG4Defs.hh" 44 #include "globals.hh" 44 #include "globals.hh" 45 #include "G4Element.hh" 45 #include "G4Element.hh" 46 46 47 class G3EleTable 47 class G3EleTable 48 { 48 { 49 49 50 public: // with description 50 public: // with description 51 51 52 G3EleTable(); 52 G3EleTable(); 53 virtual ~G3EleTable(); 53 virtual ~G3EleTable(); 54 G4Element* GetEle(G4double Z); 54 G4Element* GetEle(G4double Z); 55 55 56 private: 56 private: 57 57 58 void LoadUp(); 58 void LoadUp(); 59 G4int parse(G4double& Z, char* name, char* s 59 G4int parse(G4double& Z, char* name, char* sym, G4double& A); 60 60 61 private: 61 private: 62 62 63 G4Element** _Ele; 63 G4Element** _Ele; 64 static const G4int _MaxEle = 109; 64 static const G4int _MaxEle = 109; 65 G4String _EleNames[_MaxEle] = { "Hydrogen H 65 G4String _EleNames[_MaxEle] = { "Hydrogen H 1.00794", "Helium He 4.0026", 66 "Lithium Li 6.941" 66 "Lithium Li 6.941", "Beryllium Be 9.012182", 67 "Boron B 10.811", 67 "Boron B 10.811", "Carbon C 12.011", 68 "Nitrogen N 14.006 68 "Nitrogen N 14.00674", "Oxygen O 15.9994", 69 "Fluorine F 18.998 69 "Fluorine F 18.9984032", "Neon Ne 20.1797", 70 70 71 "Sodium Na 22.9897 71 "Sodium Na 22.989768", "Magnesium Mg 24.3050", 72 "Aluminum Al 26.98 72 "Aluminum Al 26.981539", "Silicon Si 28.0855", 73 "Phosphorus P 30.9 73 "Phosphorus P 30.973762", "Sulfur S 32.066", 74 "Chlorine Cl 35.45 74 "Chlorine Cl 35.4527", "Argon Ar 39.948", 75 "Potassium K 39.09 75 "Potassium K 39.0983", "Calcium Ca 40.078", 76 76 77 "Scandium Sc 44.95 77 "Scandium Sc 44.955910", "Titanium Ti 47.867", 78 "Vanadium V 50.941 78 "Vanadium V 50.9415", "Chromium Cr 51.9961", 79 "Manganese Mn 54.9 79 "Manganese Mn 54.93805", "Iron Fe 55.845", 80 "Cobalt Co 58.9332 80 "Cobalt Co 58.93320", "Nickel Ni 58.6934", 81 "Copper Cu 63.546" 81 "Copper Cu 63.546", "Zinc Zn 65.39", 82 82 83 "Gallium Ga 69.723 83 "Gallium Ga 69.723", "Germanium Ge 72.61", 84 "Arsenic As 74.921 84 "Arsenic As 74.92159", "Selenium Se 78.96", 85 "Bromine Br 79.904 85 "Bromine Br 79.904", "Krypton Kr 83.80", 86 "Rubidium Rb 85.46 86 "Rubidium Rb 85.4678", "Strontium Sr 87.62", 87 "Yttrium Y 88.9058 87 "Yttrium Y 88.90585", "Zirconium Zr 91.224", 88 88 89 "Niobium Nb 92.906 89 "Niobium Nb 92.90638", "Molybdenum Mo 95.94", 90 "Technetium Tc 97. 90 "Technetium Tc 97.907215", "Ruthenium Ru 101.07", 91 "Rhodium Rh 102.90 91 "Rhodium Rh 102.90550", "Palladium Pd 106.42", 92 "Silver Ag 107.868 92 "Silver Ag 107.8682", "Cadmium Cd 112.41", 93 "Indium In 114.818 93 "Indium In 114.818", "Tin Sn 118.710", 94 94 95 "Antimony Sb 121.7 95 "Antimony Sb 121.760", "Tellurium Te 127.60", 96 "Iodine I 126.9044 96 "Iodine I 126.90447", "Xenon Xe 131.29", 97 "Cesium Cs 132.905 97 "Cesium Cs 132.90543", "Barium Ba 137.27", 98 "Lanthanum La 138. 98 "Lanthanum La 138.9055", "Cerium Ce 140.115", 99 "Praeseodymium Pr 99 "Praeseodymium Pr 140.90765", "NeoDymium Nd 144.24", 100 100 101 "Promethium Pm 144 101 "Promethium Pm 144.912745", "Samarium Sm 150.36", 102 "Europium Eu 151.9 102 "Europium Eu 151.965", "Gadolinium Gd 157.25", 103 "Terbium Tb 158.92 103 "Terbium Tb 158.92534", "Dysprosium Dy 162.50", 104 "Holmium Ho 164.93 104 "Holmium Ho 164.93032", "Erbium Er 167.26", 105 "Thulium Tm 168.93 105 "Thulium Tm 168.93421", "Ytterbium Yb 173.04", 106 106 107 "Lutetium Lu 174.9 107 "Lutetium Lu 174.967", "Hafnium Hf 178.49", 108 "Tantalum Ta 180.9 108 "Tantalum Ta 180.9479", "Tungsten W 183.84", 109 "Rhenium Re 186.20 109 "Rhenium Re 186.207", "Osmium Os 190.23", 110 "Iridium Ir 192.21 110 "Iridium Ir 192.217", "Platinum Pt 195.08", 111 "Gold Au 196.96654 111 "Gold Au 196.96654", "Mercury Hg 200.59", 112 112 113 "Thallium Tl 204.3 113 "Thallium Tl 204.3833", "Lead Pb 207.2", 114 "Bismuth Bi 208.98 114 "Bismuth Bi 208.98037", "Polonium Po 208.982415", 115 "Astatine At 209.9 115 "Astatine At 209.987131", "Radon Rn 222.017570", 116 "Francium Fr 223.0 116 "Francium Fr 223.019731", "Radium Ra 226.025402", 117 "Actinium Ac 227.0 117 "Actinium Ac 227.027747", "Thorium Th 232.0381", 118 118 119 "Protactinium Pa 2 119 "Protactinium Pa 231.03588", "Uranium U 238.0289", 120 "Neptunium Np 237. 120 "Neptunium Np 237.048166", "Plutonium Pu 244.064197", 121 "Americium Am 243. 121 "Americium Am 243.061372", "Curium Cm 247.070346", 122 "Berkelium Bk 247. 122 "Berkelium Bk 247.070298", "Californium Cf 251.079579", 123 "Einsteinium Es 25 123 "Einsteinium Es 252.08297", "Fermium Fm 257.095096", 124 124 125 "Mendelevium Md 25 125 "Mendelevium Md 258.098427", "Nobelium No 259.1011", 126 "Lawrencium Lr 262 126 "Lawrencium Lr 262.1098", "Rutherfordium Rf 261.1089", 127 "Hahnium Ha 262.11 127 "Hahnium Ha 262.1144", "Seaborgium Sg 263.1186", 128 "Nielsborium Ns 26 128 "Nielsborium Ns 262.1231", "Hassium Hs 265.1306", 129 "Meitnerium Mt 266 129 "Meitnerium Mt 266.1378" }; 130 }; 130 }; 131 131 132 extern G3G4DLL_API G3EleTable G3Ele; 132 extern G3G4DLL_API G3EleTable G3Ele; 133 #endif 133 #endif 134 134