source: trunk/examples/advanced/radioprotection/src/RemSimMaterial.cc@ 1225

Last change on this file since 1225 was 807, checked in by garnier, 17 years ago

update

File size: 7.8 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// Code developed by:
27// S.Guatelli
28//
29// *******************************
30// * *
31// * RemSimMaterial.cc *
32// * *
33// *******************************
34//
35// $Id: RemSimMaterial.cc,v 1.7 2006/06/29 16:23:53 gunter Exp $
36// GEANT4 tag $Name: $
37//
38
39#include "G4MaterialPropertiesTable.hh"
40#include "G4MaterialPropertyVector.hh"
41#include "globals.hh"
42#include "G4MaterialTable.hh"
43#include "G4RunManager.hh"
44#include "G4Element.hh"
45#include "G4ElementTable.hh"
46#include "RemSimMaterial.hh"
47
48RemSimMaterial::RemSimMaterial():
49 matPb(0), matAir(0), matH2O(0), Al(0), nylon(0), mylar(0),
50 beta(0), nextel(0), kevlar(0),
51 vacuum(0), betaCloth(0), eterogeneousNextel(0), kevlarVacuum(0),
52 polyethylene(0), polyacrylate(0), evoh(0), nomex(0), nomexAir(0),
53 kevlarAir(0), moon(0)
54{;}
55
56RemSimMaterial::~RemSimMaterial()
57{
58 delete moon;
59 delete kevlarAir;
60 delete nomexAir;
61 delete nomex;
62 delete evoh;
63 delete polyacrylate;
64 delete polyethylene;
65 delete kevlarVacuum;
66 delete eterogeneousNextel;
67 delete betaCloth;
68 delete vacuum;
69 delete kevlar;
70 delete nextel;
71 delete beta;
72 delete mylar;
73 delete nylon;
74 delete Al;
75 delete matH2O;
76 delete matAir;
77 delete matPb;
78}
79
80void RemSimMaterial::DefineMaterials()
81{
82 // Define required materials
83
84 G4double A; // atomic mass
85 G4double Z; // atomic number
86 G4double d; // density
87
88 // General elements
89
90 A = 1.01*g/mole;
91 G4Element* elH = new G4Element ("Hydrogen","H",Z = 1.,A);
92
93 A = 10.811*g/mole;
94 G4Element* elB = new G4Element ("Boro","B",Z = 5.,A);
95
96 A = 14.01*g/mole;
97 G4Element* elN = new G4Element("Nitrogen","N",Z = 7.,A);
98
99 A = 16.00*g/mole;
100
101 G4Element* elO = new G4Element("Oxygen","O",Z = 8.,A);
102
103 A=26.98*g/mole;
104 G4Element* elAl = new G4Element("Aluminum","Al", Z = 13.,A);
105
106 A = 12.011*g/mole;
107 G4Element* elC = new G4Element("Carbon","C",Z = 6.,A);
108
109 A = 24.305*g/mole;
110 G4Element* elMg = new G4Element("Magnesium","Mg",Z = 12.,A);
111
112 A = 35.453*g/mole;
113 G4Element* elCl = new G4Element("Chlorine","Cl",Z = 17.,A);
114
115 A = 40.08*g/mole;
116 G4Element* elCa = new G4Element("Calcium","Ca",Z = 20.,A);
117
118 A = 28.09*g/mole;
119 G4Element* elSi = new G4Element("Silicon","Si",Z = 14.,A);
120
121 A = 55.85*g/mole;
122 G4Element* elFe = new G4Element("Iron","Fe",Z = 26.,A);
123
124 //Lead material
125 A = 207.19*g/mole;
126 Z = 82;
127 d = 11.35*g/cm3;
128 matPb = new G4Material("Lead",Z,A,d);
129
130 // Air material
131 G4double airDensity = 1.290*mg/cm3;
132 G4Material* matAir = new G4Material("Air",airDensity,2);
133 matAir -> AddElement(elN,0.7);
134 matAir -> AddElement(elO,0.3);
135
136 // Water
137 d = 1.000*g/cm3;
138 matH2O = new G4Material("Water",d,2);
139 matH2O -> AddElement(elH,2);
140 matH2O -> AddElement(elO,1);
141 matH2O -> GetIonisation() -> SetMeanExcitationEnergy(75.0*eV);
142
143 Al = new G4Material("Aluminium", Z= 13., A= 26.98*g/mole, d = 2.7*g/cm3);
144
145 //nylon (alenia spazio)
146 d = 1.14 *g/cm3;
147 nylon = new G4Material("nylon",d,4);
148 nylon -> AddElement(elH,0.108);
149 nylon -> AddElement(elC,0.68);
150 nylon -> AddElement(elN,0.099);
151 nylon -> AddElement(elO,0.113);
152
153 //mylar (alenia spazio)
154 d= 1.4 *g/cm3;
155 mylar = new G4Material("mylar",d,3);
156 mylar -> AddElement(elH,0.042);
157 mylar -> AddElement(elC,0.625);
158 mylar -> AddElement(elO,0.333);
159
160 //beta cloth
161 G4double betaDensity = 2.3 *g/cm3;
162 beta = new G4Material("beta",betaDensity,2);
163 beta -> AddElement(elO,0.53);
164 beta -> AddElement(elSi,0.47);
165
166 G4double nextelDensity = 2.7 * g/cm3;
167 nextel = new G4Material("nextel",nextelDensity,4);
168 nextel -> AddElement(elB,0.04);
169 nextel -> AddElement(elO,0.52);
170 nextel -> AddElement(elAl,0.33);
171 nextel -> AddElement(elSi,0.11);
172
173 //kevlar
174 G4double kevlarDensity = 1.44 *g/cm3;
175 kevlar = new G4Material("kevlar",d,4);
176 kevlar -> AddElement(elH,0.04);
177 kevlar -> AddElement(elC,0.71);
178 kevlar -> AddElement(elO,0.12);
179 kevlar -> AddElement(elN,0.13);
180
181 //vacuum
182 G4double vacuumDensity = 1.e-25 *g/cm3;
183 G4double pressure = 3.e-18*pascal;
184 G4double temperature = 2.73*kelvin;
185 vacuum = new G4Material("Galactic", Z=1., A=1.01*g/mole,
186 vacuumDensity,kStateGas,temperature,pressure);
187
188 d = (vacuumDensity*0.44)+ (betaDensity*0.56);
189 betaCloth = new G4Material("betacloth",d,2);
190 betaCloth -> AddMaterial (beta, 0.56);
191 betaCloth -> AddMaterial (vacuum,0.44);
192
193 d = (vacuumDensity*0.73)+ (nextelDensity*0.27);
194 eterogeneousNextel = new G4Material("Nextel312AF62",d,2);
195 eterogeneousNextel -> AddMaterial (vacuum, 0.73);
196 eterogeneousNextel -> AddMaterial (nextel, 0.27);
197
198 d = (vacuumDensity*0.44)+ (kevlarDensity*0.56);
199 kevlarVacuum = new G4Material("kevlarVacuum",d,2);
200 kevlarVacuum -> AddMaterial (vacuum, 0.44);
201 kevlarVacuum -> AddMaterial (kevlar, 0.56);
202
203 d = 0.94 * g/cm3;
204 polyethylene = new G4Material("polyethylene",d,2);
205 polyethylene -> AddElement(elH,0.14);
206 polyethylene -> AddElement(elC,0.86);
207
208 d = 1.19 * g/cm3;
209 polyacrylate = new G4Material("polyacrylate",d,3);
210 polyacrylate -> AddElement(elH,0.08);
211 polyacrylate -> AddElement(elC,0.60);
212 polyacrylate -> AddElement(elO,0.32);
213
214 d = 1.17 * g/cm3;
215 evoh = new G4Material("evoh",d,3);
216 evoh -> AddElement(elH,0.11);
217 evoh -> AddElement(elC,0.67);
218 evoh -> AddElement(elO,0.22);
219
220 G4double nomexDensity = 0.98 * g/cm3;
221 nomex = new G4Material("nomex",nomexDensity,5);
222 nomex -> AddElement(elH,0.04);
223 nomex -> AddElement(elC,0.54);
224 nomex -> AddElement(elN,0.09);
225 nomex -> AddElement(elO,0.10);
226 nomex -> AddElement(elCl,0.23);
227
228 d = 0.45*(nomexDensity)+ 0.55*(airDensity);
229 nomexAir = new G4Material("nomexAir",d,2);
230 nomexAir -> AddMaterial(nomex,0.45);
231 nomexAir -> AddMaterial(matAir,0.55);
232
233 d =0.56*(kevlarDensity)+ 0.44*(airDensity);
234 kevlarAir = new G4Material("kevlarAir",d,2);
235 kevlarAir -> AddMaterial(kevlar,0.56);
236 kevlarAir -> AddMaterial(matAir,0.44);
237
238 d = 1.5*g/cm3;
239 moon = new G4Material("moon",d,6);
240 moon -> AddElement(elO,0.45);
241 moon -> AddElement(elMg,0.05);
242 moon -> AddElement(elAl,0.13);
243 moon -> AddElement(elSi,0.21);
244 moon -> AddElement(elCa,0.10);
245 moon -> AddElement(elFe,0.06);
246}
247
248G4Material* RemSimMaterial::GetMaterial(G4String material)
249{
250 G4Material* pttoMaterial = G4Material::GetMaterial(material);
251 return pttoMaterial;
252}
Note: See TracBrowser for help on using the repository browser.