Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // 26 // >> 27 // $Id: XrayFluoDetectorConstruction.hh >> 28 // GEANT4 tag $Name: xray_fluo-V03-02-00 27 // 29 // 28 // Author: Alfonso Mantero (Alfonso.Mantero@ge 30 // Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it) 29 // 31 // 30 // History: 32 // History: 31 // ----------- 33 // ----------- 32 // 20 Aug 2001 Alfonso Mantero Created 34 // 20 Aug 2001 Alfonso Mantero Created 33 // 35 // 34 // ------------------------------------------- 36 // ------------------------------------------------------------------- 35 37 36 #include "XrayFluoNistMaterials.hh" 38 #include "XrayFluoNistMaterials.hh" 37 #include "G4PhysicalConstants.hh" << 38 #include "G4SystemOfUnits.hh" << 39 39 40 XrayFluoNistMaterials::XrayFluoNistMaterials() 40 XrayFluoNistMaterials::XrayFluoNistMaterials() 41 { CreateMaterials();} 41 { CreateMaterials();} 42 42 43 XrayFluoNistMaterials::~XrayFluoNistMaterials( 43 XrayFluoNistMaterials::~XrayFluoNistMaterials() 44 { 44 { 45 delete dolorite; << 45 delete dolorite; 46 delete HPGe; << 46 delete HPGe; 47 delete SiLi; << 47 delete mars1; 48 delete mars1; << 48 delete galactic; 49 delete anorthosite; << 49 delete madaBasalt; 50 delete basalt; << 50 delete icelandicBasalt; 51 delete gabbro; << 51 delete GaAs; 52 delete gabbroWD; << 53 delete gabbroRF; << 54 delete Air; << 55 delete Sci; << 56 delete Vacuum; << 57 delete madaBasalt; << 58 delete icelandicBasalt; << 59 delete icelandicWD; << 60 delete icelandicRF; << 61 delete GaAs; << 62 delete galactic; << 63 delete copper; << 64 // delete nickel; << 65 delete hawaiianRF; << 66 delete hawaiianWD; << 67 << 68 << 69 << 70 } 52 } 71 XrayFluoNistMaterials* XrayFluoNistMaterials:: 53 XrayFluoNistMaterials* XrayFluoNistMaterials::instance = 0; 72 54 73 XrayFluoNistMaterials* XrayFluoNistMaterials:: 55 XrayFluoNistMaterials* XrayFluoNistMaterials::GetInstance() 74 { 56 { 75 if (instance == 0) 57 if (instance == 0) 76 { 58 { 77 instance = new XrayFluoNistMaterials; 59 instance = new XrayFluoNistMaterials; 78 60 79 } 61 } 80 return instance; 62 return instance; 81 } 63 } 82 64 83 G4Material* XrayFluoNistMaterials::GetMaterial 65 G4Material* XrayFluoNistMaterials::GetMaterial(G4String material) 84 { 66 { 85 67 86 //instancing G4NistManager 68 //instancing G4NistManager 87 nistMan = G4NistManager::Instance(); 69 nistMan = G4NistManager::Instance(); 88 nistMan->SetVerbose(0); 70 nistMan->SetVerbose(0); 89 71 90 //If not available at NIST, look for the loc << 91 G4Material* mat = nistMan->FindOrBuildMater 72 G4Material* mat = nistMan->FindOrBuildMaterial(material); 92 if (!mat) { 73 if (!mat) { 93 mat = G4Material::GetMaterial(material); 74 mat = G4Material::GetMaterial(material); 94 } 75 } 95 if (!mat) {G4cout << material << "Not Found, 76 if (!mat) {G4cout << material << "Not Found, Please Retry"<< G4endl;} 96 return mat; 77 return mat; 97 } 78 } 98 79 99 80 100 void XrayFluoNistMaterials::CreateMaterials() 81 void XrayFluoNistMaterials::CreateMaterials() 101 { 82 { 102 83 103 G4double density; 84 G4double density; 104 std::vector<G4int> natoms; 85 std::vector<G4int> natoms; 105 std::vector<G4double> fractionMass; 86 std::vector<G4double> fractionMass; 106 std::vector<G4String> elements; 87 std::vector<G4String> elements; 107 88 108 89 109 //instancing G4NistManager 90 //instancing G4NistManager 110 nistMan = G4NistManager::Instance(); 91 nistMan = G4NistManager::Instance(); 111 nistMan->SetVerbose(1); 92 nistMan->SetVerbose(1); 112 93 113 // Materials Definitions 94 // Materials Definitions 114 95 115 96 116 /////////////////////// 97 /////////////////////// 117 // Madagascar Basalt // 98 // Madagascar Basalt // 118 /////////////////////// 99 /////////////////////// 119 100 120 101 121 // Define Madagascar Basalt main components 102 // Define Madagascar Basalt main components 0054.PP.0044 sample 122 density = 3*g/cm3; 103 density = 3*g/cm3; 123 elements.push_back("Si"); fractionMass.push 104 elements.push_back("Si"); fractionMass.push_back(0.1992); // 0.007093 mol/g(mat) 124 elements.push_back("Ti"); fractionMass.push 105 elements.push_back("Ti"); fractionMass.push_back(0.02027); // 4.235e-4 125 elements.push_back("Al"); fractionMass.push 106 elements.push_back("Al"); fractionMass.push_back(0.04758); // 0.001763 126 elements.push_back("Fe"); fractionMass.push 107 elements.push_back("Fe"); fractionMass.push_back(0.1303); // 0.002333 127 elements.push_back("Mn"); fractionMass.push 108 elements.push_back("Mn"); fractionMass.push_back(0.001549);// 2.820e-5 128 elements.push_back("Mg"); fractionMass.push 109 elements.push_back("Mg"); fractionMass.push_back(0.08141); // 0.003350 129 elements.push_back("Ca"); fractionMass.push 110 elements.push_back("Ca"); fractionMass.push_back(0.06468); // 0.001614 130 elements.push_back("Na"); fractionMass.push 111 elements.push_back("Na"); fractionMass.push_back(0.01692); // 7.360e-4 131 elements.push_back("K"); fractionMass.push 112 elements.push_back("K"); fractionMass.push_back(0.008576);// 2.193e-4 132 elements.push_back("P"); fractionMass.push 113 elements.push_back("P"); fractionMass.push_back(0.001977);// 6.383e-5 133 elements.push_back("O"); fractionMass.push 114 elements.push_back("O"); fractionMass.push_back(0.427538);// 0.02672 134 115 135 // sum is 0.04434383 total number of moles 116 // sum is 0.04434383 total number of moles of atoms in one gram of material 136 // 2.248766e8 g per 10.000.000 moles. 117 // 2.248766e8 g per 10.000.000 moles. 137 118 138 G4Material* madaBasaltMain= nistMan->Constru 119 G4Material* madaBasaltMain= nistMan->ConstructNewMaterial("MadaBasaltMain",elements, fractionMass, density); 139 elements.clear(); 120 elements.clear(); 140 fractionMass.clear(); 121 fractionMass.clear(); 141 122 142 // Define Madagascar Basalt traces components 123 // Define Madagascar Basalt traces components 0054.PP.0044 sample 143 density = 3*g/cm3; 124 density = 3*g/cm3; 144 125 145 126 146 elements.push_back("Ti"); natoms.push_back( 127 elements.push_back("Ti"); natoms.push_back(33); 147 elements.push_back("Ba"); natoms.push_back( 128 elements.push_back("Ba"); natoms.push_back(4131); 148 elements.push_back("Ce"); natoms.push_back( 129 elements.push_back("Ce"); natoms.push_back(694); 149 elements.push_back("Co"); natoms.push_back( 130 elements.push_back("Co"); natoms.push_back(965); 150 elements.push_back("Cr"); natoms.push_back( 131 elements.push_back("Cr"); natoms.push_back(5584); 151 elements.push_back("La"); natoms.push_back( 132 elements.push_back("La"); natoms.push_back(269); 152 elements.push_back("Nb"); natoms.push_back( 133 elements.push_back("Nb"); natoms.push_back(259); 153 elements.push_back("Nd"); natoms.push_back( 134 elements.push_back("Nd"); natoms.push_back(410); 154 elements.push_back("Ni"); natoms.push_back( 135 elements.push_back("Ni"); natoms.push_back(389); 155 elements.push_back("Rb"); natoms.push_back( 136 elements.push_back("Rb"); natoms.push_back(227); 156 elements.push_back("Sc"); natoms.push_back( 137 elements.push_back("Sc"); natoms.push_back(212); 157 elements.push_back("Sr"); natoms.push_back( 138 elements.push_back("Sr"); natoms.push_back(8686); 158 elements.push_back("V"); natoms.push_back( 139 elements.push_back("V"); natoms.push_back(4203); 159 elements.push_back("Y"); natoms.push_back( 140 elements.push_back("Y"); natoms.push_back(272); 160 elements.push_back("Zn"); natoms.push_back( 141 elements.push_back("Zn"); natoms.push_back(1440); 161 elements.push_back("Th"); natoms.push_back( 142 elements.push_back("Th"); natoms.push_back(19); 162 elements.push_back("Sm"); natoms.push_back( 143 elements.push_back("Sm"); natoms.push_back(93); 163 elements.push_back("Eu"); natoms.push_back( 144 elements.push_back("Eu"); natoms.push_back(32); 164 elements.push_back("Gd"); natoms.push_back( 145 elements.push_back("Gd"); natoms.push_back(89); 165 elements.push_back("Tb"); natoms.push_back( 146 elements.push_back("Tb"); natoms.push_back(13); 166 elements.push_back("Yb"); natoms.push_back( 147 elements.push_back("Yb"); natoms.push_back(15); 167 elements.push_back("Lu"); natoms.push_back( 148 elements.push_back("Lu"); natoms.push_back(2); 168 elements.push_back("Ta"); natoms.push_back( 149 elements.push_back("Ta"); natoms.push_back(15); 169 elements.push_back("Hf"); natoms.push_back( 150 elements.push_back("Hf"); natoms.push_back(62); 170 151 171 //tot 28114/10e7 weight: 2335253.28 g per 1 152 //tot 28114/10e7 weight: 2335253.28 g per 10e6 moles 172 153 173 G4Material* madaBasaltTraces= nistMan->Const 154 G4Material* madaBasaltTraces= nistMan->ConstructNewMaterial("MadaBasaltTraces", elements, natoms, density); 174 elements.clear(); 155 elements.clear(); 175 natoms.clear(); 156 natoms.clear(); 176 157 177 // Define Madacagascar Basalt complete mater 158 // Define Madacagascar Basalt complete material 0054.PP.0044 sample 178 density = 3*g/cm3; 159 density = 3*g/cm3; 179 160 180 madaBasalt= new G4Material("MadaBasalt", den 161 madaBasalt= new G4Material("MadaBasalt", density, 2); 181 madaBasalt->AddMaterial(madaBasaltMain, 0 162 madaBasalt->AddMaterial(madaBasaltMain, 0.9897); 182 madaBasalt->AddMaterial(madaBasaltTraces, 0 163 madaBasalt->AddMaterial(madaBasaltTraces, 0.0103); 183 164 184 165 185 166 186 /////////////////////////////////////////// << 167 /////////////////////// 187 // Iceland Basalt 0029.PP.0035 sample // << 168 // Iceland Basalt // 188 /////////////////////////////////////////// << 169 /////////////////////// 189 170 190 elements.push_back("Si"); fractionMass.push 171 elements.push_back("Si"); fractionMass.push_back(0.2313); 191 elements.push_back("Ti"); fractionMass.push 172 elements.push_back("Ti"); fractionMass.push_back(0.0127); 192 elements.push_back("Al"); fractionMass.push 173 elements.push_back("Al"); fractionMass.push_back(0.0702); 193 elements.push_back("Fe"); fractionMass.push 174 elements.push_back("Fe"); fractionMass.push_back(0.1134); 194 elements.push_back("Mn"); fractionMass.push 175 elements.push_back("Mn"); fractionMass.push_back(0.0019); 195 elements.push_back("Mg"); fractionMass.push 176 elements.push_back("Mg"); fractionMass.push_back(0.0349); 196 elements.push_back("Ca"); fractionMass.push 177 elements.push_back("Ca"); fractionMass.push_back(0.0756); 197 elements.push_back("Na"); fractionMass.push 178 elements.push_back("Na"); fractionMass.push_back(0.0892); 198 elements.push_back("K"); fractionMass.push 179 elements.push_back("K"); fractionMass.push_back(0.0032); 199 elements.push_back("P"); fractionMass.push 180 elements.push_back("P"); fractionMass.push_back(0.00096); 200 elements.push_back("S"); fractionMass.push 181 elements.push_back("S"); fractionMass.push_back(0.0004); 201 elements.push_back("O"); fractionMass.push 182 elements.push_back("O"); fractionMass.push_back(0.36624); 202 183 203 // Define Icelandic Basalt main components 184 // Define Icelandic Basalt main components 0029.PP.0035 sample 204 density = 3*g/cm3; 185 density = 3*g/cm3; 205 G4Material* icelandicBasaltMain= nistMan->Co 186 G4Material* icelandicBasaltMain= nistMan->ConstructNewMaterial("IceBasaltMain",elements, fractionMass, density); 206 elements.clear(); << 207 fractionMass.clear(); << 208 187 209 // Define Icelandic Basalt traces components 188 // Define Icelandic Basalt traces components 0029.PP.0035 sample 210 density = 3*g/cm3; 189 density = 3*g/cm3; 211 190 212 elements.push_back("Ba"); natoms.push_back( 191 elements.push_back("Ba"); natoms.push_back(756); 213 elements.push_back("Ce"); natoms.push_back( 192 elements.push_back("Ce"); natoms.push_back(328); 214 elements.push_back("Co"); natoms.push_back( 193 elements.push_back("Co"); natoms.push_back(643); 215 elements.push_back("Cr"); natoms.push_back( 194 elements.push_back("Cr"); natoms.push_back(1000); 216 elements.push_back("Cu"); natoms.push_back( 195 elements.push_back("Cu"); natoms.push_back(1396); 217 elements.push_back("Ga"); natoms.push_back( 196 elements.push_back("Ga"); natoms.push_back(190); 218 elements.push_back("La"); natoms.push_back( 197 elements.push_back("La"); natoms.push_back(103); 219 elements.push_back("Mo"); natoms.push_back( 198 elements.push_back("Mo"); natoms.push_back(9); 220 elements.push_back("Nb"); natoms.push_back( 199 elements.push_back("Nb"); natoms.push_back(114); 221 elements.push_back("Nd"); natoms.push_back( 200 elements.push_back("Nd"); natoms.push_back(104); 222 elements.push_back("Ni"); natoms.push_back( 201 elements.push_back("Ni"); natoms.push_back(544); 223 elements.push_back("Rb"); natoms.push_back( 202 elements.push_back("Rb"); natoms.push_back(78); 224 elements.push_back("S"); natoms.push_back( 203 elements.push_back("S"); natoms.push_back(5550); 225 elements.push_back("Sc"); natoms.push_back( 204 elements.push_back("Sc"); natoms.push_back(531); 226 elements.push_back("Sr"); natoms.push_back( 205 elements.push_back("Sr"); natoms.push_back(1353); 227 elements.push_back("U"); natoms.push_back( 206 elements.push_back("U"); natoms.push_back(22); 228 elements.push_back("V"); natoms.push_back( 207 elements.push_back("V"); natoms.push_back(4533); 229 elements.push_back("Y"); natoms.push_back( 208 elements.push_back("Y"); natoms.push_back(408); 230 elements.push_back("Zn"); natoms.push_back( 209 elements.push_back("Zn"); natoms.push_back(1259); 231 elements.push_back("Zr"); natoms.push_back( 210 elements.push_back("Zr"); natoms.push_back(1274); 232 211 233 G4Material* icelandicBasaltTraces= nistMan-> 212 G4Material* icelandicBasaltTraces= nistMan->ConstructNewMaterial("IceBasaltTraces", elements, natoms, density); 234 213 235 elements.clear(); 214 elements.clear(); 236 natoms.clear(); 215 natoms.clear(); 237 216 238 // Define Icelandic Basalt complete material 217 // Define Icelandic Basalt complete material 0029.PP.0035 sample 239 density = 3*g/cm3; 218 density = 3*g/cm3; 240 icelandicBasalt= new G4Material("IceBasalt", 219 icelandicBasalt= new G4Material("IceBasalt", density, 2); 241 icelandicBasalt->AddMaterial(icelandicBasalt 220 icelandicBasalt->AddMaterial(icelandicBasaltMain, 0.9978); 242 icelandicBasalt->AddMaterial(icelandicBasalt 221 icelandicBasalt->AddMaterial(icelandicBasaltTraces, 0.0022); 243 222 244 223 245 /////////////////////// 224 /////////////////////// 246 // Dolorite // 225 // Dolorite // 247 /////////////////////// 226 /////////////////////// 248 227 249 // Define dolorite main components 0055.PP.0 228 // Define dolorite main components 0055.PP.0038 sample 250 229 251 density = 3*g/cm3; 230 density = 3*g/cm3; 252 231 253 elements.push_back("Fe"); fractionMass.pu 232 elements.push_back("Fe"); fractionMass.push_back(0.1750); 254 elements.push_back("Ti"); fractionMass.pu 233 elements.push_back("Ti"); fractionMass.push_back(0.0082); 255 elements.push_back("Ca"); fractionMass.pu 234 elements.push_back("Ca"); fractionMass.push_back(0.0753); 256 elements.push_back("Si"); fractionMass.pu 235 elements.push_back("Si"); fractionMass.push_back(0.2188); 257 elements.push_back("Al"); fractionMass.pu 236 elements.push_back("Al"); fractionMass.push_back(0.0676); 258 elements.push_back("Mg"); fractionMass.pu 237 elements.push_back("Mg"); fractionMass.push_back(0.0008); 259 elements.push_back("O"); fractionMass.pu 238 elements.push_back("O"); fractionMass.push_back(0.4377); 260 elements.push_back("Mn"); fractionMass.pu 239 elements.push_back("Mn"); fractionMass.push_back(0.0015); 261 elements.push_back("Na"); fractionMass.pu 240 elements.push_back("Na"); fractionMass.push_back(0.0134); 262 elements.push_back("K"); fractionMass.pu 241 elements.push_back("K"); fractionMass.push_back(0.0011); 263 elements.push_back("P"); fractionMass.pu 242 elements.push_back("P"); fractionMass.push_back(0.0006); 264 243 265 244 266 G4Material* doloriteMain = nistMan->Construc << 245 G4Material* dolorite = nistMan->ConstructNewMaterial("Dolorite", elements, fractionMass, density); 267 246 268 elements.clear(); 247 elements.clear(); 269 fractionMass.clear(); << 248 natoms.clear(); 270 249 271 // define traces in dolorite 0055.PP.0038 sa 250 // define traces in dolorite 0055.PP.0038 sample 272 251 273 density = 3*g/cm3; 252 density = 3*g/cm3; 274 253 275 elements.push_back("Nb"); natoms.push_bac 254 elements.push_back("Nb"); natoms.push_back(5); 276 elements.push_back("Zr"); natoms.push_bac 255 elements.push_back("Zr"); natoms.push_back(91); 277 elements.push_back("Y"); natoms.push_bac 256 elements.push_back("Y"); natoms.push_back(29); 278 elements.push_back("Sr"); natoms.push_bac 257 elements.push_back("Sr"); natoms.push_back(140); 279 elements.push_back("Rb"); natoms.push_bac 258 elements.push_back("Rb"); natoms.push_back(3); 280 elements.push_back("Ga"); natoms.push_bac 259 elements.push_back("Ga"); natoms.push_back(20); 281 elements.push_back("Zn"); natoms.push_bac 260 elements.push_back("Zn"); natoms.push_back(99); 282 elements.push_back("Ni"); natoms.push_bac 261 elements.push_back("Ni"); natoms.push_back(77); 283 elements.push_back("Sc"); natoms.push_bac 262 elements.push_back("Sc"); natoms.push_back(32); 284 elements.push_back("V"); natoms.push_bac 263 elements.push_back("V"); natoms.push_back(314); 285 elements.push_back("Cr"); natoms.push_bac 264 elements.push_back("Cr"); natoms.push_back(130); 286 elements.push_back("Co"); natoms.push_bac 265 elements.push_back("Co"); natoms.push_back(56); 287 elements.push_back("Cu"); natoms.push_bac 266 elements.push_back("Cu"); natoms.push_back(119); 288 elements.push_back("Ba"); natoms.push_bac 267 elements.push_back("Ba"); natoms.push_back(38); 289 elements.push_back("Ce"); natoms.push_bac 268 elements.push_back("Ce"); natoms.push_back(15); 290 elements.push_back("Nd"); natoms.push_bac 269 elements.push_back("Nd"); natoms.push_back(9); 291 270 292 G4Material* tracesOfDolorite= nistMan->Const 271 G4Material* tracesOfDolorite= nistMan->ConstructNewMaterial("TracesOfDolorite", elements, natoms, density); 293 272 294 elements.clear(); 273 elements.clear(); 295 natoms.clear(); 274 natoms.clear(); 296 275 297 // define dolorite (full) -- 0055.PP.0038 s 276 // define dolorite (full) -- 0055.PP.0038 sample 298 277 299 density = 3*g/cm3; 278 density = 3*g/cm3; 300 dolorite = new G4Material("Dolorite", densit 279 dolorite = new G4Material("Dolorite", density, 2); 301 dolorite->AddMaterial(tracesOfDolorite, 0.00 280 dolorite->AddMaterial(tracesOfDolorite, 0.0027842352); 302 dolorite->AddMaterial(doloriteMain, 0.997215 << 281 dolorite->AddMaterial(dolorite, 0.9972157648); 303 282 304 /////////////////////// 283 /////////////////////// 305 // Mars1 // 284 // Mars1 // 306 /////////////////////// 285 /////////////////////// 307 286 308 287 309 // define mars1 -- 01.PP.0030 sample 288 // define mars1 -- 01.PP.0030 sample 310 289 311 density = 3*g/cm3; 290 density = 3*g/cm3; 312 291 313 elements.push_back("Fe"); fractionMass.pu 292 elements.push_back("Fe"); fractionMass.push_back(0.100916); 314 elements.push_back("Ti"); fractionMass.pu 293 elements.push_back("Ti"); fractionMass.push_back(0.0186804); 315 elements.push_back("Ca"); fractionMass.pu 294 elements.push_back("Ca"); fractionMass.push_back(0.0404091); 316 elements.push_back("Si"); fractionMass.pu 295 elements.push_back("Si"); fractionMass.push_back(0.196378); 317 elements.push_back("Al"); fractionMass.pu 296 elements.push_back("Al"); fractionMass.push_back(0.103282); 318 elements.push_back("Mg"); fractionMass.pu 297 elements.push_back("Mg"); fractionMass.push_back(0.0241622); 319 elements.push_back("Mn"); fractionMass.pu 298 elements.push_back("Mn"); fractionMass.push_back(0.00184331); 320 elements.push_back("Na"); fractionMass.pu 299 elements.push_back("Na"); fractionMass.push_back(0.0177908); 321 elements.push_back("K"); fractionMass.pu 300 elements.push_back("K"); fractionMass.push_back(0.00574498); 322 elements.push_back("P"); fractionMass.pu 301 elements.push_back("P"); fractionMass.push_back(0.00280169); 323 elements.push_back("O"); fractionMass.pu 302 elements.push_back("O"); fractionMass.push_back(0.48799152); 324 303 325 304 326 G4Material* mars1Main = nistMan->ConstructNe 305 G4Material* mars1Main = nistMan->ConstructNewMaterial("Mars1 Main components", elements, fractionMass, density); 327 306 328 elements.clear(); 307 elements.clear(); 329 fractionMass.clear(); 308 fractionMass.clear(); 330 309 331 elements.push_back("Nb"); natoms.push_bac 310 elements.push_back("Nb"); natoms.push_back(55); 332 elements.push_back("Zr"); natoms.push_bac 311 elements.push_back("Zr"); natoms.push_back(433); 333 elements.push_back("Y"); natoms.push_bac 312 elements.push_back("Y"); natoms.push_back(58); 334 elements.push_back("Sr"); natoms.push_bac 313 elements.push_back("Sr"); natoms.push_back(968); 335 elements.push_back("Rb"); natoms.push_bac 314 elements.push_back("Rb"); natoms.push_back(16); 336 elements.push_back("Ga"); natoms.push_bac 315 elements.push_back("Ga"); natoms.push_back(24); 337 elements.push_back("Zn"); natoms.push_bac 316 elements.push_back("Zn"); natoms.push_back(109); 338 elements.push_back("Ni"); natoms.push_bac 317 elements.push_back("Ni"); natoms.push_back(70); 339 elements.push_back("Sc"); natoms.push_bac 318 elements.push_back("Sc"); natoms.push_back(21); 340 elements.push_back("V"); natoms.push_bac 319 elements.push_back("V"); natoms.push_back(134); 341 elements.push_back("Cr"); natoms.push_bac 320 elements.push_back("Cr"); natoms.push_back(141); 342 elements.push_back("Co"); natoms.push_bac 321 elements.push_back("Co"); natoms.push_back(30); 343 elements.push_back("Cu"); natoms.push_bac 322 elements.push_back("Cu"); natoms.push_back(19); 344 elements.push_back("Ba"); natoms.push_bac 323 elements.push_back("Ba"); natoms.push_back(580); 345 elements.push_back("Pb"); natoms.push_bac 324 elements.push_back("Pb"); natoms.push_back(4); 346 elements.push_back("S"); natoms.push_bac 325 elements.push_back("S"); natoms.push_back(444); 347 elements.push_back("U"); natoms.push_bac 326 elements.push_back("U"); natoms.push_back(2); 348 327 349 density = 3*g/cm3; 328 density = 3*g/cm3; 350 G4Material* tracesOfMars1 = nistMan->Constru 329 G4Material* tracesOfMars1 = nistMan->ConstructNewMaterial("TracesOfMars1", elements, natoms, density); 351 330 352 elements.clear(); 331 elements.clear(); 353 natoms.clear(); 332 natoms.clear(); 354 333 355 density = 3*g/cm3; 334 density = 3*g/cm3; 356 mars1 = new G4Material("Mars1", density, 2); 335 mars1 = new G4Material("Mars1", density, 2); 357 mars1->AddMaterial(tracesOfMars1, 0.00449631 336 mars1->AddMaterial(tracesOfMars1, 0.0044963163); 358 mars1->AddMaterial(mars1Main, 0.9955036837); 337 mars1->AddMaterial(mars1Main, 0.9955036837); 359 338 360 ///////////////////////////////// << 361 // Hawaiian -- WD coposition // << 362 ///////////////////////////////// << 363 << 364 density = 3*g/cm3; << 365 << 366 elements.push_back("Fe"); fractionMass.pu << 367 elements.push_back("Ti"); fractionMass.pu << 368 elements.push_back("Ca"); fractionMass.pu << 369 elements.push_back("Si"); fractionMass.pu << 370 elements.push_back("Al"); fractionMass.pu << 371 elements.push_back("Mg"); fractionMass.pu << 372 elements.push_back("Na"); fractionMass.pu << 373 elements.push_back("K"); fractionMass.pu << 374 elements.push_back("O"); fractionMass.pu << 375 << 376 hawaiianWD = nistMan->ConstructNewMaterial(" << 377 << 378 elements.clear(); << 379 fractionMass.clear(); << 380 << 381 ////////////////////////////////// << 382 // Hawaiian -- RF composition // << 383 ////////////////////////////////// << 384 << 385 density = 3*g/cm3; << 386 << 387 << 388 elements.push_back("Fe"); fractionMass.pu << 389 elements.push_back("Ti"); fractionMass.pu << 390 elements.push_back("Ca"); fractionMass.pu << 391 elements.push_back("Si"); fractionMass.pu << 392 elements.push_back("Al"); fractionMass.pu << 393 elements.push_back("Mg"); fractionMass.pu << 394 elements.push_back("Na"); fractionMass.pu << 395 elements.push_back("K"); fractionMass.pu << 396 elements.push_back("P"); fractionMass.pu << 397 elements.push_back("Mn"); fractionMass.pu << 398 elements.push_back("O"); fractionMass.pu << 399 << 400 hawaiianRF = nistMan->ConstructNewMaterial(" << 401 << 402 elements.clear(); << 403 fractionMass.clear(); << 404 << 405 ////////////////////////////////// << 406 // Icelandic -- WD composition // << 407 ////////////////////////////////// << 408 << 409 density = 3*g/cm3; << 410 << 411 << 412 elements.push_back("Si"); fractionMass.pu << 413 elements.push_back("Ti"); fractionMass.pu << 414 elements.push_back("Al"); fractionMass.pu << 415 elements.push_back("Fe"); fractionMass.pu << 416 elements.push_back("Mg"); fractionMass.pu << 417 elements.push_back("Ca"); fractionMass.pu << 418 elements.push_back("Na"); fractionMass.pu << 419 elements.push_back("K"); fractionMass.pu << 420 elements.push_back("O"); fractionMass.pu << 421 << 422 icelandicWD = nistMan->ConstructNewMaterial( << 423 << 424 elements.clear(); << 425 fractionMass.clear(); << 426 << 427 << 428 ////////////////////////////////// << 429 // Icelandic -- RF composition // << 430 ////////////////////////////////// << 431 << 432 density = 3*g/cm3; << 433 << 434 << 435 elements.push_back("Si"); fractionMass.pu << 436 elements.push_back("Ti"); fractionMass.pu << 437 elements.push_back("Al"); fractionMass.pu << 438 elements.push_back("Fe"); fractionMass.pu << 439 elements.push_back("Mn"); fractionMass.pu << 440 elements.push_back("Mg"); fractionMass.pu << 441 elements.push_back("Ca"); fractionMass.pu << 442 elements.push_back("K"); fractionMass.pu << 443 elements.push_back("P"); fractionMass.pu << 444 elements.push_back("O"); fractionMass.pu << 445 << 446 icelandicRF = nistMan->ConstructNewMaterial( << 447 << 448 elements.clear(); << 449 fractionMass.clear(); << 450 << 451 ////////////////////////////////// << 452 // Gabbro -- WD composition // << 453 ////////////////////////////////// << 454 << 455 density = 3*g/cm3; << 456 << 457 elements.push_back("Si"); fractionMass.pu << 458 elements.push_back("Ti"); fractionMass.pu << 459 elements.push_back("Al"); fractionMass.pu << 460 elements.push_back("Fe"); fractionMass.pu << 461 elements.push_back("Mg"); fractionMass.pu << 462 elements.push_back("Ca"); fractionMass.pu << 463 elements.push_back("Na"); fractionMass.pu << 464 elements.push_back("K"); fractionMass.pu << 465 elements.push_back("O"); fractionMass.pu << 466 << 467 gabbroWD = nistMan->ConstructNewMaterial("Ga << 468 << 469 elements.clear(); << 470 fractionMass.clear(); << 471 << 472 ////////////////////////////////// << 473 // Gabbro -- RF composition // << 474 ////////////////////////////////// << 475 << 476 density = 3*g/cm3; << 477 << 478 << 479 elements.push_back("Si"); fractionMass.pu << 480 elements.push_back("Ti"); fractionMass.pu << 481 elements.push_back("Al"); fractionMass.pu << 482 elements.push_back("Fe"); fractionMass.pu << 483 elements.push_back("Mn"); fractionMass.pu << 484 elements.push_back("Mg"); fractionMass.pu << 485 elements.push_back("Ca"); fractionMass.pu << 486 elements.push_back("Na"); fractionMass.pu << 487 elements.push_back("K"); fractionMass.pu << 488 elements.push_back("P"); fractionMass.pu << 489 elements.push_back("O"); fractionMass.pu << 490 << 491 gabbroRF = nistMan->ConstructNewMaterial("Ga << 492 << 493 elements.clear(); << 494 fractionMass.clear(); << 495 << 496 << 497 /////////////////////// 339 /////////////////////// 498 // Anorthosite // 340 // Anorthosite // 499 /////////////////////// 341 /////////////////////// 500 342 501 343 502 density = 2.8*g/cm3; 344 density = 2.8*g/cm3; 503 345 504 elements.push_back("Fe"); fractionMass.pu 346 elements.push_back("Fe"); fractionMass.push_back(0.095283); 505 elements.push_back("Mn"); fractionMass.pu 347 elements.push_back("Mn"); fractionMass.push_back(0.00137086); 506 elements.push_back("Ni"); fractionMass.pu 348 elements.push_back("Ni"); fractionMass.push_back(5e-5); 507 elements.push_back("Cu"); fractionMass.pu 349 elements.push_back("Cu"); fractionMass.push_back(5.2e-4); 508 elements.push_back("Na"); fractionMass.pu 350 elements.push_back("Na"); fractionMass.push_back(0.017635); 509 elements.push_back("Mg"); fractionMass.pu 351 elements.push_back("Mg"); fractionMass.push_back(0.0245361); 510 elements.push_back("Al"); fractionMass.pu 352 elements.push_back("Al"); fractionMass.push_back(0.0800355); 511 elements.push_back("Si"); fractionMass.pu 353 elements.push_back("Si"); fractionMass.push_back(0.232204); 512 elements.push_back("Ca"); fractionMass.pu 354 elements.push_back("Ca"); fractionMass.push_back(0.0635368); 513 elements.push_back("K"); fractionMass.pu 355 elements.push_back("K"); fractionMass.push_back(0.00464912); 514 elements.push_back("C"); fractionMass.pu 356 elements.push_back("C"); fractionMass.push_back(0.000837803); 515 elements.push_back("P"); fractionMass.pu 357 elements.push_back("P"); fractionMass.push_back(0.00176742); 516 elements.push_back("Ti"); fractionMass.pu 358 elements.push_back("Ti"); fractionMass.push_back(0.0240879); 517 elements.push_back("Cl"); fractionMass.pu 359 elements.push_back("Cl"); fractionMass.push_back(0.00014); 518 elements.push_back("Pd"); fractionMass.pu 360 elements.push_back("Pd"); fractionMass.push_back(0.00001); 519 elements.push_back("Cd"); fractionMass.pu 361 elements.push_back("Cd"); fractionMass.push_back(0.00018); 520 elements.push_back("Ag"); fractionMass.pu 362 elements.push_back("Ag"); fractionMass.push_back(0.00048); 521 elements.push_back("S"); fractionMass.pu 363 elements.push_back("S"); fractionMass.push_back(0.00144); 522 elements.push_back("V"); fractionMass.pu 364 elements.push_back("V"); fractionMass.push_back(0.00228); 523 elements.push_back("Ba"); fractionMass.pu 365 elements.push_back("Ba"); fractionMass.push_back(0.00151); 524 elements.push_back("O"); fractionMass.pu 366 elements.push_back("O"); fractionMass.push_back(0.447026); 525 367 526 anorthosite = nistMan->ConstructNewMaterial( 368 anorthosite = nistMan->ConstructNewMaterial("Anorthosite", elements, fractionMass, density); 527 369 528 elements.clear(); 370 elements.clear(); 529 fractionMass.clear(); 371 fractionMass.clear(); 530 372 531 //////////////////////////////////////// << 532 // Gabbro 0059.PP.0048 // << 533 //////////////////////////////////////// << 534 << 535 << 536 density = 3.0*g/cm3; << 537 << 538 elements.push_back("Si"); fractionMass.pu << 539 elements.push_back("Ti"); fractionMass.pu << 540 elements.push_back("Al"); fractionMass.pu << 541 elements.push_back("Fe"); fractionMass.pu << 542 elements.push_back("Mn"); fractionMass.pu << 543 elements.push_back("Mg"); fractionMass.pu << 544 elements.push_back("Ca"); fractionMass.pu << 545 elements.push_back("Na"); fractionMass.pu << 546 elements.push_back("K"); fractionMass.pu << 547 elements.push_back("P"); fractionMass.pu << 548 elements.push_back("O"); fractionMass.pu << 549 << 550 gabbro = nistMan->ConstructNewMaterial("Gabb << 551 << 552 elements.clear(); << 553 fractionMass.clear(); << 554 << 555 //define gallium arsenide 373 //define gallium arsenide 556 374 557 elements.push_back("Ga"); natoms.push_ba 375 elements.push_back("Ga"); natoms.push_back(1); 558 elements.push_back("As"); natoms.push_ba 376 elements.push_back("As"); natoms.push_back(1); 559 377 560 density = 5.32 * g/cm3; 378 density = 5.32 * g/cm3; 561 GaAs = nistMan->ConstructNewMaterial("galliu 379 GaAs = nistMan->ConstructNewMaterial("gallium arsenide", elements, natoms, density); 562 380 563 elements.clear(); 381 elements.clear(); 564 natoms.clear(); 382 natoms.clear(); 565 383 566 /* << 384 567 // define germanium 385 // define germanium 568 386 569 density = 5.32 * g/cm3; 387 density = 5.32 * g/cm3; 570 388 571 elements.push_back("Ge"); natoms.push_ba 389 elements.push_back("Ge"); natoms.push_back(1); 572 << 390 HPGe = nistMan->ConstructNewMaterial("HPGe",elements, natoms, density); 573 G4cout << elements[1] <<", "<<natoms[1] <<", << 574 << 575 << 576 HPGe = nistMan->ConstructNewMaterial("High P << 577 391 578 elements.clear(); 392 elements.clear(); 579 natoms.clear(); 393 natoms.clear(); 580 */ << 394 581 //define scintillator 395 //define scintillator 582 396 583 elements.push_back("C"); natoms.push_bac 397 elements.push_back("C"); natoms.push_back(9); 584 elements.push_back("H"); natoms.push_bac 398 elements.push_back("H"); natoms.push_back(10); 585 399 586 density = 1.032*g/cm3; 400 density = 1.032*g/cm3; 587 Sci = nistMan->ConstructNewMaterial("Scintil 401 Sci = nistMan->ConstructNewMaterial("Scintillator", elements, natoms, density); 588 402 589 elements.clear(); 403 elements.clear(); 590 natoms.clear(); 404 natoms.clear(); 591 405 592 //define vacuum 406 //define vacuum 593 407 594 density = universe_mean_density; //fr 408 density = universe_mean_density; //from PhysicalConstants.h 595 G4double pressure = 3.e-18*pascal; 409 G4double pressure = 3.e-18*pascal; 596 G4double temperature = 2.73*kelvin; 410 G4double temperature = 2.73*kelvin; 597 Vacuum = new G4Material("Galactic", 1., 1.01 411 Vacuum = new G4Material("Galactic", 1., 1.01*g/mole, density, 598 kStateGas,temperature,pressure) 412 kStateGas,temperature,pressure); 599 413 600 elements.clear(); << 601 natoms.clear(); << 602 << 603 //define basalt 414 //define basalt 604 density = 3.*g/cm3; 415 density = 3.*g/cm3; 605 416 606 elements.push_back("Fe"); fractionMass.p 417 elements.push_back("Fe"); fractionMass.push_back(0.1200); 607 elements.push_back("Ti"); fractionMass.p 418 elements.push_back("Ti"); fractionMass.push_back(0.0160); 608 elements.push_back("Ca"); fractionMass.p 419 elements.push_back("Ca"); fractionMass.push_back(0.0750); 609 elements.push_back("Si"); fractionMass.p 420 elements.push_back("Si"); fractionMass.push_back(0.2160); 610 elements.push_back("Al"); fractionMass.p 421 elements.push_back("Al"); fractionMass.push_back(0.0710); 611 elements.push_back("Mg"); fractionMass.p 422 elements.push_back("Mg"); fractionMass.push_back(0.0590); 612 elements.push_back("O"); fractionMass.p 423 elements.push_back("O"); fractionMass.push_back(0.4430); 613 << 614 basalt = nistMan->ConstructNewMaterial("Basa << 615 424 616 elements.clear(); << 617 fractionMass.clear(); << 618 << 619 << 620 // define silicon << 621 425 622 density = 2330*kg/m3; << 623 << 624 // workaround for a problem in nistMan: it d << 625 << 626 elements.push_back("Si"); natoms.push_ << 627 elements.push_back("Si"); natoms.push_ << 628 << 629 SiLi = nistMan->ConstructNewMaterial("SiLi", << 630 << 631 elements.clear(); << 632 natoms.clear(); << 633 426 634 << 427 basalt = nistMan->ConstructNewMaterial("Basalt", elements, fractionMass, density); 635 // define copper << 636 << 637 density = 8920*kg/m3; << 638 << 639 // workaround for a problem in nistMan: it d << 640 elements.push_back("Cu"); natoms.push_ << 641 elements.push_back("Cu"); natoms.push_ << 642 << 643 copper = nistMan->ConstructNewMaterial("Cu", << 644 << 645 elements.clear(); << 646 natoms.clear(); << 647 /* << 648 // define nikel << 649 << 650 density = 8908*kg/m3; << 651 << 652 // workaround for a problem in nistMan: it d << 653 elements.push_back("Ni"); natoms.push_ << 654 elements.push_back("Ni"); natoms.push_ << 655 << 656 nickel = nistMan->ConstructNewMaterial("Nick << 657 */ << 658 elements.clear(); << 659 natoms.clear(); << 660 << 661 << 662 428 663 G4cout << *(G4Material::GetMaterialTable()) 429 G4cout << *(G4Material::GetMaterialTable()) << G4endl; 664 } 430 } 665 431 666 432