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