Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:17:10

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 //
0027 //
0028 // Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
0029 //
0030 // History:
0031 // -----------
0032 //  20 Aug 2001  Alfonso Mantero   Created
0033 //
0034 // -------------------------------------------------------------------
0035 
0036 #include "XrayFluoNistMaterials.hh"
0037 #include "G4PhysicalConstants.hh"
0038 #include "G4SystemOfUnits.hh"
0039 
0040 XrayFluoNistMaterials::XrayFluoNistMaterials()
0041 { CreateMaterials();}
0042 
0043 XrayFluoNistMaterials::~XrayFluoNistMaterials()
0044 {
0045   delete    dolorite;        
0046   delete    HPGe;            
0047   delete    SiLi;            
0048   delete    mars1;           
0049   delete    anorthosite;     
0050   delete    basalt;          
0051   delete    gabbro;
0052   delete    gabbroWD;
0053   delete    gabbroRF;
0054   delete    Air;             
0055   delete    Sci;             
0056   delete    Vacuum;          
0057   delete    madaBasalt;      
0058   delete    icelandicBasalt; 
0059   delete    icelandicWD; 
0060   delete    icelandicRF; 
0061   delete    GaAs;            
0062   delete    galactic;        
0063   delete    copper; 
0064   //  delete    nickel;
0065   delete    hawaiianRF;
0066   delete    hawaiianWD;         
0067 
0068 
0069 
0070 }
0071 XrayFluoNistMaterials* XrayFluoNistMaterials::instance = 0;
0072 
0073 XrayFluoNistMaterials* XrayFluoNistMaterials::GetInstance()
0074 {
0075   if (instance == 0)
0076     {
0077       instance = new XrayFluoNistMaterials;
0078      
0079     }
0080   return instance;
0081 }
0082 
0083 G4Material* XrayFluoNistMaterials::GetMaterial(G4String material)  
0084 {
0085 
0086   //instancing G4NistManager
0087   nistMan = G4NistManager::Instance();
0088   nistMan->SetVerbose(0);
0089 
0090   //If not available at NIST, look for the local version of it
0091   G4Material* mat =  nistMan->FindOrBuildMaterial(material);
0092   if (!mat) {
0093     mat = G4Material::GetMaterial(material);
0094   }
0095   if (!mat) {G4cout << material << "Not Found, Please Retry"<< G4endl;}
0096   return mat;
0097 }
0098 
0099 
0100 void XrayFluoNistMaterials::CreateMaterials()
0101 {
0102 
0103   G4double density;            
0104   std::vector<G4int>  natoms;
0105   std::vector<G4double> fractionMass;
0106   std::vector<G4String> elements;
0107 
0108 
0109   //instancing G4NistManager
0110   nistMan = G4NistManager::Instance();
0111   nistMan->SetVerbose(1);
0112 
0113   // Materials Definitions
0114 
0115 
0116   ///////////////////////
0117   // Madagascar Basalt //
0118   ///////////////////////
0119 
0120 
0121   // Define Madagascar Basalt main components  0054.PP.0044 sample
0122   density = 3*g/cm3;
0123   elements.push_back("Si");  fractionMass.push_back(0.1992);  // 0.007093 mol/g(mat)    
0124   elements.push_back("Ti");  fractionMass.push_back(0.02027); // 4.235e-4               
0125   elements.push_back("Al");  fractionMass.push_back(0.04758); // 0.001763               
0126   elements.push_back("Fe");  fractionMass.push_back(0.1303);  // 0.002333               
0127   elements.push_back("Mn");  fractionMass.push_back(0.001549);// 2.820e-5               
0128   elements.push_back("Mg");  fractionMass.push_back(0.08141); // 0.003350               
0129   elements.push_back("Ca");  fractionMass.push_back(0.06468); // 0.001614               
0130   elements.push_back("Na");  fractionMass.push_back(0.01692); // 7.360e-4               
0131   elements.push_back("K");   fractionMass.push_back(0.008576);// 2.193e-4               
0132   elements.push_back("P");   fractionMass.push_back(0.001977);// 6.383e-5               
0133   elements.push_back("O");   fractionMass.push_back(0.427538);// 0.02672                
0134 
0135    // sum is 0.04434383 total number of moles of atoms in one gram of material
0136   // 2.248766e8 g per 10.000.000 moles.
0137 
0138   G4Material* madaBasaltMain= nistMan->ConstructNewMaterial("MadaBasaltMain",elements, fractionMass, density);
0139   elements.clear();
0140   fractionMass.clear();
0141 
0142 // Define Madagascar Basalt traces components  0054.PP.0044 sample
0143   density = 3*g/cm3;
0144 
0145   
0146   elements.push_back("Ti");  natoms.push_back(33);  
0147   elements.push_back("Ba");  natoms.push_back(4131);
0148   elements.push_back("Ce");  natoms.push_back(694); 
0149   elements.push_back("Co");  natoms.push_back(965); 
0150   elements.push_back("Cr");  natoms.push_back(5584);
0151   elements.push_back("La");  natoms.push_back(269); 
0152   elements.push_back("Nb");  natoms.push_back(259); 
0153   elements.push_back("Nd");  natoms.push_back(410); 
0154   elements.push_back("Ni");  natoms.push_back(389); 
0155   elements.push_back("Rb");  natoms.push_back(227); 
0156   elements.push_back("Sc");  natoms.push_back(212); 
0157   elements.push_back("Sr");  natoms.push_back(8686);
0158   elements.push_back("V");   natoms.push_back(4203);
0159   elements.push_back("Y");   natoms.push_back(272); 
0160   elements.push_back("Zn");  natoms.push_back(1440);
0161   elements.push_back("Th");  natoms.push_back(19);  
0162   elements.push_back("Sm");  natoms.push_back(93);  
0163   elements.push_back("Eu");  natoms.push_back(32);  
0164   elements.push_back("Gd");  natoms.push_back(89);  
0165   elements.push_back("Tb");  natoms.push_back(13);  
0166   elements.push_back("Yb");  natoms.push_back(15);  
0167   elements.push_back("Lu");  natoms.push_back(2);   
0168   elements.push_back("Ta");  natoms.push_back(15);  
0169   elements.push_back("Hf");  natoms.push_back(62);  
0170 
0171   //tot 28114/10e7  weight: 2335253.28 g per 10e6 moles
0172 
0173   G4Material* madaBasaltTraces= nistMan->ConstructNewMaterial("MadaBasaltTraces", elements, natoms, density);
0174   elements.clear();
0175   natoms.clear();
0176 
0177   // Define Madacagascar Basalt complete material  0054.PP.0044 sample
0178   density = 3*g/cm3;
0179   
0180   madaBasalt= new G4Material("MadaBasalt", density, 2);
0181   madaBasalt->AddMaterial(madaBasaltMain,    0.9897);
0182   madaBasalt->AddMaterial(madaBasaltTraces,  0.0103);
0183 
0184 
0185 
0186   ///////////////////////////////////////////
0187   // Iceland    Basalt 0029.PP.0035 sample //
0188   ///////////////////////////////////////////
0189 
0190   elements.push_back("Si");  fractionMass.push_back(0.2313); 
0191   elements.push_back("Ti");  fractionMass.push_back(0.0127); 
0192   elements.push_back("Al");  fractionMass.push_back(0.0702); 
0193   elements.push_back("Fe");  fractionMass.push_back(0.1134); 
0194   elements.push_back("Mn");  fractionMass.push_back(0.0019); 
0195   elements.push_back("Mg");  fractionMass.push_back(0.0349); 
0196   elements.push_back("Ca");  fractionMass.push_back(0.0756); 
0197   elements.push_back("Na");  fractionMass.push_back(0.0892); 
0198   elements.push_back("K");   fractionMass.push_back(0.0032); 
0199   elements.push_back("P");   fractionMass.push_back(0.00096);
0200   elements.push_back("S");   fractionMass.push_back(0.0004); 
0201   elements.push_back("O");   fractionMass.push_back(0.36624);
0202 
0203    // Define Icelandic Basalt main components  0029.PP.0035 sample
0204   density = 3*g/cm3;
0205   G4Material* icelandicBasaltMain= nistMan->ConstructNewMaterial("IceBasaltMain",elements, fractionMass, density);
0206   elements.clear();
0207   fractionMass.clear();
0208 
0209   // Define Icelandic Basalt traces components  0029.PP.0035 sample
0210   density = 3*g/cm3;
0211  
0212   elements.push_back("Ba");  natoms.push_back(756);  
0213   elements.push_back("Ce");  natoms.push_back(328);  
0214   elements.push_back("Co");  natoms.push_back(643);  
0215   elements.push_back("Cr");  natoms.push_back(1000); 
0216   elements.push_back("Cu");  natoms.push_back(1396); 
0217   elements.push_back("Ga");  natoms.push_back(190);  
0218   elements.push_back("La");  natoms.push_back(103);  
0219   elements.push_back("Mo");  natoms.push_back(9);    
0220   elements.push_back("Nb");  natoms.push_back(114);  
0221   elements.push_back("Nd");  natoms.push_back(104);  
0222   elements.push_back("Ni");  natoms.push_back(544);  
0223   elements.push_back("Rb");  natoms.push_back(78);   
0224   elements.push_back("S");   natoms.push_back(5550); 
0225   elements.push_back("Sc");  natoms.push_back(531);  
0226   elements.push_back("Sr");  natoms.push_back(1353); 
0227   elements.push_back("U");   natoms.push_back(22);   
0228   elements.push_back("V");   natoms.push_back(4533); 
0229   elements.push_back("Y");   natoms.push_back(408);  
0230   elements.push_back("Zn");  natoms.push_back(1259); 
0231   elements.push_back("Zr");  natoms.push_back(1274); 
0232 
0233   G4Material* icelandicBasaltTraces= nistMan->ConstructNewMaterial("IceBasaltTraces", elements, natoms, density);
0234 
0235   elements.clear();
0236   natoms.clear();
0237 
0238   // Define Icelandic Basalt complete material  0029.PP.0035 sample
0239   density = 3*g/cm3;
0240   icelandicBasalt= new G4Material("IceBasalt", density, 2);
0241   icelandicBasalt->AddMaterial(icelandicBasaltMain,    0.9978);
0242   icelandicBasalt->AddMaterial(icelandicBasaltTraces,  0.0022);
0243 
0244 
0245   ///////////////////////
0246   //    Dolorite       //
0247   ///////////////////////
0248 
0249   // Define dolorite main components 0055.PP.0038 sample
0250 
0251   density = 3*g/cm3;
0252 
0253   elements.push_back("Fe");    fractionMass.push_back(0.1750);
0254   elements.push_back("Ti");    fractionMass.push_back(0.0082);
0255   elements.push_back("Ca");    fractionMass.push_back(0.0753);
0256   elements.push_back("Si");    fractionMass.push_back(0.2188);
0257   elements.push_back("Al");    fractionMass.push_back(0.0676);
0258   elements.push_back("Mg");    fractionMass.push_back(0.0008);
0259   elements.push_back("O");     fractionMass.push_back(0.4377);
0260   elements.push_back("Mn");    fractionMass.push_back(0.0015);
0261   elements.push_back("Na");    fractionMass.push_back(0.0134);
0262   elements.push_back("K");     fractionMass.push_back(0.0011);
0263   elements.push_back("P");     fractionMass.push_back(0.0006);
0264 
0265 
0266   G4Material* doloriteMain = nistMan->ConstructNewMaterial("Dolorite", elements, fractionMass, density);
0267 
0268   elements.clear();
0269   fractionMass.clear();
0270 
0271   // define traces in dolorite 0055.PP.0038 sample
0272 
0273   density = 3*g/cm3;
0274 
0275   elements.push_back("Nb");    natoms.push_back(5);   
0276   elements.push_back("Zr");    natoms.push_back(91);  
0277   elements.push_back("Y");     natoms.push_back(29);  
0278   elements.push_back("Sr");    natoms.push_back(140); 
0279   elements.push_back("Rb");    natoms.push_back(3);   
0280   elements.push_back("Ga");    natoms.push_back(20);  
0281   elements.push_back("Zn");    natoms.push_back(99);  
0282   elements.push_back("Ni");    natoms.push_back(77);  
0283   elements.push_back("Sc");    natoms.push_back(32);  
0284   elements.push_back("V");     natoms.push_back(314); 
0285   elements.push_back("Cr");    natoms.push_back(130); 
0286   elements.push_back("Co");    natoms.push_back(56);  
0287   elements.push_back("Cu");    natoms.push_back(119); 
0288   elements.push_back("Ba");    natoms.push_back(38);  
0289   elements.push_back("Ce");    natoms.push_back(15);  
0290   elements.push_back("Nd");    natoms.push_back(9);   
0291 
0292   G4Material* tracesOfDolorite= nistMan->ConstructNewMaterial("TracesOfDolorite", elements, natoms, density);
0293 
0294   elements.clear();
0295   natoms.clear();
0296 
0297   // define dolorite (full) --  0055.PP.0038 sample
0298 
0299   density = 3*g/cm3;
0300   dolorite = new G4Material("Dolorite", density, 2);
0301   dolorite->AddMaterial(tracesOfDolorite, 0.0027842352);
0302   dolorite->AddMaterial(doloriteMain, 0.9972157648);
0303 
0304   ///////////////////////
0305   //       Mars1       //
0306   ///////////////////////
0307 
0308 
0309  // define mars1 --  01.PP.0030 sample
0310 
0311   density = 3*g/cm3;
0312 
0313   elements.push_back("Fe");    fractionMass.push_back(0.100916);  
0314   elements.push_back("Ti");    fractionMass.push_back(0.0186804); 
0315   elements.push_back("Ca");    fractionMass.push_back(0.0404091); 
0316   elements.push_back("Si");    fractionMass.push_back(0.196378);  
0317   elements.push_back("Al");    fractionMass.push_back(0.103282);  
0318   elements.push_back("Mg");    fractionMass.push_back(0.0241622); 
0319   elements.push_back("Mn");    fractionMass.push_back(0.00184331);
0320   elements.push_back("Na");    fractionMass.push_back(0.0177908); 
0321   elements.push_back("K");     fractionMass.push_back(0.00574498);
0322   elements.push_back("P");     fractionMass.push_back(0.00280169);
0323   elements.push_back("O");     fractionMass.push_back(0.48799152);
0324 
0325 
0326   G4Material* mars1Main = nistMan->ConstructNewMaterial("Mars1 Main components", elements, fractionMass, density);
0327 
0328   elements.clear();
0329   fractionMass.clear();
0330 
0331   elements.push_back("Nb");    natoms.push_back(55);   
0332   elements.push_back("Zr");    natoms.push_back(433);  
0333   elements.push_back("Y");     natoms.push_back(58);   
0334   elements.push_back("Sr");    natoms.push_back(968);  
0335   elements.push_back("Rb");    natoms.push_back(16);   
0336   elements.push_back("Ga");    natoms.push_back(24);   
0337   elements.push_back("Zn");    natoms.push_back(109);  
0338   elements.push_back("Ni");    natoms.push_back(70);   
0339   elements.push_back("Sc");    natoms.push_back(21);   
0340   elements.push_back("V");     natoms.push_back(134);  
0341   elements.push_back("Cr");    natoms.push_back(141);  
0342   elements.push_back("Co");    natoms.push_back(30);   
0343   elements.push_back("Cu");    natoms.push_back(19);   
0344   elements.push_back("Ba");    natoms.push_back(580);  
0345   elements.push_back("Pb");    natoms.push_back(4);    
0346   elements.push_back("S");     natoms.push_back(444);  
0347   elements.push_back("U");     natoms.push_back(2);   
0348 
0349   density = 3*g/cm3;
0350   G4Material* tracesOfMars1 = nistMan->ConstructNewMaterial("TracesOfMars1", elements, natoms, density);
0351 
0352   elements.clear();
0353   natoms.clear();
0354 
0355   density = 3*g/cm3;
0356   mars1 = new G4Material("Mars1", density, 2);
0357   mars1->AddMaterial(tracesOfMars1, 0.0044963163);
0358   mars1->AddMaterial(mars1Main, 0.9955036837);
0359 
0360   /////////////////////////////////
0361   //  Hawaiian -- WD coposition  //
0362   /////////////////////////////////
0363 
0364   density = 3*g/cm3;
0365 
0366   elements.push_back("Fe");    fractionMass.push_back(1.1819860E-01);  
0367   elements.push_back("Ti");    fractionMass.push_back(2.2781000E-02); 
0368   elements.push_back("Ca");    fractionMass.push_back(4.5026100E-02); 
0369   elements.push_back("Si");    fractionMass.push_back(2.0518860E-01);  
0370   elements.push_back("Al");    fractionMass.push_back(1.3285430E-01);  
0371   elements.push_back("Mg");    fractionMass.push_back(2.4120000E-03); 
0372   elements.push_back("Na");    fractionMass.push_back(2.2257000E-02); 
0373   elements.push_back("K");     fractionMass.push_back(4.9812000E-03);
0374   elements.push_back("O");     fractionMass.push_back(4.4630120E-01);
0375 
0376   hawaiianWD = nistMan->ConstructNewMaterial("HawaiianWD", elements, fractionMass, density);
0377 
0378   elements.clear();
0379   fractionMass.clear();
0380 
0381   //////////////////////////////////
0382   //  Hawaiian -- RF composition  //
0383   //////////////////////////////////
0384 
0385   density = 3*g/cm3;
0386 
0387 
0388   elements.push_back("Fe");    fractionMass.push_back(1.1120460E-01);  
0389   elements.push_back("Ti");    fractionMass.push_back(2.1582000E-02); 
0390   elements.push_back("Ca");    fractionMass.push_back(4.3596700E-02); 
0391   elements.push_back("Si");    fractionMass.push_back(2.1313440E-01);  
0392   elements.push_back("Al");    fractionMass.push_back(1.0374280E-01);  
0393   elements.push_back("Mg");    fractionMass.push_back(1.9296000E-02); 
0394   elements.push_back("Na");    fractionMass.push_back(2.8192200E-02); 
0395   elements.push_back("K");     fractionMass.push_back(5.8114000E-03);
0396   elements.push_back("P");     fractionMass.push_back(4.8004000E-03);
0397   elements.push_back("Mn");    fractionMass.push_back(2.3235000E-03);
0398   elements.push_back("O");     fractionMass.push_back(4.4531600E-01);
0399 
0400   hawaiianRF = nistMan->ConstructNewMaterial("HawaiianRF", elements, fractionMass, density);
0401 
0402   elements.clear();
0403   fractionMass.clear();
0404 
0405   //////////////////////////////////
0406   //  Icelandic -- WD composition  //
0407   //////////////////////////////////
0408 
0409   density = 3*g/cm3;
0410 
0411 
0412   elements.push_back("Si");    fractionMass.push_back(2.2949340E-01);    
0413   elements.push_back("Ti");    fractionMass.push_back(1.1990000E-02); 
0414   elements.push_back("Al");    fractionMass.push_back(7.0396900E-02);  
0415   elements.push_back("Fe");    fractionMass.push_back(1.1330280E-01);  
0416   elements.push_back("Mg");    fractionMass.push_back(3.4974000E-02); 
0417   elements.push_back("Ca");    fractionMass.push_back(7.5758200E-02); 
0418   elements.push_back("Na");    fractionMass.push_back(1.8547500E-02);  
0419   elements.push_back("K");     fractionMass.push_back(3.3208000E-03);
0420   elements.push_back("O");     fractionMass.push_back(4.4121640E-01);
0421   
0422   icelandicWD = nistMan->ConstructNewMaterial("IcelandicWD", elements, fractionMass, density);
0423   
0424   elements.clear();
0425   fractionMass.clear();
0426 
0427 
0428   //////////////////////////////////
0429   //  Icelandic -- RF composition  //
0430   //////////////////////////////////
0431 
0432   density = 3*g/cm3;
0433 
0434 
0435   elements.push_back("Si");    fractionMass.push_back(2.4304800E-01);    
0436   elements.push_back("Ti");    fractionMass.push_back(1.3788500E-02); 
0437   elements.push_back("Al");    fractionMass.push_back(6.5103900E-02);  
0438   elements.push_back("Fe");    fractionMass.push_back(1.1819860E-01);  
0439   elements.push_back("Mn");    fractionMass.push_back(2.3235000E-03);
0440   elements.push_back("Mg");    fractionMass.push_back(2.3517000E-02); 
0441   elements.push_back("Ca");    fractionMass.push_back(8.2190500E-02); 
0442   elements.push_back("K");     fractionMass.push_back(3.3208000E-03);
0443   elements.push_back("P");     fractionMass.push_back(1.3092000E-03);
0444   elements.push_back("O");     fractionMass.push_back(4.4620000E-01);
0445   
0446   icelandicRF = nistMan->ConstructNewMaterial("IcelandicRF", elements, fractionMass, density);
0447   
0448   elements.clear();
0449   fractionMass.clear();
0450 
0451   //////////////////////////////////
0452   //  Gabbro -- WD composition  //
0453   //////////////////////////////////
0454 
0455   density = 3*g/cm3;
0456 
0457   elements.push_back("Si");    fractionMass.push_back(1.8696000E-01);    
0458   elements.push_back("Ti");    fractionMass.push_back(2.3380500E-02); 
0459   elements.push_back("Al");    fractionMass.push_back(4.6049100E-02);  
0460   elements.push_back("Fe");    fractionMass.push_back(1.2239500E-01);  
0461   elements.push_back("Mg");    fractionMass.push_back(8.3817000E-02); 
0462   elements.push_back("Ca");    fractionMass.push_back(1.0720500E-01); 
0463   elements.push_back("Na");    fractionMass.push_back(5.9352000E-03);  
0464   elements.push_back("K");     fractionMass.push_back(1.6604000E-03);
0465   elements.push_back("O");     fractionMass.push_back(4.2259780E-01);
0466   
0467   gabbroWD = nistMan->ConstructNewMaterial("GabbroWD", elements, fractionMass, density);
0468   
0469   elements.clear();
0470   fractionMass.clear();
0471 
0472   //////////////////////////////////
0473   //  Gabbro -- RF composition  //
0474   //////////////////////////////////
0475 
0476   density = 3*g/cm3;
0477 
0478 
0479   elements.push_back("Si");    fractionMass.push_back(1.6826400E-01);    
0480   elements.push_back("Ti");    fractionMass.push_back(2.2781000E-02); 
0481   elements.push_back("Al");    fractionMass.push_back(5.8223000E-02);  
0482   elements.push_back("Fe");    fractionMass.push_back(1.2729080E-01);  
0483   elements.push_back("Mn");    fractionMass.push_back(1.5490000E-03);
0484   elements.push_back("Mg");    fractionMass.push_back(8.3817000E-02); 
0485   elements.push_back("Ca");    fractionMass.push_back(1.1721080E-01); 
0486   elements.push_back("Na");    fractionMass.push_back(0.0000000E+00);  
0487   elements.push_back("K");     fractionMass.push_back(1.6604000E-03);
0488   elements.push_back("P");     fractionMass.push_back(1.7456000E-03);
0489   elements.push_back("O");     fractionMass.push_back(4.1845840E-01);
0490   
0491   gabbroRF = nistMan->ConstructNewMaterial("GabbroRF", elements, fractionMass, density);
0492   
0493   elements.clear();
0494   fractionMass.clear();
0495 
0496 
0497   ///////////////////////
0498   //     Anorthosite   //
0499   ///////////////////////
0500 
0501 
0502   density = 2.8*g/cm3;
0503 
0504   elements.push_back("Fe");    fractionMass.push_back(0.095283);    
0505   elements.push_back("Mn");    fractionMass.push_back(0.00137086);  
0506   elements.push_back("Ni");    fractionMass.push_back(5e-5);        
0507   elements.push_back("Cu");    fractionMass.push_back(5.2e-4);      
0508   elements.push_back("Na");    fractionMass.push_back(0.017635);    
0509   elements.push_back("Mg");    fractionMass.push_back(0.0245361);   
0510   elements.push_back("Al");    fractionMass.push_back(0.0800355);   
0511   elements.push_back("Si");    fractionMass.push_back(0.232204);    
0512   elements.push_back("Ca");    fractionMass.push_back(0.0635368);   
0513   elements.push_back("K");     fractionMass.push_back(0.00464912);  
0514   elements.push_back("C");     fractionMass.push_back(0.000837803); 
0515   elements.push_back("P");     fractionMass.push_back(0.00176742);  
0516   elements.push_back("Ti");    fractionMass.push_back(0.0240879);   
0517   elements.push_back("Cl");    fractionMass.push_back(0.00014);     
0518   elements.push_back("Pd");    fractionMass.push_back(0.00001);     
0519   elements.push_back("Cd");    fractionMass.push_back(0.00018);     
0520   elements.push_back("Ag");    fractionMass.push_back(0.00048);     
0521   elements.push_back("S");     fractionMass.push_back(0.00144);     
0522   elements.push_back("V");     fractionMass.push_back(0.00228);     
0523   elements.push_back("Ba");    fractionMass.push_back(0.00151);     
0524   elements.push_back("O");     fractionMass.push_back(0.447026);    
0525 
0526   anorthosite = nistMan->ConstructNewMaterial("Anorthosite", elements, fractionMass, density);
0527 
0528   elements.clear();
0529   fractionMass.clear();
0530 
0531   ////////////////////////////////////////
0532   //     Gabbro       0059.PP.0048      //
0533   ////////////////////////////////////////
0534 
0535 
0536   density = 3.0*g/cm3;
0537 
0538   elements.push_back("Si");    fractionMass.push_back(1.8284688E-01);  
0539   elements.push_back("Ti");    fractionMass.push_back(2.2601150E-02);  
0540   elements.push_back("Al");    fractionMass.push_back(4.4831710E-02);  
0541   elements.push_back("Fe");    fractionMass.push_back(1.2578402E-01);  
0542   elements.push_back("Mn");    fractionMass.push_back(1.3166500E-03);  
0543   elements.push_back("Mg");    fractionMass.push_back(8.1706500E-02);  
0544   elements.push_back("Ca");    fractionMass.push_back(1.0506090E-01);  
0545   elements.push_back("Na");    fractionMass.push_back(5.4900600E-03);  
0546   elements.push_back("K");     fractionMass.push_back(1.4943600E-03);  
0547   elements.push_back("P");     fractionMass.push_back(3.4912000E-04);  
0548   elements.push_back("O");     fractionMass.push_back(4.0651865E-01);
0549 
0550   gabbro = nistMan->ConstructNewMaterial("Gabbro", elements, fractionMass, density);
0551 
0552   elements.clear();
0553   fractionMass.clear();
0554 
0555   //define gallium arsenide
0556 
0557   elements.push_back("Ga");     natoms.push_back(1);  
0558   elements.push_back("As");     natoms.push_back(1);   
0559 
0560   density = 5.32 * g/cm3;
0561   GaAs = nistMan->ConstructNewMaterial("gallium arsenide", elements, natoms, density);
0562 
0563   elements.clear();
0564   natoms.clear();
0565 
0566   /*
0567   // define germanium
0568   
0569   density = 5.32 * g/cm3;
0570  
0571   elements.push_back("Ge");     natoms.push_back(1); 
0572 
0573   G4cout << elements[1] <<", "<<natoms[1] <<", " << elements.size() << ", " << natoms.size() << G4endl;
0574   
0575 
0576   HPGe = nistMan->ConstructNewMaterial("High Purity Germanium",elements, natoms, density);
0577 
0578   elements.clear();
0579   natoms.clear();
0580   */
0581   //define scintillator
0582 
0583   elements.push_back("C");     natoms.push_back(9);  
0584   elements.push_back("H");     natoms.push_back(10);   
0585 
0586   density = 1.032*g/cm3;
0587   Sci = nistMan->ConstructNewMaterial("Scintillator", elements, natoms, density);
0588 
0589   elements.clear();
0590   natoms.clear();
0591   
0592   //define vacuum
0593   
0594   density     = universe_mean_density;    //from PhysicalConstants.h
0595   G4double pressure    = 3.e-18*pascal;
0596   G4double temperature = 2.73*kelvin;
0597   Vacuum = new G4Material("Galactic", 1., 1.01*g/mole, density,
0598                        kStateGas,temperature,pressure);
0599 
0600   elements.clear();
0601   natoms.clear();
0602 
0603   //define basalt
0604   density = 3.*g/cm3;
0605 
0606   elements.push_back("Fe");     fractionMass.push_back(0.1200); 
0607   elements.push_back("Ti");     fractionMass.push_back(0.0160);   
0608   elements.push_back("Ca");     fractionMass.push_back(0.0750); 
0609   elements.push_back("Si");     fractionMass.push_back(0.2160);   
0610   elements.push_back("Al");     fractionMass.push_back(0.0710); 
0611   elements.push_back("Mg");     fractionMass.push_back(0.0590);   
0612   elements.push_back("O");      fractionMass.push_back(0.4430); 
0613  
0614   basalt = nistMan->ConstructNewMaterial("Basalt", elements, fractionMass, density);
0615 
0616   elements.clear();
0617   fractionMass.clear();
0618 
0619   
0620   // define silicon
0621 
0622   density = 2330*kg/m3;
0623 
0624   // workaround for a problem in nistMan: it doesn't like material with a single element.
0625 
0626   elements.push_back("Si");       natoms.push_back(1); 
0627   elements.push_back("Si");       natoms.push_back(1); 
0628   
0629   SiLi = nistMan->ConstructNewMaterial("SiLi",elements, natoms, density);
0630 
0631   elements.clear();
0632   natoms.clear();
0633  
0634 
0635   // define copper
0636 
0637   density = 8920*kg/m3;
0638 
0639   // workaround for a problem in nistMan: it doesn't like material with a single element.
0640   elements.push_back("Cu");       natoms.push_back(1); 
0641   elements.push_back("Cu");       natoms.push_back(1); 
0642 
0643   copper = nistMan->ConstructNewMaterial("Cu",elements, natoms, density);
0644 
0645   elements.clear();
0646   natoms.clear();
0647   /*
0648   // define nikel
0649 
0650   density = 8908*kg/m3;
0651 
0652   // workaround for a problem in nistMan: it doesn't like material with a single element.
0653   elements.push_back("Ni");       natoms.push_back(1); 
0654   elements.push_back("Ni");       natoms.push_back(1); 
0655 
0656   nickel = nistMan->ConstructNewMaterial("Nickel",elements, natoms, density);
0657   */
0658   elements.clear();
0659   natoms.clear();
0660 
0661 
0662 
0663   G4cout << *(G4Material::GetMaterialTable()) << G4endl;
0664 }
0665