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