Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/materials/src/G4NistMaterialBuilder.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /materials/src/G4NistMaterialBuilder.cc (Version 11.3.0) and /materials/src/G4NistMaterialBuilder.cc (Version 8.0.p1)


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