69{
70
71std::cout << "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DETECTOR CONSTRUCTION <<<<<<<<<<<<<<<<<" << std::endl;
72
73 if(m_pipeSCM != 2)
74 {
75
76 G4double a, z, density,abundance,fractionmass;
77 G4double temperature, pressure;
78 G4int iz,
n,nel,ncomponents,natoms;
79 G4String name,symbol;
80 G4Isotope* U5 =
new G4Isotope(name=
"U235", iz=92,
n=235, a=235.01*g/mole);
81 G4Isotope* U8 =
new G4Isotope(name=
"U238", iz=92,
n=238, a=238.03*g/mole);
82
83 G4Element* U = new G4Element(name="enriched Uranium",symbol="U",ncomponents=2);
84 U->AddIsotope(U5, abundance= 90.*perCent);
85 U->AddIsotope(U8, abundance= 10.*perCent);
86
87 a = 1.01*g/mole;
88 G4Element*
H =
new G4Element(name=
"Hydrogen",symbol=
"H" , z= 1., a);
89
90 a = 12.01*g/mole;
91 G4Element*
C =
new G4Element(name=
"Carbon" ,symbol=
"C" , z= 6., a);
92
93 a = 14.01*g/mole;
94 G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a);
95
96 a = 16.00*g/mole;
97 G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a);
98
99 a=28.09*g/mole;
100 G4Element* Si = new G4Element(name="Silicon",symbol="Si",z=14.,a);
101
102 a=126.90447*g/mole;
103 G4Element*
I =
new G4Element(name=
"Iodine",symbol=
"I",z=53.,a);
104
105 a=132.90545*g/mole;
106 G4Element* Cs = new G4Element(name="Cesium",symbol="Cs",z=55.,a);
107
108 density = 1.848*g/cm3;
109 a = 9.012182*g/mole;
110 G4Material* Beryllium = new G4Material(name="Beryllium",z=4.0,a,density);
111
112 density = 2.70*g/cm3;
113 a = 26.98*g/mole;
114 G4Material* Aluminium = new G4Material(name="Aluminium",z=13.,a,density);
115
116 density = 7.84*g/cm3;
117 a = 55.845*g/mole;
118 G4Material* Iron = new G4Material(name="Iron",z=26.0,a,density);
119
120 density = 8.96*g/cm3;
121 a = 63.546*g/mole;
122 G4Material* Copper = new G4Material(name="Copper",z=29.0,a,density);
123
124 density = 0.0001664*g/cm3;
125 a = 4.0026*g/mole;
126 G4Material* Hegas = new G4Material(name="Hegas",z=2.0,a,density);
127
128 density = 0.001879*g/cm3;
129 G4Material* Propane = new G4Material(name="Propane",density,nel=2);
130 Propane->AddElement(
C, natoms=3);
131 Propane->AddElement(
H, natoms=8);
132
133 density = 4.53*g/cm3;
134 G4Material* Cesiumiodide = new G4Material(name="Cesiumiodide",density,nel=2);
135 Cesiumiodide->AddElement(
I, natoms=1);
136 Cesiumiodide->AddElement(Cs, natoms=1);
137
138 density = 0.00085144*g/cm3;
139 G4Material* Mdcgas = new G4Material(name="Mdcgas",density,nel=2);
140 Mdcgas->AddMaterial(Hegas, fractionmass = 0.1173);
141 Mdcgas->AddMaterial(Propane, fractionmass = 0.8827);
142
143 density = 1.390*g/cm3;
144 a = 39.95*g/mole;
145 G4Material* liquidArgon = new G4Material(name="liquidArgon",z=18.0,a,density);
146
147 density = 11.35*g/cm3;
148 a = 207.19*g/mole;
149 G4Material* Lead = new G4Material(name="Lead",z=82.,a,density);
150
151 density = 1.0*g/cm3;
152 G4Material* Water = new G4Material(name="Water", density, nel=2);
153 Water->AddElement(
H, natoms=2);
154 Water->AddElement(O, natoms=1);
155
156 density = 1.032*g/cm3;
157 G4Material* Scintillator = new G4Material(name="Scintillator", density, nel=2);
158 Scintillator->AddElement(
C, natoms=9);
159 Scintillator->AddElement(
H, natoms=10);
160
161 density = 2.200*g/cm3;
162 G4Material* SiO2 = new G4Material(name="SiO2", density, nel=2);
163 SiO2->AddElement(Si, natoms=1);
164 SiO2->AddElement(O, natoms=2);
165
166 density = 1.290*mg/cm3;
167 G4Material* Air = new G4Material(name="Air",density,nel=2);
168 Air->AddElement(N, fractionmass = 0.7);
169 Air->AddElement(O, fractionmass = 0.3);
170
171 density = 0.200*g/cm3;
172 G4Material* Aerogel = new G4Material(name="Aerogel",density,nel=3);
173 Aerogel->AddMaterial(SiO2, fractionmass = 0.625);
174 Aerogel->AddMaterial(Water, fractionmass = 0.374);
175 Aerogel->AddElement(
C, fractionmass = 0.001);
176
177 density = 27.0*mg/cm3;
178 pressure = 50.0*atmosphere;
179 temperature = 325.0*kelvin;
180 G4Material* CarbonicGas = new G4Material(name="CarbonicGas",density,nel=2,kStateGas,temperature,pressure);
181 CarbonicGas->AddElement(
C,natoms=1);
182 CarbonicGas->AddElement(O,natoms=2);
183
184 density = 0.3*mg/cm3;
185 pressure = 2.0*atmosphere;
186 temperature = 500.0*kelvin;
187 G4Material* WaterSteam = new G4Material(name="WaterSteam",density,nel=1,kStateGas,temperature,pressure);
188 WaterSteam->AddMaterial(Water,fractionmass=1);
189
190 density = universe_mean_density;
191 pressure = 3.e-18*pascal;
192 temperature = 2.73*kelvin;
193 G4Material* Galactic = new G4Material(name="Galactic", z=1., a=1.01*g/mole,
194 density,kStateGas,temperature,pressure);
195
196 density = 1.0e-5*g/cm3;
197 pressure = 2.e-2*bar;
198 G4Material* Beam = new G4Material(name="Beam",density,nel=1,kStateGas,STP_Temperature,pressure);
199 Beam->AddMaterial(Air,fractionmass=1.0);
200
201
202 G4Box* sWorld = new G4Box("solidWorld",263.5*cm,263.5*cm,287.5*cm);
203 lWorld = new G4LogicalVolume(sWorld,Air,"logicalWorld",0,0,0);
204 fWorld = new G4PVPlacement(0,G4ThreeVector(0,0,0),lWorld,"physicWorld",0,false,0);
205
207
208 if( m_pipeSCM == 1 )
209 {
210 G4cout<<"construct beampipe and SCM with Geant4 classes"<<G4endl;
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279 }
280 }
281
282 else if(m_pipeSCM == 2)
283 {
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
345
346 }
347
348
359
360 G4cout<<"get world "<<fWorld->GetLogicalVolume()->GetNoDaughters()<<endl;
361 for(int nd = 0; nd < fWorld->GetLogicalVolume()->GetNoDaughters(); nd++)
362 {
363 G4cout<<"daughter n: name :"<<nd<<" "<<fWorld->GetLogicalVolume()->GetDaughter(nd)->GetName()<<G4endl;
364
365 }
366
367 return fWorld;
368}
***************************************************************************************Pseudo Class RRes *****************************************************************************************Parameters and physical constants **Maarten sept ************************************************************************DOUBLE PRECISION xsmu **************************************************************************PARTICLE DATA all others are from PDG *Only resonances with known widths into electron pairs are sept ************************************************************************C Declarations C
void Construct(G4LogicalVolume *)
void SetVisAttributes(G4String volumeName)
void Construct(G4LogicalVolume *)
void Construct(G4LogicalVolume *)
void Construct(G4LogicalVolume *logicBes)
void Construct(G4LogicalVolume *logicbes)
void Construct(G4LogicalVolume *logicbes)
void Construct(G4LogicalVolume *logicalBes)