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

Last change on this file since 1309 was 1230, checked in by garnier, 14 years ago

update to geant4.9.3

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: geant4-09-03-cand-01 $
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.