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 11.1.1)


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