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 // GEANT4 Class file 29 // GEANT4 Class file 29 // 30 // 30 // File name: G4NistMaterialBuilder 31 // File name: G4NistMaterialBuilder 31 // 32 // 32 // Author: Vladimir Ivanchenko 33 // Author: Vladimir Ivanchenko 33 // 34 // 34 // Creation date: 23.12.2004 35 // Creation date: 23.12.2004 35 // 36 // 36 // Modifications: 37 // Modifications: 37 // 31-10-05 Add chemical effect and gas proper 38 // 31-10-05 Add chemical effect and gas properties (V.Ivanchenko) 38 // 27.02.06 V.Ivanchenko add ConstructNewGasMa 39 // 27.02.06 V.Ivanchenko add ConstructNewGasMaterial 39 // 11.05.06 V.Ivanchenko add warning flag to F 40 // 11.05.06 V.Ivanchenko add warning flag to FindMaterial method 40 // 27.06.06 V.Ivanchenko fix graphite descript 41 // 27.06.06 V.Ivanchenko fix graphite description 41 // 27.07.07 V.Ivanchenko remove dependence on 42 // 27.07.07 V.Ivanchenko remove dependence on NistManager 42 // 30.10.09 V.Ivanchenko update density of G4_ 43 // 30.10.09 V.Ivanchenko update density of G4_GRAFITE from PDG'2008 43 // added G4_GRAPHITE_POR 44 // added G4_GRAPHITE_POROUS 44 // 03.11.09 A.Lechner changed following materi 45 // 03.11.09 A.Lechner changed following material names: 45 // From G4_NYLON-6/6 to G4_ 46 // From G4_NYLON-6/6 to G4_NYLON-6-6 46 // From G4_NYLON-6/10 to G4 47 // From G4_NYLON-6/10 to G4_NYLON-6-10 47 // 12.12.10 A.Ivantchenko added following mate 48 // 12.12.10 A.Ivantchenko added following materials methodes: 48 // BioChemicalMaterials() a 49 // BioChemicalMaterials() and SpaceMaterials(), 49 // where new materials are 50 // where new materials are introduced 50 // 14.06.11 A.Ivantchenko updated body materia 51 // 14.06.11 A.Ivantchenko updated body materials (G4_....ICRP) 51 // according ICRU Report 46 << 52 // according ICRU Report 46 (1992) instead of 1975 52 // data from ICRU Report 37 53 // data from ICRU Report 37 used previously 53 // 26.10.11 new scheme for G4Exception (mma) 54 // 26.10.11 new scheme for G4Exception (mma) 54 // 09.02.12 P.Gumplinger add ConstructNewIdeal 55 // 09.02.12 P.Gumplinger add ConstructNewIdealGasMaterial 55 // 30.04.13 M.Trocme & S.Seltzer: 56 // 30.04.13 M.Trocme & S.Seltzer: 56 // - Replace AddElementByWeightFraction << 57 // - Replace AddElementByWeightFraction() by AddElementByAtomCount() 57 // as much as possible 58 // as much as possible 58 // - Comment out ill-defined material G << 59 // - Comment out ill-defined material GLUCOSE 59 // - Fixed density and atom composition << 60 // - Fixed density and atom composition of POLYCHLOROSTYRENE, 60 // POLYVINYL_BUTYRAL, TERPHENYL 61 // POLYVINYL_BUTYRAL, TERPHENYL 61 // ------------------------------------------- 62 // ------------------------------------------------------------------- 62 // 63 // 63 // Class Description: 64 // Class Description: 64 // 65 // 65 // Element data from the NIST DB on Atomic Wei 66 // Element data from the NIST DB on Atomic Weights and Isotope Compositions 66 // http://physics.nist.gov/PhysRefData/Composi 67 // http://physics.nist.gov/PhysRefData/Compositions/index.html >> 68 // >> 69 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... >> 70 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 67 71 68 #include "G4NistMaterialBuilder.hh" 72 #include "G4NistMaterialBuilder.hh" 69 << 70 #include "G4ApplicationState.hh" << 71 #include "G4AutoLock.hh" << 72 #include "G4Element.hh" << 73 #include "G4NistElementBuilder.hh" 73 #include "G4NistElementBuilder.hh" >> 74 #include "G4Element.hh" 74 #include "G4PhysicalConstants.hh" 75 #include "G4PhysicalConstants.hh" 75 #include "G4StateManager.hh" << 76 #include "G4SystemOfUnits.hh" 76 #include "G4SystemOfUnits.hh" 77 << 77 #include "G4ApplicationState.hh" >> 78 #include "G4StateManager.hh" >> 79 #include "G4AutoLock.hh" 78 #include <iomanip> 80 #include <iomanip> 79 81 80 namespace 82 namespace 81 { 83 { 82 G4Mutex nistMaterialMutex = G4MUTEX_INITIALIZE << 84 G4Mutex nistMaterialMutex = G4MUTEX_INITIALIZER; 83 } 85 } 84 86 85 //....oooOO0OOooo........oooOO0OOooo........oo 87 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 86 88 87 G4NistMaterialBuilder::G4NistMaterialBuilder(G 89 G4NistMaterialBuilder::G4NistMaterialBuilder(G4NistElementBuilder* eb, G4int vb) 88 : elmBuilder(eb), verbose(vb) << 90 : elmBuilder(eb), >> 91 verbose(vb), >> 92 nMaterials(0), >> 93 nComponents(0), >> 94 nCurrent(0) 89 { 95 { 90 Initialise(); 96 Initialise(); 91 } 97 } 92 98 93 //....oooOO0OOooo........oooOO0OOooo........oo 99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 94 100 95 G4Material* G4NistMaterialBuilder::FindOrBuild << 101 G4Material* G4NistMaterialBuilder::FindOrBuildMaterial(const G4String& matname, >> 102 G4bool warning) 96 { 103 { 97 if (verbose > 1) { << 104 if(verbose > 1) { 98 G4cout << "G4NistMaterialBuilder::FindOrBu << 105 G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial " >> 106 << matname << G4endl; 99 } 107 } 100 G4String name = matname; 108 G4String name = matname; 101 if ("G4_NYLON-6/6" == matname) { << 109 if("G4_NYLON-6/6" == matname) { name = "G4_NYLON-6-6"; } 102 name = "G4_NYLON-6-6"; << 110 else if(name == "G4_NYLON-6/10") { name = "G4_NYLON-6-10"; } 103 } << 104 else if (name == "G4_NYLON-6/10") { << 105 name = "G4_NYLON-6-10"; << 106 } << 107 111 108 G4Material* mat = FindMaterial(name); 112 G4Material* mat = FindMaterial(name); 109 if (mat != nullptr) { << 113 if(mat != nullptr) { return mat; } 110 return mat; << 111 } << 112 114 113 mat = BuildNistMaterial(name, warning); 115 mat = BuildNistMaterial(name, warning); 114 return mat; << 116 return mat; 115 } 117 } 116 118 117 //....oooOO0OOooo........oooOO0OOooo........oo 119 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 118 120 119 G4Material* G4NistMaterialBuilder::BuildNistMa << 121 G4Material* G4NistMaterialBuilder::BuildNistMaterial(const G4String& name, >> 122 G4bool warning) 120 { 123 { 121 G4Material* mat = nullptr; 124 G4Material* mat = nullptr; 122 // Check if name inside DB 125 // Check if name inside DB 123 for (G4int i = 0; i < nMaterials; ++i) { << 126 for (G4int i=0; i<nMaterials; ++i) { >> 127 124 if (name == names[i]) { 128 if (name == names[i]) { 125 if (matIndex[i] == -1) { << 129 if(matIndex[i] == -1) { 126 // Build new Nist material << 130 // Build new Nist material 127 mat = BuildMaterial(i); << 131 mat = BuildMaterial(i); 128 } << 132 } else { 129 else { << 133 // Nist material was already built 130 // Nist material was already built << 134 const G4MaterialTable* theMaterialTable = 131 const G4MaterialTable* theMaterialTabl << 135 G4Material::GetMaterialTable(); 132 mat = (*theMaterialTable)[matIndex[i]] << 136 mat = (*theMaterialTable)[matIndex[i]]; 133 } 137 } 134 return mat; 138 return mat; 135 } 139 } 136 } 140 } 137 141 138 if ((verbose == 1 && warning) || verbose > 1 << 142 if( (verbose == 1 && warning) || verbose > 1) { 139 G4cout << "G4NistMaterialBuilder::FindOrBu 143 G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial WARNING:" 140 << " material <" << name << "> is n << 144 << " material <" << name >> 145 << "> is not found." << G4endl; 141 } 146 } 142 return mat; 147 return mat; 143 } 148 } 144 149 145 //....oooOO0OOooo........oooOO0OOooo........oo 150 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 146 151 147 G4Material* G4NistMaterialBuilder::FindOrBuild << 152 G4Material* >> 153 G4NistMaterialBuilder::FindOrBuildSimpleMaterial(G4int Z, G4bool warn) 148 { 154 { 149 G4Material* mat = FindSimpleMaterial(Z); 155 G4Material* mat = FindSimpleMaterial(Z); 150 if (mat == nullptr) { << 156 if(mat == nullptr) { 151 mat = BuildNistMaterial(names[Z], warn); << 157 mat = BuildNistMaterial(names[Z], warn); 152 } 158 } 153 return mat; << 159 return mat; 154 } 160 } 155 161 156 //....oooOO0OOooo........oooOO0OOooo........oo 162 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 157 163 158 G4Material* G4NistMaterialBuilder::BuildMateri 164 G4Material* G4NistMaterialBuilder::BuildMaterial(G4int i) 159 { 165 { 160 G4Material* mat = nullptr; 166 G4Material* mat = nullptr; 161 if (i >= nMaterials) { << 167 if(i >= nMaterials) { return mat; } 162 return mat; << 163 } << 164 168 165 G4AutoLock l(&nistMaterialMutex); 169 G4AutoLock l(&nistMaterialMutex); 166 if (matIndex[i] >= 0) { << 170 if(matIndex[i] >= 0) { 167 // Nist material was already built 171 // Nist material was already built 168 const G4MaterialTable* theMaterialTable = << 172 const G4MaterialTable* theMaterialTable = >> 173 G4Material::GetMaterialTable(); 169 mat = (*theMaterialTable)[matIndex[i]]; 174 mat = (*theMaterialTable)[matIndex[i]]; 170 } << 175 171 else { << 176 } else { 172 if (verbose > 1) { 177 if (verbose > 1) { 173 G4cout << "G4NistMaterialBuilder: BuildM << 178 G4cout << "G4NistMaterialBuilder: BuildMaterial #" << i >> 179 << G4endl; 174 } 180 } 175 181 176 G4int nc = components[i]; 182 G4int nc = components[i]; 177 183 178 // Check gas parameters: 184 // Check gas parameters: 179 // defaults may be changed via AddGas() me 185 // defaults may be changed via AddGas() method 180 G4double t = NTP_Temperature; 186 G4double t = NTP_Temperature; 181 G4double p = CLHEP::STP_Pressure; << 187 G4double p = STP_Pressure; 182 if (kStateGas == states[i]) { << 188 if(kStateGas == states[i]) { 183 size_t nn = idxGas.size(); 189 size_t nn = idxGas.size(); 184 if (nn > 0) { << 190 if(nn > 0) { 185 for (size_t j = 0; j < nn; ++j) { << 191 for(size_t j=0; j<nn; ++j) { 186 if (i == idxGas[j]) { << 192 if(i == idxGas[j]) { 187 t = gasTemperature[j]; << 193 t = gasTemperature[j]; 188 p = gasPressure[j]; << 194 p = gasPressure[j]; 189 break; << 195 break; 190 } << 196 } 191 } << 197 } 192 } 198 } 193 } 199 } 194 mat = new G4Material(names[i], densities[i << 200 mat = new G4Material(names[i],densities[i],nc,states[i],t,p); 195 201 196 if (verbose > 1) { << 202 if (verbose>1) { G4cout << "New material nComponents= " << nc << G4endl; } 197 G4cout << "New material nComponents= " < << 198 } << 199 if (nc > 0) { 203 if (nc > 0) { 200 G4int idx = indexes[i]; 204 G4int idx = indexes[i]; 201 for (G4int j = 0; j < nc; ++j) { << 205 for (G4int j=0; j<nc; ++j) { 202 G4int Z = elements[idx + j]; << 206 G4int Z = elements[idx+j]; 203 G4Element* el = elmBuilder->FindOrBuil << 207 G4Element* el = elmBuilder->FindOrBuildElement(Z); 204 if (el == nullptr) { << 208 if(el == nullptr) 205 G4cout << "G4NistMaterialBuilder::Bu << 209 { 206 << " ERROR: elements Z= " << << 210 G4cout << "G4NistMaterialBuilder::BuildMaterial:" 207 << " for material " << names[ << 211 << " ERROR: elements Z= " << Z << " is not found" 208 G4Exception("G4NistMaterialBuilder:: << 212 << " for material " << names[i] << G4endl; 209 "Failed to construct material"); << 213 G4Exception("G4NistMaterialBuilder::BuildMaterial()", "mat103", 210 return nullptr; << 214 FatalException, "Failed to construct material"); 211 } << 215 return nullptr; 212 if (atomCount[i]) { << 216 } 213 mat->AddElement(el, G4lrint(fraction << 217 if(atomCount[i]) { 214 } << 218 mat->AddElement(el,G4lrint(fractions[idx+j])); 215 else { << 219 } else { 216 mat->AddElement(el, fractions[idx + << 220 mat->AddElement(el,fractions[idx+j]); 217 } << 221 } 218 } 222 } 219 } 223 } 220 224 221 // Ionisation potential can be defined via 225 // Ionisation potential can be defined via NIST DB or 222 // Chemical Formula (ICRU37 Report data) 226 // Chemical Formula (ICRU37 Report data) 223 G4IonisParamMat* ion = mat->GetIonisation( 227 G4IonisParamMat* ion = mat->GetIonisation(); 224 G4double exc0 = ion->GetMeanExcitationEner 228 G4double exc0 = ion->GetMeanExcitationEnergy(); 225 G4double exc1 = exc0; 229 G4double exc1 = exc0; 226 if (! chFormulas[i].empty()) { << 230 if(!chFormulas[i].empty()) { 227 mat->SetChemicalFormula(chFormulas[i]); 231 mat->SetChemicalFormula(chFormulas[i]); 228 exc1 = ion->FindMeanExcitationEnergy(mat 232 exc1 = ion->FindMeanExcitationEnergy(mat); 229 } 233 } 230 // If exists, NIST DB data always overwrit 234 // If exists, NIST DB data always overwrites other data 231 if (ionPotentials[i] > 0.0) { << 235 if(ionPotentials[i] > 0.0) { exc1 = ionPotentials[i]; } 232 exc1 = ionPotentials[i]; << 236 if(exc0 != exc1) { ion->SetMeanExcitationEnergy(exc1); } 233 } << 234 if (exc0 != exc1) { << 235 ion->SetMeanExcitationEnergy(exc1); << 236 } << 237 237 238 // Index in Material Table 238 // Index in Material Table 239 matIndex[i] = (G4int)mat->GetIndex(); 239 matIndex[i] = (G4int)mat->GetIndex(); 240 } 240 } 241 l.unlock(); 241 l.unlock(); 242 return mat; 242 return mat; 243 } 243 } 244 244 245 //....oooOO0OOooo........oooOO0OOooo........oo 245 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 246 246 247 G4Material* G4NistMaterialBuilder::ConstructNe << 247 G4Material* G4NistMaterialBuilder::ConstructNewMaterial( 248 const std::vector<G4String>& elm, const std: << 248 const G4String& name, 249 G4double temp, G4double pres) << 249 const std::vector<G4String>& elm, >> 250 const std::vector<G4int>& nbAtoms, >> 251 G4double dens, >> 252 G4State state, >> 253 G4double temp, >> 254 G4double pres) 250 { 255 { 251 // Material is in DB 256 // Material is in DB 252 G4Material* mat = FindOrBuildMaterial(name); 257 G4Material* mat = FindOrBuildMaterial(name); 253 if (mat != nullptr) { << 258 if(mat != nullptr) >> 259 { 254 G4cout << "G4NistMaterialBuilder::Construc 260 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" 255 << " WARNING: the material <" << n << 261 << " WARNING: the material <" << name 256 G4cout << " New material will NOT be << 262 << "> already exists." << G4endl; >> 263 G4cout << " New material will NOT be built!" >> 264 << G4endl; 257 return mat; 265 return mat; 258 } 266 } 259 267 260 // Material not in DB 268 // Material not in DB 261 auto els = (G4int)elm.size(); << 269 G4int els = (G4int)elm.size(); 262 if (els == 0) { << 270 if(els == 0) { 263 G4cout << "G4NistMaterialBuilder::Construc 271 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" 264 << " WARNING: empty list of elemen << 272 << " WARNING: empty list of elements for " << name 265 G4cout << " New material will NOT be << 273 << G4endl; >> 274 G4cout << " New material will NOT be built!" >> 275 << G4endl; 266 return nullptr; 276 return nullptr; 267 } << 277 } 268 278 269 // add parameters of material into internal 279 // add parameters of material into internal vectors 270 // density in g/cm3, mean ionisation potenti 280 // density in g/cm3, mean ionisation potential is not defined 271 G4bool stp = true; 281 G4bool stp = true; 272 if (state == kStateGas && (temp != NTP_Tempe << 282 if(state == kStateGas && 273 stp = false; << 283 (temp != NTP_Temperature || pres != CLHEP::STP_Pressure)) 274 } << 284 { stp = false; } 275 285 276 AddMaterial(name, dens * CLHEP::cm3 / CLHEP: << 286 AddMaterial(name,dens*CLHEP::cm3/CLHEP::g,0,0.,els,state,stp); 277 if (! stp) { << 287 if(!stp) { AddGas(name,temp,pres); } 278 AddGas(name, temp, pres); << 279 } << 280 288 281 for (G4int i = 0; i < els; ++i) { << 289 for (G4int i=0; i<els; ++i) { 282 AddElementByAtomCount(elmBuilder->GetZ(elm 290 AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]); 283 } 291 } 284 292 285 return BuildMaterial(nMaterials - 1); << 293 return BuildMaterial(nMaterials-1); 286 } 294 } 287 295 288 //....oooOO0OOooo........oooOO0OOooo........oo 296 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 289 297 290 G4Material* G4NistMaterialBuilder::ConstructNe << 298 G4Material* G4NistMaterialBuilder::ConstructNewMaterial( 291 const std::vector<G4String>& elm, const std: << 299 const G4String& name, 292 G4double temp, G4double pres) << 300 const std::vector<G4String>& elm, >> 301 const std::vector<G4double>& w, >> 302 G4double dens, >> 303 G4State state, >> 304 G4double temp, >> 305 G4double pres) 293 { 306 { 294 // Material is in DB 307 // Material is in DB 295 G4Material* mat = FindOrBuildMaterial(name); 308 G4Material* mat = FindOrBuildMaterial(name); 296 if (mat != nullptr) { << 309 if(mat != nullptr) >> 310 { 297 G4cout << "G4NistMaterialBuilder::Construc 311 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" 298 << " WARNING: the material <" << n << 312 << " WARNING: the material <" << name 299 G4cout << " New material will NOT be << 313 << "> already exists." << G4endl; >> 314 G4cout << " New material will NOT be built!" >> 315 << G4endl; 300 return mat; 316 return mat; 301 } 317 } 302 318 303 // Material not in DB 319 // Material not in DB 304 auto els = (G4int)elm.size(); << 320 G4int els = (G4int)elm.size(); 305 if (els == 0) { << 321 if(els == 0) { 306 G4cout << "G4NistMaterialBuilder::Construc 322 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" 307 << " WARNING: empty list of elemen << 323 << " WARNING: empty list of elements for " << name 308 G4cout << " New material will NOT be << 324 << G4endl; >> 325 G4cout << " New material will NOT be built!" >> 326 << G4endl; 309 return nullptr; 327 return nullptr; 310 } << 328 } 311 329 312 // add parameters of material into internal 330 // add parameters of material into internal vectors 313 // density in g/cm3, mean ionisation potenti 331 // density in g/cm3, mean ionisation potential is not defined 314 G4bool stp = true; 332 G4bool stp = true; 315 if (state == kStateGas && (temp != NTP_Tempe << 333 if(state == kStateGas && 316 stp = false; << 334 (temp != NTP_Temperature || pres != CLHEP::STP_Pressure)) 317 } << 335 { stp = false; } 318 AddMaterial(name, dens * CLHEP::cm3 / CLHEP: << 336 AddMaterial(name,dens*CLHEP::cm3/CLHEP::g,0,0.,els,state,stp); 319 if (! stp) { << 337 if(!stp) { AddGas(name,temp,pres); } 320 AddGas(name, temp, pres); << 321 } << 322 338 323 for (G4int i = 0; i < els; ++i) { << 339 for (G4int i=0; i<els; ++i) { 324 AddElementByWeightFraction(elmBuilder->Get 340 AddElementByWeightFraction(elmBuilder->GetZ(elm[i]), w[i]); 325 } 341 } 326 << 342 327 return BuildMaterial(nMaterials - 1); << 343 return BuildMaterial(nMaterials-1); 328 } 344 } 329 345 330 //....oooOO0OOooo........oooOO0OOooo........oo 346 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 331 347 332 G4Material* G4NistMaterialBuilder::ConstructNe 348 G4Material* G4NistMaterialBuilder::ConstructNewGasMaterial( 333 const G4String& name, const G4String& nameDB << 349 const G4String& name, >> 350 const G4String& nameDB, >> 351 G4double temp, >> 352 G4double pres) 334 { 353 { 335 // Material name is in DB 354 // Material name is in DB 336 G4Material* mat = FindOrBuildMaterial(name); 355 G4Material* mat = FindOrBuildMaterial(name); 337 if (mat != nullptr) { << 356 if(mat != nullptr) >> 357 { 338 G4cout << "G4NistMaterialBuilder::Construc 358 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:" 339 << " WARNING: the material <" << n << 359 << " WARNING: the material <" << name 340 G4cout << " New material will NOT be << 360 << "> already exists." << G4endl; >> 361 G4cout << " New material will NOT be built!" >> 362 << G4endl; 341 return mat; 363 return mat; 342 } 364 } 343 365 344 G4Material* bmat = FindOrBuildMaterial(nameD 366 G4Material* bmat = FindOrBuildMaterial(nameDB); 345 if (bmat == nullptr) { << 367 if(bmat == nullptr) >> 368 { 346 G4cout << "G4NistMaterialBuilder::Construc 369 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:" 347 << " WARNING: the Name <" << nameD << 370 << " WARNING: the Name <" << nameDB 348 << "> is NOT in the database: no ne << 371 << "> is NOT in the database: no new gas will be constructed." >> 372 << G4endl; 349 return nullptr; 373 return nullptr; 350 } 374 } 351 if (bmat->GetState() != kStateGas) { << 375 if(bmat->GetState() != kStateGas) { 352 G4cout << "G4NistMaterialBuilder::Construc 376 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:" 353 << " WARNING: <" << nameDB << "> << 377 << " WARNING: <" << nameDB 354 << G4endl; << 378 << "> is NOT a gas - no new gas will be constructed." >> 379 << G4endl; 355 return nullptr; 380 return nullptr; 356 } 381 } 357 382 358 G4double dens = bmat->GetDensity() * pres * << 383 G4double dens = bmat->GetDensity()*pres*bmat->GetTemperature() 359 mat = new G4Material(name, dens, bmat, kStat << 384 /(temp*bmat->GetPressure()); >> 385 mat = new G4Material(name,dens,bmat,kStateGas,temp,pres); 360 386 361 if (verbose > 1) { << 387 if (verbose>1) { 362 G4cout << "G4NistMaterialBuilder::Construc 388 G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial: done" << G4endl; 363 G4cout << &mat << G4endl; << 389 G4cout << &mat << G4endl; 364 } << 390 } 365 return mat; 391 return mat; 366 } 392 } 367 393 368 //....oooOO0OOooo........oooOO0OOooo........oo 394 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 369 395 370 G4Material* G4NistMaterialBuilder::ConstructNe << 396 G4Material* G4NistMaterialBuilder::ConstructNewIdealGasMaterial( 371 const std::vector<G4String>& elm, const std: << 397 const G4String& name, >> 398 const std::vector<G4String>& elm, >> 399 const std::vector<G4int>& nbAtoms, >> 400 G4double temp, >> 401 G4double pres) 372 { 402 { 373 G4State state = kStateGas; 403 G4State state = kStateGas; 374 404 375 // Material is in DB 405 // Material is in DB 376 G4Material* mat = FindOrBuildMaterial(name); 406 G4Material* mat = FindOrBuildMaterial(name); 377 if (mat != nullptr) { << 407 if(mat != nullptr) >> 408 { 378 G4cout << "G4NistMaterialBuilder::Construc 409 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" 379 << " WARNING: the material <" << n << 410 << " WARNING: the material <" << name 380 G4cout << " New material will NOT be << 411 << "> already exists." << G4endl; >> 412 G4cout << " New material will NOT be built!" >> 413 << G4endl; 381 return mat; 414 return mat; 382 } 415 } 383 416 384 // Material not in DB 417 // Material not in DB 385 auto els = (G4int)elm.size(); << 418 G4int els = (G4int)elm.size(); 386 if (els == 0) { << 419 if(els == 0) { 387 G4cout << "G4NistMaterialBuilder::Construc 420 G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:" 388 << " WARNING: empty list of elemen << 421 << " WARNING: empty list of elements for " << name 389 G4cout << " New material will NOT be << 422 << G4endl; >> 423 G4cout << " New material will NOT be built!" >> 424 << G4endl; 390 return nullptr; 425 return nullptr; 391 } 426 } 392 427 393 // add parameters of material into internal 428 // add parameters of material into internal vectors 394 // density in g/cm3, mean ionisation potenti 429 // density in g/cm3, mean ionisation potential is not defined 395 G4bool stp = true; 430 G4bool stp = true; 396 if (temp != NTP_Temperature || pres != CLHEP << 431 if(temp != NTP_Temperature || pres != CLHEP::STP_Pressure) 397 stp = false; << 432 { stp = false; } 398 } << 399 433 400 G4double massPerMole = 0.; 434 G4double massPerMole = 0.; 401 435 402 G4int Z = 0; 436 G4int Z = 0; 403 for (G4int i = 0; i < els; ++i) { << 437 for (G4int i=0; i<els; ++i) { 404 Z = elmBuilder->GetZ(elm[i]); 438 Z = elmBuilder->GetZ(elm[i]); 405 massPerMole += nbAtoms[i] * elmBuilder->Ge << 439 massPerMole += nbAtoms[i]*elmBuilder->GetAtomicMassAmu(Z)*CLHEP::amu_c2; 406 } 440 } 407 441 408 G4double dens = massPerMole / (CLHEP::Avogad << 442 G4double dens = massPerMole/(CLHEP::Avogadro*CLHEP::k_Boltzmann*temp/pres); 409 443 410 if (els == 1) { << 444 if (els == 1) { AddMaterial(name,dens,Z,0.,els,state,stp); } 411 AddMaterial(name, dens, Z, 0., els, state, << 412 } << 413 else { 445 else { 414 AddMaterial(name, dens, 0, 0., els, state, << 446 AddMaterial(name,dens,0,0.,els,state,stp); 415 for (G4int i = 0; i < els; ++i) { << 447 for (G4int i=0; i<els; ++i) { 416 AddElementByAtomCount(elmBuilder->GetZ(e 448 AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]); 417 } 449 } 418 } 450 } 419 451 420 if (! stp) { << 452 if(!stp) { AddGas(name,temp,pres); } 421 AddGas(name, temp, pres); << 422 } << 423 453 424 return BuildMaterial(nMaterials - 1); << 454 return BuildMaterial(nMaterials-1); 425 } 455 } 426 456 427 //....oooOO0OOooo........oooOO0OOooo........oo 457 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 428 458 429 void G4NistMaterialBuilder::AddMaterial(const << 459 void G4NistMaterialBuilder::AddMaterial(const G4String& nameMat, G4double dens, 430 G4double pot, G4int ncomp, G4State state, G4 << 460 G4int Z, G4double pot, >> 461 G4int ncomp, G4State state, >> 462 G4bool stp) 431 { 463 { 432 // add parameters of material into internal 464 // add parameters of material into internal vectors 433 // density in g/cm3, mean ionisation potenti 465 // density in g/cm3, mean ionisation potential in eV 434 466 435 // if ncomp == 1 then Z should be defined an << 467 // if ncomp == 1 then Z should be defined and 436 // AddElement should not be applied 468 // AddElement should not be applied 437 469 438 if (nCurrent != 0) { 470 if (nCurrent != 0) { 439 G4cout << "G4NistMaterialBuilder::AddMater 471 G4cout << "G4NistMaterialBuilder::AddMaterial WARNING: previous " 440 << "mixture " << nMaterials << " " << 472 << "mixture " << nMaterials << " " << names[nMaterials] 441 << G4endl; << 473 << " is not yet complete!" 442 G4cout << " New material " << name << 474 << G4endl; >> 475 G4cout << " New material " << nameMat << " will not be added." >> 476 << G4endl; 443 return; 477 return; 444 } 478 } 445 479 446 // density in g/cm3, mean ionisation potenti 480 // density in g/cm3, mean ionisation potential in eV 447 481 448 names.push_back(nameMat); 482 names.push_back(nameMat); 449 chFormulas.emplace_back(""); 483 chFormulas.emplace_back(""); 450 densities.push_back(dens * CLHEP::g / CLHEP: << 484 densities.push_back(dens*CLHEP::g/CLHEP::cm3); 451 ionPotentials.push_back(pot * CLHEP::eV); << 485 ionPotentials.push_back(pot*CLHEP::eV); 452 states.push_back(state); 486 states.push_back(state); 453 components.push_back(ncomp); 487 components.push_back(ncomp); 454 indexes.push_back(nComponents); 488 indexes.push_back(nComponents); 455 STP.push_back(stp); 489 STP.push_back(stp); 456 matIndex.push_back(-1); 490 matIndex.push_back(-1); 457 atomCount.push_back(false); 491 atomCount.push_back(false); 458 492 459 if (1 == ncomp && Z > 0) { 493 if (1 == ncomp && Z > 0) { 460 elements.push_back(Z); 494 elements.push_back(Z); 461 fractions.push_back(1.0); 495 fractions.push_back(1.0); 462 atomCount[nMaterials] = true; 496 atomCount[nMaterials] = true; 463 ++nComponents; 497 ++nComponents; 464 nCurrent = 0; 498 nCurrent = 0; 465 } << 499 } else { 466 else { << 467 nCurrent = ncomp; 500 nCurrent = ncomp; 468 } 501 } 469 502 470 ++nMaterials; 503 ++nMaterials; 471 504 472 if (verbose > 1) { << 505 if(verbose > 1) { 473 G4cout << "New material " << nameMat << " 506 G4cout << "New material " << nameMat << " is prepared; " 474 << " nMaterials= " << nMaterials << << 507 << " nMaterials= " << nMaterials 475 << " nCurrent= " << nCurrent << G4e << 508 << " nComponents= " << nComponents >> 509 << " nCurrent= " << nCurrent >> 510 << G4endl; 476 } 511 } 477 } 512 } 478 513 479 //....oooOO0OOooo........oooOO0OOooo........oo 514 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 480 515 481 void G4NistMaterialBuilder::SetVerbose(G4int v 516 void G4NistMaterialBuilder::SetVerbose(G4int val) 482 { 517 { 483 verbose = val; 518 verbose = val; 484 elmBuilder->SetVerbose(verbose); 519 elmBuilder->SetVerbose(verbose); 485 } 520 } 486 521 487 //....oooOO0OOooo........oooOO0OOooo........oo 522 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 488 523 489 void G4NistMaterialBuilder::ListMaterials(cons 524 void G4NistMaterialBuilder::ListMaterials(const G4String& mnam) const 490 { 525 { 491 if (mnam == "simple") { << 526 if (mnam == "simple") { ListNistSimpleMaterials(); } 492 ListNistSimpleMaterials(); << 527 else if (mnam == "compound") { ListNistCompoundMaterials(); } 493 } << 528 else if (mnam == "hep") { ListHepMaterials(); } 494 else if (mnam == "compound") { << 529 else if (mnam == "space") { ListSpaceMaterials(); } 495 ListNistCompoundMaterials(); << 530 else if (mnam == "bio") { ListBioChemicalMaterials(); } 496 } << 497 else if (mnam == "hep") { << 498 ListHepMaterials(); << 499 } << 500 else if (mnam == "space") { << 501 ListSpaceMaterials(); << 502 } << 503 else if (mnam == "bio") { << 504 ListBioChemicalMaterials(); << 505 } << 506 531 507 else if (mnam == "all") { 532 else if (mnam == "all") { 508 ListNistSimpleMaterials(); 533 ListNistSimpleMaterials(); 509 ListNistCompoundMaterials(); 534 ListNistCompoundMaterials(); 510 ListHepMaterials(); 535 ListHepMaterials(); 511 ListSpaceMaterials(); 536 ListSpaceMaterials(); 512 ListBioChemicalMaterials(); 537 ListBioChemicalMaterials(); 513 } << 538 514 else { << 539 } else { 515 G4cout << "### G4NistMaterialBuilder::List << 540 G4cout << "### G4NistMaterialBuilder::ListMaterials: Warning " 516 << G4endl; << 541 << mnam << " list is not known." << G4endl; 517 } 542 } 518 } 543 } 519 544 520 //....oooOO0OOooo........oooOO0OOooo........oo 545 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 521 546 522 void G4NistMaterialBuilder::ListNistSimpleMate 547 void G4NistMaterialBuilder::ListNistSimpleMaterials() const 523 { 548 { 524 G4cout << "================================= 549 G4cout << "=======================================================" << G4endl; 525 G4cout << "### Simple Materials from the N 550 G4cout << "### Simple Materials from the NIST Data Base ###" << G4endl; 526 G4cout << "================================= 551 G4cout << "=======================================================" << G4endl; 527 G4cout << " Z Name density(g/cm^3) I(eV 552 G4cout << " Z Name density(g/cm^3) I(eV) " << G4endl; 528 G4cout << "================================= 553 G4cout << "=======================================================" << G4endl; 529 for (G4int i = 1; i < nElementary; ++i) { << 554 for (G4int i=1; i<nElementary; ++i) {DumpElm(i);} 530 DumpElm(i); << 531 } << 532 } 555 } 533 556 534 //....oooOO0OOooo........oooOO0OOooo........oo 557 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 535 558 536 void G4NistMaterialBuilder::ListNistCompoundMa 559 void G4NistMaterialBuilder::ListNistCompoundMaterials() const 537 { 560 { 538 G4cout << "================================= 561 G4cout << "=============================================================" << G4endl; 539 G4cout << "### Compound Materials from th 562 G4cout << "### Compound Materials from the NIST Data Base ##" << G4endl; 540 G4cout << "================================= 563 G4cout << "=============================================================" << G4endl; 541 G4cout << " Ncomp Name dens 564 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl; 542 G4cout << "================================= 565 G4cout << "=============================================================" << G4endl; 543 for (G4int i = nElementary; i < nNIST; ++i) << 566 for (G4int i=nElementary; i<nNIST; ++i) {DumpMix(i);} 544 DumpMix(i); << 545 } << 546 DumpMix(0); 567 DumpMix(0); 547 } 568 } 548 569 549 //....oooOO0OOooo........oooOO0OOooo........oo 570 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 550 571 551 void G4NistMaterialBuilder::ListHepMaterials() 572 void G4NistMaterialBuilder::ListHepMaterials() const 552 { 573 { 553 G4cout << "================================= 574 G4cout << "=============================================================" << G4endl; 554 G4cout << "### HEP & Nuclear Mater 575 G4cout << "### HEP & Nuclear Materials ##" << G4endl; 555 G4cout << "================================= 576 G4cout << "=============================================================" << G4endl; 556 G4cout << " Ncomp Name dens 577 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl; 557 G4cout << "================================= 578 G4cout << "=============================================================" << G4endl; 558 for (G4int i = nNIST; i < nHEP; ++i) { << 579 for (G4int i=nNIST; i<nHEP; ++i) {DumpMix(i);} 559 DumpMix(i); << 560 } << 561 } 580 } 562 581 563 //....oooOO0OOooo........oooOO0OOooo........oo 582 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 564 583 565 void G4NistMaterialBuilder::ListSpaceMaterials 584 void G4NistMaterialBuilder::ListSpaceMaterials() const 566 { 585 { 567 G4cout << "================================= 586 G4cout << "=============================================================" << G4endl; 568 G4cout << "### Space ISS Materials 587 G4cout << "### Space ISS Materials ##" << G4endl; 569 G4cout << "================================= 588 G4cout << "=============================================================" << G4endl; 570 G4cout << " Ncomp Name dens 589 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl; 571 G4cout << "================================= 590 G4cout << "=============================================================" << G4endl; 572 for (G4int i = nHEP; i < nSpace; ++i) { << 591 for (G4int i=nHEP; i<nSpace; ++i) {DumpMix(i);} 573 DumpMix(i); << 574 } << 575 } 592 } 576 593 577 //....oooOO0OOooo........oooOO0OOooo........oo 594 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 578 595 579 void G4NistMaterialBuilder::ListBioChemicalMat 596 void G4NistMaterialBuilder::ListBioChemicalMaterials() const 580 { 597 { 581 G4cout << "================================= 598 G4cout << "=============================================================" << G4endl; 582 G4cout << "### Bio-Chemical Materia 599 G4cout << "### Bio-Chemical Materials ##" << G4endl; 583 G4cout << "================================= 600 G4cout << "=============================================================" << G4endl; 584 G4cout << " Ncomp Name dens 601 G4cout << " Ncomp Name density(g/cm^3) I(eV) ChFormula" << G4endl; 585 G4cout << "================================= 602 G4cout << "=============================================================" << G4endl; 586 for (G4int i = nSpace; i < nMaterials; ++i) << 603 for (G4int i=nSpace; i<nMaterials; ++i) {DumpMix(i);} 587 DumpMix(i); << 588 } << 589 G4cout << "================================= 604 G4cout << "=============================================================" << G4endl; 590 } 605 } 591 606 592 //....oooOO0OOooo........oooOO0OOooo........oo 607 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 593 608 594 void G4NistMaterialBuilder::DumpElm(G4int i) c 609 void G4NistMaterialBuilder::DumpElm(G4int i) const 595 { 610 { 596 G4cout << std::setw(2) << i << " " << std::s << 611 G4cout << std::setw(2) << i << " " 597 << densities[i] * cm3 / g << std::set << 612 << std::setw(6) << names[i] >> 613 << std::setw(14) << densities[i]*cm3/g >> 614 << std::setw(11) << ionPotentials[i]/eV >> 615 << G4endl; 598 } 616 } 599 617 600 //....oooOO0OOooo........oooOO0OOooo........oo 618 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 601 619 602 void G4NistMaterialBuilder::DumpMix(G4int i) c 620 void G4NistMaterialBuilder::DumpMix(G4int i) const 603 { 621 { 604 G4int nc = components[i]; 622 G4int nc = components[i]; 605 G4cout << std::setw(2) << nc << " " << std:: << 623 G4cout << std::setw(2) << nc << " " 606 << densities[i] * cm3 / g << std::set << 624 << std::setw(26) << names[i] << " " 607 << chFormulas[i] << G4endl; << 625 << std::setw(10) << densities[i]*cm3/g >> 626 << std::setw(10) << ionPotentials[i]/eV >> 627 << " " << chFormulas[i] >> 628 << G4endl; 608 if (nc > 1) { 629 if (nc > 1) { 609 G4int imin = indexes[i]; 630 G4int imin = indexes[i]; 610 G4int imax = imin + nc; 631 G4int imax = imin + nc; 611 for (G4int j = imin; j < imax; ++j) { << 632 for (G4int j=imin; j<imax; ++j) { 612 G4cout << std::setw(10) << elements[j] < << 633 G4cout << std::setw(10) << elements[j] << std::setw(14) << fractions[j] >> 634 << G4endl; 613 } 635 } 614 } 636 } 615 } 637 } 616 638 617 //....oooOO0OOooo........oooOO0OOooo........oo 639 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 618 640 619 void G4NistMaterialBuilder::AddGas(const G4Str << 641 void >> 642 G4NistMaterialBuilder::AddGas(const G4String& nameMat, G4double t, G4double p) 620 { 643 { 621 for (G4int i = 0; i < nMaterials; ++i) { << 644 for(G4int i=0; i<nMaterials; ++i) { 622 if (nameMat == names[i]) { << 645 if(nameMat == names[i]) { 623 idxGas.push_back(i); 646 idxGas.push_back(i); 624 gasTemperature.push_back(t); 647 gasTemperature.push_back(t); 625 gasPressure.push_back(p); 648 gasPressure.push_back(p); 626 return; 649 return; 627 } 650 } 628 } 651 } 629 G4cout << "WARNING: G4NistMaterialBuilder::A << 652 G4cout << "WARNING: G4NistMaterialBuilder::AddGas problem: there is no " 630 << " in the list of materials." << G4 << 653 << nameMat << " in the list of materials." >> 654 << G4endl; 631 } 655 } 632 656 633 //....oooOO0OOooo........oooOO0OOooo........oo 657 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 634 658 635 void G4NistMaterialBuilder::AddElementByWeight 659 void G4NistMaterialBuilder::AddElementByWeightFraction(G4int Z, G4double w) 636 { 660 { 637 elements.push_back(Z); 661 elements.push_back(Z); 638 fractions.push_back(w); 662 fractions.push_back(w); 639 --nCurrent; 663 --nCurrent; 640 ++nComponents; 664 ++nComponents; 641 if (nCurrent == 0) { 665 if (nCurrent == 0) { 642 G4int n = nMaterials - 1; 666 G4int n = nMaterials - 1; 643 G4double sum = 0.0; 667 G4double sum = 0.0; 644 G4int imin = indexes[n]; 668 G4int imin = indexes[n]; 645 G4int imax = imin + components[n]; 669 G4int imax = imin + components[n]; 646 670 647 if (! atomCount[n]) { << 671 if(!atomCount[n]) { 648 for (G4int i = imin; i < imax; ++i) { << 672 for(G4int i=imin; i<imax; ++i) {sum += fractions[i];} 649 sum += fractions[i]; << 673 if(sum > 0.0) 650 } << 674 { 651 if (sum > 0.0) { << 675 for(G4int i = imin; i < imax; ++i) 652 for (G4int i = imin; i < imax; ++i) { << 676 { 653 fractions[i] /= sum; 677 fractions[i] /= sum; 654 } 678 } 655 } 679 } 656 } 680 } 657 } 681 } 658 } 682 } 659 683 660 //....oooOO0OOooo........oooOO0OOooo........oo 684 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 661 685 662 void G4NistMaterialBuilder::AddElementByWeight << 686 void G4NistMaterialBuilder::AddElementByWeightFraction(const G4String& name, >> 687 G4double w) 663 { 688 { 664 G4int Z = elmBuilder->GetZ(name); 689 G4int Z = elmBuilder->GetZ(name); 665 AddElementByWeightFraction(Z, w); 690 AddElementByWeightFraction(Z, w); 666 } 691 } 667 692 668 //....oooOO0OOooo........oooOO0OOooo........oo 693 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 669 694 670 void G4NistMaterialBuilder::AddElementByAtomCo 695 void G4NistMaterialBuilder::AddElementByAtomCount(G4int Z, G4int nb) 671 { 696 { 672 atomCount[nMaterials - 1] = true; << 697 atomCount[nMaterials-1] = true; 673 auto w = (G4double)nb; << 698 G4double w = (G4double)nb; 674 AddElementByWeightFraction(Z, w); 699 AddElementByWeightFraction(Z, w); 675 } 700 } 676 701 677 //....oooOO0OOooo........oooOO0OOooo........oo 702 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 678 703 679 void G4NistMaterialBuilder::AddElementByAtomCo << 704 void G4NistMaterialBuilder::AddElementByAtomCount(const G4String& name, >> 705 G4int nb) 680 { 706 { 681 atomCount[nMaterials - 1] = true; << 707 atomCount[nMaterials-1] = true; 682 G4int Z = elmBuilder->GetZ(name); 708 G4int Z = elmBuilder->GetZ(name); 683 auto w = (G4double)nb; << 709 G4double w = (G4double)nb; 684 AddElementByWeightFraction(Z, w); 710 AddElementByWeightFraction(Z, w); 685 } 711 } 686 712 >> 713 687 //....oooOO0OOooo........oooOO0OOooo........oo 714 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 688 715 689 void G4NistMaterialBuilder::Initialise() 716 void G4NistMaterialBuilder::Initialise() 690 { 717 { 691 if (verbose > 0) { 718 if (verbose > 0) { 692 G4cout << "### G4NistMaterialBuilder::Init 719 G4cout << "### G4NistMaterialBuilder::Initialise()" << G4endl; 693 } 720 } 694 NistSimpleMaterials(); 721 NistSimpleMaterials(); 695 NistCompoundMaterials(); 722 NistCompoundMaterials(); 696 NistCompoundMaterials2(); 723 NistCompoundMaterials2(); 697 HepAndNuclearMaterials(); 724 HepAndNuclearMaterials(); 698 SpaceMaterials(); 725 SpaceMaterials(); 699 BioChemicalMaterials(); 726 BioChemicalMaterials(); 700 727 701 if (verbose > 1) { << 728 if (verbose > 1) { ListMaterials("all"); } 702 ListMaterials("all"); << 703 } << 704 } 729 } 705 730 706 //....oooOO0OOooo........oooOO0OOooo........oo 731 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 707 732 708 void G4NistMaterialBuilder::NistSimpleMaterial 733 void G4NistMaterialBuilder::NistSimpleMaterials() 709 { 734 { 710 // density in g/cm3, mean ionisation potenti 735 // density in g/cm3, mean ionisation potential in eV 711 // clang-format off << 736 712 AddMaterial("G4_WATER", 1.0, 0, 78., 2, kSta << 737 AddMaterial("G4_WATER", 1.0,0, 78., 2); 713 AddElementByAtomCount("H" , 2); 738 AddElementByAtomCount("H" , 2); 714 AddElementByAtomCount("O" , 1); 739 AddElementByAtomCount("O" , 1); 715 chFormulas[nMaterials-1] = "H_2O"; 740 chFormulas[nMaterials-1] = "H_2O"; 716 741 717 AddMaterial("G4_H" , 8.37480e-5, 1, 19.2, 742 AddMaterial("G4_H" , 8.37480e-5, 1, 19.2, 1, kStateGas); 718 AddMaterial("G4_He", 1.66322e-4, 2, 41.8, 743 AddMaterial("G4_He", 1.66322e-4, 2, 41.8, 1, kStateGas); 719 AddMaterial("G4_Li", 0.534 , 3, 40. ) 744 AddMaterial("G4_Li", 0.534 , 3, 40. ); 720 AddMaterial("G4_Be", 1.848 , 4, 63.7) 745 AddMaterial("G4_Be", 1.848 , 4, 63.7); 721 AddMaterial("G4_B" , 2.37 , 5, 76. ) 746 AddMaterial("G4_B" , 2.37 , 5, 76. ); 722 AddMaterial("G4_C" , 2. , 6, 81. ) << 747 AddMaterial("G4_C" , 2. , 6, 78. ); 723 AddMaterial("G4_N" , 1.16520e-3, 7, 82. , 748 AddMaterial("G4_N" , 1.16520e-3, 7, 82. , 1, kStateGas); 724 AddMaterial("G4_O" , 1.33151e-3, 8, 95. , 749 AddMaterial("G4_O" , 1.33151e-3, 8, 95. , 1, kStateGas); 725 AddMaterial("G4_F" , 1.58029e-3, 9, 115. , 750 AddMaterial("G4_F" , 1.58029e-3, 9, 115. , 1, kStateGas); 726 AddMaterial("G4_Ne", 8.38505e-4, 10, 137. , 751 AddMaterial("G4_Ne", 8.38505e-4, 10, 137. , 1, kStateGas); 727 AddMaterial("G4_Na", 0.971 , 11, 149. ) 752 AddMaterial("G4_Na", 0.971 , 11, 149. ); 728 AddMaterial("G4_Mg", 1.74 , 12, 156. ) 753 AddMaterial("G4_Mg", 1.74 , 12, 156. ); 729 AddMaterial("G4_Al", 2.699 , 13, 166. ) 754 AddMaterial("G4_Al", 2.699 , 13, 166. ); 730 AddMaterial("G4_Si", 2.33 , 14, 173. ) 755 AddMaterial("G4_Si", 2.33 , 14, 173. ); 731 AddMaterial("G4_P" , 2.2 , 15, 173. ) 756 AddMaterial("G4_P" , 2.2 , 15, 173. ); 732 AddMaterial("G4_S" , 2.0 , 16, 180. ) 757 AddMaterial("G4_S" , 2.0 , 16, 180. ); 733 AddMaterial("G4_Cl", 2.99473e-3, 17, 174. , 758 AddMaterial("G4_Cl", 2.99473e-3, 17, 174. , 1, kStateGas); 734 AddMaterial("G4_Ar", 1.66201e-3, 18, 188.0, 759 AddMaterial("G4_Ar", 1.66201e-3, 18, 188.0, 1, kStateGas); 735 AddMaterial("G4_K" , 0.862 , 19, 190. ) 760 AddMaterial("G4_K" , 0.862 , 19, 190. ); 736 AddMaterial("G4_Ca", 1.55 , 20, 191. ) 761 AddMaterial("G4_Ca", 1.55 , 20, 191. ); 737 AddMaterial("G4_Sc", 2.989 , 21, 216. ) 762 AddMaterial("G4_Sc", 2.989 , 21, 216. ); 738 AddMaterial("G4_Ti", 4.54 , 22, 233. ) 763 AddMaterial("G4_Ti", 4.54 , 22, 233. ); 739 AddMaterial("G4_V" , 6.11 , 23, 245. ) 764 AddMaterial("G4_V" , 6.11 , 23, 245. ); 740 AddMaterial("G4_Cr", 7.18 , 24, 257. ) 765 AddMaterial("G4_Cr", 7.18 , 24, 257. ); 741 AddMaterial("G4_Mn", 7.44 , 25, 272. ) 766 AddMaterial("G4_Mn", 7.44 , 25, 272. ); 742 AddMaterial("G4_Fe", 7.874 , 26, 286. ) 767 AddMaterial("G4_Fe", 7.874 , 26, 286. ); 743 AddMaterial("G4_Co", 8.9 , 27, 297. ) 768 AddMaterial("G4_Co", 8.9 , 27, 297. ); 744 AddMaterial("G4_Ni", 8.902 , 28, 311. ) 769 AddMaterial("G4_Ni", 8.902 , 28, 311. ); 745 AddMaterial("G4_Cu", 8.96 , 29, 322. ) 770 AddMaterial("G4_Cu", 8.96 , 29, 322. ); 746 AddMaterial("G4_Zn", 7.133 , 30, 330. ) 771 AddMaterial("G4_Zn", 7.133 , 30, 330. ); 747 AddMaterial("G4_Ga", 5.904 , 31, 334. ) 772 AddMaterial("G4_Ga", 5.904 , 31, 334. ); 748 AddMaterial("G4_Ge", 5.323 , 32, 350. ) 773 AddMaterial("G4_Ge", 5.323 , 32, 350. ); 749 AddMaterial("G4_As", 5.73 , 33, 347. ) 774 AddMaterial("G4_As", 5.73 , 33, 347. ); 750 AddMaterial("G4_Se", 4.5 , 34, 348. ) 775 AddMaterial("G4_Se", 4.5 , 34, 348. ); 751 AddMaterial("G4_Br", 7.07210e-3, 35, 343. , 776 AddMaterial("G4_Br", 7.07210e-3, 35, 343. , 1, kStateGas); 752 AddMaterial("G4_Kr", 3.47832e-3, 36, 352. , 777 AddMaterial("G4_Kr", 3.47832e-3, 36, 352. , 1, kStateGas); 753 AddMaterial("G4_Rb", 1.532 , 37, 363. ) 778 AddMaterial("G4_Rb", 1.532 , 37, 363. ); 754 AddMaterial("G4_Sr", 2.54 , 38, 366. ) 779 AddMaterial("G4_Sr", 2.54 , 38, 366. ); 755 AddMaterial("G4_Y" , 4.469 , 39, 379. ) 780 AddMaterial("G4_Y" , 4.469 , 39, 379. ); 756 AddMaterial("G4_Zr", 6.506 , 40, 393. ) 781 AddMaterial("G4_Zr", 6.506 , 40, 393. ); 757 AddMaterial("G4_Nb", 8.57 , 41, 417. ) 782 AddMaterial("G4_Nb", 8.57 , 41, 417. ); 758 AddMaterial("G4_Mo", 10.22 , 42, 424. ) 783 AddMaterial("G4_Mo", 10.22 , 42, 424. ); 759 AddMaterial("G4_Tc", 11.50 , 43, 428. ) 784 AddMaterial("G4_Tc", 11.50 , 43, 428. ); 760 AddMaterial("G4_Ru", 12.41 , 44, 441. ) 785 AddMaterial("G4_Ru", 12.41 , 44, 441. ); 761 AddMaterial("G4_Rh", 12.41 , 45, 449. ) 786 AddMaterial("G4_Rh", 12.41 , 45, 449. ); 762 AddMaterial("G4_Pd", 12.02 , 46, 470. ) 787 AddMaterial("G4_Pd", 12.02 , 46, 470. ); 763 AddMaterial("G4_Ag", 10.5 , 47, 470. ) 788 AddMaterial("G4_Ag", 10.5 , 47, 470. ); 764 AddMaterial("G4_Cd", 8.65 , 48, 469. ) 789 AddMaterial("G4_Cd", 8.65 , 48, 469. ); 765 AddMaterial("G4_In", 7.31 , 49, 488. ) 790 AddMaterial("G4_In", 7.31 , 49, 488. ); 766 AddMaterial("G4_Sn", 7.31 , 50, 488. ) 791 AddMaterial("G4_Sn", 7.31 , 50, 488. ); 767 AddMaterial("G4_Sb", 6.691 , 51, 487. ) 792 AddMaterial("G4_Sb", 6.691 , 51, 487. ); 768 AddMaterial("G4_Te", 6.24 , 52, 485. ) 793 AddMaterial("G4_Te", 6.24 , 52, 485. ); 769 AddMaterial("G4_I" , 4.93 , 53, 491. ) 794 AddMaterial("G4_I" , 4.93 , 53, 491. ); 770 AddMaterial("G4_Xe", 5.48536e-3, 54, 482. , 795 AddMaterial("G4_Xe", 5.48536e-3, 54, 482. , 1, kStateGas); 771 AddMaterial("G4_Cs", 1.873 , 55, 488. ) 796 AddMaterial("G4_Cs", 1.873 , 55, 488. ); 772 AddMaterial("G4_Ba", 3.5 , 56, 491. ) 797 AddMaterial("G4_Ba", 3.5 , 56, 491. ); 773 AddMaterial("G4_La", 6.154 , 57, 501. ) 798 AddMaterial("G4_La", 6.154 , 57, 501. ); 774 AddMaterial("G4_Ce", 6.657 , 58, 523. ) 799 AddMaterial("G4_Ce", 6.657 , 58, 523. ); 775 AddMaterial("G4_Pr", 6.71 , 59, 535. ) 800 AddMaterial("G4_Pr", 6.71 , 59, 535. ); 776 AddMaterial("G4_Nd", 6.9 , 60, 546. ) 801 AddMaterial("G4_Nd", 6.9 , 60, 546. ); 777 AddMaterial("G4_Pm", 7.22 , 61, 560. ) 802 AddMaterial("G4_Pm", 7.22 , 61, 560. ); 778 AddMaterial("G4_Sm", 7.46 , 62, 574. ) 803 AddMaterial("G4_Sm", 7.46 , 62, 574. ); 779 AddMaterial("G4_Eu", 5.243 , 63, 580. ) 804 AddMaterial("G4_Eu", 5.243 , 63, 580. ); 780 AddMaterial("G4_Gd", 7.9004 , 64, 591. ) 805 AddMaterial("G4_Gd", 7.9004 , 64, 591. ); 781 AddMaterial("G4_Tb", 8.229 , 65, 614. ) 806 AddMaterial("G4_Tb", 8.229 , 65, 614. ); 782 AddMaterial("G4_Dy", 8.55 , 66, 628. ) 807 AddMaterial("G4_Dy", 8.55 , 66, 628. ); 783 AddMaterial("G4_Ho", 8.795 , 67, 650. ) 808 AddMaterial("G4_Ho", 8.795 , 67, 650. ); 784 AddMaterial("G4_Er", 9.066 , 68, 658. ) 809 AddMaterial("G4_Er", 9.066 , 68, 658. ); 785 AddMaterial("G4_Tm", 9.321 , 69, 674. ) 810 AddMaterial("G4_Tm", 9.321 , 69, 674. ); 786 AddMaterial("G4_Yb", 6.73 , 70, 684. ) 811 AddMaterial("G4_Yb", 6.73 , 70, 684. ); 787 AddMaterial("G4_Lu", 9.84 , 71, 694. ) 812 AddMaterial("G4_Lu", 9.84 , 71, 694. ); 788 AddMaterial("G4_Hf", 13.31 , 72, 705. ) 813 AddMaterial("G4_Hf", 13.31 , 72, 705. ); 789 AddMaterial("G4_Ta", 16.654 , 73, 718. ) 814 AddMaterial("G4_Ta", 16.654 , 73, 718. ); 790 AddMaterial("G4_W" , 19.30 , 74, 727. ) 815 AddMaterial("G4_W" , 19.30 , 74, 727. ); 791 AddMaterial("G4_Re", 21.02 , 75, 736. ) 816 AddMaterial("G4_Re", 21.02 , 75, 736. ); 792 AddMaterial("G4_Os", 22.57 , 76, 746. ) 817 AddMaterial("G4_Os", 22.57 , 76, 746. ); 793 AddMaterial("G4_Ir", 22.42 , 77, 757. ) 818 AddMaterial("G4_Ir", 22.42 , 77, 757. ); 794 AddMaterial("G4_Pt", 21.45 , 78, 790. ) 819 AddMaterial("G4_Pt", 21.45 , 78, 790. ); 795 AddMaterial("G4_Au", 19.32 , 79, 790. ) 820 AddMaterial("G4_Au", 19.32 , 79, 790. ); 796 AddMaterial("G4_Hg", 13.546 , 80, 800. ) 821 AddMaterial("G4_Hg", 13.546 , 80, 800. ); 797 AddMaterial("G4_Tl", 11.72 , 81, 810. ) 822 AddMaterial("G4_Tl", 11.72 , 81, 810. ); 798 AddMaterial("G4_Pb", 11.35 , 82, 823. ) 823 AddMaterial("G4_Pb", 11.35 , 82, 823. ); 799 AddMaterial("G4_Bi", 9.747 , 83, 823. ) 824 AddMaterial("G4_Bi", 9.747 , 83, 823. ); 800 AddMaterial("G4_Po", 9.32 , 84, 830. ) 825 AddMaterial("G4_Po", 9.32 , 84, 830. ); 801 AddMaterial("G4_At", 9.32 , 85, 825. ) 826 AddMaterial("G4_At", 9.32 , 85, 825. ); 802 AddMaterial("G4_Rn", 9.00662e-3, 86, 794. , 827 AddMaterial("G4_Rn", 9.00662e-3, 86, 794. , 1, kStateGas); 803 AddMaterial("G4_Fr", 1.00 , 87, 827. ) 828 AddMaterial("G4_Fr", 1.00 , 87, 827. ); 804 AddMaterial("G4_Ra", 5.00 , 88, 826. ) 829 AddMaterial("G4_Ra", 5.00 , 88, 826. ); 805 AddMaterial("G4_Ac", 10.07 , 89, 841. ) 830 AddMaterial("G4_Ac", 10.07 , 89, 841. ); 806 AddMaterial("G4_Th", 11.72 , 90, 847. ) 831 AddMaterial("G4_Th", 11.72 , 90, 847. ); 807 AddMaterial("G4_Pa", 15.37 , 91, 878. ) 832 AddMaterial("G4_Pa", 15.37 , 91, 878. ); 808 AddMaterial("G4_U" , 18.95 , 92, 890. ) 833 AddMaterial("G4_U" , 18.95 , 92, 890. ); 809 AddMaterial("G4_Np", 20.25 , 93, 902. ) 834 AddMaterial("G4_Np", 20.25 , 93, 902. ); 810 AddMaterial("G4_Pu", 19.84 , 94, 921. ) 835 AddMaterial("G4_Pu", 19.84 , 94, 921. ); 811 AddMaterial("G4_Am", 13.67 , 95, 934. ) 836 AddMaterial("G4_Am", 13.67 , 95, 934. ); 812 AddMaterial("G4_Cm", 13.51 , 96, 939. ) 837 AddMaterial("G4_Cm", 13.51 , 96, 939. ); 813 AddMaterial("G4_Bk", 14.00 , 97, 952. ) 838 AddMaterial("G4_Bk", 14.00 , 97, 952. ); 814 AddMaterial("G4_Cf", 10.00 , 98, 966. ) 839 AddMaterial("G4_Cf", 10.00 , 98, 966. ); 815 840 816 nElementary = nMaterials; 841 nElementary = nMaterials; 817 } 842 } 818 843 819 //....oooOO0OOooo........oooOO0OOooo........oo 844 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 820 845 821 void G4NistMaterialBuilder::NistCompoundMateri 846 void G4NistMaterialBuilder::NistCompoundMaterials() 822 { 847 { 823 AddMaterial("G4_A-150_TISSUE", 1.127, 0, 65. 848 AddMaterial("G4_A-150_TISSUE", 1.127, 0, 65.1, 6); 824 AddElementByWeightFraction( 1, 0.101327); 849 AddElementByWeightFraction( 1, 0.101327); 825 AddElementByWeightFraction( 6, 0.775501); 850 AddElementByWeightFraction( 6, 0.775501); 826 AddElementByWeightFraction( 7, 0.035057); 851 AddElementByWeightFraction( 7, 0.035057); 827 AddElementByWeightFraction( 8, 0.052316); 852 AddElementByWeightFraction( 8, 0.052316); 828 AddElementByWeightFraction( 9, 0.017422); 853 AddElementByWeightFraction( 9, 0.017422); 829 AddElementByWeightFraction(20, 0.018378); 854 AddElementByWeightFraction(20, 0.018378); 830 855 831 AddMaterial("G4_ACETONE", 0.7899, 0, 64.2, 3 << 856 AddMaterial("G4_ACETONE", 0.7899, 0, 64.2, 3); 832 AddElementByAtomCount("C" , 3); 857 AddElementByAtomCount("C" , 3); 833 AddElementByAtomCount("H" , 6); 858 AddElementByAtomCount("H" , 6); 834 AddElementByAtomCount("O" , 1); 859 AddElementByAtomCount("O" , 1); 835 860 836 AddMaterial("G4_ACETYLENE", 0.0010967, 0, 58 861 AddMaterial("G4_ACETYLENE", 0.0010967, 0, 58.2, 2, kStateGas); 837 AddElementByAtomCount("C" , 2); 862 AddElementByAtomCount("C" , 2); 838 AddElementByAtomCount("H" , 2); 863 AddElementByAtomCount("H" , 2); 839 864 840 //Tan, Z., et al. NIMB,2006(248) 865 //Tan, Z., et al. NIMB,2006(248) 841 AddMaterial("G4_ADENINE", 1.35, 0, 71.4, 3); 866 AddMaterial("G4_ADENINE", 1.35, 0, 71.4, 3); 842 AddElementByAtomCount("C" , 5); 867 AddElementByAtomCount("C" , 5); 843 AddElementByAtomCount("H" , 5); 868 AddElementByAtomCount("H" , 5); 844 AddElementByAtomCount("N" , 5); 869 AddElementByAtomCount("N" , 5); 845 870 846 AddMaterial("G4_ADIPOSE_TISSUE_ICRP", 0.95, 871 AddMaterial("G4_ADIPOSE_TISSUE_ICRP", 0.95, 0, 63.2, 7); 847 AddElementByWeightFraction( 1, 0.114); 872 AddElementByWeightFraction( 1, 0.114); 848 AddElementByWeightFraction( 6, 0.598); 873 AddElementByWeightFraction( 6, 0.598); 849 AddElementByWeightFraction( 7, 0.007); 874 AddElementByWeightFraction( 7, 0.007); 850 AddElementByWeightFraction( 8, 0.278); 875 AddElementByWeightFraction( 8, 0.278); 851 AddElementByWeightFraction(11, 0.001); 876 AddElementByWeightFraction(11, 0.001); 852 AddElementByWeightFraction(16, 0.001); 877 AddElementByWeightFraction(16, 0.001); 853 AddElementByWeightFraction(17, 0.001); 878 AddElementByWeightFraction(17, 0.001); 854 879 855 AddMaterial("G4_AIR", 0.00120479, 0, 85.7, 4 880 AddMaterial("G4_AIR", 0.00120479, 0, 85.7, 4, kStateGas); 856 AddElementByWeightFraction( 6, 0.000124); 881 AddElementByWeightFraction( 6, 0.000124); 857 AddElementByWeightFraction( 7, 0.755267); 882 AddElementByWeightFraction( 7, 0.755267); 858 AddElementByWeightFraction( 8, 0.231781); 883 AddElementByWeightFraction( 8, 0.231781); 859 AddElementByWeightFraction(18, 0.012827); 884 AddElementByWeightFraction(18, 0.012827); 860 885 861 AddMaterial("G4_ALANINE", 1.42, 0, 71.9, 4); 886 AddMaterial("G4_ALANINE", 1.42, 0, 71.9, 4); 862 AddElementByAtomCount("C" , 3); 887 AddElementByAtomCount("C" , 3); 863 AddElementByAtomCount("H" , 7); 888 AddElementByAtomCount("H" , 7); 864 AddElementByAtomCount("N" , 1); 889 AddElementByAtomCount("N" , 1); 865 AddElementByAtomCount("O" , 2); 890 AddElementByAtomCount("O" , 2); 866 891 867 AddMaterial("G4_ALUMINUM_OXIDE", 3.97, 0, 14 892 AddMaterial("G4_ALUMINUM_OXIDE", 3.97, 0, 145.2, 2); 868 AddElementByAtomCount("Al", 2); 893 AddElementByAtomCount("Al", 2); 869 AddElementByAtomCount("O" , 3); 894 AddElementByAtomCount("O" , 3); 870 chFormulas[nMaterials-1] = "Al_2O_3"; 895 chFormulas[nMaterials-1] = "Al_2O_3"; 871 896 872 AddMaterial("G4_AMBER", 1.1, 0, 63.2, 3); 897 AddMaterial("G4_AMBER", 1.1, 0, 63.2, 3); 873 AddElementByWeightFraction( 1, 0.10593 ); 898 AddElementByWeightFraction( 1, 0.10593 ); 874 AddElementByWeightFraction( 6, 0.788973); 899 AddElementByWeightFraction( 6, 0.788973); 875 AddElementByWeightFraction( 8, 0.105096); 900 AddElementByWeightFraction( 8, 0.105096); 876 901 877 AddMaterial("G4_AMMONIA", 0.000826019, 0, 53 902 AddMaterial("G4_AMMONIA", 0.000826019, 0, 53.7, 2, kStateGas); 878 AddElementByAtomCount("N" , 1); 903 AddElementByAtomCount("N" , 1); 879 AddElementByAtomCount("H" , 3); 904 AddElementByAtomCount("H" , 3); 880 905 881 AddMaterial("G4_ANILINE", 1.0235, 0, 66.2, 3 906 AddMaterial("G4_ANILINE", 1.0235, 0, 66.2, 3); 882 AddElementByAtomCount("C" , 6); 907 AddElementByAtomCount("C" , 6); 883 AddElementByAtomCount("H" , 7); 908 AddElementByAtomCount("H" , 7); 884 AddElementByAtomCount("N" , 1); 909 AddElementByAtomCount("N" , 1); 885 910 886 AddMaterial("G4_ANTHRACENE", 1.283, 0, 69.5, 911 AddMaterial("G4_ANTHRACENE", 1.283, 0, 69.5, 2); 887 AddElementByAtomCount("C" , 14); 912 AddElementByAtomCount("C" , 14); 888 AddElementByAtomCount("H" , 10); 913 AddElementByAtomCount("H" , 10); 889 914 890 AddMaterial("G4_B-100_BONE", 1.45, 0, 85.9, 915 AddMaterial("G4_B-100_BONE", 1.45, 0, 85.9, 6); 891 AddElementByWeightFraction( 1, 0.065471); 916 AddElementByWeightFraction( 1, 0.065471); 892 AddElementByWeightFraction( 6, 0.536945); 917 AddElementByWeightFraction( 6, 0.536945); 893 AddElementByWeightFraction( 7, 0.0215 ); 918 AddElementByWeightFraction( 7, 0.0215 ); 894 AddElementByWeightFraction( 8, 0.032085); 919 AddElementByWeightFraction( 8, 0.032085); 895 AddElementByWeightFraction( 9, 0.167411); 920 AddElementByWeightFraction( 9, 0.167411); 896 AddElementByWeightFraction(20, 0.176589); 921 AddElementByWeightFraction(20, 0.176589); 897 922 898 AddMaterial("G4_BAKELITE", 1.25, 0, 72.4, 3) 923 AddMaterial("G4_BAKELITE", 1.25, 0, 72.4, 3); 899 AddElementByWeightFraction( 1, 0.057441); 924 AddElementByWeightFraction( 1, 0.057441); 900 AddElementByWeightFraction( 6, 0.774591); 925 AddElementByWeightFraction( 6, 0.774591); 901 AddElementByWeightFraction( 8, 0.167968); 926 AddElementByWeightFraction( 8, 0.167968); 902 927 903 AddMaterial("G4_BARIUM_FLUORIDE", 4.89 ,0, 3 928 AddMaterial("G4_BARIUM_FLUORIDE", 4.89 ,0, 375.9, 2); 904 AddElementByAtomCount("Ba", 1); 929 AddElementByAtomCount("Ba", 1); 905 AddElementByAtomCount("F" , 2); 930 AddElementByAtomCount("F" , 2); 906 931 907 AddMaterial("G4_BARIUM_SULFATE", 4.5, 0, 285 932 AddMaterial("G4_BARIUM_SULFATE", 4.5, 0, 285.7, 3); 908 AddElementByAtomCount("Ba", 1); 933 AddElementByAtomCount("Ba", 1); 909 AddElementByAtomCount("S" , 1); 934 AddElementByAtomCount("S" , 1); 910 AddElementByAtomCount("O" , 4); 935 AddElementByAtomCount("O" , 4); 911 936 912 AddMaterial("G4_BENZENE", 0.87865, 0, 63.4, << 937 AddMaterial("G4_BENZENE", 0.87865, 0, 63.4, 2); 913 AddElementByAtomCount("C" , 6); 938 AddElementByAtomCount("C" , 6); 914 AddElementByAtomCount("H" , 6); 939 AddElementByAtomCount("H" , 6); 915 940 916 AddMaterial("G4_BERYLLIUM_OXIDE", 3.01, 0, 9 941 AddMaterial("G4_BERYLLIUM_OXIDE", 3.01, 0, 93.2, 2); 917 AddElementByAtomCount("Be", 1); 942 AddElementByAtomCount("Be", 1); 918 AddElementByAtomCount("O" , 1); 943 AddElementByAtomCount("O" , 1); 919 944 920 AddMaterial("G4_BGO", 7.13, 0, 534.1, 3); 945 AddMaterial("G4_BGO", 7.13, 0, 534.1, 3); 921 AddElementByAtomCount("Bi", 4); 946 AddElementByAtomCount("Bi", 4); 922 AddElementByAtomCount("Ge", 3); 947 AddElementByAtomCount("Ge", 3); 923 AddElementByAtomCount("O" , 12); 948 AddElementByAtomCount("O" , 12); 924 949 925 AddMaterial("G4_BLOOD_ICRP", 1.06, 0, 75.2, << 950 AddMaterial("G4_BLOOD_ICRP", 1.06, 0, 75.2, 10); 926 AddElementByWeightFraction( 1, 0.102); 951 AddElementByWeightFraction( 1, 0.102); 927 AddElementByWeightFraction( 6, 0.110); 952 AddElementByWeightFraction( 6, 0.110); 928 AddElementByWeightFraction( 7, 0.033); 953 AddElementByWeightFraction( 7, 0.033); 929 AddElementByWeightFraction( 8, 0.745); 954 AddElementByWeightFraction( 8, 0.745); 930 AddElementByWeightFraction(11, 0.001); 955 AddElementByWeightFraction(11, 0.001); 931 AddElementByWeightFraction(15, 0.001); 956 AddElementByWeightFraction(15, 0.001); 932 AddElementByWeightFraction(16, 0.002); 957 AddElementByWeightFraction(16, 0.002); 933 AddElementByWeightFraction(17, 0.003); 958 AddElementByWeightFraction(17, 0.003); 934 AddElementByWeightFraction(19, 0.002); 959 AddElementByWeightFraction(19, 0.002); 935 AddElementByWeightFraction(26, 0.001); 960 AddElementByWeightFraction(26, 0.001); 936 961 937 AddMaterial("G4_BONE_COMPACT_ICRU", 1.85, 0, 962 AddMaterial("G4_BONE_COMPACT_ICRU", 1.85, 0, 91.9, 8); 938 AddElementByWeightFraction( 1, 0.064); 963 AddElementByWeightFraction( 1, 0.064); 939 AddElementByWeightFraction( 6, 0.278); 964 AddElementByWeightFraction( 6, 0.278); 940 AddElementByWeightFraction( 7, 0.027); 965 AddElementByWeightFraction( 7, 0.027); 941 AddElementByWeightFraction( 8, 0.410); 966 AddElementByWeightFraction( 8, 0.410); 942 AddElementByWeightFraction(12, 0.002); 967 AddElementByWeightFraction(12, 0.002); 943 AddElementByWeightFraction(15, 0.07 ); 968 AddElementByWeightFraction(15, 0.07 ); 944 AddElementByWeightFraction(16, 0.002); 969 AddElementByWeightFraction(16, 0.002); 945 AddElementByWeightFraction(20, 0.147); 970 AddElementByWeightFraction(20, 0.147); 946 971 947 // Sceleton Cortical bone for Adult ICRU 46 972 // Sceleton Cortical bone for Adult ICRU 46 948 AddMaterial("G4_BONE_CORTICAL_ICRP", 1.92, 0 973 AddMaterial("G4_BONE_CORTICAL_ICRP", 1.92, 0, 110, 9); 949 AddElementByWeightFraction( 1, 0.034); 974 AddElementByWeightFraction( 1, 0.034); 950 AddElementByWeightFraction( 6, 0.155); 975 AddElementByWeightFraction( 6, 0.155); 951 AddElementByWeightFraction( 7, 0.042); 976 AddElementByWeightFraction( 7, 0.042); 952 AddElementByWeightFraction( 8, 0.435); 977 AddElementByWeightFraction( 8, 0.435); 953 AddElementByWeightFraction(11, 0.001); 978 AddElementByWeightFraction(11, 0.001); 954 AddElementByWeightFraction(12, 0.002); 979 AddElementByWeightFraction(12, 0.002); 955 AddElementByWeightFraction(15, 0.103); 980 AddElementByWeightFraction(15, 0.103); 956 AddElementByWeightFraction(16, 0.003); 981 AddElementByWeightFraction(16, 0.003); 957 AddElementByWeightFraction(20, 0.225); 982 AddElementByWeightFraction(20, 0.225); 958 983 959 AddMaterial("G4_BORON_CARBIDE", 2.52, 0, 84. 984 AddMaterial("G4_BORON_CARBIDE", 2.52, 0, 84.7, 2); 960 AddElementByAtomCount("B" , 4); 985 AddElementByAtomCount("B" , 4); 961 AddElementByAtomCount("C" , 1); 986 AddElementByAtomCount("C" , 1); 962 987 963 AddMaterial("G4_BORON_OXIDE", 1.812, 0, 99.6 988 AddMaterial("G4_BORON_OXIDE", 1.812, 0, 99.6, 2); 964 AddElementByAtomCount("B" , 2); 989 AddElementByAtomCount("B" , 2); 965 AddElementByAtomCount("O" , 3); 990 AddElementByAtomCount("O" , 3); 966 991 967 AddMaterial("G4_BRAIN_ICRP", 1.04, 0, 73.3, 992 AddMaterial("G4_BRAIN_ICRP", 1.04, 0, 73.3, 9); 968 AddElementByWeightFraction( 1, 0.107); 993 AddElementByWeightFraction( 1, 0.107); 969 AddElementByWeightFraction( 6, 0.145); 994 AddElementByWeightFraction( 6, 0.145); 970 AddElementByWeightFraction( 7, 0.022); 995 AddElementByWeightFraction( 7, 0.022); 971 AddElementByWeightFraction( 8, 0.712); 996 AddElementByWeightFraction( 8, 0.712); 972 AddElementByWeightFraction(11, 0.002); 997 AddElementByWeightFraction(11, 0.002); 973 AddElementByWeightFraction(15, 0.004); 998 AddElementByWeightFraction(15, 0.004); 974 AddElementByWeightFraction(16, 0.002); 999 AddElementByWeightFraction(16, 0.002); 975 AddElementByWeightFraction(17, 0.003); 1000 AddElementByWeightFraction(17, 0.003); 976 AddElementByWeightFraction(19, 0.003); 1001 AddElementByWeightFraction(19, 0.003); 977 1002 978 AddMaterial("G4_BUTANE", 0.00249343, 0, 48.3 1003 AddMaterial("G4_BUTANE", 0.00249343, 0, 48.3, 2, kStateGas); 979 AddElementByAtomCount("C" , 4); 1004 AddElementByAtomCount("C" , 4); 980 AddElementByAtomCount("H" , 10); 1005 AddElementByAtomCount("H" , 10); 981 1006 982 AddMaterial("G4_N-BUTYL_ALCOHOL", 0.8098, 0, << 1007 AddMaterial("G4_N-BUTYL_ALCOHOL", 0.8098, 0, 59.9, 3); 983 AddElementByAtomCount("C" , 4); 1008 AddElementByAtomCount("C" , 4); 984 AddElementByAtomCount("H" , 10); 1009 AddElementByAtomCount("H" , 10); 985 AddElementByAtomCount("O" , 1); 1010 AddElementByAtomCount("O" , 1); 986 1011 987 AddMaterial("G4_C-552", 1.76, 0, 86.8, 5); 1012 AddMaterial("G4_C-552", 1.76, 0, 86.8, 5); 988 AddElementByWeightFraction( 1, 0.02468 ); 1013 AddElementByWeightFraction( 1, 0.02468 ); 989 AddElementByWeightFraction( 6, 0.50161 ); 1014 AddElementByWeightFraction( 6, 0.50161 ); 990 AddElementByWeightFraction( 8, 0.004527); 1015 AddElementByWeightFraction( 8, 0.004527); 991 AddElementByWeightFraction( 9, 0.465209); 1016 AddElementByWeightFraction( 9, 0.465209); 992 AddElementByWeightFraction(14, 0.003973); 1017 AddElementByWeightFraction(14, 0.003973); 993 1018 994 AddMaterial("G4_CADMIUM_TELLURIDE", 6.2, 0, 1019 AddMaterial("G4_CADMIUM_TELLURIDE", 6.2, 0, 539.3, 2); 995 AddElementByAtomCount("Cd", 1); 1020 AddElementByAtomCount("Cd", 1); 996 AddElementByAtomCount("Te", 1); 1021 AddElementByAtomCount("Te", 1); 997 1022 998 AddMaterial("G4_CADMIUM_TUNGSTATE", 7.9, 0, 1023 AddMaterial("G4_CADMIUM_TUNGSTATE", 7.9, 0, 468.3, 3); 999 AddElementByAtomCount("Cd", 1); 1024 AddElementByAtomCount("Cd", 1); 1000 AddElementByAtomCount("W" , 1); 1025 AddElementByAtomCount("W" , 1); 1001 AddElementByAtomCount("O" , 4); 1026 AddElementByAtomCount("O" , 4); 1002 1027 1003 AddMaterial("G4_CALCIUM_CARBONATE", 2.8, 0, 1028 AddMaterial("G4_CALCIUM_CARBONATE", 2.8, 0, 136.4, 3); 1004 AddElementByAtomCount("Ca", 1); 1029 AddElementByAtomCount("Ca", 1); 1005 AddElementByAtomCount("C" , 1); 1030 AddElementByAtomCount("C" , 1); 1006 AddElementByAtomCount("O" , 3); 1031 AddElementByAtomCount("O" , 3); 1007 1032 1008 AddMaterial("G4_CALCIUM_FLUORIDE", 3.18, 0, 1033 AddMaterial("G4_CALCIUM_FLUORIDE", 3.18, 0, 166., 2); 1009 AddElementByAtomCount("Ca", 1); 1034 AddElementByAtomCount("Ca", 1); 1010 AddElementByAtomCount("F" , 2); 1035 AddElementByAtomCount("F" , 2); 1011 1036 1012 AddMaterial("G4_CALCIUM_OXIDE", 3.3, 0, 176 1037 AddMaterial("G4_CALCIUM_OXIDE", 3.3, 0, 176.1, 2); 1013 AddElementByAtomCount("Ca", 1); 1038 AddElementByAtomCount("Ca", 1); 1014 AddElementByAtomCount("O" , 1); 1039 AddElementByAtomCount("O" , 1); 1015 1040 1016 AddMaterial("G4_CALCIUM_SULFATE", 2.96, 0, 1041 AddMaterial("G4_CALCIUM_SULFATE", 2.96, 0, 152.3, 3); 1017 AddElementByAtomCount("Ca", 1); 1042 AddElementByAtomCount("Ca", 1); 1018 AddElementByAtomCount("S" , 1); 1043 AddElementByAtomCount("S" , 1); 1019 AddElementByAtomCount("O" , 4); 1044 AddElementByAtomCount("O" , 4); 1020 1045 1021 AddMaterial("G4_CALCIUM_TUNGSTATE", 6.062, 1046 AddMaterial("G4_CALCIUM_TUNGSTATE", 6.062, 0, 395., 3); 1022 AddElementByAtomCount("Ca", 1); 1047 AddElementByAtomCount("Ca", 1); 1023 AddElementByAtomCount("W" , 1); 1048 AddElementByAtomCount("W" , 1); 1024 AddElementByAtomCount("O" , 4); 1049 AddElementByAtomCount("O" , 4); 1025 1050 1026 AddMaterial("G4_CARBON_DIOXIDE", 0.00184212 1051 AddMaterial("G4_CARBON_DIOXIDE", 0.00184212, 0, 85., 2, kStateGas); 1027 AddElementByAtomCount("C" , 1); 1052 AddElementByAtomCount("C" , 1); 1028 AddElementByAtomCount("O" , 2); 1053 AddElementByAtomCount("O" , 2); 1029 chFormulas[nMaterials-1] = "CO_2"; 1054 chFormulas[nMaterials-1] = "CO_2"; 1030 1055 1031 AddMaterial("G4_CARBON_TETRACHLORIDE", 1.59 1056 AddMaterial("G4_CARBON_TETRACHLORIDE", 1.594, 0, 166.3, 2); 1032 AddElementByAtomCount("C" , 1); 1057 AddElementByAtomCount("C" , 1); 1033 AddElementByAtomCount("Cl", 4); 1058 AddElementByAtomCount("Cl", 4); 1034 1059 1035 AddMaterial("G4_CELLULOSE_CELLOPHANE", 1.42 1060 AddMaterial("G4_CELLULOSE_CELLOPHANE", 1.42, 0, 77.6, 3); 1036 AddElementByAtomCount("C" , 6); 1061 AddElementByAtomCount("C" , 6); 1037 AddElementByAtomCount("H" , 10); 1062 AddElementByAtomCount("H" , 10); 1038 AddElementByAtomCount("O" , 5); 1063 AddElementByAtomCount("O" , 5); 1039 1064 1040 AddMaterial("G4_CELLULOSE_BUTYRATE", 1.2, 0 1065 AddMaterial("G4_CELLULOSE_BUTYRATE", 1.2, 0, 74.6, 3); 1041 AddElementByWeightFraction( 1, 0.067125); 1066 AddElementByWeightFraction( 1, 0.067125); 1042 AddElementByWeightFraction( 6, 0.545403); 1067 AddElementByWeightFraction( 6, 0.545403); 1043 AddElementByWeightFraction( 8, 0.387472); 1068 AddElementByWeightFraction( 8, 0.387472); 1044 1069 1045 AddMaterial("G4_CELLULOSE_NITRATE", 1.49, 0 1070 AddMaterial("G4_CELLULOSE_NITRATE", 1.49, 0, 87., 4); 1046 AddElementByWeightFraction( 1, 0.029216); 1071 AddElementByWeightFraction( 1, 0.029216); 1047 AddElementByWeightFraction( 6, 0.271296); 1072 AddElementByWeightFraction( 6, 0.271296); 1048 AddElementByWeightFraction( 7, 0.121276); 1073 AddElementByWeightFraction( 7, 0.121276); 1049 AddElementByWeightFraction( 8, 0.578212); 1074 AddElementByWeightFraction( 8, 0.578212); 1050 1075 1051 AddMaterial("G4_CERIC_SULFATE", 1.03, 0, 76 1076 AddMaterial("G4_CERIC_SULFATE", 1.03, 0, 76.7, 5); 1052 AddElementByWeightFraction( 1, 0.107596); 1077 AddElementByWeightFraction( 1, 0.107596); 1053 AddElementByWeightFraction( 7, 0.0008 ); 1078 AddElementByWeightFraction( 7, 0.0008 ); 1054 AddElementByWeightFraction( 8, 0.874976); 1079 AddElementByWeightFraction( 8, 0.874976); 1055 AddElementByWeightFraction(16, 0.014627); 1080 AddElementByWeightFraction(16, 0.014627); 1056 AddElementByWeightFraction(58, 0.002001); 1081 AddElementByWeightFraction(58, 0.002001); 1057 1082 1058 AddMaterial("G4_CESIUM_FLUORIDE", 4.115, 0, 1083 AddMaterial("G4_CESIUM_FLUORIDE", 4.115, 0, 440.7, 2); 1059 AddElementByAtomCount("Cs", 1); 1084 AddElementByAtomCount("Cs", 1); 1060 AddElementByAtomCount("F" , 1); 1085 AddElementByAtomCount("F" , 1); 1061 1086 1062 AddMaterial("G4_CESIUM_IODIDE", 4.51, 0, 55 1087 AddMaterial("G4_CESIUM_IODIDE", 4.51, 0, 553.1, 2); 1063 AddElementByAtomCount("Cs", 1); 1088 AddElementByAtomCount("Cs", 1); 1064 AddElementByAtomCount("I" , 1); 1089 AddElementByAtomCount("I" , 1); 1065 1090 1066 AddMaterial("G4_CHLOROBENZENE", 1.1058, 0, 1091 AddMaterial("G4_CHLOROBENZENE", 1.1058, 0, 89.1, 3); 1067 AddElementByAtomCount("C" , 6); 1092 AddElementByAtomCount("C" , 6); 1068 AddElementByAtomCount("H" , 5); 1093 AddElementByAtomCount("H" , 5); 1069 AddElementByAtomCount("Cl", 1); 1094 AddElementByAtomCount("Cl", 1); 1070 1095 1071 AddMaterial("G4_CHLOROFORM", 1.4832, 0, 156 1096 AddMaterial("G4_CHLOROFORM", 1.4832, 0, 156., 3); 1072 AddElementByAtomCount("C" , 1); 1097 AddElementByAtomCount("C" , 1); 1073 AddElementByAtomCount("H" , 1); 1098 AddElementByAtomCount("H" , 1); 1074 AddElementByAtomCount("Cl", 3); 1099 AddElementByAtomCount("Cl", 3); 1075 1100 1076 AddMaterial("G4_CONCRETE", 2.3, 0, 135.2, 1 1101 AddMaterial("G4_CONCRETE", 2.3, 0, 135.2, 10); 1077 AddElementByWeightFraction( 1, 0.01 ); 1102 AddElementByWeightFraction( 1, 0.01 ); 1078 AddElementByWeightFraction( 6, 0.001 ); 1103 AddElementByWeightFraction( 6, 0.001 ); 1079 AddElementByWeightFraction( 8, 0.529107); 1104 AddElementByWeightFraction( 8, 0.529107); 1080 AddElementByWeightFraction(11, 0.016 ); 1105 AddElementByWeightFraction(11, 0.016 ); 1081 AddElementByWeightFraction(12, 0.002 ); 1106 AddElementByWeightFraction(12, 0.002 ); 1082 AddElementByWeightFraction(13, 0.033872); 1107 AddElementByWeightFraction(13, 0.033872); 1083 AddElementByWeightFraction(14, 0.337021); 1108 AddElementByWeightFraction(14, 0.337021); 1084 AddElementByWeightFraction(19, 0.013 ); 1109 AddElementByWeightFraction(19, 0.013 ); 1085 AddElementByWeightFraction(20, 0.044 ); 1110 AddElementByWeightFraction(20, 0.044 ); 1086 AddElementByWeightFraction(26, 0.014 ); 1111 AddElementByWeightFraction(26, 0.014 ); 1087 1112 1088 AddMaterial("G4_CYCLOHEXANE", 0.779, 0, 56. 1113 AddMaterial("G4_CYCLOHEXANE", 0.779, 0, 56.4, 2); 1089 AddElementByAtomCount("C" , 6); 1114 AddElementByAtomCount("C" , 6); 1090 AddElementByAtomCount("H" , 12); 1115 AddElementByAtomCount("H" , 12); 1091 1116 1092 AddMaterial("G4_1,2-DICHLOROBENZENE", 1.304 1117 AddMaterial("G4_1,2-DICHLOROBENZENE", 1.3048, 0, 106.5, 3); 1093 AddElementByAtomCount("C" , 6); 1118 AddElementByAtomCount("C" , 6); 1094 AddElementByAtomCount("H" , 4); 1119 AddElementByAtomCount("H" , 4); 1095 AddElementByAtomCount("Cl", 2); 1120 AddElementByAtomCount("Cl", 2); 1096 1121 1097 AddMaterial("G4_DICHLORODIETHYL_ETHER", 1.2 1122 AddMaterial("G4_DICHLORODIETHYL_ETHER", 1.2199, 0, 103.3, 4); 1098 AddElementByAtomCount("C" , 4); 1123 AddElementByAtomCount("C" , 4); 1099 AddElementByAtomCount("H" , 8); 1124 AddElementByAtomCount("H" , 8); 1100 AddElementByAtomCount("O" , 1); 1125 AddElementByAtomCount("O" , 1); 1101 AddElementByAtomCount("Cl", 2); 1126 AddElementByAtomCount("Cl", 2); 1102 1127 1103 AddMaterial("G4_1,2-DICHLOROETHANE", 1.2351 << 1128 AddMaterial("G4_1,2-DICHLOROETHANE", 1.2351, 0, 111.9, 3); 1104 AddElementByAtomCount("C" , 2); 1129 AddElementByAtomCount("C" , 2); 1105 AddElementByAtomCount("H" , 4); 1130 AddElementByAtomCount("H" , 4); 1106 AddElementByAtomCount("Cl", 2); 1131 AddElementByAtomCount("Cl", 2); 1107 1132 1108 AddMaterial("G4_DIETHYL_ETHER", 0.71378, 0, << 1133 AddMaterial("G4_DIETHYL_ETHER", 0.71378, 0, 60., 3); 1109 AddElementByAtomCount("C" , 4); 1134 AddElementByAtomCount("C" , 4); 1110 AddElementByAtomCount("H" , 10); 1135 AddElementByAtomCount("H" , 10); 1111 AddElementByAtomCount("O" , 1); 1136 AddElementByAtomCount("O" , 1); 1112 1137 1113 AddMaterial("G4_N,N-DIMETHYL_FORMAMIDE", 0. << 1138 AddMaterial("G4_N,N-DIMETHYL_FORMAMIDE", 0.9487, 0, 66.6, 4); 1114 AddElementByAtomCount("C" , 3); 1139 AddElementByAtomCount("C" , 3); 1115 AddElementByAtomCount("H" , 7); 1140 AddElementByAtomCount("H" , 7); 1116 AddElementByAtomCount("N" , 1); 1141 AddElementByAtomCount("N" , 1); 1117 AddElementByAtomCount("O" , 1); 1142 AddElementByAtomCount("O" , 1); 1118 1143 1119 AddMaterial("G4_DIMETHYL_SULFOXIDE", 1.1014 << 1144 AddMaterial("G4_DIMETHYL_SULFOXIDE", 1.1014, 0, 98.6, 4); 1120 AddElementByAtomCount("C" , 2); 1145 AddElementByAtomCount("C" , 2); 1121 AddElementByAtomCount("H" , 6); 1146 AddElementByAtomCount("H" , 6); 1122 AddElementByAtomCount("O" , 1); 1147 AddElementByAtomCount("O" , 1); 1123 AddElementByAtomCount("S" , 1); 1148 AddElementByAtomCount("S" , 1); 1124 1149 1125 AddMaterial("G4_ETHANE", 0.00125324, 0, 45. 1150 AddMaterial("G4_ETHANE", 0.00125324, 0, 45.4, 2, kStateGas); 1126 AddElementByAtomCount("C" , 2); 1151 AddElementByAtomCount("C" , 2); 1127 AddElementByAtomCount("H" , 6); 1152 AddElementByAtomCount("H" , 6); 1128 1153 1129 AddMaterial("G4_ETHYL_ALCOHOL", 0.7893, 0, << 1154 AddMaterial("G4_ETHYL_ALCOHOL", 0.7893, 0, 62.9, 3); 1130 AddElementByAtomCount("C" , 2); 1155 AddElementByAtomCount("C" , 2); 1131 AddElementByAtomCount("H" , 6); 1156 AddElementByAtomCount("H" , 6); 1132 AddElementByAtomCount("O" , 1); 1157 AddElementByAtomCount("O" , 1); 1133 1158 1134 AddMaterial("G4_ETHYL_CELLULOSE", 1.13, 0, 1159 AddMaterial("G4_ETHYL_CELLULOSE", 1.13, 0, 69.3, 3); 1135 AddElementByWeightFraction( 1, 0.090027); 1160 AddElementByWeightFraction( 1, 0.090027); 1136 AddElementByWeightFraction( 6, 0.585182); 1161 AddElementByWeightFraction( 6, 0.585182); 1137 AddElementByWeightFraction( 8, 0.324791); 1162 AddElementByWeightFraction( 8, 0.324791); 1138 1163 1139 AddMaterial("G4_ETHYLENE", 0.00117497, 0, 5 1164 AddMaterial("G4_ETHYLENE", 0.00117497, 0, 50.7, 2, kStateGas); 1140 AddElementByAtomCount("C" , 2); 1165 AddElementByAtomCount("C" , 2); 1141 AddElementByAtomCount("H" , 4); 1166 AddElementByAtomCount("H" , 4); 1142 1167 1143 AddMaterial("G4_EYE_LENS_ICRP", 1.07, 0, 73 1168 AddMaterial("G4_EYE_LENS_ICRP", 1.07, 0, 73.3, 8); 1144 AddElementByWeightFraction( 1, 0.096); 1169 AddElementByWeightFraction( 1, 0.096); 1145 AddElementByWeightFraction( 6, 0.195); 1170 AddElementByWeightFraction( 6, 0.195); 1146 AddElementByWeightFraction( 7, 0.057); 1171 AddElementByWeightFraction( 7, 0.057); 1147 AddElementByWeightFraction( 8, 0.646); 1172 AddElementByWeightFraction( 8, 0.646); 1148 AddElementByWeightFraction(11, 0.001); 1173 AddElementByWeightFraction(11, 0.001); 1149 AddElementByWeightFraction(15, 0.001); 1174 AddElementByWeightFraction(15, 0.001); 1150 AddElementByWeightFraction(16, 0.003); 1175 AddElementByWeightFraction(16, 0.003); 1151 AddElementByWeightFraction(17, 0.001); 1176 AddElementByWeightFraction(17, 0.001); 1152 1177 1153 AddMaterial("G4_FERRIC_OXIDE", 5.2, 0, 227. 1178 AddMaterial("G4_FERRIC_OXIDE", 5.2, 0, 227.3, 2); 1154 AddElementByAtomCount("Fe", 2); 1179 AddElementByAtomCount("Fe", 2); 1155 AddElementByAtomCount("O" , 3); 1180 AddElementByAtomCount("O" , 3); 1156 1181 1157 AddMaterial("G4_FERROBORIDE", 7.15, 0, 261. 1182 AddMaterial("G4_FERROBORIDE", 7.15, 0, 261., 2); 1158 AddElementByAtomCount("Fe", 1); 1183 AddElementByAtomCount("Fe", 1); 1159 AddElementByAtomCount("B" , 1); 1184 AddElementByAtomCount("B" , 1); 1160 1185 1161 AddMaterial("G4_FERROUS_OXIDE", 5.7, 0, 248 1186 AddMaterial("G4_FERROUS_OXIDE", 5.7, 0, 248.6, 2); 1162 AddElementByAtomCount("Fe", 1); 1187 AddElementByAtomCount("Fe", 1); 1163 AddElementByAtomCount("O" , 1); 1188 AddElementByAtomCount("O" , 1); 1164 1189 1165 AddMaterial("G4_FERROUS_SULFATE", 1.024, 0, 1190 AddMaterial("G4_FERROUS_SULFATE", 1.024, 0, 76.4, 7); 1166 AddElementByWeightFraction( 1, 0.108259); 1191 AddElementByWeightFraction( 1, 0.108259); 1167 AddElementByWeightFraction( 7, 2.7e-05 ); 1192 AddElementByWeightFraction( 7, 2.7e-05 ); 1168 AddElementByWeightFraction( 8, 0.878636); 1193 AddElementByWeightFraction( 8, 0.878636); 1169 AddElementByWeightFraction(11, 2.2e-05 ); 1194 AddElementByWeightFraction(11, 2.2e-05 ); 1170 AddElementByWeightFraction(16, 0.012968); 1195 AddElementByWeightFraction(16, 0.012968); 1171 AddElementByWeightFraction(17, 3.4e-05 ); 1196 AddElementByWeightFraction(17, 3.4e-05 ); 1172 AddElementByWeightFraction(26, 5.4e-05 ); 1197 AddElementByWeightFraction(26, 5.4e-05 ); 1173 1198 1174 AddMaterial("G4_FREON-12", 1.12, 0, 143., 3 << 1199 AddMaterial("G4_FREON-12", 1.12, 0, 143., 3); 1175 AddElementByWeightFraction( 6, 0.099335); 1200 AddElementByWeightFraction( 6, 0.099335); 1176 AddElementByWeightFraction( 9, 0.314247); 1201 AddElementByWeightFraction( 9, 0.314247); 1177 AddElementByWeightFraction(17, 0.586418); 1202 AddElementByWeightFraction(17, 0.586418); 1178 1203 1179 AddMaterial("G4_FREON-12B2", 1.8, 0, 284.9, << 1204 AddMaterial("G4_FREON-12B2", 1.8, 0, 284.9, 3); 1180 AddElementByWeightFraction( 6, 0.057245); 1205 AddElementByWeightFraction( 6, 0.057245); 1181 AddElementByWeightFraction( 9, 0.181096); 1206 AddElementByWeightFraction( 9, 0.181096); 1182 AddElementByWeightFraction(35, 0.761659); 1207 AddElementByWeightFraction(35, 0.761659); 1183 1208 1184 AddMaterial("G4_FREON-13", 0.95, 0, 126.6, << 1209 AddMaterial("G4_FREON-13", 0.95, 0, 126.6, 3); 1185 AddElementByWeightFraction( 6, 0.114983); 1210 AddElementByWeightFraction( 6, 0.114983); 1186 AddElementByWeightFraction( 9, 0.545622); 1211 AddElementByWeightFraction( 9, 0.545622); 1187 AddElementByWeightFraction(17, 0.339396); 1212 AddElementByWeightFraction(17, 0.339396); 1188 1213 1189 AddMaterial("G4_FREON-13B1", 1.5, 0, 210.5, << 1214 AddMaterial("G4_FREON-13B1", 1.5, 0, 210.5, 3); 1190 AddElementByAtomCount("C" , 1); 1215 AddElementByAtomCount("C" , 1); 1191 AddElementByAtomCount("F" , 3); 1216 AddElementByAtomCount("F" , 3); 1192 AddElementByAtomCount("Br", 1); 1217 AddElementByAtomCount("Br", 1); 1193 1218 1194 AddMaterial("G4_FREON-13I1", 1.8, 0, 293.5, << 1219 AddMaterial("G4_FREON-13I1", 1.8, 0, 293.5, 3); 1195 AddElementByWeightFraction( 6, 0.061309); 1220 AddElementByWeightFraction( 6, 0.061309); 1196 AddElementByWeightFraction( 9, 0.290924); 1221 AddElementByWeightFraction( 9, 0.290924); 1197 AddElementByWeightFraction(53, 0.647767); 1222 AddElementByWeightFraction(53, 0.647767); 1198 1223 1199 AddMaterial("G4_GADOLINIUM_OXYSULFIDE", 7.4 1224 AddMaterial("G4_GADOLINIUM_OXYSULFIDE", 7.44, 0, 493.3, 3); 1200 AddElementByAtomCount("Gd", 2); 1225 AddElementByAtomCount("Gd", 2); 1201 AddElementByAtomCount("O" , 2); 1226 AddElementByAtomCount("O" , 2); 1202 AddElementByAtomCount("S" , 1); 1227 AddElementByAtomCount("S" , 1); 1203 1228 1204 AddMaterial("G4_GALLIUM_ARSENIDE", 5.31, 0, 1229 AddMaterial("G4_GALLIUM_ARSENIDE", 5.31, 0, 384.9, 2); 1205 AddElementByAtomCount("Ga", 1); 1230 AddElementByAtomCount("Ga", 1); 1206 AddElementByAtomCount("As", 1); 1231 AddElementByAtomCount("As", 1); 1207 1232 1208 AddMaterial("G4_GEL_PHOTO_EMULSION", 1.2914 1233 AddMaterial("G4_GEL_PHOTO_EMULSION", 1.2914, 0, 74.8, 5); 1209 AddElementByWeightFraction( 1, 0.08118); 1234 AddElementByWeightFraction( 1, 0.08118); 1210 AddElementByWeightFraction( 6, 0.41606); 1235 AddElementByWeightFraction( 6, 0.41606); 1211 AddElementByWeightFraction( 7, 0.11124); 1236 AddElementByWeightFraction( 7, 0.11124); 1212 AddElementByWeightFraction( 8, 0.38064); 1237 AddElementByWeightFraction( 8, 0.38064); 1213 AddElementByWeightFraction(16, 0.01088); 1238 AddElementByWeightFraction(16, 0.01088); 1214 1239 1215 AddMaterial("G4_Pyrex_Glass", 2.23, 0, 134. 1240 AddMaterial("G4_Pyrex_Glass", 2.23, 0, 134., 6); 1216 AddElementByWeightFraction( 5, 0.040064); 1241 AddElementByWeightFraction( 5, 0.040064); 1217 AddElementByWeightFraction( 8, 0.539562); 1242 AddElementByWeightFraction( 8, 0.539562); 1218 AddElementByWeightFraction(11, 0.028191); 1243 AddElementByWeightFraction(11, 0.028191); 1219 AddElementByWeightFraction(13, 0.011644); 1244 AddElementByWeightFraction(13, 0.011644); 1220 AddElementByWeightFraction(14, 0.37722 ); 1245 AddElementByWeightFraction(14, 0.37722 ); 1221 AddElementByWeightFraction(19, 0.003321); 1246 AddElementByWeightFraction(19, 0.003321); 1222 1247 1223 AddMaterial("G4_GLASS_LEAD", 6.22, 0, 526.4 1248 AddMaterial("G4_GLASS_LEAD", 6.22, 0, 526.4, 5); 1224 AddElementByWeightFraction( 8, 0.156453); 1249 AddElementByWeightFraction( 8, 0.156453); 1225 AddElementByWeightFraction(14, 0.080866); 1250 AddElementByWeightFraction(14, 0.080866); 1226 AddElementByWeightFraction(22, 0.008092); 1251 AddElementByWeightFraction(22, 0.008092); 1227 AddElementByWeightFraction(33, 0.002651); 1252 AddElementByWeightFraction(33, 0.002651); 1228 AddElementByWeightFraction(82, 0.751938); 1253 AddElementByWeightFraction(82, 0.751938); 1229 1254 1230 AddMaterial("G4_GLASS_PLATE", 2.4, 0, 145.4 1255 AddMaterial("G4_GLASS_PLATE", 2.4, 0, 145.4, 4); 1231 AddElementByWeightFraction( 8, 0.4598 ); 1256 AddElementByWeightFraction( 8, 0.4598 ); 1232 AddElementByWeightFraction(11, 0.096441); 1257 AddElementByWeightFraction(11, 0.096441); 1233 AddElementByWeightFraction(14, 0.336553); 1258 AddElementByWeightFraction(14, 0.336553); 1234 AddElementByWeightFraction(20, 0.107205); 1259 AddElementByWeightFraction(20, 0.107205); 1235 1260 >> 1261 // AddMaterial("G4_GLUCOSE", 1.54, 0, 77.2, 3); >> 1262 // AddElementByWeightFraction( 1, 0.071204); >> 1263 // AddElementByWeightFraction( 6, 0.363652); >> 1264 // AddElementByWeightFraction( 8, 0.565144); >> 1265 // These weight fractions correspond to 0.90909 glucose + 0.09091 water >> 1266 // (in mass), not pure glucose. The density used is that of pure glucose! >> 1267 // M.Trocme & S.Seltzer >> 1268 1236 AddMaterial("G4_GLUTAMINE", 1.46, 0, 73.3, 1269 AddMaterial("G4_GLUTAMINE", 1.46, 0, 73.3, 4); 1237 AddElementByAtomCount("C" , 5); 1270 AddElementByAtomCount("C" , 5); 1238 AddElementByAtomCount("H" , 10); 1271 AddElementByAtomCount("H" , 10); 1239 AddElementByAtomCount("N" , 2); 1272 AddElementByAtomCount("N" , 2); 1240 AddElementByAtomCount("O" , 3); 1273 AddElementByAtomCount("O" , 3); 1241 1274 1242 AddMaterial("G4_GLYCEROL", 1.2613, 0, 72.6, 1275 AddMaterial("G4_GLYCEROL", 1.2613, 0, 72.6, 3); 1243 AddElementByAtomCount("C" , 3); 1276 AddElementByAtomCount("C" , 3); 1244 AddElementByAtomCount("H" , 8); 1277 AddElementByAtomCount("H" , 8); 1245 AddElementByAtomCount("O" , 3); 1278 AddElementByAtomCount("O" , 3); 1246 1279 1247 //Tan, Z., et al. NIMB,2006(248) 1280 //Tan, Z., et al. NIMB,2006(248) 1248 AddMaterial("G4_GUANINE", 1.58, 0, 75. ,4); 1281 AddMaterial("G4_GUANINE", 1.58, 0, 75. ,4); 1249 AddElementByAtomCount("C" , 5); 1282 AddElementByAtomCount("C" , 5); 1250 AddElementByAtomCount("H" , 5); 1283 AddElementByAtomCount("H" , 5); 1251 AddElementByAtomCount("N" , 5); 1284 AddElementByAtomCount("N" , 5); 1252 AddElementByAtomCount("O" , 1); 1285 AddElementByAtomCount("O" , 1); 1253 1286 1254 AddMaterial("G4_GYPSUM", 2.32, 0, 129.7, 4) 1287 AddMaterial("G4_GYPSUM", 2.32, 0, 129.7, 4); 1255 AddElementByAtomCount("Ca", 1); 1288 AddElementByAtomCount("Ca", 1); 1256 AddElementByAtomCount("S" , 1); 1289 AddElementByAtomCount("S" , 1); 1257 AddElementByAtomCount("O" , 6); 1290 AddElementByAtomCount("O" , 6); 1258 AddElementByAtomCount("H" , 4); 1291 AddElementByAtomCount("H" , 4); 1259 1292 1260 AddMaterial("G4_N-HEPTANE", 0.68376, 0, 54. 1293 AddMaterial("G4_N-HEPTANE", 0.68376, 0, 54.4, 2); 1261 AddElementByAtomCount("C" , 7); 1294 AddElementByAtomCount("C" , 7); 1262 AddElementByAtomCount("H" , 16); 1295 AddElementByAtomCount("H" , 16); 1263 1296 1264 AddMaterial("G4_N-HEXANE", 0.6603, 0, 54., 1297 AddMaterial("G4_N-HEXANE", 0.6603, 0, 54., 2); 1265 AddElementByAtomCount("C" , 6); 1298 AddElementByAtomCount("C" , 6); 1266 AddElementByAtomCount("H" , 14); 1299 AddElementByAtomCount("H" , 14); 1267 1300 1268 AddMaterial("G4_KAPTON", 1.42, 0, 79.6, 4); 1301 AddMaterial("G4_KAPTON", 1.42, 0, 79.6, 4); 1269 AddElementByAtomCount("C" , 22); 1302 AddElementByAtomCount("C" , 22); 1270 AddElementByAtomCount("H" , 10); 1303 AddElementByAtomCount("H" , 10); 1271 AddElementByAtomCount("N" , 2); 1304 AddElementByAtomCount("N" , 2); 1272 AddElementByAtomCount("O" , 5); 1305 AddElementByAtomCount("O" , 5); 1273 1306 1274 AddMaterial("G4_LANTHANUM_OXYBROMIDE", 6.28 1307 AddMaterial("G4_LANTHANUM_OXYBROMIDE", 6.28, 0, 439.7, 3); 1275 AddElementByAtomCount("La", 1); 1308 AddElementByAtomCount("La", 1); 1276 AddElementByAtomCount("Br", 1); 1309 AddElementByAtomCount("Br", 1); 1277 AddElementByAtomCount("O" , 1); 1310 AddElementByAtomCount("O" , 1); 1278 1311 1279 AddMaterial("G4_LANTHANUM_OXYSULFIDE", 5.86 1312 AddMaterial("G4_LANTHANUM_OXYSULFIDE", 5.86, 0, 421.2, 3); 1280 AddElementByAtomCount("La", 2); 1313 AddElementByAtomCount("La", 2); 1281 AddElementByAtomCount("O" , 2); 1314 AddElementByAtomCount("O" , 2); 1282 AddElementByAtomCount("S" , 1); 1315 AddElementByAtomCount("S" , 1); 1283 1316 1284 AddMaterial("G4_LEAD_OXIDE", 9.53, 0, 766.7 1317 AddMaterial("G4_LEAD_OXIDE", 9.53, 0, 766.7, 2); 1285 AddElementByWeightFraction( 8, 0.071682); 1318 AddElementByWeightFraction( 8, 0.071682); 1286 AddElementByWeightFraction(82, 0.928318); 1319 AddElementByWeightFraction(82, 0.928318); 1287 1320 1288 AddMaterial("G4_LITHIUM_AMIDE", 1.178, 0, 5 1321 AddMaterial("G4_LITHIUM_AMIDE", 1.178, 0, 55.5, 3); 1289 AddElementByAtomCount("Li", 1); 1322 AddElementByAtomCount("Li", 1); 1290 AddElementByAtomCount("N" , 1); 1323 AddElementByAtomCount("N" , 1); 1291 AddElementByAtomCount("H" , 2); 1324 AddElementByAtomCount("H" , 2); 1292 1325 1293 AddMaterial("G4_LITHIUM_CARBONATE", 2.11, 0 1326 AddMaterial("G4_LITHIUM_CARBONATE", 2.11, 0, 87.9, 3); 1294 AddElementByAtomCount("Li", 2); 1327 AddElementByAtomCount("Li", 2); 1295 AddElementByAtomCount("C" , 1); 1328 AddElementByAtomCount("C" , 1); 1296 AddElementByAtomCount("O" , 3); 1329 AddElementByAtomCount("O" , 3); 1297 1330 1298 AddMaterial("G4_LITHIUM_FLUORIDE", 2.635, 0 1331 AddMaterial("G4_LITHIUM_FLUORIDE", 2.635, 0, 94., 2); 1299 AddElementByAtomCount("Li", 1); 1332 AddElementByAtomCount("Li", 1); 1300 AddElementByAtomCount("F" , 1); 1333 AddElementByAtomCount("F" , 1); 1301 1334 1302 AddMaterial("G4_LITHIUM_HYDRIDE", 0.82, 0, 1335 AddMaterial("G4_LITHIUM_HYDRIDE", 0.82, 0, 36.5, 2); 1303 AddElementByAtomCount("Li", 1); 1336 AddElementByAtomCount("Li", 1); 1304 AddElementByAtomCount("H" , 1); 1337 AddElementByAtomCount("H" , 1); 1305 1338 1306 AddMaterial("G4_LITHIUM_IODIDE", 3.494, 0, 1339 AddMaterial("G4_LITHIUM_IODIDE", 3.494, 0, 485.1, 2); 1307 AddElementByAtomCount("Li", 1); 1340 AddElementByAtomCount("Li", 1); 1308 AddElementByAtomCount("I" , 1); 1341 AddElementByAtomCount("I" , 1); 1309 1342 1310 AddMaterial("G4_LITHIUM_OXIDE", 2.013, 0, 7 1343 AddMaterial("G4_LITHIUM_OXIDE", 2.013, 0, 73.6, 2); 1311 AddElementByAtomCount("Li", 2); 1344 AddElementByAtomCount("Li", 2); 1312 AddElementByAtomCount("O" , 1); 1345 AddElementByAtomCount("O" , 1); 1313 1346 1314 AddMaterial("G4_LITHIUM_TETRABORATE", 2.44, 1347 AddMaterial("G4_LITHIUM_TETRABORATE", 2.44, 0, 94.6, 3); 1315 AddElementByAtomCount("Li", 2); 1348 AddElementByAtomCount("Li", 2); 1316 AddElementByAtomCount("B" , 4); 1349 AddElementByAtomCount("B" , 4); 1317 AddElementByAtomCount("O" , 7); 1350 AddElementByAtomCount("O" , 7); 1318 } 1351 } 1319 1352 1320 void G4NistMaterialBuilder::NistCompoundMater 1353 void G4NistMaterialBuilder::NistCompoundMaterials2() 1321 { 1354 { 1322 //Adult Lung congested 1355 //Adult Lung congested 1323 AddMaterial("G4_LUNG_ICRP", 1.04, 0, 75.3, 1356 AddMaterial("G4_LUNG_ICRP", 1.04, 0, 75.3, 9); 1324 AddElementByWeightFraction( 1, 0.105); 1357 AddElementByWeightFraction( 1, 0.105); 1325 AddElementByWeightFraction( 6, 0.083); 1358 AddElementByWeightFraction( 6, 0.083); 1326 AddElementByWeightFraction( 7, 0.023); 1359 AddElementByWeightFraction( 7, 0.023); 1327 AddElementByWeightFraction( 8, 0.779); 1360 AddElementByWeightFraction( 8, 0.779); 1328 AddElementByWeightFraction(11, 0.002); 1361 AddElementByWeightFraction(11, 0.002); 1329 AddElementByWeightFraction(15, 0.001); 1362 AddElementByWeightFraction(15, 0.001); 1330 AddElementByWeightFraction(16, 0.002); 1363 AddElementByWeightFraction(16, 0.002); 1331 AddElementByWeightFraction(17, 0.003); 1364 AddElementByWeightFraction(17, 0.003); 1332 AddElementByWeightFraction(19, 0.002); 1365 AddElementByWeightFraction(19, 0.002); 1333 1366 1334 AddMaterial("G4_M3_WAX", 1.05, 0, 67.9, 5); 1367 AddMaterial("G4_M3_WAX", 1.05, 0, 67.9, 5); 1335 AddElementByWeightFraction( 1, 0.114318); 1368 AddElementByWeightFraction( 1, 0.114318); 1336 AddElementByWeightFraction( 6, 0.655823); 1369 AddElementByWeightFraction( 6, 0.655823); 1337 AddElementByWeightFraction( 8, 0.092183); 1370 AddElementByWeightFraction( 8, 0.092183); 1338 AddElementByWeightFraction(12, 0.134792); 1371 AddElementByWeightFraction(12, 0.134792); 1339 AddElementByWeightFraction(20, 0.002883); 1372 AddElementByWeightFraction(20, 0.002883); 1340 1373 1341 AddMaterial("G4_MAGNESIUM_CARBONATE", 2.958 1374 AddMaterial("G4_MAGNESIUM_CARBONATE", 2.958, 0, 118., 3); 1342 AddElementByAtomCount("Mg", 1); 1375 AddElementByAtomCount("Mg", 1); 1343 AddElementByAtomCount("C" , 1); 1376 AddElementByAtomCount("C" , 1); 1344 AddElementByAtomCount("O" , 3); 1377 AddElementByAtomCount("O" , 3); 1345 1378 1346 AddMaterial("G4_MAGNESIUM_FLUORIDE", 3.0, 0 1379 AddMaterial("G4_MAGNESIUM_FLUORIDE", 3.0, 0, 134.3, 2); 1347 AddElementByAtomCount("Mg", 1); 1380 AddElementByAtomCount("Mg", 1); 1348 AddElementByAtomCount("F" , 2); 1381 AddElementByAtomCount("F" , 2); 1349 1382 1350 AddMaterial("G4_MAGNESIUM_OXIDE", 3.58, 0, 1383 AddMaterial("G4_MAGNESIUM_OXIDE", 3.58, 0, 143.8, 2); 1351 AddElementByAtomCount("Mg", 1); 1384 AddElementByAtomCount("Mg", 1); 1352 AddElementByAtomCount("O" , 1); 1385 AddElementByAtomCount("O" , 1); 1353 1386 1354 AddMaterial("G4_MAGNESIUM_TETRABORATE", 2.5 1387 AddMaterial("G4_MAGNESIUM_TETRABORATE", 2.53, 0, 108.3, 3); 1355 AddElementByAtomCount("Mg", 1); 1388 AddElementByAtomCount("Mg", 1); 1356 AddElementByAtomCount("B" , 4); 1389 AddElementByAtomCount("B" , 4); 1357 AddElementByAtomCount("O" , 7); 1390 AddElementByAtomCount("O" , 7); 1358 1391 1359 AddMaterial("G4_MERCURIC_IODIDE", 6.36, 0, 1392 AddMaterial("G4_MERCURIC_IODIDE", 6.36, 0, 684.5, 2); 1360 AddElementByAtomCount("Hg", 1); 1393 AddElementByAtomCount("Hg", 1); 1361 AddElementByAtomCount("I" , 2); 1394 AddElementByAtomCount("I" , 2); 1362 1395 1363 AddMaterial("G4_METHANE", 0.000667151, 0, 4 1396 AddMaterial("G4_METHANE", 0.000667151, 0, 41.7, 2, kStateGas); 1364 AddElementByAtomCount("C" , 1); 1397 AddElementByAtomCount("C" , 1); 1365 AddElementByAtomCount("H" , 4); 1398 AddElementByAtomCount("H" , 4); 1366 1399 1367 AddMaterial("G4_METHANOL", 0.7914, 0, 67.6, << 1400 AddMaterial("G4_METHANOL", 0.7914, 0, 67.6, 3); 1368 AddElementByAtomCount("C" , 1); 1401 AddElementByAtomCount("C" , 1); 1369 AddElementByAtomCount("H" , 4); 1402 AddElementByAtomCount("H" , 4); 1370 AddElementByAtomCount("O" , 1); 1403 AddElementByAtomCount("O" , 1); 1371 1404 1372 AddMaterial("G4_MIX_D_WAX", 0.99, 0, 60.9, 1405 AddMaterial("G4_MIX_D_WAX", 0.99, 0, 60.9, 5); 1373 AddElementByWeightFraction( 1, 0.13404 ); 1406 AddElementByWeightFraction( 1, 0.13404 ); 1374 AddElementByWeightFraction( 6, 0.77796 ); 1407 AddElementByWeightFraction( 6, 0.77796 ); 1375 AddElementByWeightFraction( 8, 0.03502 ); 1408 AddElementByWeightFraction( 8, 0.03502 ); 1376 AddElementByWeightFraction(12, 0.038594); 1409 AddElementByWeightFraction(12, 0.038594); 1377 AddElementByWeightFraction(22, 0.014386); 1410 AddElementByWeightFraction(22, 0.014386); 1378 1411 1379 AddMaterial("G4_MS20_TISSUE", 1.0, 0, 75.1, 1412 AddMaterial("G4_MS20_TISSUE", 1.0, 0, 75.1, 6); 1380 AddElementByWeightFraction( 1, 0.081192); 1413 AddElementByWeightFraction( 1, 0.081192); 1381 AddElementByWeightFraction( 6, 0.583442); 1414 AddElementByWeightFraction( 6, 0.583442); 1382 AddElementByWeightFraction( 7, 0.017798); 1415 AddElementByWeightFraction( 7, 0.017798); 1383 AddElementByWeightFraction( 8, 0.186381); 1416 AddElementByWeightFraction( 8, 0.186381); 1384 AddElementByWeightFraction(12, 0.130287); 1417 AddElementByWeightFraction(12, 0.130287); 1385 AddElementByWeightFraction(17, 0.0009 ); 1418 AddElementByWeightFraction(17, 0.0009 ); 1386 1419 1387 AddMaterial("G4_MUSCLE_SKELETAL_ICRP", 1.05 1420 AddMaterial("G4_MUSCLE_SKELETAL_ICRP", 1.05, 0, 75.3, 9); 1388 AddElementByWeightFraction( 1, 0.102); 1421 AddElementByWeightFraction( 1, 0.102); 1389 AddElementByWeightFraction( 6, 0.143); 1422 AddElementByWeightFraction( 6, 0.143); 1390 AddElementByWeightFraction( 7, 0.034); 1423 AddElementByWeightFraction( 7, 0.034); 1391 AddElementByWeightFraction( 8, 0.710); 1424 AddElementByWeightFraction( 8, 0.710); 1392 AddElementByWeightFraction(11, 0.001); 1425 AddElementByWeightFraction(11, 0.001); 1393 AddElementByWeightFraction(15, 0.002); 1426 AddElementByWeightFraction(15, 0.002); 1394 AddElementByWeightFraction(16, 0.003); 1427 AddElementByWeightFraction(16, 0.003); 1395 AddElementByWeightFraction(17, 0.001); 1428 AddElementByWeightFraction(17, 0.001); 1396 AddElementByWeightFraction(19, 0.004); 1429 AddElementByWeightFraction(19, 0.004); 1397 1430 1398 // from old ICRU report 1431 // from old ICRU report 1399 AddMaterial("G4_MUSCLE_STRIATED_ICRU", 1.04 1432 AddMaterial("G4_MUSCLE_STRIATED_ICRU", 1.04, 0, 74.7, 8); 1400 AddElementByWeightFraction( 1, 0.102); 1433 AddElementByWeightFraction( 1, 0.102); 1401 AddElementByWeightFraction( 6, 0.123); 1434 AddElementByWeightFraction( 6, 0.123); 1402 AddElementByWeightFraction( 7, 0.035); 1435 AddElementByWeightFraction( 7, 0.035); 1403 AddElementByWeightFraction( 8, 0.729); 1436 AddElementByWeightFraction( 8, 0.729); 1404 AddElementByWeightFraction(11, 0.001); 1437 AddElementByWeightFraction(11, 0.001); 1405 AddElementByWeightFraction(15, 0.002); 1438 AddElementByWeightFraction(15, 0.002); 1406 AddElementByWeightFraction(16, 0.004); 1439 AddElementByWeightFraction(16, 0.004); 1407 AddElementByWeightFraction(19, 0.003); 1440 AddElementByWeightFraction(19, 0.003); 1408 1441 1409 AddMaterial("G4_MUSCLE_WITH_SUCROSE", 1.11, 1442 AddMaterial("G4_MUSCLE_WITH_SUCROSE", 1.11, 0, 74.3, 4); 1410 AddElementByWeightFraction( 1, 0.098234); 1443 AddElementByWeightFraction( 1, 0.098234); 1411 AddElementByWeightFraction( 6, 0.156214); 1444 AddElementByWeightFraction( 6, 0.156214); 1412 AddElementByWeightFraction( 7, 0.035451); 1445 AddElementByWeightFraction( 7, 0.035451); 1413 AddElementByWeightFraction( 8, 0.7101 ); 1446 AddElementByWeightFraction( 8, 0.7101 ); 1414 << 1447 1415 AddMaterial("G4_MUSCLE_WITHOUT_SUCROSE", 1. 1448 AddMaterial("G4_MUSCLE_WITHOUT_SUCROSE", 1.07, 0, 74.2, 4); 1416 AddElementByWeightFraction( 1, 0.101969); 1449 AddElementByWeightFraction( 1, 0.101969); 1417 AddElementByWeightFraction( 6, 0.120058); 1450 AddElementByWeightFraction( 6, 0.120058); 1418 AddElementByWeightFraction( 7, 0.035451); 1451 AddElementByWeightFraction( 7, 0.035451); 1419 AddElementByWeightFraction( 8, 0.742522); 1452 AddElementByWeightFraction( 8, 0.742522); 1420 1453 1421 AddMaterial("G4_NAPHTHALENE", 1.145, 0, 68. 1454 AddMaterial("G4_NAPHTHALENE", 1.145, 0, 68.4, 2); 1422 AddElementByAtomCount("C" , 10); 1455 AddElementByAtomCount("C" , 10); 1423 AddElementByAtomCount("H" , 8); 1456 AddElementByAtomCount("H" , 8); 1424 1457 1425 AddMaterial("G4_NITROBENZENE", 1.19867, 0, 1458 AddMaterial("G4_NITROBENZENE", 1.19867, 0, 75.8, 4); 1426 AddElementByAtomCount("C" , 6); 1459 AddElementByAtomCount("C" , 6); 1427 AddElementByAtomCount("H" , 5); 1460 AddElementByAtomCount("H" , 5); 1428 AddElementByAtomCount("N" , 1); 1461 AddElementByAtomCount("N" , 1); 1429 AddElementByAtomCount("O" , 2); 1462 AddElementByAtomCount("O" , 2); 1430 1463 1431 AddMaterial("G4_NITROUS_OXIDE", 0.00183094, 1464 AddMaterial("G4_NITROUS_OXIDE", 0.00183094, 0, 84.9, 2, kStateGas); 1432 AddElementByAtomCount("N" , 2); 1465 AddElementByAtomCount("N" , 2); 1433 AddElementByAtomCount("O" , 1); 1466 AddElementByAtomCount("O" , 1); 1434 1467 1435 AddMaterial("G4_NYLON-8062", 1.08, 0, 64.3, 1468 AddMaterial("G4_NYLON-8062", 1.08, 0, 64.3, 4); 1436 AddElementByWeightFraction( 1, 0.103509); 1469 AddElementByWeightFraction( 1, 0.103509); 1437 AddElementByWeightFraction( 6, 0.648415); 1470 AddElementByWeightFraction( 6, 0.648415); 1438 AddElementByWeightFraction( 7, 0.099536); 1471 AddElementByWeightFraction( 7, 0.099536); 1439 AddElementByWeightFraction( 8, 0.148539); 1472 AddElementByWeightFraction( 8, 0.148539); 1440 1473 1441 AddMaterial("G4_NYLON-6-6", 1.14, 0, 63.9, 1474 AddMaterial("G4_NYLON-6-6", 1.14, 0, 63.9, 4); 1442 AddElementByAtomCount("C" , 6); 1475 AddElementByAtomCount("C" , 6); 1443 AddElementByAtomCount("H" , 11); 1476 AddElementByAtomCount("H" , 11); 1444 AddElementByAtomCount("N" , 1); 1477 AddElementByAtomCount("N" , 1); 1445 AddElementByAtomCount("O" , 1); 1478 AddElementByAtomCount("O" , 1); 1446 1479 1447 AddMaterial("G4_NYLON-6-10", 1.14, 0, 63.2, 1480 AddMaterial("G4_NYLON-6-10", 1.14, 0, 63.2, 4); 1448 AddElementByWeightFraction( 1, 0.107062); 1481 AddElementByWeightFraction( 1, 0.107062); 1449 AddElementByWeightFraction( 6, 0.680449); 1482 AddElementByWeightFraction( 6, 0.680449); 1450 AddElementByWeightFraction( 7, 0.099189); 1483 AddElementByWeightFraction( 7, 0.099189); 1451 AddElementByWeightFraction( 8, 0.1133 ); 1484 AddElementByWeightFraction( 8, 0.1133 ); 1452 1485 1453 AddMaterial("G4_NYLON-11_RILSAN", 1.425, 0, 1486 AddMaterial("G4_NYLON-11_RILSAN", 1.425, 0, 61.6, 4); 1454 AddElementByWeightFraction( 1, 0.115476); 1487 AddElementByWeightFraction( 1, 0.115476); 1455 AddElementByWeightFraction( 6, 0.720819); 1488 AddElementByWeightFraction( 6, 0.720819); 1456 AddElementByWeightFraction( 7, 0.076417); 1489 AddElementByWeightFraction( 7, 0.076417); 1457 AddElementByWeightFraction( 8, 0.087289); 1490 AddElementByWeightFraction( 8, 0.087289); 1458 1491 1459 AddMaterial("G4_OCTANE", 0.7026, 0, 54.7, 2 << 1492 AddMaterial("G4_OCTANE", 0.7026, 0, 54.7, 2); 1460 AddElementByAtomCount("C" , 8); 1493 AddElementByAtomCount("C" , 8); 1461 AddElementByAtomCount("H" , 18); 1494 AddElementByAtomCount("H" , 18); 1462 1495 1463 AddMaterial("G4_PARAFFIN", 0.93, 0, 55.9, 2 1496 AddMaterial("G4_PARAFFIN", 0.93, 0, 55.9, 2); 1464 AddElementByAtomCount("C" , 25); 1497 AddElementByAtomCount("C" , 25); 1465 AddElementByAtomCount("H" , 52); 1498 AddElementByAtomCount("H" , 52); 1466 1499 1467 AddMaterial("G4_N-PENTANE", 0.6262, 0, 53.6 << 1500 AddMaterial("G4_N-PENTANE", 0.6262, 0, 53.6, 2); 1468 AddElementByAtomCount("C" , 5); 1501 AddElementByAtomCount("C" , 5); 1469 AddElementByAtomCount("H" , 12); 1502 AddElementByAtomCount("H" , 12); 1470 1503 1471 AddMaterial("G4_PHOTO_EMULSION", 3.815, 0, 1504 AddMaterial("G4_PHOTO_EMULSION", 3.815, 0, 331., 8); 1472 AddElementByWeightFraction( 1, 0.0141 ); 1505 AddElementByWeightFraction( 1, 0.0141 ); 1473 AddElementByWeightFraction( 6, 0.072261); 1506 AddElementByWeightFraction( 6, 0.072261); 1474 AddElementByWeightFraction( 7, 0.01932 ); 1507 AddElementByWeightFraction( 7, 0.01932 ); 1475 AddElementByWeightFraction( 8, 0.066101); 1508 AddElementByWeightFraction( 8, 0.066101); 1476 AddElementByWeightFraction(16, 0.00189 ); 1509 AddElementByWeightFraction(16, 0.00189 ); 1477 AddElementByWeightFraction(35, 0.349103); 1510 AddElementByWeightFraction(35, 0.349103); 1478 AddElementByWeightFraction(47, 0.474105); 1511 AddElementByWeightFraction(47, 0.474105); 1479 AddElementByWeightFraction(53, 0.00312 ); 1512 AddElementByWeightFraction(53, 0.00312 ); 1480 1513 1481 AddMaterial("G4_PLASTIC_SC_VINYLTOLUENE", 1 1514 AddMaterial("G4_PLASTIC_SC_VINYLTOLUENE", 1.032, 0, 64.7, 2); 1482 // AddElementByWeightFraction( 1, 0.085); 1515 // AddElementByWeightFraction( 1, 0.085); 1483 // AddElementByWeightFraction( 6, 0.915); 1516 // AddElementByWeightFraction( 6, 0.915); 1484 // Watch out! These weight fractions do not << 1517 // Watch out! These weight fractions do not correspond to pure PVT 1485 // (PolyVinylToluene, C_9H_10) but to an un 1518 // (PolyVinylToluene, C_9H_10) but to an unknown mixture... 1486 // M.Trocme & S.Seltzer 1519 // M.Trocme & S.Seltzer 1487 AddElementByAtomCount("C" , 9); 1520 AddElementByAtomCount("C" , 9); 1488 AddElementByAtomCount("H" , 10); 1521 AddElementByAtomCount("H" , 10); 1489 1522 1490 AddMaterial("G4_PLUTONIUM_DIOXIDE", 11.46, 1523 AddMaterial("G4_PLUTONIUM_DIOXIDE", 11.46, 0, 746.5, 2); 1491 AddElementByAtomCount("Pu", 1); 1524 AddElementByAtomCount("Pu", 1); 1492 AddElementByAtomCount("O" , 2); 1525 AddElementByAtomCount("O" , 2); 1493 1526 1494 AddMaterial("G4_POLYACRYLONITRILE", 1.17, 0 1527 AddMaterial("G4_POLYACRYLONITRILE", 1.17, 0, 69.6, 3); 1495 AddElementByAtomCount("C" , 3); 1528 AddElementByAtomCount("C" , 3); 1496 AddElementByAtomCount("H" , 3); 1529 AddElementByAtomCount("H" , 3); 1497 AddElementByAtomCount("N" , 1); 1530 AddElementByAtomCount("N" , 1); 1498 1531 1499 AddMaterial("G4_POLYCARBONATE", 1.2, 0, 73. 1532 AddMaterial("G4_POLYCARBONATE", 1.2, 0, 73.1, 3); 1500 AddElementByAtomCount("C" , 16); 1533 AddElementByAtomCount("C" , 16); 1501 AddElementByAtomCount("H" , 14); 1534 AddElementByAtomCount("H" , 14); 1502 AddElementByAtomCount("O" , 3); 1535 AddElementByAtomCount("O" , 3); 1503 1536 1504 AddMaterial("G4_POLYCHLOROSTYRENE", 1.3, 0, 1537 AddMaterial("G4_POLYCHLOROSTYRENE", 1.3, 0, 81.7, 3); 1505 // AddElementByWeightFraction( 1, 0.061869 1538 // AddElementByWeightFraction( 1, 0.061869); 1506 // AddElementByWeightFraction( 6, 0.696325 1539 // AddElementByWeightFraction( 6, 0.696325); 1507 // AddElementByWeightFraction(17, 0.241806 1540 // AddElementByWeightFraction(17, 0.241806); 1508 // These weight fractions correspond to C_ << 1541 // These weight fractions correspond to C_17H_18Cl_2 which is not 1509 // POLYCHLOROSTYRENE. POLYCHLOROSTYRENE is 1542 // POLYCHLOROSTYRENE. POLYCHLOROSTYRENE is C_8H_7Cl! 1510 // M.Trocme & S.Seltzer 1543 // M.Trocme & S.Seltzer 1511 AddElementByAtomCount("C" , 8); 1544 AddElementByAtomCount("C" , 8); 1512 AddElementByAtomCount("H" , 7); 1545 AddElementByAtomCount("H" , 7); 1513 AddElementByAtomCount("Cl", 1); 1546 AddElementByAtomCount("Cl", 1); 1514 1547 1515 AddMaterial("G4_POLYETHYLENE", 0.94, 0, 57. 1548 AddMaterial("G4_POLYETHYLENE", 0.94, 0, 57.4, 2); 1516 AddElementByAtomCount("C" , 1); 1549 AddElementByAtomCount("C" , 1); 1517 AddElementByAtomCount("H" , 2); 1550 AddElementByAtomCount("H" , 2); 1518 chFormulas[nMaterials-1] = "(C_2H_4)_N-Poly 1551 chFormulas[nMaterials-1] = "(C_2H_4)_N-Polyethylene"; 1519 1552 1520 AddMaterial("G4_MYLAR", 1.4, 0, 78.7, 3); 1553 AddMaterial("G4_MYLAR", 1.4, 0, 78.7, 3); 1521 AddElementByAtomCount("C" , 10); 1554 AddElementByAtomCount("C" , 10); 1522 AddElementByAtomCount("H" , 8); 1555 AddElementByAtomCount("H" , 8); 1523 AddElementByAtomCount("O" , 4); 1556 AddElementByAtomCount("O" , 4); 1524 1557 1525 AddMaterial("G4_PLEXIGLASS", 1.19, 0, 74., 1558 AddMaterial("G4_PLEXIGLASS", 1.19, 0, 74., 3); 1526 AddElementByAtomCount("C" , 5); 1559 AddElementByAtomCount("C" , 5); 1527 AddElementByAtomCount("H" , 8); 1560 AddElementByAtomCount("H" , 8); 1528 AddElementByAtomCount("O" , 2); 1561 AddElementByAtomCount("O" , 2); 1529 1562 1530 AddMaterial("G4_POLYOXYMETHYLENE", 1.425 ,0 1563 AddMaterial("G4_POLYOXYMETHYLENE", 1.425 ,0, 77.4, 3); 1531 AddElementByAtomCount("C" , 1); 1564 AddElementByAtomCount("C" , 1); 1532 AddElementByAtomCount("H" , 2); 1565 AddElementByAtomCount("H" , 2); 1533 AddElementByAtomCount("O" , 1); 1566 AddElementByAtomCount("O" , 1); 1534 1567 1535 AddMaterial("G4_POLYPROPYLENE", 0.9, 0, 56. 1568 AddMaterial("G4_POLYPROPYLENE", 0.9, 0, 56.5, 2); 1536 AddElementByAtomCount("C" , 2); 1569 AddElementByAtomCount("C" , 2); 1537 AddElementByAtomCount("H" , 4); 1570 AddElementByAtomCount("H" , 4); 1538 chFormulas[nMaterials-1] = "(C_2H_4)_N-Poly 1571 chFormulas[nMaterials-1] = "(C_2H_4)_N-Polypropylene"; 1539 1572 1540 AddMaterial("G4_POLYSTYRENE", 1.06, 0, 68.7 1573 AddMaterial("G4_POLYSTYRENE", 1.06, 0, 68.7, 2); 1541 AddElementByAtomCount("C" , 8); 1574 AddElementByAtomCount("C" , 8); 1542 AddElementByAtomCount("H" , 8); 1575 AddElementByAtomCount("H" , 8); 1543 1576 1544 AddMaterial("G4_TEFLON", 2.2, 0, 99.1, 2); 1577 AddMaterial("G4_TEFLON", 2.2, 0, 99.1, 2); 1545 AddElementByAtomCount("C" , 2); 1578 AddElementByAtomCount("C" , 2); 1546 AddElementByAtomCount("F" , 4); 1579 AddElementByAtomCount("F" , 4); 1547 1580 1548 AddMaterial("G4_POLYTRIFLUOROCHLOROETHYLENE 1581 AddMaterial("G4_POLYTRIFLUOROCHLOROETHYLENE", 2.1, 0, 120.7, 3); 1549 // correct chemical name Polychlorotrifluor 1582 // correct chemical name Polychlorotrifluoroethylene [CF2CClF]n, IvantchenkoA. 1550 AddElementByAtomCount("C" , 2); 1583 AddElementByAtomCount("C" , 2); 1551 AddElementByAtomCount("F" , 3); 1584 AddElementByAtomCount("F" , 3); 1552 AddElementByAtomCount("Cl", 1); 1585 AddElementByAtomCount("Cl", 1); 1553 1586 1554 AddMaterial("G4_POLYVINYL_ACETATE", 1.19, 0 1587 AddMaterial("G4_POLYVINYL_ACETATE", 1.19, 0, 73.7, 3); 1555 AddElementByAtomCount("C" , 4); 1588 AddElementByAtomCount("C" , 4); 1556 AddElementByAtomCount("H" , 6); 1589 AddElementByAtomCount("H" , 6); 1557 AddElementByAtomCount("O" , 2); 1590 AddElementByAtomCount("O" , 2); 1558 1591 1559 AddMaterial("G4_POLYVINYL_ALCOHOL", 1.3, 0, << 1592 AddMaterial("G4_POLYVINYL_ALCOHOL", 1.3, 0, 69.7, 3); 1560 AddElementByAtomCount("C" , 2); 1593 AddElementByAtomCount("C" , 2); 1561 AddElementByAtomCount("H" , 4); 1594 AddElementByAtomCount("H" , 4); 1562 AddElementByAtomCount("O" , 1); 1595 AddElementByAtomCount("O" , 1); 1563 1596 1564 AddMaterial("G4_POLYVINYL_BUTYRAL", 1.12, 0 1597 AddMaterial("G4_POLYVINYL_BUTYRAL", 1.12, 0, 67.2, 3); 1565 // AddElementByWeightFraction( 1, 0.092802 1598 // AddElementByWeightFraction( 1, 0.092802); 1566 // AddElementByWeightFraction( 6, 0.680561 1599 // AddElementByWeightFraction( 6, 0.680561); 1567 // AddElementByWeightFraction( 8, 0.226637 1600 // AddElementByWeightFraction( 8, 0.226637); 1568 // These weight fractions correspond to C_ << 1601 // These weight fractions correspond to C_8H_13O_2 which is not 1569 // POLYVINYL_BUTYRAL. POLYVINYL_BUTYRAL is 1602 // POLYVINYL_BUTYRAL. POLYVINYL_BUTYRAL is C_8H_14O_2! 1570 // M.Trocme & S.Seltzer 1603 // M.Trocme & S.Seltzer 1571 AddElementByAtomCount("C" , 8); 1604 AddElementByAtomCount("C" , 8); 1572 AddElementByAtomCount("H" , 14); 1605 AddElementByAtomCount("H" , 14); 1573 AddElementByAtomCount("O" , 2); 1606 AddElementByAtomCount("O" , 2); 1574 1607 1575 AddMaterial("G4_POLYVINYL_CHLORIDE", 1.3, 0 1608 AddMaterial("G4_POLYVINYL_CHLORIDE", 1.3, 0, 108.2, 3); 1576 AddElementByAtomCount("C" , 2); 1609 AddElementByAtomCount("C" , 2); 1577 AddElementByAtomCount("H" , 3); 1610 AddElementByAtomCount("H" , 3); 1578 AddElementByAtomCount("Cl", 1); 1611 AddElementByAtomCount("Cl", 1); 1579 1612 1580 AddMaterial("G4_POLYVINYLIDENE_CHLORIDE", 1 1613 AddMaterial("G4_POLYVINYLIDENE_CHLORIDE", 1.7, 0, 134.3, 3); 1581 AddElementByAtomCount("C" , 2); 1614 AddElementByAtomCount("C" , 2); 1582 AddElementByAtomCount("H" , 2); 1615 AddElementByAtomCount("H" , 2); 1583 AddElementByAtomCount("Cl", 2); 1616 AddElementByAtomCount("Cl", 2); 1584 1617 1585 AddMaterial("G4_POLYVINYLIDENE_FLUORIDE", 1 1618 AddMaterial("G4_POLYVINYLIDENE_FLUORIDE", 1.76, 0, 88.8, 3); 1586 AddElementByAtomCount("C" , 2); 1619 AddElementByAtomCount("C" , 2); 1587 AddElementByAtomCount("H" , 2); 1620 AddElementByAtomCount("H" , 2); 1588 AddElementByAtomCount("F" , 2); 1621 AddElementByAtomCount("F" , 2); 1589 1622 1590 AddMaterial("G4_POLYVINYL_PYRROLIDONE", 1.2 1623 AddMaterial("G4_POLYVINYL_PYRROLIDONE", 1.25, 0, 67.7, 4); 1591 AddElementByAtomCount("C" , 6); 1624 AddElementByAtomCount("C" , 6); 1592 AddElementByAtomCount("H" , 9); 1625 AddElementByAtomCount("H" , 9); 1593 AddElementByAtomCount("N" , 1); 1626 AddElementByAtomCount("N" , 1); 1594 AddElementByAtomCount("O" , 1); 1627 AddElementByAtomCount("O" , 1); 1595 1628 1596 AddMaterial("G4_POTASSIUM_IODIDE", 3.13, 0, 1629 AddMaterial("G4_POTASSIUM_IODIDE", 3.13, 0, 431.9, 2); 1597 AddElementByAtomCount("K" , 1); 1630 AddElementByAtomCount("K" , 1); 1598 AddElementByAtomCount("I" , 1); 1631 AddElementByAtomCount("I" , 1); 1599 1632 1600 AddMaterial("G4_POTASSIUM_OXIDE", 2.32, 0, 1633 AddMaterial("G4_POTASSIUM_OXIDE", 2.32, 0, 189.9, 2); 1601 AddElementByAtomCount("K" , 2); 1634 AddElementByAtomCount("K" , 2); 1602 AddElementByAtomCount("O" , 1); 1635 AddElementByAtomCount("O" , 1); 1603 1636 1604 AddMaterial("G4_PROPANE", 0.00187939, 0, 47 1637 AddMaterial("G4_PROPANE", 0.00187939, 0, 47.1, 2, kStateGas); 1605 AddElementByAtomCount("C" , 3); 1638 AddElementByAtomCount("C" , 3); 1606 AddElementByAtomCount("H" , 8); 1639 AddElementByAtomCount("H" , 8); 1607 1640 1608 AddMaterial("G4_lPROPANE", 0.43, 0, 52., 2, << 1641 AddMaterial("G4_lPROPANE", 0.43, 0, 52., 2); 1609 AddElementByAtomCount("C" , 3); 1642 AddElementByAtomCount("C" , 3); 1610 AddElementByAtomCount("H" , 8); 1643 AddElementByAtomCount("H" , 8); 1611 1644 1612 AddMaterial("G4_N-PROPYL_ALCOHOL", 0.8035, << 1645 AddMaterial("G4_N-PROPYL_ALCOHOL", 0.8035, 0, 61.1, 3); 1613 AddElementByAtomCount("C" , 3); 1646 AddElementByAtomCount("C" , 3); 1614 AddElementByAtomCount("H" , 8); 1647 AddElementByAtomCount("H" , 8); 1615 AddElementByAtomCount("O" , 1); 1648 AddElementByAtomCount("O" , 1); 1616 1649 1617 AddMaterial("G4_PYRIDINE", 0.9819, 0, 66.2, 1650 AddMaterial("G4_PYRIDINE", 0.9819, 0, 66.2, 3); 1618 AddElementByAtomCount("C" , 5); 1651 AddElementByAtomCount("C" , 5); 1619 AddElementByAtomCount("H" , 5); 1652 AddElementByAtomCount("H" , 5); 1620 AddElementByAtomCount("N" , 1); 1653 AddElementByAtomCount("N" , 1); 1621 1654 1622 AddMaterial("G4_RUBBER_BUTYL", 0.92, 0, 56. 1655 AddMaterial("G4_RUBBER_BUTYL", 0.92, 0, 56.5, 2); 1623 AddElementByWeightFraction( 1, 0.143711); 1656 AddElementByWeightFraction( 1, 0.143711); 1624 AddElementByWeightFraction( 6, 0.856289); 1657 AddElementByWeightFraction( 6, 0.856289); 1625 1658 1626 AddMaterial("G4_RUBBER_NATURAL", 0.92, 0, 5 1659 AddMaterial("G4_RUBBER_NATURAL", 0.92, 0, 59.8, 2); 1627 AddElementByWeightFraction( 1, 0.118371); 1660 AddElementByWeightFraction( 1, 0.118371); 1628 AddElementByWeightFraction( 6, 0.881629); 1661 AddElementByWeightFraction( 6, 0.881629); 1629 1662 1630 AddMaterial("G4_RUBBER_NEOPRENE", 1.23, 0, 1663 AddMaterial("G4_RUBBER_NEOPRENE", 1.23, 0, 93., 3); 1631 AddElementByWeightFraction( 1, 0.05692 ); 1664 AddElementByWeightFraction( 1, 0.05692 ); 1632 AddElementByWeightFraction( 6, 0.542646); 1665 AddElementByWeightFraction( 6, 0.542646); 1633 AddElementByWeightFraction(17, 0.400434); 1666 AddElementByWeightFraction(17, 0.400434); 1634 1667 1635 AddMaterial("G4_SILICON_DIOXIDE", 2.32, 0, 1668 AddMaterial("G4_SILICON_DIOXIDE", 2.32, 0, 139.2, 2); 1636 AddElementByAtomCount("Si", 1); 1669 AddElementByAtomCount("Si", 1); 1637 AddElementByAtomCount("O" , 2); 1670 AddElementByAtomCount("O" , 2); 1638 chFormulas[nMaterials-1] = "SiO_2"; 1671 chFormulas[nMaterials-1] = "SiO_2"; 1639 1672 1640 AddMaterial("G4_SILVER_BROMIDE", 6.473, 0, 1673 AddMaterial("G4_SILVER_BROMIDE", 6.473, 0, 486.6, 2); 1641 AddElementByAtomCount("Ag", 1); 1674 AddElementByAtomCount("Ag", 1); 1642 AddElementByAtomCount("Br", 1); 1675 AddElementByAtomCount("Br", 1); 1643 1676 1644 AddMaterial("G4_SILVER_CHLORIDE", 5.56, 0, 1677 AddMaterial("G4_SILVER_CHLORIDE", 5.56, 0, 398.4, 2); 1645 AddElementByAtomCount("Ag", 1); 1678 AddElementByAtomCount("Ag", 1); 1646 AddElementByAtomCount("Cl", 1); 1679 AddElementByAtomCount("Cl", 1); 1647 1680 1648 AddMaterial("G4_SILVER_HALIDES", 6.47, 0, 4 1681 AddMaterial("G4_SILVER_HALIDES", 6.47, 0, 487.1, 3); 1649 AddElementByWeightFraction(35, 0.422895); 1682 AddElementByWeightFraction(35, 0.422895); 1650 AddElementByWeightFraction(47, 0.573748); 1683 AddElementByWeightFraction(47, 0.573748); 1651 AddElementByWeightFraction(53, 0.003357); 1684 AddElementByWeightFraction(53, 0.003357); 1652 1685 1653 AddMaterial("G4_SILVER_IODIDE", 6.01, 0, 54 1686 AddMaterial("G4_SILVER_IODIDE", 6.01, 0, 543.5, 2); 1654 AddElementByAtomCount("Ag", 1); 1687 AddElementByAtomCount("Ag", 1); 1655 AddElementByAtomCount("I" , 1); 1688 AddElementByAtomCount("I" , 1); 1656 1689 1657 AddMaterial("G4_SKIN_ICRP", 1.09, 0, 72.7, 1690 AddMaterial("G4_SKIN_ICRP", 1.09, 0, 72.7, 9); 1658 AddElementByWeightFraction( 1, 0.100); 1691 AddElementByWeightFraction( 1, 0.100); 1659 AddElementByWeightFraction( 6, 0.204); 1692 AddElementByWeightFraction( 6, 0.204); 1660 AddElementByWeightFraction( 7, 0.042); 1693 AddElementByWeightFraction( 7, 0.042); 1661 AddElementByWeightFraction( 8, 0.645); 1694 AddElementByWeightFraction( 8, 0.645); 1662 AddElementByWeightFraction(11, 0.002); 1695 AddElementByWeightFraction(11, 0.002); 1663 AddElementByWeightFraction(15, 0.001); 1696 AddElementByWeightFraction(15, 0.001); 1664 AddElementByWeightFraction(16, 0.002); 1697 AddElementByWeightFraction(16, 0.002); 1665 AddElementByWeightFraction(17, 0.003); 1698 AddElementByWeightFraction(17, 0.003); 1666 AddElementByWeightFraction(19, 0.001); 1699 AddElementByWeightFraction(19, 0.001); 1667 1700 1668 AddMaterial("G4_SODIUM_CARBONATE", 2.532, 0 1701 AddMaterial("G4_SODIUM_CARBONATE", 2.532, 0, 125., 3); 1669 AddElementByAtomCount("Na", 2); 1702 AddElementByAtomCount("Na", 2); 1670 AddElementByAtomCount("C" , 1); 1703 AddElementByAtomCount("C" , 1); 1671 AddElementByAtomCount("O" , 3); 1704 AddElementByAtomCount("O" , 3); 1672 1705 1673 AddMaterial("G4_SODIUM_IODIDE", 3.667, 0, 4 1706 AddMaterial("G4_SODIUM_IODIDE", 3.667, 0, 452., 2); 1674 AddElementByAtomCount("Na", 1); 1707 AddElementByAtomCount("Na", 1); 1675 AddElementByAtomCount("I" , 1); 1708 AddElementByAtomCount("I" , 1); 1676 1709 1677 AddMaterial("G4_SODIUM_MONOXIDE", 2.27, 0, 1710 AddMaterial("G4_SODIUM_MONOXIDE", 2.27, 0, 148.8, 2); 1678 AddElementByAtomCount("Na", 2); 1711 AddElementByAtomCount("Na", 2); 1679 AddElementByAtomCount("O" , 1); 1712 AddElementByAtomCount("O" , 1); 1680 1713 1681 AddMaterial("G4_SODIUM_NITRATE", 2.261, 0, 1714 AddMaterial("G4_SODIUM_NITRATE", 2.261, 0, 114.6, 3); 1682 AddElementByAtomCount("Na", 1); 1715 AddElementByAtomCount("Na", 1); 1683 AddElementByAtomCount("N" , 1); 1716 AddElementByAtomCount("N" , 1); 1684 AddElementByAtomCount("O" , 3); 1717 AddElementByAtomCount("O" , 3); 1685 1718 1686 AddMaterial("G4_STILBENE", 0.9707, 0, 67.7, 1719 AddMaterial("G4_STILBENE", 0.9707, 0, 67.7, 2); 1687 AddElementByAtomCount("C" , 14); 1720 AddElementByAtomCount("C" , 14); 1688 AddElementByAtomCount("H" , 12); 1721 AddElementByAtomCount("H" , 12); 1689 1722 1690 AddMaterial("G4_SUCROSE", 1.5805, 0, 77.5, 1723 AddMaterial("G4_SUCROSE", 1.5805, 0, 77.5, 3); 1691 AddElementByAtomCount("C" , 12); 1724 AddElementByAtomCount("C" , 12); 1692 AddElementByAtomCount("H" , 22); 1725 AddElementByAtomCount("H" , 22); 1693 AddElementByAtomCount("O" , 11); 1726 AddElementByAtomCount("O" , 11); 1694 1727 1695 AddMaterial("G4_TERPHENYL", 1.24 /*1.234*/, 1728 AddMaterial("G4_TERPHENYL", 1.24 /*1.234*/, 0, 71.7, 2); 1696 // AddElementByWeightFraction( 1, 0.044543 1729 // AddElementByWeightFraction( 1, 0.044543); 1697 // AddElementByWeightFraction( 6, 0.955457 1730 // AddElementByWeightFraction( 6, 0.955457); 1698 // These weight fractions correspond to C_ << 1731 // These weight fractions correspond to C_18H_10 which is not TERPHENYL. 1699 // TERPHENYL is C_18H_14! The current dens 1732 // TERPHENYL is C_18H_14! The current density is 1.24 g/cm3 1700 // M.Trocme & S.Seltzer 1733 // M.Trocme & S.Seltzer 1701 AddElementByAtomCount("C" , 18); 1734 AddElementByAtomCount("C" , 18); 1702 AddElementByAtomCount("H" , 14); 1735 AddElementByAtomCount("H" , 14); 1703 1736 1704 AddMaterial("G4_TESTIS_ICRP", 1.04, 0, 75., 1737 AddMaterial("G4_TESTIS_ICRP", 1.04, 0, 75., 9); 1705 AddElementByWeightFraction( 1, 0.106); 1738 AddElementByWeightFraction( 1, 0.106); 1706 AddElementByWeightFraction( 6, 0.099); 1739 AddElementByWeightFraction( 6, 0.099); 1707 AddElementByWeightFraction( 7, 0.020); 1740 AddElementByWeightFraction( 7, 0.020); 1708 AddElementByWeightFraction( 8, 0.766); 1741 AddElementByWeightFraction( 8, 0.766); 1709 AddElementByWeightFraction(11, 0.002); 1742 AddElementByWeightFraction(11, 0.002); 1710 AddElementByWeightFraction(15, 0.001); 1743 AddElementByWeightFraction(15, 0.001); 1711 AddElementByWeightFraction(16, 0.002); 1744 AddElementByWeightFraction(16, 0.002); 1712 AddElementByWeightFraction(17, 0.002); 1745 AddElementByWeightFraction(17, 0.002); 1713 AddElementByWeightFraction(19, 0.002); 1746 AddElementByWeightFraction(19, 0.002); 1714 1747 1715 AddMaterial("G4_TETRACHLOROETHYLENE", 1.625 1748 AddMaterial("G4_TETRACHLOROETHYLENE", 1.625, 0, 159.2, 2); 1716 AddElementByAtomCount("C" , 2); 1749 AddElementByAtomCount("C" , 2); 1717 AddElementByAtomCount("Cl", 4); 1750 AddElementByAtomCount("Cl", 4); 1718 1751 1719 AddMaterial("G4_THALLIUM_CHLORIDE", 7.004, 1752 AddMaterial("G4_THALLIUM_CHLORIDE", 7.004, 0, 690.3, 2); 1720 AddElementByAtomCount("Tl", 1); 1753 AddElementByAtomCount("Tl", 1); 1721 AddElementByAtomCount("Cl", 1); 1754 AddElementByAtomCount("Cl", 1); 1722 1755 1723 // TISSUE_SOFT_MALE ICRU-44/46 (1989) 1756 // TISSUE_SOFT_MALE ICRU-44/46 (1989) 1724 AddMaterial("G4_TISSUE_SOFT_ICRP", 1.03, 0, 1757 AddMaterial("G4_TISSUE_SOFT_ICRP", 1.03, 0, 72.3, 9); 1725 AddElementByWeightFraction( 1, 0.105); 1758 AddElementByWeightFraction( 1, 0.105); 1726 AddElementByWeightFraction( 6, 0.256); 1759 AddElementByWeightFraction( 6, 0.256); 1727 AddElementByWeightFraction( 7, 0.027); 1760 AddElementByWeightFraction( 7, 0.027); 1728 AddElementByWeightFraction( 8, 0.602); 1761 AddElementByWeightFraction( 8, 0.602); 1729 AddElementByWeightFraction(11, 0.001); 1762 AddElementByWeightFraction(11, 0.001); 1730 AddElementByWeightFraction(15, 0.002); 1763 AddElementByWeightFraction(15, 0.002); 1731 AddElementByWeightFraction(16, 0.003); 1764 AddElementByWeightFraction(16, 0.003); 1732 AddElementByWeightFraction(17, 0.002); 1765 AddElementByWeightFraction(17, 0.002); 1733 AddElementByWeightFraction(19, 0.002); 1766 AddElementByWeightFraction(19, 0.002); 1734 1767 1735 // Tissue soft adult ICRU-33 (1980) 1768 // Tissue soft adult ICRU-33 (1980) 1736 AddMaterial("G4_TISSUE_SOFT_ICRU-4", 1.0, 0 1769 AddMaterial("G4_TISSUE_SOFT_ICRU-4", 1.0, 0, 74.9, 4); 1737 AddElementByWeightFraction( 1, 0.101); 1770 AddElementByWeightFraction( 1, 0.101); 1738 AddElementByWeightFraction( 6, 0.111); 1771 AddElementByWeightFraction( 6, 0.111); 1739 AddElementByWeightFraction( 7, 0.026); 1772 AddElementByWeightFraction( 7, 0.026); 1740 AddElementByWeightFraction( 8, 0.762); 1773 AddElementByWeightFraction( 8, 0.762); 1741 1774 1742 AddMaterial("G4_TISSUE-METHANE", 0.00106409 1775 AddMaterial("G4_TISSUE-METHANE", 0.00106409, 0, 61.2, 4, kStateGas); 1743 AddElementByWeightFraction( 1, 0.101869); 1776 AddElementByWeightFraction( 1, 0.101869); 1744 AddElementByWeightFraction( 6, 0.456179); 1777 AddElementByWeightFraction( 6, 0.456179); 1745 AddElementByWeightFraction( 7, 0.035172); 1778 AddElementByWeightFraction( 7, 0.035172); 1746 AddElementByWeightFraction( 8, 0.40678 ); 1779 AddElementByWeightFraction( 8, 0.40678 ); 1747 1780 1748 AddMaterial("G4_TISSUE-PROPANE", 0.00182628 1781 AddMaterial("G4_TISSUE-PROPANE", 0.00182628, 0, 59.5, 4, kStateGas); 1749 AddElementByWeightFraction( 1, 0.102672); 1782 AddElementByWeightFraction( 1, 0.102672); 1750 AddElementByWeightFraction( 6, 0.56894 ); 1783 AddElementByWeightFraction( 6, 0.56894 ); 1751 AddElementByWeightFraction( 7, 0.035022); 1784 AddElementByWeightFraction( 7, 0.035022); 1752 AddElementByWeightFraction( 8, 0.293366); 1785 AddElementByWeightFraction( 8, 0.293366); 1753 1786 1754 AddMaterial("G4_TITANIUM_DIOXIDE", 4.26, 0, 1787 AddMaterial("G4_TITANIUM_DIOXIDE", 4.26, 0, 179.5, 2); 1755 AddElementByAtomCount("Ti", 1); 1788 AddElementByAtomCount("Ti", 1); 1756 AddElementByAtomCount("O" , 2); 1789 AddElementByAtomCount("O" , 2); 1757 1790 1758 AddMaterial("G4_TOLUENE", 0.8669, 0, 62.5, 1791 AddMaterial("G4_TOLUENE", 0.8669, 0, 62.5, 2); 1759 AddElementByAtomCount("C" , 7); 1792 AddElementByAtomCount("C" , 7); 1760 AddElementByAtomCount("H" , 8); 1793 AddElementByAtomCount("H" , 8); 1761 1794 1762 AddMaterial("G4_TRICHLOROETHYLENE", 1.46, 0 1795 AddMaterial("G4_TRICHLOROETHYLENE", 1.46, 0, 148.1, 3); 1763 AddElementByAtomCount("C" , 2); 1796 AddElementByAtomCount("C" , 2); 1764 AddElementByAtomCount("H" , 1); 1797 AddElementByAtomCount("H" , 1); 1765 AddElementByAtomCount("Cl", 3); 1798 AddElementByAtomCount("Cl", 3); 1766 1799 1767 AddMaterial("G4_TRIETHYL_PHOSPHATE", 1.07, 1800 AddMaterial("G4_TRIETHYL_PHOSPHATE", 1.07, 0, 81.2, 4); 1768 AddElementByAtomCount("C" , 6); 1801 AddElementByAtomCount("C" , 6); 1769 AddElementByAtomCount("H" , 15); 1802 AddElementByAtomCount("H" , 15); 1770 AddElementByAtomCount("O" , 4); 1803 AddElementByAtomCount("O" , 4); 1771 AddElementByAtomCount("P" , 1); 1804 AddElementByAtomCount("P" , 1); 1772 1805 1773 AddMaterial("G4_TUNGSTEN_HEXAFLUORIDE", 2.4 1806 AddMaterial("G4_TUNGSTEN_HEXAFLUORIDE", 2.4, 0, 354.4, 2); 1774 AddElementByAtomCount("W" , 1); 1807 AddElementByAtomCount("W" , 1); 1775 AddElementByAtomCount("F" , 6); 1808 AddElementByAtomCount("F" , 6); 1776 1809 1777 AddMaterial("G4_URANIUM_DICARBIDE", 11.28, 1810 AddMaterial("G4_URANIUM_DICARBIDE", 11.28, 0, 752., 2); 1778 AddElementByAtomCount("U" , 1); 1811 AddElementByAtomCount("U" , 1); 1779 AddElementByAtomCount("C" , 2); 1812 AddElementByAtomCount("C" , 2); 1780 1813 1781 AddMaterial("G4_URANIUM_MONOCARBIDE", 13.63 1814 AddMaterial("G4_URANIUM_MONOCARBIDE", 13.63, 0, 862., 2); 1782 AddElementByAtomCount("U" , 1); 1815 AddElementByAtomCount("U" , 1); 1783 AddElementByAtomCount("C" , 1); 1816 AddElementByAtomCount("C" , 1); 1784 1817 1785 AddMaterial("G4_URANIUM_OXIDE", 10.96, 0, 7 1818 AddMaterial("G4_URANIUM_OXIDE", 10.96, 0, 720.6, 2); 1786 AddElementByAtomCount("U" , 1); 1819 AddElementByAtomCount("U" , 1); 1787 AddElementByAtomCount("O" , 2); 1820 AddElementByAtomCount("O" , 2); 1788 1821 1789 AddMaterial("G4_UREA", 1.323, 0, 72.8, 4); 1822 AddMaterial("G4_UREA", 1.323, 0, 72.8, 4); 1790 AddElementByAtomCount("C" , 1); 1823 AddElementByAtomCount("C" , 1); 1791 AddElementByAtomCount("H" , 4); 1824 AddElementByAtomCount("H" , 4); 1792 AddElementByAtomCount("N" , 2); 1825 AddElementByAtomCount("N" , 2); 1793 AddElementByAtomCount("O" , 1); 1826 AddElementByAtomCount("O" , 1); 1794 1827 1795 AddMaterial("G4_VALINE", 1.23, 0, 67.7, 4); 1828 AddMaterial("G4_VALINE", 1.23, 0, 67.7, 4); 1796 AddElementByAtomCount("C" , 5); 1829 AddElementByAtomCount("C" , 5); 1797 AddElementByAtomCount("H" , 11); 1830 AddElementByAtomCount("H" , 11); 1798 AddElementByAtomCount("N" , 1); 1831 AddElementByAtomCount("N" , 1); 1799 AddElementByAtomCount("O" , 2); 1832 AddElementByAtomCount("O" , 2); 1800 1833 1801 AddMaterial("G4_VITON", 1.8, 0, 98.6, 3); 1834 AddMaterial("G4_VITON", 1.8, 0, 98.6, 3); 1802 AddElementByWeightFraction( 1, 0.009417); 1835 AddElementByWeightFraction( 1, 0.009417); 1803 AddElementByWeightFraction( 6, 0.280555); 1836 AddElementByWeightFraction( 6, 0.280555); 1804 AddElementByWeightFraction( 9, 0.710028); 1837 AddElementByWeightFraction( 9, 0.710028); 1805 1838 1806 AddMaterial("G4_WATER_VAPOR", 0.000756182, 1839 AddMaterial("G4_WATER_VAPOR", 0.000756182, 0, 71.6, 2, kStateGas); 1807 AddElementByAtomCount("H" , 2); 1840 AddElementByAtomCount("H" , 2); 1808 AddElementByAtomCount("O" , 1); 1841 AddElementByAtomCount("O" , 1); 1809 chFormulas[nMaterials-1] = "H_2O-Gas"; 1842 chFormulas[nMaterials-1] = "H_2O-Gas"; 1810 1843 1811 AddMaterial("G4_XYLENE", 0.87, 0, 61.8, 2); 1844 AddMaterial("G4_XYLENE", 0.87, 0, 61.8, 2); 1812 AddElementByAtomCount("C" , 8); 1845 AddElementByAtomCount("C" , 8); 1813 AddElementByAtomCount("H" , 10); 1846 AddElementByAtomCount("H" , 10); 1814 1847 1815 AddMaterial("G4_GRAPHITE", 2.21, 6, 81.); << 1848 AddMaterial("G4_GRAPHITE", 2.21, 6, 78.); 1816 chFormulas[nMaterials-1] = "Graphite"; 1849 chFormulas[nMaterials-1] = "Graphite"; 1817 1850 1818 nNIST = nMaterials; 1851 nNIST = nMaterials; 1819 } 1852 } 1820 1853 1821 //....oooOO0OOooo........oooOO0OOooo........o 1854 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 1822 1855 1823 void G4NistMaterialBuilder::HepAndNuclearMate 1856 void G4NistMaterialBuilder::HepAndNuclearMaterials() 1824 { 1857 { 1825 AddMaterial("G4_lH2", 0.0708, 1, 21.8, 1, 1858 AddMaterial("G4_lH2", 0.0708, 1, 21.8, 1, kStateLiquid, false); 1826 AddMaterial("G4_lN2", 0.807, 7, 82., 1, 1859 AddMaterial("G4_lN2", 0.807, 7, 82., 1, kStateLiquid, false); 1827 AddMaterial("G4_lO2", 1.141, 8, 95., 1, 1860 AddMaterial("G4_lO2", 1.141, 8, 95., 1, kStateLiquid, false); 1828 AddMaterial("G4_lAr", 1.396 , 18, 188. , 1, 1861 AddMaterial("G4_lAr", 1.396 , 18, 188. , 1, kStateLiquid, false); 1829 AddMaterial("G4_lBr", 3.1028, 35, 343. , 1, 1862 AddMaterial("G4_lBr", 3.1028, 35, 343. , 1, kStateLiquid, false); 1830 AddMaterial("G4_lKr", 2.418 , 36, 352. , 1, 1863 AddMaterial("G4_lKr", 2.418 , 36, 352. , 1, kStateLiquid, false); 1831 AddMaterial("G4_lXe", 2.953 , 54, 482. , 1, 1864 AddMaterial("G4_lXe", 2.953 , 54, 482. , 1, kStateLiquid, false); 1832 1865 1833 AddMaterial("G4_PbWO4", 8.28, 0, 0.0, 3); 1866 AddMaterial("G4_PbWO4", 8.28, 0, 0.0, 3); 1834 AddElementByAtomCount("O" , 4); 1867 AddElementByAtomCount("O" , 4); 1835 AddElementByAtomCount("Pb", 1); 1868 AddElementByAtomCount("Pb", 1); 1836 AddElementByAtomCount("W" , 1); 1869 AddElementByAtomCount("W" , 1); 1837 1870 1838 G4double density = universe_mean_density*cm 1871 G4double density = universe_mean_density*cm3/g; 1839 AddMaterial("G4_Galactic", density, 1, 21.8 1872 AddMaterial("G4_Galactic", density, 1, 21.8, 1, kStateGas); 1840 AddGas("G4_Galactic",2.73*kelvin, 3.e-18*he 1873 AddGas("G4_Galactic",2.73*kelvin, 3.e-18*hep_pascal); 1841 1874 1842 AddMaterial("G4_GRAPHITE_POROUS", 1.7, 6, 8 << 1875 AddMaterial("G4_GRAPHITE_POROUS", 1.7, 6, 78.); 1843 chFormulas[nMaterials-1] = "Graphite"; 1876 chFormulas[nMaterials-1] = "Graphite"; 1844 1877 1845 // LUCITE is equal to plustiglass 1878 // LUCITE is equal to plustiglass 1846 AddMaterial("G4_LUCITE", 1.19, 0, 74., 3); 1879 AddMaterial("G4_LUCITE", 1.19, 0, 74., 3); 1847 AddElementByWeightFraction( 1, 0.080538); 1880 AddElementByWeightFraction( 1, 0.080538); 1848 AddElementByWeightFraction( 6, 0.599848); 1881 AddElementByWeightFraction( 6, 0.599848); 1849 AddElementByWeightFraction( 8, 0.319614); 1882 AddElementByWeightFraction( 8, 0.319614); 1850 1883 1851 // SRIM-2008 materials 1884 // SRIM-2008 materials 1852 AddMaterial("G4_BRASS", 8.52, 0, 0.0, 3); 1885 AddMaterial("G4_BRASS", 8.52, 0, 0.0, 3); 1853 AddElementByWeightFraction( 29, 0.57515); << 1886 AddElementByAtomCount("Cu", 62); 1854 AddElementByWeightFraction( 30, 0.33415); << 1887 AddElementByAtomCount("Zn", 35); 1855 AddElementByWeightFraction( 82, 0.0907); << 1888 AddElementByAtomCount("Pb" , 3); 1856 1889 1857 AddMaterial("G4_BRONZE", 8.82, 0, 0.0, 3); 1890 AddMaterial("G4_BRONZE", 8.82, 0, 0.0, 3); 1858 AddElementByWeightFraction( 29, 0.8494); << 1891 AddElementByAtomCount("Cu", 89); 1859 AddElementByWeightFraction( 30, 0.0884); << 1892 AddElementByAtomCount("Zn", 9); 1860 AddElementByWeightFraction( 82, 0.0622); << 1893 AddElementByAtomCount("Pb" , 2); 1861 1894 1862 // parameters are taken from 1895 // parameters are taken from 1863 // http://www.azom.com/article.aspx?Articl 1896 // http://www.azom.com/article.aspx?ArticleID=965 1864 AddMaterial("G4_STAINLESS-STEEL", 8.00, 0, 1897 AddMaterial("G4_STAINLESS-STEEL", 8.00, 0, 0.0, 3); 1865 AddElementByWeightFraction( 26, 0.7462); << 1898 AddElementByAtomCount("Fe", 74); 1866 AddElementByWeightFraction( 24, 0.1690); << 1899 AddElementByAtomCount("Cr", 18); 1867 AddElementByWeightFraction( 28, 0.0848); << 1900 AddElementByAtomCount("Ni" , 8); 1868 1901 1869 AddMaterial("G4_CR39", 1.32, 0, 0.0, 3); 1902 AddMaterial("G4_CR39", 1.32, 0, 0.0, 3); 1870 AddElementByAtomCount("H", 18); 1903 AddElementByAtomCount("H", 18); 1871 AddElementByAtomCount("C", 12); 1904 AddElementByAtomCount("C", 12); 1872 AddElementByAtomCount("O", 7); 1905 AddElementByAtomCount("O", 7); 1873 1906 1874 AddMaterial("G4_OCTADECANOL", 0.812, 0, 0.0 1907 AddMaterial("G4_OCTADECANOL", 0.812, 0, 0.0, 3); 1875 AddElementByAtomCount("H", 38); 1908 AddElementByAtomCount("H", 38); 1876 AddElementByAtomCount("C", 18); 1909 AddElementByAtomCount("C", 18); 1877 AddElementByAtomCount("O", 1); 1910 AddElementByAtomCount("O", 1); 1878 1911 1879 nHEP = nMaterials; 1912 nHEP = nMaterials; 1880 } 1913 } 1881 1914 1882 //....oooOO0OOooo........oooOO0OOooo........o 1915 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 1883 1916 1884 void G4NistMaterialBuilder::SpaceMaterials() 1917 void G4NistMaterialBuilder::SpaceMaterials() 1885 { 1918 { 1886 // density in g/cm3 1919 // density in g/cm3 1887 AddMaterial("G4_KEVLAR" , 1.44, 0, 0.0, 4); 1920 AddMaterial("G4_KEVLAR" , 1.44, 0, 0.0, 4); 1888 AddElementByAtomCount("C", 14); 1921 AddElementByAtomCount("C", 14); 1889 AddElementByAtomCount("H", 10); 1922 AddElementByAtomCount("H", 10); 1890 AddElementByAtomCount("O", 2); 1923 AddElementByAtomCount("O", 2); 1891 AddElementByAtomCount("N", 2); 1924 AddElementByAtomCount("N", 2); 1892 1925 1893 AddMaterial("G4_DACRON" , 1.40, 0, 0.0, 3); 1926 AddMaterial("G4_DACRON" , 1.40, 0, 0.0, 3); // G4_POLYETHYLENE_TEREPHTALATE 1894 AddElementByAtomCount("C", 10); 1927 AddElementByAtomCount("C", 10); 1895 AddElementByAtomCount("H", 8); 1928 AddElementByAtomCount("H", 8); 1896 AddElementByAtomCount("O", 4); 1929 AddElementByAtomCount("O", 4); 1897 1930 1898 AddMaterial("G4_NEOPRENE" , 1.23, 0, 0.0, 3 1931 AddMaterial("G4_NEOPRENE" , 1.23, 0, 0.0, 3); // POLYCLOROPRENE 1899 AddElementByAtomCount("C", 4); 1932 AddElementByAtomCount("C", 4); 1900 AddElementByAtomCount("H", 5); 1933 AddElementByAtomCount("H", 5); 1901 AddElementByAtomCount("Cl",1); 1934 AddElementByAtomCount("Cl",1); 1902 1935 1903 nSpace = nMaterials; 1936 nSpace = nMaterials; 1904 } 1937 } 1905 1938 1906 //....oooOO0OOooo........oooOO0OOooo........o 1939 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 1907 1940 1908 /** 1941 /** 1909 Build biochemical materials used in G4DNA A 1942 Build biochemical materials used in G4DNA Applications. 1910 Materials are defined in bonded and unbonde 1943 Materials are defined in bonded and unbonded forms according to the 1911 following schema: 1944 following schema: 1912 G4_MATERIAL: Molecule in its free state 1945 G4_MATERIAL: Molecule in its free state 1913 G4_DNA_MATERIAL: Molecule, considering atom 1946 G4_DNA_MATERIAL: Molecule, considering atoms lost in bonding 1914 */ 1947 */ 1915 1948 1916 void G4NistMaterialBuilder::BioChemicalMateri 1949 void G4NistMaterialBuilder::BioChemicalMaterials() 1917 { 1950 { 1918 // BEGIN MATERIALS IN THEIR UNBONDED FORM 1951 // BEGIN MATERIALS IN THEIR UNBONDED FORM 1919 1952 1920 // G4_ADENINE, G4_GUANINE are defined in 1953 // G4_ADENINE, G4_GUANINE are defined in 1921 // G4NistMaterialBuilder::NistCompoundMater 1954 // G4NistMaterialBuilder::NistCompoundMaterials() 1922 1955 1923 //Tan, Z., et al. NIMB,2006(248) 1956 //Tan, Z., et al. NIMB,2006(248) 1924 AddMaterial("G4_CYTOSINE", 1.3, 0, 72., 4); 1957 AddMaterial("G4_CYTOSINE", 1.3, 0, 72., 4); 1925 AddElementByAtomCount("H", 5); 1958 AddElementByAtomCount("H", 5); 1926 AddElementByAtomCount("C", 4); 1959 AddElementByAtomCount("C", 4); 1927 AddElementByAtomCount("N", 3); 1960 AddElementByAtomCount("N", 3); 1928 AddElementByAtomCount("O", 1); 1961 AddElementByAtomCount("O", 1); 1929 1962 1930 AddMaterial("G4_THYMINE", 1.48, 0, 72., 4); 1963 AddMaterial("G4_THYMINE", 1.48, 0, 72., 4); 1931 AddElementByAtomCount("H", 6); 1964 AddElementByAtomCount("H", 6); 1932 AddElementByAtomCount("C", 5); 1965 AddElementByAtomCount("C", 5); 1933 AddElementByAtomCount("N", 2); 1966 AddElementByAtomCount("N", 2); 1934 AddElementByAtomCount("O", 2); 1967 AddElementByAtomCount("O", 2); 1935 1968 1936 AddMaterial("G4_URACIL", 1.32, 0, 72., 4); 1969 AddMaterial("G4_URACIL", 1.32, 0, 72., 4); 1937 AddElementByAtomCount("H", 4); 1970 AddElementByAtomCount("H", 4); 1938 AddElementByAtomCount("C", 4); 1971 AddElementByAtomCount("C", 4); 1939 AddElementByAtomCount("N", 2); 1972 AddElementByAtomCount("N", 2); 1940 AddElementByAtomCount("O", 2); 1973 AddElementByAtomCount("O", 2); 1941 1974 1942 //ACD Labs Percepta Plateform - PhysChem Mo 1975 //ACD Labs Percepta Plateform - PhysChem Module 1943 //(https://www.acdlabs.com/products/percept 1976 //(https://www.acdlabs.com/products/percepta/index.php) 1944 AddMaterial("G4_DEOXYRIBOSE", 1.5, 0, 72, 3 1977 AddMaterial("G4_DEOXYRIBOSE", 1.5, 0, 72, 3); 1945 AddElementByAtomCount("H", 10); 1978 AddElementByAtomCount("H", 10); 1946 AddElementByAtomCount("C", 5); 1979 AddElementByAtomCount("C", 5); 1947 AddElementByAtomCount("O", 4); 1980 AddElementByAtomCount("O", 4); 1948 1981 1949 //Egan, E.P. and B.B. Luff, 1982 //Egan, E.P. and B.B. Luff, 1950 //Industrial & Engineering Chemistry, 1955. 1983 //Industrial & Engineering Chemistry, 1955. 47(6): p. 1280-1281 1951 AddMaterial("G4_PHOSPHORIC_ACID", 1.87, 0, 1984 AddMaterial("G4_PHOSPHORIC_ACID", 1.87, 0, 72, 3); 1952 AddElementByAtomCount("H", 3); 1985 AddElementByAtomCount("H", 3); 1953 AddElementByAtomCount("P", 1); 1986 AddElementByAtomCount("P", 1); 1954 AddElementByAtomCount("O", 4); 1987 AddElementByAtomCount("O", 4); 1955 << 1988 1956 // END UNBONDED MATERIALS / BEGIN BONDED MA 1989 // END UNBONDED MATERIALS / BEGIN BONDED MATERIALS 1957 1990 1958 // Deoxyribose loses 3 OH groups in bonding 1991 // Deoxyribose loses 3 OH groups in bonding to bond with PO4 and a base pair 1959 AddMaterial("G4_DNA_DEOXYRIBOSE", 1, 0, 72. 1992 AddMaterial("G4_DNA_DEOXYRIBOSE", 1, 0, 72., 3); 1960 AddElementByAtomCount("H", 7); 1993 AddElementByAtomCount("H", 7); 1961 AddElementByAtomCount("C", 5); 1994 AddElementByAtomCount("C", 5); 1962 AddElementByAtomCount("O", 1); 1995 AddElementByAtomCount("O", 1); 1963 1996 1964 // Typically there are no H atoms considere 1997 // Typically there are no H atoms considered in the Phosphate group 1965 AddMaterial("G4_DNA_PHOSPHATE", 1, 0, 72., 1998 AddMaterial("G4_DNA_PHOSPHATE", 1, 0, 72., 2); 1966 AddElementByAtomCount("P", 1); 1999 AddElementByAtomCount("P", 1); 1967 AddElementByAtomCount("O", 4); 2000 AddElementByAtomCount("O", 4); 1968 2001 1969 // GATCU bases bonded to a deoxyribose (the 2002 // GATCU bases bonded to a deoxyribose (they drop one H) 1970 AddMaterial("G4_DNA_ADENINE", 1, 0, 72., 3) 2003 AddMaterial("G4_DNA_ADENINE", 1, 0, 72., 3); 1971 AddElementByAtomCount("H",4 ); 2004 AddElementByAtomCount("H",4 ); 1972 AddElementByAtomCount("C",5 ); 2005 AddElementByAtomCount("C",5 ); 1973 AddElementByAtomCount("N",5 ); 2006 AddElementByAtomCount("N",5 ); 1974 2007 1975 AddMaterial("G4_DNA_GUANINE", 1, 0, 72., 4) 2008 AddMaterial("G4_DNA_GUANINE", 1, 0, 72., 4); 1976 AddElementByAtomCount("H",4 ); 2009 AddElementByAtomCount("H",4 ); 1977 AddElementByAtomCount("C",5 ); 2010 AddElementByAtomCount("C",5 ); 1978 AddElementByAtomCount("N",5 ); 2011 AddElementByAtomCount("N",5 ); 1979 AddElementByAtomCount("O",1 ); 2012 AddElementByAtomCount("O",1 ); 1980 2013 1981 AddMaterial("G4_DNA_CYTOSINE", 1, 0, 72., 4 2014 AddMaterial("G4_DNA_CYTOSINE", 1, 0, 72., 4); 1982 AddElementByAtomCount("H", 4); 2015 AddElementByAtomCount("H", 4); 1983 AddElementByAtomCount("C", 4); 2016 AddElementByAtomCount("C", 4); 1984 AddElementByAtomCount("N", 3); 2017 AddElementByAtomCount("N", 3); 1985 AddElementByAtomCount("O", 1); 2018 AddElementByAtomCount("O", 1); 1986 2019 1987 AddMaterial("G4_DNA_THYMINE", 1, 0, 72., 4) 2020 AddMaterial("G4_DNA_THYMINE", 1, 0, 72., 4); 1988 AddElementByAtomCount("H", 5); 2021 AddElementByAtomCount("H", 5); 1989 AddElementByAtomCount("C", 5); 2022 AddElementByAtomCount("C", 5); 1990 AddElementByAtomCount("N", 2); 2023 AddElementByAtomCount("N", 2); 1991 AddElementByAtomCount("O", 2); 2024 AddElementByAtomCount("O", 2); 1992 2025 1993 AddMaterial("G4_DNA_URACIL", 1, 0, 72., 4); 2026 AddMaterial("G4_DNA_URACIL", 1, 0, 72., 4); 1994 AddElementByAtomCount("H", 3); 2027 AddElementByAtomCount("H", 3); 1995 AddElementByAtomCount("C", 4); 2028 AddElementByAtomCount("C", 4); 1996 AddElementByAtomCount("N", 2); 2029 AddElementByAtomCount("N", 2); 1997 AddElementByAtomCount("O", 2); 2030 AddElementByAtomCount("O", 2); 1998 2031 1999 // END BONDED MATERIALS 2032 // END BONDED MATERIALS 2000 2033 2001 // clang-format on << 2034 /* >> 2035 // Complete 70 kg body of adult men from en.wikipedia.org/ see References there >> 2036 AddMaterial("G4_BODY", 1.8, 0, 78, 12); >> 2037 AddElementByWeightFraction( 8, 0.650); >> 2038 AddElementByWeightFraction( 6, 0.180); >> 2039 AddElementByWeightFraction( 1, 0.100); >> 2040 AddElementByWeightFraction( 7, 0.030); >> 2041 AddElementByWeightFraction(20, 0.015); >> 2042 AddElementByWeightFraction(15, 0.010); >> 2043 AddElementByWeightFraction(19, 0.0025); >> 2044 AddElementByWeightFraction(16, 0.0025); >> 2045 AddElementByWeightFraction(11, 0.0015); >> 2046 AddElementByWeightFraction(17, 0.0015); >> 2047 AddElementByWeightFraction(12, 0.0005); >> 2048 AddElementByWeightFraction(26, 0.00006); >> 2049 */ 2002 } 2050 } >> 2051 >> 2052 >> 2053 >> 2054 2003 2055