G4NistMaterialBuilder.cc

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 // $Id: G4NistMaterialBuilder.cc 67044 2013-01-30 08:50:06Z gcosmo $
00027 //
00028 // -------------------------------------------------------------------
00029 //
00030 // GEANT4 Class file
00031 //
00032 // File name:     G4NistMaterialBuilder
00033 //
00034 // Author:        Vladimir Ivanchenko
00035 //
00036 // Creation date: 23.12.2004
00037 //
00038 // Modifications:
00039 // 31-10-05 Add chemical effect and gas properties (V.Ivanchenko)
00040 // 27.02.06 V.Ivanchneko add ConstructNewGasMaterial
00041 // 11.05.06 V.Ivanchneko add warning flag to FindMaterial method
00042 // 27.06.06 V.Ivanchneko fix graphite description
00043 // 27.07.07 V.Ivanchneko remove dependence on NistManager
00044 // 30.10.09 V.Ivanchneko update density of G4_GRAFITE from PDG'2008
00045 //                       added G4_GRAPHITE_POROUS
00046 // 03.11.09 A.Lechner changed following material names:
00047 //                    From G4_NYLON-6/6 to G4_NYLON-6-6
00048 //                    From G4_NYLON-6/10 to G4_NYLON-6-10
00049 // 12.12.10 A.Ivantchenko added following materials methodes:
00050 //                    BioChemicalMaterials() and SpaceMaterials(),
00051 //                    where new materials are introduced
00052 // 14.06.11 A.Ivantchenko updated body materials (G4_....ICRP)
00053 //                    according ICRU Report 46 (1992) instead of 1975 
00054 //                    data from ICRU Report 37 used previously
00055 // 26.10.11 new scheme for G4Exception  (mma)
00056 // 09.02.12 P.Gumplinger add ConstructNewIdealGasMaterial
00057 //
00058 // -------------------------------------------------------------------
00059 //
00060 // Class Description:
00061 //
00062 // Element data from the NIST DB on Atomic Weights and Isotope Compositions
00063 // http://physics.nist.gov/PhysRefData/Compositions/index.html
00064 //
00065 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00066 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00067 
00068 #include "G4NistMaterialBuilder.hh"
00069 #include "G4NistElementBuilder.hh"
00070 #include "G4Element.hh"
00071 #include "G4PhysicalConstants.hh"
00072 #include "G4SystemOfUnits.hh"
00073 
00074 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00075 
00076 G4NistMaterialBuilder::G4NistMaterialBuilder(G4NistElementBuilder* eb, G4int vb)
00077 : elmBuilder(eb),
00078   verbose(vb),
00079   nMaterials(0),
00080   nComponents(0),
00081   nCurrent(0),
00082   first(true)
00083 {
00084   Initialise();
00085 }
00086 
00087 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00088 
00089 G4NistMaterialBuilder::~G4NistMaterialBuilder()
00090 {}
00091 
00092 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00093 
00094 G4Material* G4NistMaterialBuilder::FindOrBuildMaterial(const G4String& matname,
00095                                                        G4bool isotopes,
00096                                                        G4bool warning)
00097 {
00098   if(first) {
00099     if(verbose > 0) {
00100       G4cout << "### NIST DataBase for Materials is used" << G4endl;
00101     }
00102     first = false;
00103   }
00104 
00105   G4String name = matname;
00106   if("G4_NYLON-6/6" == matname)  { name = "G4_NYLON-6-6"; }
00107   if("G4_NYLON-6/10" == matname) { name = "G4_NYLON-6-10";}
00108 
00109   if (verbose > 1) {
00110     G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial " << name << G4endl;
00111   }
00112   const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable();
00113   G4int nmat = theMaterialTable->size();
00114 
00115   // Check if name inside DB
00116   G4Material* mat = 0;
00117 
00118   for (G4int i=0; i<nMaterials; ++i) {
00119 
00120     if (name == names[i]) {
00121       // Build new Nist material 
00122       if(matIndex[i] == -1) { mat = BuildMaterial(i, isotopes); }
00123       // Nist material was already built
00124       else                  { mat = (*theMaterialTable)[matIndex[i]]; }
00125       return mat;
00126     }
00127   }
00128 
00129   // Check the list of all materials
00130   if (nmat > 0) {
00131     for (G4int i=0; i<nmat; ++i) {
00132       if(name == ((*theMaterialTable)[i])->GetName()) {
00133         mat = (*theMaterialTable)[i];
00134         return mat;
00135       }
00136     }
00137   }
00138 
00139   if( (verbose == 1 && warning) || verbose > 1) {
00140     G4cout << "G4NistMaterialBuilder::FindOrBuildMaterial WARNING:"
00141            << " material <" << name
00142            << "> is not found out" << G4endl;
00143   }
00144   return mat;
00145 }
00146 
00147 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00148 
00149 G4Material* G4NistMaterialBuilder::BuildMaterial(G4int i, G4bool isotopes)
00150 {
00151   if (verbose > 1) {
00152     G4cout << "G4NistMaterialBuilder: BuildMaterial #" << i
00153            << G4endl;
00154   }
00155   G4Material* mat = 0;
00156   if (nMaterials == 0) { return mat; }
00157 
00158   G4int nc = components[i];
00159 
00160   // Check gas parameters
00161   G4double t = STP_Temperature;
00162   G4double p = STP_Pressure;
00163   if(kStateGas == states[i]) {
00164     size_t nn = idxGas.size();
00165     if(nn > 0) {
00166       for(size_t j=0; j<nn; ++j) {
00167         if(i == idxGas[j]) {
00168           t = gasTemperature[j];
00169           p = gasPressure[j];
00170           break;
00171         }
00172       }
00173     }
00174     // liquids
00175   } else if( !STP[i] ) { t = 0.0; }
00176 
00177   mat = new G4Material(names[i],densities[i],nc,states[i],t,p);
00178 
00179   if (verbose>1) { G4cout << "New material nComponents= " << nc << G4endl; }
00180   if (nc > 0) {
00181     G4int idx = indexes[i];
00182     for (G4int j=0; j<nc; ++j) {
00183       G4int Z = elements[idx+j];
00184       G4Element* el = elmBuilder->FindOrBuildElement(Z, isotopes);
00185       if(!el) {
00186         G4cout << "G4NistMaterialBuilder::BuildMaterial:"
00187                << "  ERROR: elements Z= " << Z << " is not found "
00188                << " for material " << names[i]
00189                << G4endl;
00190         G4Exception("G4NistMaterialBuilder::BuildMaterial()", "mat103",
00191                      FatalException, "Fail to construct material");
00192         return 0;
00193       }
00194       if(atomCount[i]) {
00195         mat->AddElement(el,G4lrint(fractions[idx+j]));
00196       } else {
00197         mat->AddElement(el,fractions[idx+j]);
00198       }
00199     }
00200   }
00201 
00202   // Ionisation potential can be defined via NIST DB or 
00203   // Chemical Formula (ICRU37 Report data)
00204   G4IonisParamMat* ion = mat->GetIonisation();
00205   G4double exc0 = ion->GetMeanExcitationEnergy();
00206   G4double exc1 = exc0;
00207   if(chFormulas[i] != "") {
00208     mat->SetChemicalFormula(chFormulas[i]);
00209     exc1 = ion->FindMeanExcitationEnergy(chFormulas[i]);
00210   }
00211   if(ionPotentials[i] > 0.0) { exc1 = ionPotentials[i]; }
00212   if(exc0 != exc1) { ion->SetMeanExcitationEnergy(exc1); }
00213 
00214   // Index in Material Table
00215   matIndex[i] = mat->GetIndex();
00216   return mat;
00217 }
00218 
00219 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00220 
00221 G4Material* G4NistMaterialBuilder::ConstructNewMaterial(
00222                                       const G4String& name,
00223                                       const std::vector<G4String>& elm,
00224                                       const std::vector<G4int>& nbAtoms,
00225                                       G4double dens, 
00226                                       G4bool isotopes,
00227                                       G4State state,     
00228                                       G4double temp,  
00229                                       G4double pres)
00230 {
00231   // Material is in DB
00232   G4Material* mat = FindOrBuildMaterial(name);
00233   if(mat) { 
00234     G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
00235            << "  WARNING: the material <" << name
00236            << "> is already exist" << G4endl;
00237     G4cout << "      New material will NOT be built!"
00238            << G4endl;
00239     return mat; 
00240   }
00241 
00242   // Material not in DB
00243   G4int els = elm.size();
00244   if(els == 0) { 
00245     G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
00246            << "  WARNING: empty list of elements for " << name
00247            << G4endl;
00248     G4cout << "      New material will NOT be built!"
00249            << G4endl;
00250     return 0;
00251   } 
00252 
00253   // add parameters of material into internal vectors
00254   // density in g/cm3, mean ionisation potential is not defined
00255   G4bool stp = true;
00256   if(state == kStateGas && temp != STP_Temperature && pres != STP_Pressure)
00257     { stp = false; }
00258 
00259   AddMaterial(name,dens*cm3/g,0,0.,els,state,stp);
00260   if(!stp) { AddGas(name,temp,pres); }
00261 
00262   for (G4int i=0; i<els; ++i) {
00263     AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]);
00264   }
00265 
00266   return BuildMaterial(nMaterials-1, isotopes);
00267 }
00268 
00269 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00270 
00271 G4Material* G4NistMaterialBuilder::ConstructNewMaterial(
00272                                       const G4String& name,
00273                                       const std::vector<G4String>& elm,
00274                                       const std::vector<G4double>& w,
00275                                       G4double dens, 
00276                                       G4bool isotopes,
00277                                       G4State state,     
00278                                       G4double temp,  
00279                                       G4double pres)
00280 {
00281   // Material is in DB
00282   G4Material* mat = FindOrBuildMaterial(name);
00283   if(mat) { 
00284     G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
00285            << "  WARNING: the material <" << name
00286            << "> is already exist" << G4endl;
00287     G4cout << "      New material will NOT be built!"
00288            << G4endl;
00289     return mat; 
00290   }
00291 
00292   // Material not in DB
00293   G4int els = elm.size();
00294   if(els == 0) { 
00295     G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
00296            << "  WARNING: empty list of elements for " << name
00297            << G4endl;
00298     G4cout << "      New material will NOT be built!"
00299            << G4endl;
00300     return 0;
00301   } 
00302 
00303   // add parameters of material into internal vectors
00304   // density in g/cm3, mean ionisation potential is not defined
00305   G4bool stp = true;
00306   if(state == kStateGas && temp != STP_Temperature && pres != STP_Pressure)
00307     { stp = false; }
00308   AddMaterial(name,dens*cm3/g,0,0.,els,state,stp);
00309   if(!stp) { AddGas(name,temp,pres); }
00310 
00311   for (G4int i=0; i<els; ++i) {
00312     AddElementByWeightFraction(elmBuilder->GetZ(elm[i]), w[i]);
00313   }
00314   
00315   return BuildMaterial(nMaterials-1, isotopes);    
00316 }
00317 
00318 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00319 
00320 G4Material* G4NistMaterialBuilder::ConstructNewGasMaterial(
00321                                       const G4String& name,
00322                                       const G4String& nameDB,
00323                                       G4double temp, 
00324                                       G4double pres, 
00325                                       G4bool)
00326 {
00327   // Material name is in DB
00328   G4Material* mat = FindOrBuildMaterial(name);
00329   if(mat) { 
00330     G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
00331            << "  WARNING: the material <" << name
00332            << "> is already exist" << G4endl;
00333     G4cout << "      New material will NOT be built!"
00334            << G4endl;
00335     return mat; 
00336   }
00337 
00338   G4Material* bmat = FindOrBuildMaterial(nameDB);
00339   if(!bmat) {
00340     G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
00341            << "  WARNING: the Name <" << nameDB 
00342            << "> is NOT in the DB: no new gas will be constructed"
00343            << G4endl;
00344     return 0;
00345   }
00346   if(bmat->GetState() != kStateGas) {
00347     G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial:"
00348            << "  WARNING:  <" << nameDB 
00349            << "> is NOT a gas -  no new gas will be constructed"
00350            << G4endl;
00351     return 0;
00352   }
00353 
00354   G4double dens = bmat->GetDensity()*pres*STP_Temperature/(temp*STP_Pressure);
00355   mat = new G4Material(name,dens,bmat,kStateGas,temp,pres);
00356 
00357   if (verbose>1) {
00358     G4cout << "G4NistMaterialBuilder::ConstructNewGasMaterial: done" << G4endl;
00359     G4cout << &mat << G4endl; 
00360   }     
00361   return mat;
00362 }
00363 
00364 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00365 
00366 G4Material* G4NistMaterialBuilder::ConstructNewIdealGasMaterial(
00367                                       const G4String& name,
00368                                       const std::vector<G4String>& elm,
00369                                       const std::vector<G4int>& nbAtoms,
00370                                       G4bool isotopes,
00371                                       G4double temp,
00372                                       G4double pres)
00373 {
00374   G4State state = kStateGas;
00375 
00376   // Material is in DB
00377   G4Material* mat = FindOrBuildMaterial(name);
00378   if(mat) {
00379     G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
00380            << "  WARNING: the material <" << name
00381            << "> is already exist" << G4endl;
00382     G4cout << "      New material will NOT be built!"
00383            << G4endl;
00384     return mat;
00385   }
00386 
00387   // Material not in DB
00388   G4int els = elm.size();
00389   if(els == 0) {
00390     G4cout << "G4NistMaterialBuilder::ConstructNewMaterial:"
00391            << "  WARNING: empty list of elements for " << name
00392            << G4endl;
00393     G4cout << "      New material will NOT be built!"
00394            << G4endl;
00395     return 0;
00396   }
00397 
00398   // add parameters of material into internal vectors
00399   // density in g/cm3, mean ionisation potential is not defined
00400   G4bool stp = true;
00401   if(temp != STP_Temperature && pres != STP_Pressure)
00402     { stp = false; }
00403 
00404   G4double massPerMole = 0;
00405 
00406   G4int Z = 0;
00407   for (G4int i=0; i<els; ++i) {
00408     Z = elmBuilder->GetZ(elm[i]);
00409     massPerMole += nbAtoms[i] * elmBuilder->GetAtomicMassAmu(Z) * amu_c2;
00410   }
00411 
00412   G4double dens = massPerMole / (Avogadro*k_Boltzmann*temp/pres);
00413 
00414   if (els == 1) { AddMaterial(name,dens,Z,0.,els,state,stp); }
00415   else {
00416     AddMaterial(name,dens,0,0.,els,state,stp);
00417     for (G4int i=0; i<els; ++i) {
00418       AddElementByAtomCount(elmBuilder->GetZ(elm[i]), nbAtoms[i]);
00419     }
00420   }
00421 
00422   if(!stp) { AddGas(name,temp,pres); }
00423 
00424   return BuildMaterial(nMaterials-1, isotopes);
00425 }
00426 
00427 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00428 
00429 void G4NistMaterialBuilder::AddMaterial(const G4String& nameMat, G4double dens,
00430                                         G4int Z, G4double pot, 
00431                                         G4int ncomp, G4State state, 
00432                                         G4bool stp)
00433 {
00434   // add parameters of material into internal vectors
00435   // density in g/cm3, mean ionisation potential in eV
00436 
00437   // if ncomp == 1 then Z should be defined and 
00438   // AddElement should not be applied
00439 
00440   if (nCurrent != 0) {
00441     G4cout << "G4NistMaterialBuilder::AddMaterial WARNING: previous "
00442            << "mixture " << nMaterials << " " << names[nMaterials] 
00443            << " is not yet complete!"
00444            << G4endl;
00445     G4cout << "         New material " << nameMat << " will not be added" 
00446            << G4endl;
00447     return;
00448   }
00449 
00450   // density in g/cm3, mean ionisation potential in eV
00451 
00452   names.push_back(nameMat);
00453   chFormulas.push_back("");
00454   densities.push_back(dens*g/cm3);
00455   ionPotentials.push_back(pot*eV);
00456   states.push_back(state);
00457   components.push_back(ncomp);
00458   indexes.push_back(nComponents);
00459   STP.push_back(stp);
00460   matIndex.push_back(-1);
00461   atomCount.push_back(false);
00462 
00463   if (ncomp == 1 && Z > 0) {
00464     elements.push_back(Z);
00465     fractions.push_back(1.0);
00466     atomCount[nMaterials] = true;
00467     ++nComponents;
00468     nCurrent = 0;
00469   } else {
00470     nCurrent = ncomp;
00471   }
00472 
00473   ++nMaterials;
00474 
00475   if(verbose > 1) {
00476     G4cout << "New material " << nameMat << " is prepeared; "
00477            << " nMaterials= " << nMaterials
00478            << " nComponents= " << nComponents
00479            << " nCurrent= " << nCurrent
00480            << G4endl;
00481   }
00482 }
00483 
00484 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00485 
00486 void G4NistMaterialBuilder::SetVerbose(G4int val)
00487 {
00488   verbose = val;
00489   elmBuilder->SetVerbose(verbose);
00490 }
00491 
00492 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00493 
00494 void G4NistMaterialBuilder::ListMaterials(const G4String& mnam)
00495 {
00496   if (mnam == "simple")           { ListNistSimpleMaterials(); }
00497   else if (mnam == "compound")    { ListNistCompoundMaterials(); }
00498   else if (mnam == "hep")         { ListHepMaterials(); }
00499   else if (mnam == "space")       { ListSpaceMaterials(); }
00500   else if (mnam == "biochemical") { ListBioChemicalMaterials(); }
00501 
00502   else if (mnam == "all") {
00503     ListNistSimpleMaterials();
00504     ListNistCompoundMaterials();
00505     ListHepMaterials();
00506     ListSpaceMaterials();
00507     ListBioChemicalMaterials();
00508 
00509   } else {
00510     G4cout << "### G4NistMaterialBuilder::ListMaterials: Warning " 
00511            << mnam << " list is not known" << G4endl;
00512   }
00513 }
00514 
00515 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00516 
00517 void G4NistMaterialBuilder::ListNistSimpleMaterials()
00518 {
00519   G4cout << "=======================================================" << G4endl;
00520   G4cout << "###   Simple Materials from the NIST Data Base   ###" << G4endl;
00521   G4cout << "=======================================================" << G4endl;
00522   G4cout << " Z Name  ChFormula        density(g/cm^3)  I(eV)       " << G4endl;
00523   G4cout << "=======================================================" << G4endl;
00524   for (G4int i=0; i<nElementary; ++i) {DumpElm(i);}
00525   G4cout << "=======================================================" << G4endl;
00526 }
00527 
00528 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00529 
00530 void G4NistMaterialBuilder::ListNistCompoundMaterials()
00531 {
00532   G4cout << "###    Compound Materials from the NIST Data Base    ##" << G4endl;
00533   G4cout << "=======================================================" << G4endl;
00534   G4cout << " Ncomp Name  ChFormula        density(g/cm^3)  I(eV)   " << G4endl;
00535   G4cout << "=======================================================" << G4endl;
00536   for (G4int i=nElementary; i<nNIST; ++i) {DumpMix(i);}
00537   G4cout << "=======================================================" << G4endl;
00538 }
00539 
00540 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00541 
00542 void G4NistMaterialBuilder::ListHepMaterials()
00543 {
00544   G4cout << "=======================================================" << G4endl;
00545   G4cout << "###           HEP & Nuclear Materials                ##" << G4endl;
00546   G4cout << "=======================================================" << G4endl;
00547   G4cout << " Ncomp Name  ChFormula        density(g/cm^3)  I(eV)   " << G4endl;
00548   G4cout << "=======================================================" << G4endl;
00549   for (G4int i=nNIST; i<nHEP; ++i) {DumpMix(i);}
00550   G4cout << "=======================================================" << G4endl;
00551 }
00552 
00553 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00554 
00555 void G4NistMaterialBuilder::ListSpaceMaterials()
00556 {
00557   G4cout << "=======================================================" << G4endl;
00558   G4cout << "###           Space ISS Materials                    ##" << G4endl;
00559   G4cout << "=======================================================" << G4endl;
00560   G4cout << " Ncomp Name  ChFormula        density(g/cm^3)  I(eV)   " << G4endl;
00561   G4cout << "=======================================================" << G4endl;
00562   for (G4int i=nHEP; i<nSpace; ++i) {DumpMix(i);}
00563   G4cout << "=======================================================" << G4endl;
00564 }
00565 
00566 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00567 
00568 void G4NistMaterialBuilder::ListBioChemicalMaterials()
00569 {
00570   G4cout << "=======================================================" << G4endl;
00571   G4cout << "###          Bio-Chemical Materials                  ##" << G4endl;
00572   G4cout << "=======================================================" << G4endl;
00573   G4cout << " Ncomp Name  ChFormula        density(g/cm^3)  I(eV)   " << G4endl;
00574   G4cout << "=======================================================" << G4endl;
00575   for (G4int i=nSpace; i<nMaterials; ++i) {DumpMix(i);}
00576   G4cout << "=======================================================" << G4endl;
00577 }
00578 
00579 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00580 
00581 void G4NistMaterialBuilder::DumpElm(G4int i)
00582 {
00583   G4cout << i+1 << "  " << names[i] << "  " << chFormulas[i]
00584          << densities[i]*cm3/g << "     " << ionPotentials[i]/eV
00585          << G4endl;
00586 }
00587 
00588 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00589 
00590 void G4NistMaterialBuilder::DumpMix(G4int i)
00591 {
00592   G4int nc = components[i];
00593   G4cout << nc << "  " << names[i] << "  " << chFormulas[i]
00594          << densities[i]*cm3/g << "     " << ionPotentials[i]/eV
00595          << G4endl;
00596   if (nc > 1) {
00597     G4int imin = indexes[i];
00598     G4int imax = imin + nc;
00599     for (G4int j=imin; j<imax; ++j) {
00600       G4cout << "              " << elements[j] << "     " << fractions[j] 
00601              << G4endl;
00602     }
00603   }
00604 }
00605 
00606 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00607 
00608 void 
00609 G4NistMaterialBuilder::AddGas(const G4String& nameMat, G4double t, G4double p)
00610 {
00611   G4int idx = nMaterials-1;
00612   if(nameMat != names[idx]) {
00613     idx = -1;
00614     for(G4int i=0; i<nMaterials; ++i) {
00615       if(nameMat == names[i]) {
00616         idx = i; break;
00617       }
00618     }
00619   }
00620   if(idx >= 0) {
00621     idxGas.push_back(idx);
00622     gasTemperature.push_back(t);
00623     gasPressure.push_back(p);
00624   } else {
00625     G4cout << "WARNING: G4NistMaterialBuilder::AddGas problem: there is no "
00626            << nameMat << " in the list of materials;"
00627            << G4endl;
00628   }
00629 }
00630 
00631 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00632 
00633 void G4NistMaterialBuilder::AddElementByWeightFraction(G4int Z, G4double w)
00634 {
00635   elements.push_back(Z);
00636   fractions.push_back(w);
00637   --nCurrent;
00638   ++nComponents;
00639   if (nCurrent == 0) {
00640     G4int n = nMaterials - 1;
00641     G4double sum = 0.0;
00642     G4int imin = indexes[n];
00643     G4int imax = imin + components[n];
00644 
00645     if(!atomCount[n]) {
00646       for(G4int i=imin; i<imax; ++i) {sum += fractions[i];}
00647       if (sum > 0.0) for (G4int i=imin; i<imax; ++i) {fractions[i] /= sum;}
00648     }
00649   }
00650 }
00651 
00652 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00653 
00654 void G4NistMaterialBuilder::AddElementByWeightFraction(const G4String& name,
00655                                                        G4double w)
00656 {
00657   G4int Z = elmBuilder->GetZ(name);
00658   AddElementByWeightFraction(Z, w);
00659 }
00660 
00661 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00662 
00663 void G4NistMaterialBuilder::AddElementByAtomCount(G4int Z, G4int nb)
00664 {
00665   atomCount[nMaterials-1] = true;
00666   G4double w = (G4double)nb;
00667   AddElementByWeightFraction(Z, w);
00668 }
00669 
00670 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00671 
00672 void G4NistMaterialBuilder::AddElementByAtomCount(const G4String& name,
00673                                                   G4int nb)
00674 {
00675   atomCount[nMaterials-1] = true;
00676   G4int Z = elmBuilder->GetZ(name);
00677   G4double w = (G4double)nb;
00678   AddElementByWeightFraction(Z, w);
00679 }
00680 
00681 
00682 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00683 
00684 void G4NistMaterialBuilder::Initialise()
00685 {
00686   if (verbose > 0) {
00687     G4cout << "### G4NistMaterialBuilder::Initialise()" << G4endl;
00688   }
00689   NistSimpleMaterials();
00690   NistCompoundMaterials();
00691   HepAndNuclearMaterials();
00692   SpaceMaterials();
00693   BioChemicalMaterials();
00694 
00695   if (verbose > 1) { ListMaterials("all"); }
00696 }
00697 
00698 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00699 
00700 void G4NistMaterialBuilder::NistSimpleMaterials()
00701 {
00702   // density in g/cm3, mean ionisation potential in eV
00703 
00704   AddMaterial("G4_H" ,  8.37480e-5,  1,  19.2, 1, kStateGas);
00705   AddMaterial("G4_He",  1.66322e-4,  2,  41.8, 1, kStateGas);
00706   AddMaterial("G4_Li",  0.534     ,  3,  40. );
00707   AddMaterial("G4_Be",  1.848     ,  4,  63.7);
00708   AddMaterial("G4_B" ,  2.37      ,  5,  76. );
00709   AddMaterial("G4_C" ,  2.        ,  6,  81. );
00710   AddMaterial("G4_N" ,  1.16520e-3,  7,  82. , 1, kStateGas);
00711   AddMaterial("G4_O" ,  1.33151e-3,  8,  95. , 1, kStateGas);
00712   AddMaterial("G4_F" ,  1.58029e-3,  9, 115. , 1, kStateGas);
00713   AddMaterial("G4_Ne",  8.38505e-4, 10, 137. , 1, kStateGas);
00714   AddMaterial("G4_Na",  0.971     , 11, 149. );
00715   AddMaterial("G4_Mg",  1.74      , 12, 156. );
00716   AddMaterial("G4_Al",  2.699     , 13, 166. );
00717   AddMaterial("G4_Si",  2.33      , 14, 173. );
00718   AddMaterial("G4_P" ,  2.2       , 15, 173. );
00719   AddMaterial("G4_S" ,  2.0       , 16, 180. );
00720   AddMaterial("G4_Cl",  2.99473e-3, 17, 174. , 1, kStateGas);
00721   AddMaterial("G4_Ar",  1.66201e-3, 18, 188.0, 1, kStateGas);
00722   AddMaterial("G4_K" ,  0.862     , 19, 190. );
00723   AddMaterial("G4_Ca",  1.55      , 20, 191. );
00724   AddMaterial("G4_Sc",  2.989     , 21, 216. );
00725   AddMaterial("G4_Ti",  4.54      , 22, 233. );
00726   AddMaterial("G4_V" ,  6.11      , 23, 245. );
00727   AddMaterial("G4_Cr",  7.18      , 24, 257. );
00728   AddMaterial("G4_Mn",  7.44      , 25, 272. );
00729   AddMaterial("G4_Fe",  7.874     , 26, 286. );
00730   AddMaterial("G4_Co",  8.9       , 27, 297. );
00731   AddMaterial("G4_Ni",  8.902     , 28, 311. );
00732   AddMaterial("G4_Cu",  8.96      , 29, 322. );
00733   AddMaterial("G4_Zn",  7.133     , 30, 330. );
00734   AddMaterial("G4_Ga",  5.904     , 31, 334. );
00735   AddMaterial("G4_Ge",  5.323     , 32, 350. );
00736   AddMaterial("G4_As",  5.73      , 33, 347. );
00737   AddMaterial("G4_Se",  4.5       , 34, 348. );
00738   AddMaterial("G4_Br",  7.07210e-3, 35, 343. , 1, kStateGas);
00739   AddMaterial("G4_Kr",  3.47832e-3, 36, 352. , 1, kStateGas);
00740   AddMaterial("G4_Rb",  1.532     , 37, 363. );
00741   AddMaterial("G4_Sr",  2.54      , 38, 366. );
00742   AddMaterial("G4_Y" ,  4.469     , 39, 379. );
00743   AddMaterial("G4_Zr",  6.506     , 40, 393. );
00744   AddMaterial("G4_Nb",  8.57      , 41, 417. );
00745   AddMaterial("G4_Mo", 10.22      , 42, 424. );
00746   AddMaterial("G4_Tc", 11.50      , 43, 428. );
00747   AddMaterial("G4_Ru", 12.41      , 44, 441. );
00748   AddMaterial("G4_Rh", 12.41      , 45, 449. );
00749   AddMaterial("G4_Pd", 12.02      , 46, 470. );
00750   AddMaterial("G4_Ag", 10.5       , 47, 470. );
00751   AddMaterial("G4_Cd",  8.65      , 48, 469. );
00752   AddMaterial("G4_In",  7.31      , 49, 488. );
00753   AddMaterial("G4_Sn",  7.31      , 50, 488. );
00754   AddMaterial("G4_Sb",  6.691     , 51, 487. );
00755   AddMaterial("G4_Te",  6.24      , 52, 485. );
00756   AddMaterial("G4_I" ,  4.93      , 53, 491. );
00757   AddMaterial("G4_Xe",  5.48536e-3, 54, 482. , 1, kStateGas);
00758   AddMaterial("G4_Cs",  1.873     , 55, 488. );
00759   AddMaterial("G4_Ba",  3.5       , 56, 491. );
00760   AddMaterial("G4_La",  6.154     , 57, 501. );
00761   AddMaterial("G4_Ce",  6.657     , 58, 523. );
00762   AddMaterial("G4_Pr",  6.71      , 59, 535. );
00763   AddMaterial("G4_Nd",  6.9       , 60, 546. );
00764   AddMaterial("G4_Pm",  7.22      , 61, 560. );
00765   AddMaterial("G4_Sm",  7.46      , 62, 574. );
00766   AddMaterial("G4_Eu",  5.243     , 63, 580. );
00767   AddMaterial("G4_Gd",  7.9004    , 64, 591. );
00768   AddMaterial("G4_Tb",  8.229     , 65, 614. );
00769   AddMaterial("G4_Dy",  8.55      , 66, 628. );
00770   AddMaterial("G4_Ho",  8.795     , 67, 650. );
00771   AddMaterial("G4_Er",  9.066     , 68, 658. );
00772   AddMaterial("G4_Tm",  9.321     , 69, 674. );
00773   AddMaterial("G4_Yb",  6.73      , 70, 684. );
00774   AddMaterial("G4_Lu",  9.84      , 71, 694. );
00775   AddMaterial("G4_Hf", 13.31      , 72, 705. );
00776   AddMaterial("G4_Ta", 16.654     , 73, 718. );
00777   AddMaterial("G4_W" , 19.30      , 74, 727. );
00778   AddMaterial("G4_Re", 21.02      , 75, 736. );
00779   AddMaterial("G4_Os", 22.57      , 76, 746. );
00780   AddMaterial("G4_Ir", 22.42      , 77, 757. );
00781   AddMaterial("G4_Pt", 21.45      , 78, 790. );
00782   AddMaterial("G4_Au", 19.32      , 79, 790. );
00783   AddMaterial("G4_Hg", 13.546     , 80, 800. );
00784   AddMaterial("G4_Tl", 11.72      , 81, 810. );
00785   AddMaterial("G4_Pb", 11.35      , 82, 823. );
00786   AddMaterial("G4_Bi",  9.747     , 83, 823. );
00787   AddMaterial("G4_Po",  9.32      , 84, 830. );
00788   AddMaterial("G4_At",  9.32      , 85, 825. );
00789   AddMaterial("G4_Rn",  9.00662e-3, 86, 794. , 1, kStateGas);
00790   AddMaterial("G4_Fr",  1.00      , 87, 827. );
00791   AddMaterial("G4_Ra",  5.00      , 88, 826. );
00792   AddMaterial("G4_Ac", 10.07      , 89, 841. );
00793   AddMaterial("G4_Th", 11.72      , 90, 847. );
00794   AddMaterial("G4_Pa", 15.37      , 91, 878. );
00795   AddMaterial("G4_U" , 18.95      , 92, 890. );
00796   AddMaterial("G4_Np", 20.25      , 93, 902. );
00797   AddMaterial("G4_Pu", 19.84      , 94, 921. );
00798   AddMaterial("G4_Am", 13.67      , 95, 934. );
00799   AddMaterial("G4_Cm", 13.51      , 96, 939. );
00800   AddMaterial("G4_Bk", 14.00      , 97, 952. );
00801   AddMaterial("G4_Cf", 10.00      , 98, 966. );
00802 
00803   nElementary = nMaterials;
00804 }
00805 
00806 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
00807 
00808 void G4NistMaterialBuilder::NistCompoundMaterials()
00809 {
00810   AddMaterial("G4_A-150_TISSUE", 1.127, 0, 65.1, 6);
00811   AddElementByWeightFraction( 1, 0.101327);
00812   AddElementByWeightFraction( 6, 0.775501);
00813   AddElementByWeightFraction( 7, 0.035057);
00814   AddElementByWeightFraction( 8, 0.052316);
00815   AddElementByWeightFraction( 9, 0.017422);
00816   AddElementByWeightFraction(20, 0.018378);
00817 
00818   AddMaterial("G4_ACETONE", 0.7899, 0, 64.2, 3);
00819   AddElementByWeightFraction( 1, 0.104122);
00820   AddElementByWeightFraction( 6, 0.620405);
00821   AddElementByWeightFraction( 8, 0.275473);
00822 
00823   AddMaterial("G4_ACETYLENE", 0.0010967, 0, 58.2, 2, kStateGas);
00824   AddElementByWeightFraction( 1, 0.077418);
00825   AddElementByWeightFraction( 6, 0.922582);
00826 
00827   AddMaterial("G4_ADENINE", 1.6/*1.35*/, 0, 71.4, 3);
00828   AddElementByAtomCount("H",5 );
00829   AddElementByAtomCount("C",5 );
00830   AddElementByAtomCount("N",5 );
00831 
00832   AddMaterial("G4_ADIPOSE_TISSUE_ICRP", 0.95, 0, 63.2, 7);
00833   AddElementByWeightFraction( 1, 0.114);
00834   AddElementByWeightFraction( 6, 0.598);
00835   AddElementByWeightFraction( 7, 0.007);
00836   AddElementByWeightFraction( 8, 0.278);
00837   AddElementByWeightFraction(11, 0.001);
00838   AddElementByWeightFraction(16, 0.001);
00839   AddElementByWeightFraction(17, 0.001);
00840 
00841   AddMaterial("G4_AIR", 0.00120479, 0, 85.7, 4, kStateGas);
00842   AddElementByWeightFraction( 6, 0.000124);
00843   AddElementByWeightFraction( 7, 0.755267);
00844   AddElementByWeightFraction( 8, 0.231781);
00845   AddElementByWeightFraction(18, 0.012827);
00846 
00847   AddMaterial("G4_ALANINE", 1.42, 0, 71.9, 4);
00848   AddElementByWeightFraction( 1, 0.07919 );
00849   AddElementByWeightFraction( 6, 0.404439);
00850   AddElementByWeightFraction( 7, 0.157213);
00851   AddElementByWeightFraction( 8, 0.359159);
00852 
00853   AddMaterial("G4_ALUMINUM_OXIDE", 3.97, 0, 145.2, 2);
00854   AddElementByWeightFraction( 8, 0.470749);
00855   AddElementByWeightFraction(13, 0.529251);
00856   chFormulas[nMaterials-1] = "Al_2O_3";
00857 
00858   AddMaterial("G4_AMBER", 1.1, 0, 63.2, 3);
00859   AddElementByWeightFraction( 1, 0.10593 );
00860   AddElementByWeightFraction( 6, 0.788973);
00861   AddElementByWeightFraction( 8, 0.105096);
00862 
00863   AddMaterial("G4_AMMONIA", 0.000826019, 0, 53.7, 2, kStateGas);
00864   AddElementByWeightFraction( 1, 0.177547);
00865   AddElementByWeightFraction( 7, 0.822453);
00866 
00867   AddMaterial("G4_ANILINE", 1.0235, 0, 66.2, 3);
00868   AddElementByWeightFraction( 1, 0.075759);
00869   AddElementByWeightFraction( 6, 0.773838);
00870   AddElementByWeightFraction( 7, 0.150403);
00871 
00872   AddMaterial("G4_ANTHRACENE", 1.283, 0, 69.5, 2);
00873   AddElementByWeightFraction( 1, 0.05655);
00874   AddElementByWeightFraction( 6, 0.94345);
00875 
00876   AddMaterial("G4_B-100_BONE", 1.45, 0, 85.9, 6);
00877   AddElementByWeightFraction( 1, 0.065471);
00878   AddElementByWeightFraction( 6, 0.536945);
00879   AddElementByWeightFraction( 7, 0.0215  );
00880   AddElementByWeightFraction( 8, 0.032085);
00881   AddElementByWeightFraction( 9, 0.167411);
00882   AddElementByWeightFraction(20, 0.176589);
00883 
00884   AddMaterial("G4_BAKELITE", 1.25, 0, 72.4, 3);
00885   AddElementByWeightFraction( 1, 0.057441);
00886   AddElementByWeightFraction( 6, 0.774591);
00887   AddElementByWeightFraction( 8, 0.167968);
00888 
00889   AddMaterial("G4_BARIUM_FLUORIDE", 4.89 ,0, 375.9, 2);
00890   AddElementByWeightFraction( 9, 0.21672);
00891   AddElementByWeightFraction(56, 0.78328);
00892 
00893   AddMaterial("G4_BARIUM_SULFATE", 4.5, 0, 285.7, 3);
00894   AddElementByWeightFraction( 8,0.274212);
00895   AddElementByWeightFraction(16,0.137368);
00896   AddElementByWeightFraction(56,0.58842 );
00897 
00898   AddMaterial("G4_BENZENE", 0.87865, 0, 63.4, 2);
00899   AddElementByWeightFraction( 1, 0.077418);
00900   AddElementByWeightFraction( 6, 0.922582);
00901 
00902   AddMaterial("G4_BERYLLIUM_OXIDE", 3.01, 0, 93.2, 2);
00903   AddElementByWeightFraction( 4, 0.36032);
00904   AddElementByWeightFraction( 8, 0.63968);
00905 
00906   AddMaterial("G4_BGO", 7.13, 0, 534.1, 3);
00907   AddElementByWeightFraction( 8, 0.154126);
00908   AddElementByWeightFraction(32, 0.17482 );
00909   AddElementByWeightFraction(83, 0.671054);
00910 
00911   AddMaterial("G4_BLOOD_ICRP", 1.06, 0, 75.2, 10);
00912   AddElementByWeightFraction( 1, 0.102);
00913   AddElementByWeightFraction( 6, 0.110);
00914   AddElementByWeightFraction( 7, 0.033);
00915   AddElementByWeightFraction( 8, 0.745);
00916   AddElementByWeightFraction(11, 0.001);
00917   AddElementByWeightFraction(15, 0.001);
00918   AddElementByWeightFraction(16, 0.002);
00919   AddElementByWeightFraction(17, 0.003);
00920   AddElementByWeightFraction(19, 0.002);
00921   AddElementByWeightFraction(26, 0.001);
00922 
00923   AddMaterial("G4_BONE_COMPACT_ICRU", 1.85, 0, 91.9, 8);
00924   AddElementByWeightFraction( 1, 0.064);
00925   AddElementByWeightFraction( 6, 0.278);
00926   AddElementByWeightFraction( 7, 0.027);
00927   AddElementByWeightFraction( 8, 0.410);
00928   AddElementByWeightFraction(12, 0.002);
00929   AddElementByWeightFraction(15, 0.07 );
00930   AddElementByWeightFraction(16, 0.002);
00931   AddElementByWeightFraction(20, 0.147);
00932 
00933   // Sceleton Cortical bone for Adult ICRU 46
00934   AddMaterial("G4_BONE_CORTICAL_ICRP", 1.92, 0, 110, 9);
00935   AddElementByWeightFraction( 1, 0.034);
00936   AddElementByWeightFraction( 6, 0.155);
00937   AddElementByWeightFraction( 7, 0.042);
00938   AddElementByWeightFraction( 8, 0.435);
00939   AddElementByWeightFraction(11, 0.001);
00940   AddElementByWeightFraction(12, 0.002);
00941   AddElementByWeightFraction(15, 0.103);
00942   AddElementByWeightFraction(16, 0.003);
00943   AddElementByWeightFraction(20, 0.225);
00944 
00945   AddMaterial("G4_BORON_CARBIDE", 2.52, 0, 84.7, 2);
00946   AddElementByWeightFraction( 5, 0.78261);
00947   AddElementByWeightFraction( 6, 0.21739);
00948 
00949   AddMaterial("G4_BORON_OXIDE", 1.812, 0, 99.6, 2);
00950   AddElementByWeightFraction( 5, 0.310551);
00951   AddElementByWeightFraction( 8, 0.689449);
00952 
00953   AddMaterial("G4_BRAIN_ICRP", 1.04, 0, 73.3, 9);
00954   AddElementByWeightFraction( 1, 0.107);
00955   AddElementByWeightFraction( 6, 0.145);
00956   AddElementByWeightFraction( 7, 0.022);
00957   AddElementByWeightFraction( 8, 0.712);
00958   AddElementByWeightFraction(11, 0.002);
00959   AddElementByWeightFraction(15, 0.004);
00960   AddElementByWeightFraction(16, 0.002);
00961   AddElementByWeightFraction(17, 0.003);
00962   AddElementByWeightFraction(19, 0.003);
00963 
00964   AddMaterial("G4_BUTANE", 0.00249343, 0, 48.3, 2, kStateGas);
00965   AddElementByWeightFraction( 1, 0.173408);
00966   AddElementByWeightFraction( 6, 0.826592);
00967 
00968   AddMaterial("G4_N-BUTYL_ALCOHOL", 0.8098, 0, 59.9, 3);
00969   AddElementByWeightFraction( 1, 0.135978);
00970   AddElementByWeightFraction( 6, 0.648171);
00971   AddElementByWeightFraction( 8, 0.215851);
00972 
00973   AddMaterial("G4_C-552", 1.76, 0, 86.8, 5);
00974   AddElementByWeightFraction( 1, 0.02468 );
00975   AddElementByWeightFraction( 6, 0.50161 );
00976   AddElementByWeightFraction( 8, 0.004527);
00977   AddElementByWeightFraction( 9, 0.465209);
00978   AddElementByWeightFraction(14, 0.003973);
00979 
00980   AddMaterial("G4_CADMIUM_TELLURIDE", 6.2, 0, 539.3, 2);
00981   AddElementByWeightFraction(48, 0.468355);
00982   AddElementByWeightFraction(52, 0.531645);
00983 
00984   AddMaterial("G4_CADMIUM_TUNGSTATE", 7.9, 0, 468.3, 3);
00985   AddElementByWeightFraction( 8, 0.177644);
00986   AddElementByWeightFraction(48, 0.312027);
00987   AddElementByWeightFraction(74, 0.510329);
00988 
00989   AddMaterial("G4_CALCIUM_CARBONATE", 2.8, 0, 136.4, 3);
00990   AddElementByWeightFraction( 6, 0.120003);
00991   AddElementByWeightFraction( 8, 0.479554);
00992   AddElementByWeightFraction(20, 0.400443);
00993 
00994   AddMaterial("G4_CALCIUM_FLUORIDE", 3.18, 0, 166., 2);
00995   AddElementByWeightFraction( 9, 0.486659);
00996   AddElementByWeightFraction(20, 0.513341);
00997 
00998   AddMaterial("G4_CALCIUM_OXIDE", 3.3, 0, 176.1, 2);
00999   AddElementByWeightFraction( 8, 0.285299);
01000   AddElementByWeightFraction(20, 0.714701);
01001 
01002   AddMaterial("G4_CALCIUM_SULFATE", 2.96, 0, 152.3, 3);
01003   AddElementByWeightFraction( 8, 0.470095);
01004   AddElementByWeightFraction(16, 0.235497);
01005   AddElementByWeightFraction(20, 0.294408);
01006 
01007   AddMaterial("G4_CALCIUM_TUNGSTATE", 6.062, 0, 395., 3);
01008   AddElementByWeightFraction( 8, 0.22227 );
01009   AddElementByWeightFraction(20, 0.139202);
01010   AddElementByWeightFraction(74, 0.638529);
01011 
01012   AddMaterial("G4_CARBON_DIOXIDE", 0.00184212, 0, 85., 2, kStateGas);
01013   AddElementByWeightFraction( 6, 0.272916);
01014   AddElementByWeightFraction( 8, 0.727084);
01015   chFormulas[nMaterials-1] = "CO_2";
01016 
01017   AddMaterial("G4_CARBON_TETRACHLORIDE", 1.594, 0, 166.3, 2);
01018   AddElementByWeightFraction( 6, 0.078083);
01019   AddElementByWeightFraction(17, 0.921917);
01020 
01021   AddMaterial("G4_CELLULOSE_CELLOPHANE", 1.42, 0, 77.6, 3);
01022   AddElementByWeightFraction( 1, 0.062162);
01023   AddElementByWeightFraction( 6, 0.444462);
01024   AddElementByWeightFraction( 8, 0.493376);
01025 
01026   AddMaterial("G4_CELLULOSE_BUTYRATE", 1.2, 0, 74.6, 3);
01027   AddElementByWeightFraction( 1, 0.067125);
01028   AddElementByWeightFraction( 6, 0.545403);
01029   AddElementByWeightFraction( 8, 0.387472);
01030 
01031   AddMaterial("G4_CELLULOSE_NITRATE", 1.49, 0, 87., 4);
01032   AddElementByWeightFraction( 1, 0.029216);
01033   AddElementByWeightFraction( 6, 0.271296);
01034   AddElementByWeightFraction( 7, 0.121276);
01035   AddElementByWeightFraction( 8, 0.578212);
01036 
01037   AddMaterial("G4_CERIC_SULFATE", 1.03, 0, 76.7, 5);
01038   AddElementByWeightFraction( 1, 0.107596);
01039   AddElementByWeightFraction( 7, 0.0008  );
01040   AddElementByWeightFraction( 8, 0.874976);
01041   AddElementByWeightFraction(16, 0.014627);
01042   AddElementByWeightFraction(58, 0.002001);
01043 
01044   AddMaterial("G4_CESIUM_FLUORIDE", 4.115, 0, 440.7, 2);
01045   AddElementByWeightFraction( 9, 0.125069);
01046   AddElementByWeightFraction(55, 0.874931);
01047 
01048   AddMaterial("G4_CESIUM_IODIDE", 4.51, 0, 553.1, 2);
01049   AddElementByWeightFraction(53, 0.488451);
01050   AddElementByWeightFraction(55, 0.511549);
01051 
01052   AddMaterial("G4_CHLOROBENZENE", 1.1058, 0, 89.1, 3);
01053   AddElementByWeightFraction( 1, 0.044772);
01054   AddElementByWeightFraction( 6, 0.640254);
01055   AddElementByWeightFraction(17, 0.314974);
01056 
01057   AddMaterial("G4_CHLOROFORM", 1.4832, 0, 156., 3);
01058   AddElementByWeightFraction( 1, 0.008443);
01059   AddElementByWeightFraction( 6, 0.100613);
01060   AddElementByWeightFraction(17, 0.890944);
01061 
01062   AddMaterial("G4_CONCRETE", 2.3, 0, 135.2, 10);
01063   AddElementByWeightFraction( 1, 0.01    );
01064   AddElementByWeightFraction( 6, 0.001   );
01065   AddElementByWeightFraction( 8, 0.529107);
01066   AddElementByWeightFraction(11, 0.016   );
01067   AddElementByWeightFraction(12, 0.002   );
01068   AddElementByWeightFraction(13, 0.033872);
01069   AddElementByWeightFraction(14, 0.337021);
01070   AddElementByWeightFraction(19, 0.013   );
01071   AddElementByWeightFraction(20, 0.044   );
01072   AddElementByWeightFraction(26, 0.014   );
01073 
01074   AddMaterial("G4_CYCLOHEXANE", 0.779, 0, 56.4, 2);
01075   AddElementByWeightFraction( 1, 0.143711);
01076   AddElementByWeightFraction( 6, 0.856289);
01077 
01078   AddMaterial("G4_1,2-DICHLOROBENZENE", 1.3048, 0, 106.5, 3);
01079   AddElementByWeightFraction( 1, 0.027425);
01080   AddElementByWeightFraction( 6, 0.490233);
01081   AddElementByWeightFraction(17, 0.482342);
01082 
01083   AddMaterial("G4_DICHLORODIETHYL_ETHER", 1.2199, 0, 103.3, 4);
01084   AddElementByWeightFraction( 1, 0.056381);
01085   AddElementByWeightFraction( 6, 0.335942);
01086   AddElementByWeightFraction( 8, 0.111874);
01087   AddElementByWeightFraction(17, 0.495802);
01088 
01089   AddMaterial("G4_1,2-DICHLOROETHANE", 1.2351, 0, 111.9, 3);
01090   AddElementByWeightFraction( 1, 0.04074 );
01091   AddElementByWeightFraction( 6, 0.242746);
01092   AddElementByWeightFraction(17, 0.716515);
01093 
01094   AddMaterial("G4_DIETHYL_ETHER", 0.71378, 0, 60., 3);
01095   AddElementByWeightFraction( 1, 0.135978);
01096   AddElementByWeightFraction( 6, 0.648171);
01097   AddElementByWeightFraction( 8, 0.215851);
01098 
01099   AddMaterial("G4_N,N-DIMETHYL_FORMAMIDE", 0.9487, 0, 66.6, 4);
01100   AddElementByWeightFraction( 1, 0.096523);
01101   AddElementByWeightFraction( 6, 0.492965);
01102   AddElementByWeightFraction( 7, 0.191625);
01103   AddElementByWeightFraction( 8, 0.218887);
01104 
01105   AddMaterial("G4_DIMETHYL_SULFOXIDE", 1.1014, 0, 98.6, 4);
01106   AddElementByWeightFraction( 1, 0.077403);
01107   AddElementByWeightFraction( 6, 0.307467);
01108   AddElementByWeightFraction( 8, 0.204782);
01109   AddElementByWeightFraction(16, 0.410348);
01110 
01111   AddMaterial("G4_ETHANE", 0.00125324, 0, 45.4, 2, kStateGas);
01112   AddElementByWeightFraction( 1, 0.201115);
01113   AddElementByWeightFraction( 6, 0.798885);
01114 
01115   AddMaterial("G4_ETHYL_ALCOHOL", 0.7893, 0, 62.9, 3);
01116   AddElementByWeightFraction( 1, 0.131269);
01117   AddElementByWeightFraction( 6, 0.521438);
01118   AddElementByWeightFraction( 8, 0.347294);
01119 
01120   AddMaterial("G4_ETHYL_CELLULOSE", 1.13, 0, 69.3, 3);
01121   AddElementByWeightFraction( 1, 0.090027);
01122   AddElementByWeightFraction( 6, 0.585182);
01123   AddElementByWeightFraction( 8, 0.324791);
01124 
01125   AddMaterial("G4_ETHYLENE", 0.00117497, 0, 50.7, 2, kStateGas);
01126   AddElementByWeightFraction( 1, 0.143711);
01127   AddElementByWeightFraction( 6, 0.856289);
01128 
01129   AddMaterial("G4_EYE_LENS_ICRP", 1.07, 0, 73.3, 8);
01130   AddElementByWeightFraction( 1, 0.096);
01131   AddElementByWeightFraction( 6, 0.195);
01132   AddElementByWeightFraction( 7, 0.057);
01133   AddElementByWeightFraction( 8, 0.646);
01134   AddElementByWeightFraction(11, 0.001);
01135   AddElementByWeightFraction(15, 0.001);
01136   AddElementByWeightFraction(16, 0.003);
01137   AddElementByWeightFraction(17, 0.001);
01138 
01139   AddMaterial("G4_FERRIC_OXIDE", 5.2, 0, 227.3, 2);
01140   AddElementByWeightFraction( 8, 0.300567);
01141   AddElementByWeightFraction(26, 0.699433);
01142 
01143   AddMaterial("G4_FERROBORIDE", 7.15, 0, 261., 2);
01144   AddElementByWeightFraction( 5, 0.162174);
01145   AddElementByWeightFraction(26, 0.837826);
01146 
01147   AddMaterial("G4_FERROUS_OXIDE", 5.7, 0, 248.6, 2);
01148   AddElementByWeightFraction( 8, 0.222689);
01149   AddElementByWeightFraction(26, 0.777311);
01150 
01151   AddMaterial("G4_FERROUS_SULFATE", 1.024, 0, 76.4, 7);
01152   AddElementByWeightFraction( 1, 0.108259);
01153   AddElementByWeightFraction( 7, 2.7e-05 );
01154   AddElementByWeightFraction( 8, 0.878636);
01155   AddElementByWeightFraction(11, 2.2e-05 );
01156   AddElementByWeightFraction(16, 0.012968);
01157   AddElementByWeightFraction(17, 3.4e-05 );
01158   AddElementByWeightFraction(26, 5.4e-05 );
01159 
01160   AddMaterial("G4_FREON-12", 1.12, 0, 143., 3);
01161   AddElementByWeightFraction( 6, 0.099335);
01162   AddElementByWeightFraction( 9, 0.314247);
01163   AddElementByWeightFraction(17, 0.586418);
01164 
01165   AddMaterial("G4_FREON-12B2", 1.8, 0, 284.9, 3);
01166   AddElementByWeightFraction( 6, 0.057245);
01167   AddElementByWeightFraction( 9, 0.181096);
01168   AddElementByWeightFraction(35, 0.761659);
01169 
01170   AddMaterial("G4_FREON-13", 0.95, 0, 126.6, 3);
01171   AddElementByWeightFraction( 6, 0.114983);
01172   AddElementByWeightFraction( 9, 0.545622);
01173   AddElementByWeightFraction(17, 0.339396);
01174 
01175   AddMaterial("G4_FREON-13B1", 1.5, 0, 210.5, 3);
01176   AddElementByWeightFraction( 6, 0.080659);
01177   AddElementByWeightFraction( 9, 0.382749);
01178   AddElementByWeightFraction(35, 0.536592);
01179 
01180   AddMaterial("G4_FREON-13I1", 1.8, 0, 293.5, 3);
01181   AddElementByWeightFraction( 6, 0.061309);
01182   AddElementByWeightFraction( 9, 0.290924);
01183   AddElementByWeightFraction(53, 0.647767);
01184 
01185   AddMaterial("G4_GADOLINIUM_OXYSULFIDE", 7.44, 0, 493.3, 3);
01186   AddElementByWeightFraction( 8, 0.084528);
01187   AddElementByWeightFraction(16, 0.08469 );
01188   AddElementByWeightFraction(64, 0.830782);
01189 
01190   AddMaterial("G4_GALLIUM_ARSENIDE", 5.31, 0, 384.9, 2);
01191   AddElementByWeightFraction(31, 0.482019);
01192   AddElementByWeightFraction(33, 0.517981);
01193 
01194   AddMaterial("G4_GEL_PHOTO_EMULSION", 1.2914, 0, 74.8, 5);
01195   AddElementByWeightFraction( 1, 0.08118);
01196   AddElementByWeightFraction( 6, 0.41606);
01197   AddElementByWeightFraction( 7, 0.11124);
01198   AddElementByWeightFraction( 8, 0.38064);
01199   AddElementByWeightFraction(16, 0.01088);
01200 
01201   AddMaterial("G4_Pyrex_Glass", 2.23, 0, 134., 6);
01202   AddElementByWeightFraction( 5, 0.040064);
01203   AddElementByWeightFraction( 8, 0.539562);
01204   AddElementByWeightFraction(11, 0.028191);
01205   AddElementByWeightFraction(13, 0.011644);
01206   AddElementByWeightFraction(14, 0.37722 );
01207   AddElementByWeightFraction(19, 0.003321);
01208 
01209   AddMaterial("G4_GLASS_LEAD", 6.22, 0, 526.4, 5);
01210   AddElementByWeightFraction( 8, 0.156453);
01211   AddElementByWeightFraction(14, 0.080866);
01212   AddElementByWeightFraction(22, 0.008092);
01213   AddElementByWeightFraction(33, 0.002651);
01214   AddElementByWeightFraction(82, 0.751938);
01215 
01216   AddMaterial("G4_GLASS_PLATE", 2.4, 0, 145.4, 4);
01217   AddElementByWeightFraction( 8, 0.4598  );
01218   AddElementByWeightFraction(11, 0.096441);
01219   AddElementByWeightFraction(14, 0.336553);
01220   AddElementByWeightFraction(20, 0.107205);
01221 
01222   AddMaterial("G4_GLUCOSE", 1.54, 0, 77.2, 3);
01223   AddElementByWeightFraction( 1, 0.071204);
01224   AddElementByWeightFraction( 6, 0.363652);
01225   AddElementByWeightFraction( 8, 0.565144);
01226 
01227   AddMaterial("G4_GLUTAMINE", 1.46, 0, 73.3, 4);
01228   AddElementByWeightFraction( 1, 0.068965);
01229   AddElementByWeightFraction( 6, 0.410926);
01230   AddElementByWeightFraction( 7, 0.191681);
01231   AddElementByWeightFraction( 8, 0.328427);
01232 
01233   AddMaterial("G4_GLYCEROL", 1.2613, 0, 72.6, 3);
01234   AddElementByWeightFraction( 1, 0.087554);
01235   AddElementByWeightFraction( 6, 0.391262);
01236   AddElementByWeightFraction( 8, 0.521185);
01237 
01238   AddMaterial("G4_GUANINE", 2.2/*1.58*/, 0, 75. ,4);
01239   AddElementByAtomCount("H",5 );
01240   AddElementByAtomCount("C",5 );
01241   AddElementByAtomCount("N",5 );
01242   AddElementByAtomCount("O",1 );
01243 
01244   AddMaterial("G4_GYPSUM", 2.32, 0, 129.7, 4);
01245   AddElementByWeightFraction( 1, 0.023416);
01246   AddElementByWeightFraction( 8, 0.557572);
01247   AddElementByWeightFraction(16, 0.186215);
01248   AddElementByWeightFraction(20, 0.232797);
01249 
01250   AddMaterial("G4_N-HEPTANE", 0.68376, 0, 54.4, 2);
01251   AddElementByWeightFraction( 1, 0.160937);
01252   AddElementByWeightFraction( 6, 0.839063);
01253 
01254   AddMaterial("G4_N-HEXANE", 0.6603, 0, 54., 2);
01255   AddElementByWeightFraction( 1, 0.163741);
01256   AddElementByWeightFraction( 6, 0.836259);
01257 
01258   AddMaterial("G4_KAPTON", 1.42, 0, 79.6, 4);
01259   AddElementByWeightFraction( 1, 0.026362);
01260   AddElementByWeightFraction( 6, 0.691133);
01261   AddElementByWeightFraction( 7, 0.07327 );
01262   AddElementByWeightFraction( 8, 0.209235);
01263 
01264   AddMaterial("G4_LANTHANUM_OXYBROMIDE", 6.28, 0, 439.7, 3);
01265   AddElementByWeightFraction( 8, 0.068138);
01266   AddElementByWeightFraction(35, 0.340294);
01267   AddElementByWeightFraction(57, 0.591568);
01268 
01269   AddMaterial("G4_LANTHANUM_OXYSULFIDE", 5.86, 0, 421.2, 3);
01270   AddElementByWeightFraction( 8, 0.0936  );
01271   AddElementByWeightFraction(16, 0.093778);
01272   AddElementByWeightFraction(57, 0.812622);
01273 
01274   AddMaterial("G4_LEAD_OXIDE", 9.53, 0, 766.7, 2);
01275   AddElementByWeightFraction( 8, 0.071682);
01276   AddElementByWeightFraction(82, 0.928318);
01277 
01278   AddMaterial("G4_LITHIUM_AMIDE", 1.178, 0, 55.5, 3);
01279   AddElementByWeightFraction( 1, 0.087783);
01280   AddElementByWeightFraction( 3, 0.302262);
01281   AddElementByWeightFraction( 7, 0.609955);
01282 
01283   AddMaterial("G4_LITHIUM_CARBONATE", 2.11, 0, 87.9, 3);
01284   AddElementByWeightFraction( 3, 0.187871);
01285   AddElementByWeightFraction( 6, 0.16255 );
01286   AddElementByWeightFraction( 8, 0.649579);
01287 
01288   AddMaterial("G4_LITHIUM_FLUORIDE", 2.635, 0, 94., 2);
01289   AddElementByWeightFraction( 3, 0.267585);
01290   AddElementByWeightFraction( 9, 0.732415);
01291 
01292   AddMaterial("G4_LITHIUM_HYDRIDE", 0.82, 0, 36.5, 2);
01293   AddElementByWeightFraction( 1, 0.126797);
01294   AddElementByWeightFraction( 3, 0.873203);
01295 
01296   AddMaterial("G4_LITHIUM_IODIDE", 3.494, 0, 485.1, 2);
01297   AddElementByWeightFraction( 3, 0.051858);
01298   AddElementByWeightFraction(53, 0.948142);
01299 
01300   AddMaterial("G4_LITHIUM_OXIDE", 2.013, 0, 73.6, 2);
01301   AddElementByWeightFraction( 3, 0.46457);
01302   AddElementByWeightFraction( 8, 0.53543);
01303 
01304   AddMaterial("G4_LITHIUM_TETRABORATE", 2.44, 0, 94.6, 3);
01305   AddElementByWeightFraction( 3, 0.082085);
01306   AddElementByWeightFraction( 5, 0.25568 );
01307   AddElementByWeightFraction( 8, 0.662235);
01308 
01309   //Adult Lung congested
01310   AddMaterial("G4_LUNG_ICRP", 1.04, 0, 75.3, 9);
01311   AddElementByWeightFraction( 1, 0.105);
01312   AddElementByWeightFraction( 6, 0.083);
01313   AddElementByWeightFraction( 7, 0.023);
01314   AddElementByWeightFraction( 8, 0.779);
01315   AddElementByWeightFraction(11, 0.002);
01316   AddElementByWeightFraction(15, 0.001);
01317   AddElementByWeightFraction(16, 0.002);
01318   AddElementByWeightFraction(17, 0.003);
01319   AddElementByWeightFraction(19, 0.002);
01320 
01321   AddMaterial("G4_M3_WAX", 1.05, 0, 67.9, 5);
01322   AddElementByWeightFraction( 1, 0.114318);
01323   AddElementByWeightFraction( 6, 0.655823);
01324   AddElementByWeightFraction( 8, 0.092183);
01325   AddElementByWeightFraction(12, 0.134792);
01326   AddElementByWeightFraction(20, 0.002883);
01327 
01328   AddMaterial("G4_MAGNESIUM_CARBONATE", 2.958, 0, 118., 3);
01329   AddElementByWeightFraction( 6, 0.142455);
01330   AddElementByWeightFraction( 8, 0.569278);
01331   AddElementByWeightFraction(12, 0.288267);
01332 
01333   AddMaterial("G4_MAGNESIUM_FLUORIDE", 3.0, 0, 134.3, 2);
01334   AddElementByWeightFraction( 9, 0.609883);
01335   AddElementByWeightFraction(12, 0.390117);
01336 
01337   AddMaterial("G4_MAGNESIUM_OXIDE", 3.58, 0, 143.8, 2);
01338   AddElementByWeightFraction( 8, 0.396964);
01339   AddElementByWeightFraction(12, 0.603036);
01340 
01341   AddMaterial("G4_MAGNESIUM_TETRABORATE", 2.53, 0, 108.3, 3);
01342   AddElementByWeightFraction( 5, 0.240837);
01343   AddElementByWeightFraction( 8, 0.62379);
01344   AddElementByWeightFraction(12, 0.135373);
01345 
01346   AddMaterial("G4_MERCURIC_IODIDE", 6.36, 0, 684.5, 2);
01347   AddElementByWeightFraction(53, 0.55856);
01348   AddElementByWeightFraction(80, 0.44144);
01349 
01350   AddMaterial("G4_METHANE", 0.000667151, 0, 41.7, 2, kStateGas);
01351   AddElementByWeightFraction( 1, 0.251306);
01352   AddElementByWeightFraction( 6, 0.748694);
01353 
01354   AddMaterial("G4_METHANOL", 0.7914, 0, 67.6, 3);
01355   AddElementByWeightFraction( 1, 0.125822);
01356   AddElementByWeightFraction( 6, 0.374852);
01357   AddElementByWeightFraction( 8, 0.499326);
01358 
01359   AddMaterial("G4_MIX_D_WAX", 0.99, 0, 60.9, 5);
01360   AddElementByWeightFraction( 1, 0.13404 );
01361   AddElementByWeightFraction( 6, 0.77796 );
01362   AddElementByWeightFraction( 8, 0.03502 );
01363   AddElementByWeightFraction(12, 0.038594);
01364   AddElementByWeightFraction(22, 0.014386);
01365 
01366   AddMaterial("G4_MS20_TISSUE", 1.0, 0, 75.1, 6);
01367   AddElementByWeightFraction( 1, 0.081192);
01368   AddElementByWeightFraction( 6, 0.583442);
01369   AddElementByWeightFraction( 7, 0.017798);
01370   AddElementByWeightFraction( 8, 0.186381);
01371   AddElementByWeightFraction(12, 0.130287);
01372   AddElementByWeightFraction(17, 0.0009  );
01373 
01374   AddMaterial("G4_MUSCLE_SKELETAL_ICRP", 1.05, 0, 75.3, 9);
01375   AddElementByWeightFraction( 1, 0.102);
01376   AddElementByWeightFraction( 6, 0.143);
01377   AddElementByWeightFraction( 7, 0.034);
01378   AddElementByWeightFraction( 8, 0.710);
01379   AddElementByWeightFraction(11, 0.001);
01380   AddElementByWeightFraction(15, 0.002);
01381   AddElementByWeightFraction(16, 0.003);
01382   AddElementByWeightFraction(17, 0.001);
01383   AddElementByWeightFraction(19, 0.004);
01384 
01385   // from old ICRU report
01386   AddMaterial("G4_MUSCLE_STRIATED_ICRU", 1.04, 0, 74.7, 8);
01387   AddElementByWeightFraction( 1, 0.102);
01388   AddElementByWeightFraction( 6, 0.123);
01389   AddElementByWeightFraction( 7, 0.035);
01390   AddElementByWeightFraction( 8, 0.729);
01391   AddElementByWeightFraction(11, 0.001);
01392   AddElementByWeightFraction(15, 0.002);
01393   AddElementByWeightFraction(16, 0.004);
01394   AddElementByWeightFraction(19, 0.003);
01395 
01396   AddMaterial("G4_MUSCLE_WITH_SUCROSE", 1.11, 0, 74.3, 4);
01397   AddElementByWeightFraction( 1, 0.098234);
01398   AddElementByWeightFraction( 6, 0.156214);
01399   AddElementByWeightFraction( 7, 0.035451);
01400   AddElementByWeightFraction( 8, 0.7101  );
01401   
01402   AddMaterial("G4_MUSCLE_WITHOUT_SUCROSE", 1.07, 0, 74.2, 4);
01403   AddElementByWeightFraction( 1, 0.101969);
01404   AddElementByWeightFraction( 6, 0.120058);
01405   AddElementByWeightFraction( 7, 0.035451);
01406   AddElementByWeightFraction( 8, 0.742522);
01407 
01408   AddMaterial("G4_NAPHTHALENE", 1.145, 0, 68.4, 2);
01409   AddElementByWeightFraction( 1, 0.062909);
01410   AddElementByWeightFraction( 6, 0.937091);
01411 
01412   AddMaterial("G4_NITROBENZENE", 1.19867, 0, 75.8, 4);
01413   AddElementByWeightFraction( 1, 0.040935);
01414   AddElementByWeightFraction( 6, 0.585374);
01415   AddElementByWeightFraction( 7, 0.113773);
01416   AddElementByWeightFraction( 8, 0.259918);
01417 
01418   AddMaterial("G4_NITROUS_OXIDE", 0.00183094, 0, 84.9, 2, kStateGas);
01419   AddElementByWeightFraction( 7, 0.636483);
01420   AddElementByWeightFraction( 8, 0.363517);
01421 
01422   AddMaterial("G4_NYLON-8062", 1.08, 0, 64.3, 4);
01423   AddElementByWeightFraction( 1, 0.103509);
01424   AddElementByWeightFraction( 6, 0.648415);
01425   AddElementByWeightFraction( 7, 0.099536);
01426   AddElementByWeightFraction( 8, 0.148539);
01427 
01428   AddMaterial("G4_NYLON-6-6", 1.14, 0, 63.9, 4);
01429   AddElementByWeightFraction( 1, 0.097976);
01430   AddElementByWeightFraction( 6, 0.636856);
01431   AddElementByWeightFraction( 7, 0.123779);
01432   AddElementByWeightFraction( 8, 0.141389);
01433 
01434   AddMaterial("G4_NYLON-6-10", 1.14, 0, 63.2, 4);
01435   AddElementByWeightFraction( 1, 0.107062);
01436   AddElementByWeightFraction( 6, 0.680449);
01437   AddElementByWeightFraction( 7, 0.099189);
01438   AddElementByWeightFraction( 8, 0.1133  );
01439 
01440   AddMaterial("G4_NYLON-11_RILSAN", 1.425, 0, 61.6, 4);
01441   AddElementByWeightFraction( 1, 0.115476);
01442   AddElementByWeightFraction( 6, 0.720819);
01443   AddElementByWeightFraction( 7, 0.076417);
01444   AddElementByWeightFraction( 8, 0.087289);
01445 
01446   AddMaterial("G4_OCTANE", 0.7026, 0, 54.7, 2);
01447   AddElementByWeightFraction( 1, 0.158821);
01448   AddElementByWeightFraction( 6, 0.841179);
01449 
01450   AddMaterial("G4_PARAFFIN", 0.93, 0, 55.9, 2);
01451   AddElementByWeightFraction( 1, 0.148605);
01452   AddElementByWeightFraction( 6, 0.851395);
01453 
01454   AddMaterial("G4_N-PENTANE", 0.6262, 0, 53.6, 2);
01455   AddElementByWeightFraction( 1, 0.167635);
01456   AddElementByWeightFraction (6, 0.832365);
01457 
01458   AddMaterial("G4_PHOTO_EMULSION", 3.815, 0, 331., 8);
01459   AddElementByWeightFraction( 1, 0.0141  );
01460   AddElementByWeightFraction( 6, 0.072261);
01461   AddElementByWeightFraction( 7, 0.01932 );
01462   AddElementByWeightFraction( 8, 0.066101);
01463   AddElementByWeightFraction(16, 0.00189 );
01464   AddElementByWeightFraction(35, 0.349103);
01465   AddElementByWeightFraction(47, 0.474105);
01466   AddElementByWeightFraction(53, 0.00312 );
01467 
01468   AddMaterial("G4_PLASTIC_SC_VINYLTOLUENE", 1.032, 0, 64.7, 2);
01469   AddElementByWeightFraction( 1, 0.085);
01470   AddElementByWeightFraction( 6, 0.915);
01471 
01472   AddMaterial("G4_PLUTONIUM_DIOXIDE", 11.46, 0, 746.5, 2);
01473   AddElementByWeightFraction( 8, 0.118055);
01474   AddElementByWeightFraction(94, 0.881945);
01475 
01476   AddMaterial("G4_POLYACRYLONITRILE", 1.17, 0, 69.6, 3);
01477   AddElementByWeightFraction( 1, 0.056983);
01478   AddElementByWeightFraction( 6, 0.679056);
01479   AddElementByWeightFraction( 7, 0.263962);
01480 
01481   AddMaterial("G4_POLYCARBONATE", 1.2, 0, 73.1, 3);
01482   AddElementByWeightFraction( 1, 0.055491);
01483   AddElementByWeightFraction( 6, 0.755751);
01484   AddElementByWeightFraction( 8, 0.188758);
01485 
01486   AddMaterial("G4_POLYCHLOROSTYRENE", 1.3, 0, 81.7, 3);
01487   AddElementByWeightFraction( 1, 0.061869);
01488   AddElementByWeightFraction( 6, 0.696325);
01489   AddElementByWeightFraction(17, 0.241806);
01490 
01491   AddMaterial("G4_POLYETHYLENE", 0.94, 0, 57.4, 2);
01492   AddElementByWeightFraction( 1, 0.143711);
01493   AddElementByWeightFraction( 6, 0.856289);
01494   chFormulas[nMaterials-1] = "(C_2H_4)_N-Polyethylene";
01495 
01496   AddMaterial("G4_MYLAR", 1.4, 0, 78.7, 3);
01497   AddElementByWeightFraction( 1, 0.041959);
01498   AddElementByWeightFraction( 6, 0.625017);
01499   AddElementByWeightFraction( 8, 0.333025);
01500 
01501   AddMaterial("G4_PLEXIGLASS", 1.19, 0, 74., 3);
01502   AddElementByWeightFraction( 1, 0.080538);
01503   AddElementByWeightFraction( 6, 0.599848);
01504   AddElementByWeightFraction( 8, 0.319614);
01505 
01506   AddMaterial("G4_POLYOXYMETHYLENE", 1.425 ,0, 77.4, 3);
01507   AddElementByWeightFraction( 1, 0.067135);
01508   AddElementByWeightFraction( 6, 0.400017);
01509   AddElementByWeightFraction( 8, 0.532848);
01510 
01511   AddMaterial("G4_POLYPROPYLENE", 0.9, 0, 56.5, 2);
01512   AddElementByWeightFraction( 1, 0.143711);
01513   AddElementByWeightFraction( 6, 0.856289);
01514   chFormulas[nMaterials-1] = "(C_2H_4)_N-Polypropylene";
01515 
01516   AddMaterial("G4_POLYSTYRENE", 1.06, 0, 68.7, 2);
01517   AddElementByWeightFraction( 1, 0.077418);
01518   AddElementByWeightFraction( 6, 0.922582);
01519 
01520   AddMaterial("G4_TEFLON", 2.2, 0, 99.1, 2);
01521   AddElementByWeightFraction( 6, 0.240183);
01522   AddElementByWeightFraction( 9, 0.759817);
01523 
01524   AddMaterial("G4_POLYTRIFLUOROCHLOROETHYLENE", 2.1, 0, 120.7, 3);
01525   // correct chemical name Polychlorotrifluoroethylene [CF2CClF]n, IvantchenkoA.
01526   AddElementByWeightFraction( 6, 0.20625 );
01527   AddElementByWeightFraction( 9, 0.489354);
01528   AddElementByWeightFraction(17, 0.304395);
01529 
01530   AddMaterial("G4_POLYVINYL_ACETATE", 1.19, 0, 73.7, 3);
01531   AddElementByWeightFraction( 1, 0.070245);
01532   AddElementByWeightFraction( 6, 0.558066);
01533   AddElementByWeightFraction( 8, 0.371689);
01534 
01535   AddMaterial("G4_POLYVINYL_ALCOHOL", 1.3, 0, 69.7, 3);
01536   AddElementByWeightFraction( 1, 0.091517);
01537   AddElementByWeightFraction( 6, 0.545298);
01538   AddElementByWeightFraction( 8, 0.363185);
01539 
01540   AddMaterial("G4_POLYVINYL_BUTYRAL", 1.12, 0, 67.2, 3);
01541   AddElementByWeightFraction( 1, 0.092802);
01542   AddElementByWeightFraction( 6, 0.680561);
01543   AddElementByWeightFraction( 8, 0.226637);
01544 
01545   AddMaterial("G4_POLYVINYL_CHLORIDE", 1.3, 0, 108.2, 3);
01546   AddElementByWeightFraction( 1, 0.04838);
01547   AddElementByWeightFraction( 6, 0.38436);
01548   AddElementByWeightFraction(17, 0.56726);
01549 
01550   AddMaterial("G4_POLYVINYLIDENE_CHLORIDE", 1.7, 0, 134.3, 3);
01551   AddElementByWeightFraction( 1, 0.020793);
01552   AddElementByWeightFraction( 6, 0.247793);
01553   AddElementByWeightFraction(17, 0.731413);
01554 
01555   AddMaterial("G4_POLYVINYLIDENE_FLUORIDE", 1.76, 0, 88.8, 3);
01556   AddElementByWeightFraction( 1, 0.03148 );
01557   AddElementByWeightFraction( 6, 0.375141);
01558   AddElementByWeightFraction( 9, 0.593379);
01559 
01560   AddMaterial("G4_POLYVINYL_PYRROLIDONE", 1.25, 0, 67.7, 4);
01561   AddElementByWeightFraction( 1, 0.081616);
01562   AddElementByWeightFraction( 6, 0.648407);
01563   AddElementByWeightFraction( 7, 0.126024);
01564   AddElementByWeightFraction( 8, 0.143953);
01565 
01566   AddMaterial("G4_POTASSIUM_IODIDE", 3.13, 0, 431.9, 2);
01567   AddElementByWeightFraction(19, 0.235528);
01568   AddElementByWeightFraction(53, 0.764472);
01569 
01570   AddMaterial("G4_POTASSIUM_OXIDE", 2.32, 0, 189.9, 2);
01571   AddElementByWeightFraction( 8, 0.169852);
01572   AddElementByWeightFraction(19, 0.830148);
01573 
01574   AddMaterial("G4_PROPANE", 0.00187939, 0, 47.1, 2, kStateGas);
01575   AddElementByWeightFraction( 1, 0.182855);
01576   AddElementByWeightFraction( 6, 0.817145);
01577 
01578   AddMaterial("G4_lPROPANE", 0.43, 0, 52., 2);
01579   AddElementByWeightFraction( 1, 0.182855);
01580   AddElementByWeightFraction( 6, 0.817145);
01581 
01582   AddMaterial("G4_N-PROPYL_ALCOHOL", 0.8035, 0, 61.1, 3);
01583   AddElementByWeightFraction( 1, 0.134173);
01584   AddElementByWeightFraction( 6, 0.599595);
01585   AddElementByWeightFraction( 8, 0.266232);
01586 
01587   AddMaterial("G4_PYRIDINE", 0.9819, 0, 66.2, 3);
01588   AddElementByWeightFraction( 1, 0.06371 );
01589   AddElementByWeightFraction( 6, 0.759217);
01590   AddElementByWeightFraction( 7, 0.177073);
01591 
01592   AddMaterial("G4_RUBBER_BUTYL", 0.92, 0, 56.5, 2);
01593   AddElementByWeightFraction( 1, 0.143711);
01594   AddElementByWeightFraction( 6, 0.856289);
01595 
01596   AddMaterial("G4_RUBBER_NATURAL", 0.92, 0, 59.8, 2);
01597   AddElementByWeightFraction( 1, 0.118371);
01598   AddElementByWeightFraction( 6, 0.881629);
01599 
01600   AddMaterial("G4_RUBBER_NEOPRENE", 1.23, 0, 93., 3);
01601   AddElementByWeightFraction( 1, 0.05692 );
01602   AddElementByWeightFraction( 6, 0.542646);
01603   AddElementByWeightFraction(17, 0.400434);
01604 
01605   AddMaterial("G4_SILICON_DIOXIDE", 2.32, 0, 139.2, 2);
01606   AddElementByWeightFraction( 8, 0.532565);
01607   AddElementByWeightFraction(14, 0.467435);
01608   chFormulas[nMaterials-1] = "SiO_2";
01609 
01610   AddMaterial("G4_SILVER_BROMIDE", 6.473, 0, 486.6, 2);
01611   AddElementByWeightFraction(35, 0.425537);
01612   AddElementByWeightFraction(47, 0.574463);
01613 
01614   AddMaterial("G4_SILVER_CHLORIDE", 5.56, 0, 398.4, 2);
01615   AddElementByWeightFraction(17, 0.247368);
01616   AddElementByWeightFraction(47, 0.752632);
01617 
01618   AddMaterial("G4_SILVER_HALIDES", 6.47, 0, 487.1, 3);
01619   AddElementByWeightFraction(35, 0.422895);
01620   AddElementByWeightFraction(47, 0.573748);
01621   AddElementByWeightFraction(53, 0.003357);
01622 
01623   AddMaterial("G4_SILVER_IODIDE", 6.01, 0, 543.5, 2);
01624   AddElementByWeightFraction(47, 0.459458);
01625   AddElementByWeightFraction(53, 0.540542);
01626 
01627   AddMaterial("G4_SKIN_ICRP", 1.09, 0, 72.7, 9);
01628   AddElementByWeightFraction( 1, 0.100);
01629   AddElementByWeightFraction( 6, 0.204);
01630   AddElementByWeightFraction( 7, 0.042);
01631   AddElementByWeightFraction( 8, 0.645);
01632   AddElementByWeightFraction(11, 0.002);
01633   AddElementByWeightFraction(15, 0.001);
01634   AddElementByWeightFraction(16, 0.002);
01635   AddElementByWeightFraction(17, 0.003);
01636   AddElementByWeightFraction(19, 0.001);
01637 
01638   AddMaterial("G4_SODIUM_CARBONATE", 2.532, 0, 125., 3);
01639   AddElementByWeightFraction( 6, 0.113323);
01640   AddElementByWeightFraction( 8, 0.452861);
01641   AddElementByWeightFraction(11, 0.433815);
01642 
01643   AddMaterial("G4_SODIUM_IODIDE", 3.667, 0, 452., 2);
01644   AddElementByWeightFraction(11, 0.153373);
01645   AddElementByWeightFraction(53, 0.846627);
01646 
01647   AddMaterial("G4_SODIUM_MONOXIDE", 2.27, 0, 148.8, 2);
01648   AddElementByWeightFraction( 8, 0.258143);
01649   AddElementByWeightFraction(11, 0.741857);
01650 
01651   AddMaterial("G4_SODIUM_NITRATE", 2.261, 0, 114.6, 3);
01652   AddElementByWeightFraction( 7, 0.164795);
01653   AddElementByWeightFraction( 8, 0.56472 );
01654   AddElementByWeightFraction(11, 0.270485);
01655 
01656   AddMaterial("G4_STILBENE", 0.9707, 0, 67.7, 2);
01657   AddElementByWeightFraction( 1, 0.067101);
01658   AddElementByWeightFraction( 6, 0.932899);
01659 
01660   AddMaterial("G4_SUCROSE", 1.5805, 0, 77.5, 3);
01661   AddElementByWeightFraction( 1, 0.064779);
01662   AddElementByWeightFraction( 6, 0.42107);
01663   AddElementByWeightFraction( 8, 0.514151);
01664 
01665   AddMaterial("G4_TERPHENYL", 1.234, 0, 71.7, 2);
01666   AddElementByWeightFraction( 1, 0.044543);
01667   AddElementByWeightFraction( 6, 0.955457);
01668 
01669   AddMaterial("G4_TESTIS_ICRP", 1.04, 0, 75., 9);
01670   AddElementByWeightFraction( 1, 0.106);
01671   AddElementByWeightFraction( 6, 0.099);
01672   AddElementByWeightFraction( 7, 0.020);
01673   AddElementByWeightFraction( 8, 0.766);
01674   AddElementByWeightFraction(11, 0.002);
01675   AddElementByWeightFraction(15, 0.001);
01676   AddElementByWeightFraction(16, 0.002);
01677   AddElementByWeightFraction(17, 0.002);
01678   AddElementByWeightFraction(19, 0.002);
01679 
01680   AddMaterial("G4_TETRACHLOROETHYLENE", 1.625, 0, 159.2, 2);
01681   AddElementByWeightFraction( 6, 0.144856);
01682   AddElementByWeightFraction(17, 0.855144);
01683 
01684   AddMaterial("G4_THALLIUM_CHLORIDE", 7.004, 0, 690.3, 2);
01685   AddElementByWeightFraction(17, 0.147822);
01686   AddElementByWeightFraction(81, 0.852178);
01687 
01688   // TISSUE_SOFT_MALE ICRU-44/46 (1989)
01689   AddMaterial("G4_TISSUE_SOFT_ICRP", 1.03, 0, 72.3, 9);
01690   AddElementByWeightFraction( 1, 0.105);
01691   AddElementByWeightFraction( 6, 0.256);
01692   AddElementByWeightFraction( 7, 0.027);
01693   AddElementByWeightFraction( 8, 0.602);
01694   AddElementByWeightFraction(11, 0.001);
01695   AddElementByWeightFraction(15, 0.002);
01696   AddElementByWeightFraction(16, 0.003);
01697   AddElementByWeightFraction(17, 0.002);
01698   AddElementByWeightFraction(19, 0.002);
01699 
01700   // Tissue soft adult ICRU-33 (1980)
01701   AddMaterial("G4_TISSUE_SOFT_ICRU-4", 1.0, 0, 74.9, 4);
01702   AddElementByWeightFraction( 1, 0.101);
01703   AddElementByWeightFraction( 6, 0.111);
01704   AddElementByWeightFraction( 7, 0.026);
01705   AddElementByWeightFraction( 8, 0.762);
01706 
01707   AddMaterial("G4_TISSUE-METHANE", 0.00106409, 0, 61.2, 4, kStateGas);
01708   AddElementByWeightFraction( 1, 0.101869);
01709   AddElementByWeightFraction( 6, 0.456179);
01710   AddElementByWeightFraction( 7, 0.035172);
01711   AddElementByWeightFraction( 8, 0.40678 );
01712 
01713   AddMaterial("G4_TISSUE-PROPANE", 0.00182628, 0, 59.5, 4, kStateGas);
01714   AddElementByWeightFraction( 1, 0.102672);
01715   AddElementByWeightFraction( 6, 0.56894 );
01716   AddElementByWeightFraction( 7, 0.035022);
01717   AddElementByWeightFraction( 8, 0.293366);
01718 
01719   AddMaterial("G4_TITANIUM_DIOXIDE", 4.26, 0, 179.5, 2);
01720   AddElementByWeightFraction( 8, 0.400592);
01721   AddElementByWeightFraction(22, 0.599408);
01722 
01723   AddMaterial("G4_TOLUENE", 0.8669, 0, 62.5, 2);
01724   AddElementByWeightFraction( 1, 0.08751);
01725   AddElementByWeightFraction( 6, 0.91249);
01726 
01727   AddMaterial("G4_TRICHLOROETHYLENE", 1.46, 0, 148.1, 3);
01728   AddElementByWeightFraction( 1, 0.007671);
01729   AddElementByWeightFraction( 6, 0.182831);
01730   AddElementByWeightFraction(17, 0.809498);
01731 
01732   AddMaterial("G4_TRIETHYL_PHOSPHATE", 1.07, 0, 81.2, 4);
01733   AddElementByWeightFraction( 1, 0.082998);
01734   AddElementByWeightFraction( 6, 0.395628);
01735   AddElementByWeightFraction( 8, 0.351334);
01736   AddElementByWeightFraction(15, 0.17004 );
01737 
01738   AddMaterial("G4_TUNGSTEN_HEXAFLUORIDE", 2.4, 0, 354.4, 2);
01739   AddElementByWeightFraction( 9, 0.382723);
01740   AddElementByWeightFraction(74, 0.617277);
01741 
01742   AddMaterial("G4_URANIUM_DICARBIDE", 11.28, 0, 752., 2);
01743   AddElementByWeightFraction( 6, 0.091669);
01744   AddElementByWeightFraction(92, 0.908331);
01745 
01746   AddMaterial("G4_URANIUM_MONOCARBIDE", 13.63, 0, 862., 2);
01747   AddElementByWeightFraction( 6, 0.048036);
01748   AddElementByWeightFraction(92, 0.951964);
01749 
01750   AddMaterial("G4_URANIUM_OXIDE", 10.96, 0, 720.6, 2);
01751   AddElementByWeightFraction( 8, 0.118502);
01752   AddElementByWeightFraction(92, 0.881498);
01753 
01754   AddMaterial("G4_UREA", 1.323, 0, 72.8, 4);
01755   AddElementByWeightFraction( 1, 0.067131);
01756   AddElementByWeightFraction( 6, 0.199999);
01757   AddElementByWeightFraction( 7, 0.466459);
01758   AddElementByWeightFraction( 8, 0.266411);
01759 
01760   AddMaterial("G4_VALINE", 1.23, 0, 67.7, 4);
01761   AddElementByWeightFraction( 1, 0.094641);
01762   AddElementByWeightFraction( 6, 0.512645);
01763   AddElementByWeightFraction( 7, 0.119565);
01764   AddElementByWeightFraction( 8, 0.27315 );
01765 
01766   AddMaterial("G4_VITON", 1.8, 0, 98.6, 3);
01767   AddElementByWeightFraction( 1, 0.009417);
01768   AddElementByWeightFraction( 6, 0.280555);
01769   AddElementByWeightFraction( 9, 0.710028);
01770 
01771   AddMaterial("G4_WATER", 1.0,0, 78., 2);
01772   AddElementByAtomCount("H", 2);
01773   AddElementByAtomCount("O", 1);
01774   chFormulas[nMaterials-1] = "H_2O";
01775 
01776   AddMaterial("G4_WATER_VAPOR", 0.000756182, 0, 71.6, 2, kStateGas);
01777   AddElementByAtomCount("H", 2);
01778   AddElementByAtomCount("O", 1);
01779   chFormulas[nMaterials-1] = "H_2O-Gas";
01780 
01781   AddMaterial("G4_XYLENE", 0.87, 0, 61.8, 2);
01782   AddElementByWeightFraction( 1, 0.094935);
01783   AddElementByWeightFraction( 6, 0.905065);
01784 
01785   AddMaterial("G4_GRAPHITE", 2.21, 6, 78.);
01786   chFormulas[nMaterials-1] = "Graphite";
01787 
01788   nNIST = nMaterials;
01789 }
01790 
01791 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
01792 
01793 void G4NistMaterialBuilder::HepAndNuclearMaterials()
01794 {
01795   AddMaterial("G4_lH2", 0.0708,  1,  21.8, 1, kStateLiquid, false);
01796   AddMaterial("G4_lN2", 0.807,   7,  82.,  1, kStateLiquid, false);
01797   AddMaterial("G4_lO2", 1.141,   8,  95.,  1, kStateLiquid, false);
01798   AddMaterial("G4_lAr", 1.396 , 18, 188. , 1, kStateLiquid, false);
01799   AddMaterial("G4_lKr", 2.418 , 36, 352. , 1, kStateLiquid, false);
01800   AddMaterial("G4_lXe", 2.953 , 54, 482. , 1, kStateLiquid, false);
01801 
01802   AddMaterial("G4_PbWO4", 8.28, 0, 0.0, 3);
01803   AddElementByAtomCount("O" , 4);
01804   AddElementByAtomCount("Pb", 1);
01805   AddElementByAtomCount("W" , 1);
01806 
01807   G4double density = universe_mean_density*cm3/g;
01808   AddMaterial("G4_Galactic", density, 1, 21.8, 1, kStateGas);
01809   AddGas("G4_Galactic",2.73*kelvin, 3.e-18*pascal);
01810 
01811   AddMaterial("G4_GRAPHITE_POROUS", 1.7, 6, 78.);
01812   chFormulas[nMaterials-1] = "Graphite";
01813 
01814   // LUCITE is equal to plustiglass
01815   AddMaterial("G4_LUCITE", 1.19, 0, 74., 3);
01816   AddElementByWeightFraction( 1, 0.080538);
01817   AddElementByWeightFraction( 6, 0.599848);
01818   AddElementByWeightFraction( 8, 0.319614);
01819 
01820   // SRIM-2008 materials
01821   AddMaterial("G4_BRASS", 8.52, 0, 0.0, 3);
01822   AddElementByAtomCount("Cu", 62);
01823   AddElementByAtomCount("Zn", 35);
01824   AddElementByAtomCount("Pb" , 3);
01825 
01826   AddMaterial("G4_BRONZE", 8.82, 0, 0.0, 3);
01827   AddElementByAtomCount("Cu", 89);
01828   AddElementByAtomCount("Zn",  9);
01829   AddElementByAtomCount("Pb" , 2);
01830 
01831   // parameters are taken from
01832   //  http://www.azom.com/article.aspx?ArticleID=965
01833   AddMaterial("G4_STAINLESS-STEEL", 8.00, 0, 0.0, 3);
01834   AddElementByAtomCount("Fe", 74);
01835   AddElementByAtomCount("Cr", 18);
01836   AddElementByAtomCount("Ni" , 8);
01837 
01838   AddMaterial("G4_CR39", 1.32, 0, 0.0, 3);
01839   AddElementByAtomCount("H", 18);
01840   AddElementByAtomCount("C", 12);
01841   AddElementByAtomCount("O", 7);
01842 
01843   AddMaterial("G4_OCTADECANOL", 0.812, 0, 0.0, 3);
01844   AddElementByAtomCount("H", 38);
01845   AddElementByAtomCount("C", 18);
01846   AddElementByAtomCount("O", 1);
01847 
01848   nHEP = nMaterials;
01849 }
01850 
01851 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
01852 
01853 void G4NistMaterialBuilder::SpaceMaterials()
01854 {
01855   // density in g/cm3
01856   AddMaterial("G4_KEVLAR" , 1.44, 0, 0.0, 4);
01857   AddElementByAtomCount("C", 14);
01858   AddElementByAtomCount("H", 10);
01859   AddElementByAtomCount("O", 2);
01860   AddElementByAtomCount("N", 2);
01861 
01862   AddMaterial("G4_DACRON" , 1.40, 0, 0.0, 3);   // G4_POLYETHYLENE_TEREPHTALATE
01863   AddElementByAtomCount("C", 10);
01864   AddElementByAtomCount("H", 8);
01865   AddElementByAtomCount("O", 4);
01866 
01867   AddMaterial("G4_NEOPRENE" , 1.23, 0, 0.0, 3);   // POLYCLOROPRENE
01868   AddElementByAtomCount("C", 4);
01869   AddElementByAtomCount("H", 5);
01870   AddElementByAtomCount("Cl", 1);
01871 
01872   nSpace = nMaterials;
01873 }
01874 
01875 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
01876 
01877 void G4NistMaterialBuilder::BioChemicalMaterials()
01878 {
01879   AddMaterial("G4_CYTOSINE", 1.55, 0, 72., 4);
01880   AddElementByAtomCount("H", 5);
01881   AddElementByAtomCount("C", 4);
01882   AddElementByAtomCount("N", 3);
01883   AddElementByAtomCount("O", 1);
01884 
01885   AddMaterial("G4_THYMINE", 1.23, 0, 72., 4);
01886   AddElementByAtomCount("H", 6);
01887   AddElementByAtomCount("C", 5);
01888   AddElementByAtomCount("N", 2);
01889   AddElementByAtomCount("O", 2);
01890 
01891   AddMaterial("G4_URACIL", 1.32, 0, 72., 4);
01892   AddElementByAtomCount("H", 4);
01893   AddElementByAtomCount("C", 4);
01894   AddElementByAtomCount("N", 2);
01895   AddElementByAtomCount("O", 2);
01896 
01897   // DNA_Nucleobase (Nucleobase-1H)
01898   AddMaterial("G4_DNA_ADENINE", 1, 0, 72., 3);
01899   AddElementByAtomCount("H",4 );
01900   AddElementByAtomCount("C",5 );
01901   AddElementByAtomCount("N",5 );
01902 
01903   AddMaterial("G4_DNA_GUANINE", 1, 0, 72. ,4);
01904   AddElementByAtomCount("H",4 );
01905   AddElementByAtomCount("C",5 );
01906   AddElementByAtomCount("N",5 );
01907   AddElementByAtomCount("O",1 );
01908 
01909   AddMaterial("G4_DNA_CYTOSINE", 1, 0, 72., 4);
01910   AddElementByAtomCount("H", 4);
01911   AddElementByAtomCount("C", 4);
01912   AddElementByAtomCount("N", 3);
01913   AddElementByAtomCount("O", 1);
01914 
01915   AddMaterial("G4_DNA_THYMINE", 1, 0, 72., 4);
01916   AddElementByAtomCount("H", 5);
01917   AddElementByAtomCount("C", 5);
01918   AddElementByAtomCount("N", 2);
01919   AddElementByAtomCount("O", 2);
01920 
01921   AddMaterial("G4_DNA_URACIL", 1, 0, 72., 4);
01922   AddElementByAtomCount("H", 3);
01923   AddElementByAtomCount("C", 4);
01924   AddElementByAtomCount("N", 2);
01925   AddElementByAtomCount("O", 2);
01926 
01927   // DNA_Nucleoside (Nucleoside-3H)
01928   AddMaterial("G4_DNA_ADENOSINE", 1, 0, 72., 4);
01929   AddElementByAtomCount("H", 10);
01930   AddElementByAtomCount("C", 10);
01931   AddElementByAtomCount("N", 5);
01932   AddElementByAtomCount("O", 4);
01933 
01934   AddMaterial("G4_DNA_GUANOSINE", 1, 0, 72. ,4);
01935   AddElementByAtomCount("H", 10);
01936   AddElementByAtomCount("C", 10);
01937   AddElementByAtomCount("N", 5);
01938   AddElementByAtomCount("O", 5);
01939 
01940   AddMaterial("G4_DNA_CYTIDINE", 1, 0, 72., 4);
01941   AddElementByAtomCount("H", 10);
01942   AddElementByAtomCount("C", 9);
01943   AddElementByAtomCount("N", 3);
01944   AddElementByAtomCount("O", 5);
01945 
01946   AddMaterial("G4_DNA_URIDINE", 1, 0, 72., 4);
01947   AddElementByAtomCount("H", 9);
01948   AddElementByAtomCount("C", 9);
01949   AddElementByAtomCount("N", 2);
01950   AddElementByAtomCount("O", 6);
01951 
01952   AddMaterial("G4_DNA_METHYLURIDINE", 1, 0, 72., 4);
01953   AddElementByAtomCount("H", 11);
01954   AddElementByAtomCount("C", 10);
01955   AddElementByAtomCount("N", 2);
01956   AddElementByAtomCount("O", 6);
01957 
01958   AddMaterial("G4_DNA_MONOPHOSPHATE", 1, 0, 72., 2);
01959   AddElementByAtomCount("P", 1);
01960   AddElementByAtomCount("O", 3);
01961 
01962   AddMaterial("G4_DNA_A", 1, 0, 72., 5);  //Adenine base
01963   AddElementByAtomCount("H", 10);
01964   AddElementByAtomCount("C", 10);
01965   AddElementByAtomCount("N", 5);
01966   AddElementByAtomCount("O", 7);
01967   AddElementByAtomCount("P", 1);
01968 
01969   AddMaterial("G4_DNA_G", 1, 0, 72. ,5); //Guanine base 
01970   AddElementByAtomCount("H", 10);
01971   AddElementByAtomCount("C", 10);
01972   AddElementByAtomCount("N", 5);
01973   AddElementByAtomCount("O", 8);
01974   AddElementByAtomCount("P", 1);
01975 
01976   AddMaterial("G4_DNA_C", 1, 0, 72., 5); // Cytosine base
01977   AddElementByAtomCount("H", 10);
01978   AddElementByAtomCount("C", 9);
01979   AddElementByAtomCount("N", 3);
01980   AddElementByAtomCount("O", 8);
01981   AddElementByAtomCount("P", 1);
01982 
01983   AddMaterial("G4_DNA_U", 1, 0, 72., 5); // Uracil base
01984   AddElementByAtomCount("H", 9);
01985   AddElementByAtomCount("C", 9);
01986   AddElementByAtomCount("N", 2);
01987   AddElementByAtomCount("O", 9);
01988   AddElementByAtomCount("P", 1);
01989 
01990   AddMaterial("G4_DNA_MU", 1, 0, 72., 5);  // MethaUracil base
01991   AddElementByAtomCount("H", 11);
01992   AddElementByAtomCount("C", 10);
01993   AddElementByAtomCount("N", 2);
01994   AddElementByAtomCount("O", 9);
01995   AddElementByAtomCount("P", 1);
01996   /*
01997   // Complete 70 kg body of adult men from en.wikipedia.org/ see References there
01998   AddMaterial("G4_BODY", 1.8, 0, 78, 12);
01999   AddElementByWeightFraction( 8, 0.650);
02000   AddElementByWeightFraction( 6, 0.180);
02001   AddElementByWeightFraction( 1, 0.100);
02002   AddElementByWeightFraction( 7, 0.030);
02003   AddElementByWeightFraction(20, 0.015);
02004   AddElementByWeightFraction(15, 0.010);
02005   AddElementByWeightFraction(19, 0.0025);
02006   AddElementByWeightFraction(16, 0.0025);
02007   AddElementByWeightFraction(11, 0.0015);
02008   AddElementByWeightFraction(17, 0.0015);
02009   AddElementByWeightFraction(12, 0.0005);
02010   AddElementByWeightFraction(26, 0.00006);
02011   */
02012 }
02013 
02014 
02015 
02016 

Generated on Mon May 27 17:49:05 2013 for Geant4 by  doxygen 1.4.7