61 {
62 if ( m_pipeSCM != 2 )
63 {
64
65 G4double a, z, density, abundance, fractionmass;
66 G4double temperature, pressure;
67 G4int iz,
n, nel, ncomponents, natoms;
68 G4String name, symbol;
69 G4Isotope* U5 =
new G4Isotope( name =
"U235", iz = 92,
n = 235, a = 235.01 * g / mole );
70 G4Isotope* U8 =
new G4Isotope( name =
"U238", iz = 92,
n = 238, a = 238.03 * g / mole );
71
72 G4Element* U = new G4Element( name = "enriched Uranium", symbol = "U", ncomponents = 2 );
73 U->AddIsotope( U5, abundance = 90. * perCent );
74 U->AddIsotope( U8, abundance = 10. * perCent );
75
76 a = 1.01 * g / mole;
77 G4Element*
H =
new G4Element( name =
"Hydrogen", symbol =
"H", z = 1., a );
78
79 a = 12.01 * g / mole;
80 G4Element*
C =
new G4Element( name =
"Carbon", symbol =
"C", z = 6., a );
81
82 a = 14.01 * g / mole;
83 G4Element* N = new G4Element( name = "Nitrogen", symbol = "N", z = 7., a );
84
85 a = 16.00 * g / mole;
86 G4Element* O = new G4Element( name = "Oxygen", symbol = "O", z = 8., a );
87
88 a = 28.09 * g / mole;
89 G4Element* Si = new G4Element( name = "Silicon", symbol = "Si", z = 14., a );
90
91 a = 126.90447 * g / mole;
92 G4Element*
I =
new G4Element( name =
"Iodine", symbol =
"I", z = 53., a );
93
94 a = 132.90545 * g / mole;
95 G4Element* Cs = new G4Element( name = "Cesium", symbol = "Cs", z = 55., a );
96
97 density = 1.848 * g / cm3;
98 a = 9.012182 * g / mole;
99 G4Material* Beryllium = new G4Material( name = "Beryllium", z = 4.0, a, density );
100
101 density = 2.70 * g / cm3;
102 a = 26.98 * g / mole;
103 G4Material* Aluminium = new G4Material( name = "Aluminium", z = 13., a, density );
104
105 density = 7.84 * g / cm3;
106 a = 55.845 * g / mole;
107 G4Material* Iron = new G4Material( name = "Iron", z = 26.0, a, density );
108
109 density = 8.96 * g / cm3;
110 a = 63.546 * g / mole;
111 G4Material* Copper = new G4Material( name = "Copper", z = 29.0, a, density );
112
113 density = 0.0001664 * g / cm3;
114 a = 4.0026 * g / mole;
115 G4Material* Hegas = new G4Material( name = "Hegas", z = 2.0, a, density );
116
117 density = 0.001879 * g / cm3;
118 G4Material* Propane = new G4Material( name = "Propane", density, nel = 2 );
119 Propane->AddElement(
C, natoms = 3 );
120 Propane->AddElement(
H, natoms = 8 );
121
122 density = 4.53 * g / cm3;
123 G4Material* Cesiumiodide = new G4Material( name = "Cesiumiodide", density, nel = 2 );
124 Cesiumiodide->AddElement(
I, natoms = 1 );
125 Cesiumiodide->AddElement( Cs, natoms = 1 );
126
127 density = 0.00085144 * g / cm3;
128 G4Material* Mdcgas = new G4Material( name = "Mdcgas", density, nel = 2 );
129 Mdcgas->AddMaterial( Hegas, fractionmass = 0.1173 );
130 Mdcgas->AddMaterial( Propane, fractionmass = 0.8827 );
131
132 density = 1.390 * g / cm3;
133 a = 39.95 * g / mole;
134 G4Material* liquidArgon = new G4Material( name = "liquidArgon", z = 18.0, a, density );
135
136 density = 11.35 * g / cm3;
137 a = 207.19 * g / mole;
138 G4Material* Lead = new G4Material( name = "Lead", z = 82., a, density );
139
140 density = 1.0 * g / cm3;
141 G4Material* Water = new G4Material( name = "Water", density, nel = 2 );
142 Water->AddElement(
H, natoms = 2 );
143 Water->AddElement( O, natoms = 1 );
144
145 density = 1.032 * g / cm3;
146 G4Material* Scintillator = new G4Material( name = "Scintillator", density, nel = 2 );
147 Scintillator->AddElement(
C, natoms = 9 );
148 Scintillator->AddElement(
H, natoms = 10 );
149
150 density = 2.200 * g / cm3;
151 G4Material* SiO2 = new G4Material( name = "SiO2", density, nel = 2 );
152 SiO2->AddElement( Si, natoms = 1 );
153 SiO2->AddElement( O, natoms = 2 );
154
155 density = 1.290 * mg / cm3;
156 G4Material* Air = new G4Material( name = "Air", density, nel = 2 );
157 Air->AddElement( N, fractionmass = 0.7 );
158 Air->AddElement( O, fractionmass = 0.3 );
159
160 density = 0.200 * g / cm3;
161 G4Material* Aerogel = new G4Material( name = "Aerogel", density, nel = 3 );
162 Aerogel->AddMaterial( SiO2, fractionmass = 0.625 );
163 Aerogel->AddMaterial( Water, fractionmass = 0.374 );
164 Aerogel->AddElement(
C, fractionmass = 0.001 );
165
166 density = 27.0 * mg / cm3;
167 pressure = 50.0 * atmosphere;
168 temperature = 325.0 * kelvin;
169 G4Material* CarbonicGas = new G4Material( name = "CarbonicGas", density, nel = 2,
170 kStateGas, temperature, pressure );
171 CarbonicGas->AddElement(
C, natoms = 1 );
172 CarbonicGas->AddElement( O, natoms = 2 );
173
174 density = 0.3 * mg / cm3;
175 pressure = 2.0 * atmosphere;
176 temperature = 500.0 * kelvin;
177 G4Material* WaterSteam = new G4Material( name = "WaterSteam", density, nel = 1, kStateGas,
178 temperature, pressure );
179 WaterSteam->AddMaterial( Water, fractionmass = 1 );
180
181 density = universe_mean_density;
182 pressure = 3.e-18 * pascal;
183 temperature = 2.73 * kelvin;
184 G4Material* Galactic = new G4Material( name = "Galactic", z = 1., a = 1.01 * g / mole,
185 density, kStateGas, temperature, pressure );
186
187 density = 1.0e-5 * g / cm3;
188 pressure = 2.e-2 * bar;
189 G4Material* Beam = new G4Material( name = "Beam", density, nel = 1, kStateGas,
190 STP_Temperature, pressure );
191 Beam->AddMaterial( Air, fractionmass = 1.0 );
192
193
194 G4Box* sWorld = new G4Box( "solidWorld", 263.5 * cm, 263.5 * cm, 287.5 * cm );
195 lWorld = new G4LogicalVolume( sWorld, Air, "logicalWorld", 0, 0, 0 );
196 fWorld =
197 new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), lWorld, "physicWorld", 0, false, 0 );
198
199 lWorld->SetVisAttributes( G4VisAttributes::Invisible );
200
201 if ( m_pipeSCM == 1 )
202 {
203 G4cout << "construct beampipe and SCM with Geant4 classes" << G4endl;
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231 m_Pip->Construct( lWorld );
232 m_SCM->Construct( lWorld );
233
234
235
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
283
284
285
286
287
288
289
290
291 }
292 }
293
294 else if ( m_pipeSCM == 2 )
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
344
345
346
347
348
349
350
351
352
353
354
355
357 }
358
359
364
365 G4cout << "get world " << fWorld->GetLogicalVolume()->GetNoDaughters() << endl;
366 for ( int nd = 0; nd < fWorld->GetLogicalVolume()->GetNoDaughters(); nd++ )
367 {
368 G4cout << "daughter n: name :" << nd << " "
369 << fWorld->GetLogicalVolume()->GetDaughter( nd )->GetName() << G4endl;
370 }
371
372 return fWorld;
373}
***************************************************************************************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 SetVisAttributes(G4String volumeName)