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