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.0.p3,)


** Warning: Cannot open xref database.

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