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 | //***** Generated by Geant4 Geometry Editor at Fri Nov 26 11:51:46 JST 2004 ***** |
---|
27 | |
---|
28 | //------HeaderFile- |
---|
29 | #include "flatteningFilter.hh" |
---|
30 | |
---|
31 | #include "G4UnitsTable.hh" |
---|
32 | |
---|
33 | #include "G4VUserDetectorConstruction.hh" |
---|
34 | |
---|
35 | #include "globals.hh" |
---|
36 | #include "G4Material.hh" |
---|
37 | #include "G4MaterialTable.hh" |
---|
38 | #include "G4Element.hh" |
---|
39 | #include "G4ElementTable.hh" |
---|
40 | #include "G4Box.hh" |
---|
41 | #include "G4Tubs.hh" |
---|
42 | #include "G4Cons.hh" |
---|
43 | #include "G4LogicalVolume.hh" |
---|
44 | #include "G4ThreeVector.hh" |
---|
45 | #include "G4PVPlacement.hh" |
---|
46 | #include "G4PVReplica.hh" |
---|
47 | #include "G4SDManager.hh" |
---|
48 | #include "G4VisAttributes.hh" |
---|
49 | #include "G4Colour.hh" |
---|
50 | |
---|
51 | flatteningFilter::flatteningFilter() |
---|
52 | { ; } |
---|
53 | flatteningFilter::~flatteningFilter() |
---|
54 | { ; } |
---|
55 | G4VPhysicalVolume* flatteningFilter::Construct( ) |
---|
56 | { |
---|
57 | // Elements |
---|
58 | G4Element* elementN = new G4Element( "Nitrogen", "N", 7. , 14.00674*g/mole ); |
---|
59 | G4Element* elementO = new G4Element( "Oxygen", "O", 8. , 15.9994*g/mole ); |
---|
60 | G4Element* elementH = new G4Element( "Hydrogen", "H", 1. , 1.00794*g/mole ); |
---|
61 | |
---|
62 | // Materials from Combination |
---|
63 | |
---|
64 | G4Material* Air = new G4Material("Air", 1.205*mg/cm3, 2, kStateUndefined, 293.15*kelvin, 1.0*atmosphere ); |
---|
65 | Air->AddElement( elementN, 1 ); |
---|
66 | Air->AddElement( elementO, 0 ); |
---|
67 | G4Material* H2O = new G4Material("H2O", 1.0*g/cm3, 2, kStateUndefined, 273.15*kelvin, 1.0*atmosphere ); |
---|
68 | H2O->AddElement( elementH, 2 ); |
---|
69 | H2O->AddElement( elementO, 1 ); |
---|
70 | |
---|
71 | // Materials from Scratch |
---|
72 | |
---|
73 | G4Material* Aluminum = new G4Material("Aluminum", 13, 26.981539*g/mole, 2.7*g/cm3,kStateSolid, 273.15*kelvin, 1.0*atmosphere ); |
---|
74 | |
---|
75 | // Visualization attributes |
---|
76 | |
---|
77 | |
---|
78 | G4VisAttributes * b1= new G4VisAttributes( G4Colour(0/255. ,238/255. ,238/255. )); |
---|
79 | |
---|
80 | G4VisAttributes * b2= new G4VisAttributes( G4Colour(10/255. ,238/255. ,238/255. )); |
---|
81 | |
---|
82 | G4VisAttributes * b3= new G4VisAttributes( G4Colour(20/255. ,238/255. ,238/255. )); |
---|
83 | |
---|
84 | G4VisAttributes * b4= new G4VisAttributes( G4Colour(30/255. ,238/255. ,238/255. )); |
---|
85 | |
---|
86 | G4VisAttributes * b5= new G4VisAttributes( G4Colour(39/255. ,238/255. ,238/255. )); |
---|
87 | |
---|
88 | G4VisAttributes * b6= new G4VisAttributes( G4Colour(49/255. ,238/255. ,238/255. )); |
---|
89 | |
---|
90 | G4VisAttributes * b7= new G4VisAttributes( G4Colour(57/255. ,238/255. ,238/255. )); |
---|
91 | |
---|
92 | G4VisAttributes * b8= new G4VisAttributes( G4Colour(67/255. ,238/255. ,238/255. )); |
---|
93 | |
---|
94 | G4VisAttributes * b9= new G4VisAttributes( G4Colour(77/255. ,238/255. ,238/255. )); |
---|
95 | |
---|
96 | G4VisAttributes * b10= new G4VisAttributes( G4Colour(87/255. ,238/255. ,238/255. )); |
---|
97 | |
---|
98 | G4VisAttributes * b11= new G4VisAttributes( G4Colour(94/255. ,238/255. ,238/255. )); |
---|
99 | |
---|
100 | G4VisAttributes * b12= new G4VisAttributes( G4Colour(101/255. ,238/255. ,238/255. )); |
---|
101 | |
---|
102 | G4VisAttributes * b13= new G4VisAttributes( G4Colour(109/255. ,238/255. ,238/255. )); |
---|
103 | |
---|
104 | G4VisAttributes * b14= new G4VisAttributes( G4Colour(117/255. ,238/255. ,238/255. )); |
---|
105 | |
---|
106 | G4VisAttributes * b15= new G4VisAttributes( G4Colour(126/255. ,238/255. ,238/255. )); |
---|
107 | |
---|
108 | G4VisAttributes * b16= new G4VisAttributes( G4Colour(135/255. ,238/255. ,238/255. )); |
---|
109 | |
---|
110 | G4VisAttributes * b17= new G4VisAttributes( G4Colour(146/255. ,238/255. ,238/255. )); |
---|
111 | |
---|
112 | G4VisAttributes * b18= new G4VisAttributes( G4Colour(156/255. ,238/255. ,238/255. )); |
---|
113 | |
---|
114 | G4VisAttributes * g1= new G4VisAttributes( G4Colour(156/255. ,255/255. ,41/255. )); |
---|
115 | |
---|
116 | G4VisAttributes * g2= new G4VisAttributes( G4Colour(156/255. ,255/255. ,64/255. )); |
---|
117 | |
---|
118 | G4VisAttributes * g3= new G4VisAttributes( G4Colour(156/255. ,255/255. ,84/255. )); |
---|
119 | |
---|
120 | G4VisAttributes * pink= new G4VisAttributes( G4Colour(255/255. ,153/255. ,153/255. )); |
---|
121 | |
---|
122 | G4VisAttributes * b19= new G4VisAttributes( G4Colour(216/255. ,248/255. ,246/255. )); |
---|
123 | |
---|
124 | // Logical Volumes |
---|
125 | |
---|
126 | G4Box *solidworld= new G4Box("solidworld", 1000.0*mm, 1000.0*mm, 4000.0*mm ); |
---|
127 | G4LogicalVolume * world = new G4LogicalVolume(solidworld, //its solid |
---|
128 | Air, //its material |
---|
129 | "world" , //its name |
---|
130 | 0,0,0); |
---|
131 | |
---|
132 | G4Box *solidwaterbox= new G4Box("solidwaterbox", 200.0*mm, 200.0*mm, 200.0*mm ); |
---|
133 | G4LogicalVolume * waterbox = new G4LogicalVolume(solidwaterbox, //its solid |
---|
134 | H2O, //its material |
---|
135 | "waterbox" , //its name |
---|
136 | 0,0,0); |
---|
137 | |
---|
138 | waterbox->SetVisAttributes(pink); |
---|
139 | |
---|
140 | G4Cons *solidcon1= new G4Cons("solidcon1", 0.0*mm, 1.0E-7*mm, 0.0*mm, 0.25*mm, 0.06*mm, 0.0*rad, 360.0*deg ); |
---|
141 | G4LogicalVolume * con1 = new G4LogicalVolume(solidcon1, //its solid |
---|
142 | Aluminum, //its material |
---|
143 | "con1" , //its name |
---|
144 | 0,0,0); |
---|
145 | |
---|
146 | con1->SetVisAttributes(b1); |
---|
147 | |
---|
148 | G4Cons *solidcon2= new G4Cons("solidcon2", 0.0*mm, 0.51*mm, 0.0*mm, 0.25*mm, 0.065*mm, 0.0*rad, 360.0*deg ); |
---|
149 | G4LogicalVolume * con2 = new G4LogicalVolume(solidcon2, //its solid |
---|
150 | Aluminum, //its material |
---|
151 | "con2" , //its name |
---|
152 | 0,0,0); |
---|
153 | |
---|
154 | con2->SetVisAttributes(b2); |
---|
155 | |
---|
156 | G4Cons *solidcon3= new G4Cons("solidcon3", 0.0*mm, 0.77*mm, 0.0*mm, 0.51*mm, 0.075*mm, 0.0*rad, 360.0*deg ); |
---|
157 | G4LogicalVolume * con3 = new G4LogicalVolume(solidcon3, //its solid |
---|
158 | Aluminum, //its material |
---|
159 | "con3" , //its name |
---|
160 | 0,0,0); |
---|
161 | |
---|
162 | con3->SetVisAttributes(b3); |
---|
163 | |
---|
164 | G4Cons *solidcon4= new G4Cons("solidcon4", 0.0*mm, 1.03*mm, 0.0*mm, 0.77*mm, 0.09*mm, 0.0*rad, 360.0*deg ); |
---|
165 | G4LogicalVolume * con4 = new G4LogicalVolume(solidcon4, //its solid |
---|
166 | Aluminum, //its material |
---|
167 | "con4" , //its name |
---|
168 | 0,0,0); |
---|
169 | |
---|
170 | con4->SetVisAttributes(b4); |
---|
171 | |
---|
172 | G4Cons *solidcon5= new G4Cons("solidcon5", 0.0*mm, 1.54*mm, 0.0*mm, 1.03*mm, 0.22*mm, 0.0*rad, 360.0*deg ); |
---|
173 | G4LogicalVolume * con5 = new G4LogicalVolume(solidcon5, //its solid |
---|
174 | Aluminum, //its material |
---|
175 | "con5" , //its name |
---|
176 | 0,0,0); |
---|
177 | |
---|
178 | con5->SetVisAttributes(b5); |
---|
179 | |
---|
180 | G4Cons *solidcon6= new G4Cons("solidcon6", 0.0*mm, 2.05*mm, 0.0*mm, 1.54*mm, 0.24*mm, 0.0*rad, 360.0*deg ); |
---|
181 | G4LogicalVolume * con6 = new G4LogicalVolume(solidcon6, //its solid |
---|
182 | Aluminum, //its material |
---|
183 | "con6" , //its name |
---|
184 | 0,0,0); |
---|
185 | |
---|
186 | con6->SetVisAttributes(b6); |
---|
187 | |
---|
188 | G4Cons *solidcon7= new G4Cons("solidcon7", 0.0*mm, 2.56*mm, 0.0*mm, 2.05*mm, 0.23*mm, 0.0*rad, 360.0*deg ); |
---|
189 | G4LogicalVolume * con7 = new G4LogicalVolume(solidcon7, //its solid |
---|
190 | Aluminum, //its material |
---|
191 | "con7" , //its name |
---|
192 | 0,0,0); |
---|
193 | |
---|
194 | con7->SetVisAttributes(b7); |
---|
195 | |
---|
196 | G4Cons *solidcon8= new G4Cons("solidcon8", 0.0*mm, 3.07*mm, 0.0*mm, 2.56*mm, 0.23*mm, 0.0*rad, 360.0*deg ); |
---|
197 | G4LogicalVolume * con8 = new G4LogicalVolume(solidcon8, //its solid |
---|
198 | Aluminum, //its material |
---|
199 | "con8" , //its name |
---|
200 | 0,0,0); |
---|
201 | |
---|
202 | con8->SetVisAttributes(b8); |
---|
203 | |
---|
204 | G4Cons *solidcon9= new G4Cons("solidcon9", 0.0*mm, 3.58*mm, 0.0*mm, 3.07*mm, 0.225*mm, 0.0*rad, 360.0*deg ); |
---|
205 | G4LogicalVolume * con9 = new G4LogicalVolume(solidcon9, //its solid |
---|
206 | Aluminum, //its material |
---|
207 | "con9" , //its name |
---|
208 | 0,0,0); |
---|
209 | |
---|
210 | con9->SetVisAttributes(b9); |
---|
211 | |
---|
212 | G4Cons *solidcon10= new G4Cons("solidcon10", 0.0*mm, 4.09*mm, 0.0*mm, 3.58*mm, 0.22*mm, 0.0*rad, 360.0*deg ); |
---|
213 | G4LogicalVolume * con10 = new G4LogicalVolume(solidcon10, //its solid |
---|
214 | Aluminum, //its material |
---|
215 | "con10" , //its name |
---|
216 | 0,0,0); |
---|
217 | |
---|
218 | con10->SetVisAttributes(b10); |
---|
219 | |
---|
220 | G4Cons *solidcon11= new G4Cons("solidcon11", 0.0*mm, 5.1*mm, 0.0*mm, 4.09*mm, 0.425*mm, 0.0*rad, 360.0*deg ); |
---|
221 | G4LogicalVolume * con11 = new G4LogicalVolume(solidcon11, //its solid |
---|
222 | Aluminum, //its material |
---|
223 | "con11" , //its name |
---|
224 | 0,0,0); |
---|
225 | |
---|
226 | con11->SetVisAttributes(b11); |
---|
227 | |
---|
228 | G4Cons *solidcon12= new G4Cons("solidcon12", 0.0*mm, 6.2*mm, 0.0*mm, 5.1*mm, 0.395*mm, 0.0*rad, 360.0*deg ); |
---|
229 | G4LogicalVolume * con12 = new G4LogicalVolume(solidcon12, //its solid |
---|
230 | Aluminum, //its material |
---|
231 | "con12" , //its name |
---|
232 | 0,0,0); |
---|
233 | |
---|
234 | con12->SetVisAttributes(b12); |
---|
235 | |
---|
236 | G4Cons *solidcon13= new G4Cons("solidcon13", 0.0*mm, 7.3*mm, 0.0*mm, 6.2*mm, 0.38*mm, 0.0*rad, 360.0*deg ); |
---|
237 | G4LogicalVolume * con13 = new G4LogicalVolume(solidcon13, //its solid |
---|
238 | Aluminum, //its material |
---|
239 | "con13" , //its name |
---|
240 | 0,0,0); |
---|
241 | |
---|
242 | con13->SetVisAttributes(b13); |
---|
243 | |
---|
244 | G4Cons *solidcon14= new G4Cons("solidcon14", 0.0*mm, 8.4*mm, 0.0*mm, 7.3*mm, 0.335*mm, 0.0*rad, 360.0*deg ); |
---|
245 | G4LogicalVolume * con14 = new G4LogicalVolume(solidcon14, //its solid |
---|
246 | Aluminum, //its material |
---|
247 | "con14" , //its name |
---|
248 | 0,0,0); |
---|
249 | |
---|
250 | con14->SetVisAttributes(b14); |
---|
251 | |
---|
252 | G4Cons *solidcon15= new G4Cons("solidcon15", 0.0*mm, 9.5*mm, 0.0*mm, 8.4*mm, 0.325*mm, 0.0*rad, 360.0*deg ); |
---|
253 | G4LogicalVolume * con15 = new G4LogicalVolume(solidcon15, //its solid |
---|
254 | Aluminum, //its material |
---|
255 | "con15" , //its name |
---|
256 | 0,0,0); |
---|
257 | |
---|
258 | con15->SetVisAttributes(b15); |
---|
259 | |
---|
260 | G4Cons *solidcon16= new G4Cons("solidcon16", 0.0*mm, 10.5*mm, 0.0*mm, 9.5*mm, 0.28*mm, 0.0*rad, 360.0*deg ); |
---|
261 | G4LogicalVolume * con16 = new G4LogicalVolume(solidcon16, //its solid |
---|
262 | Aluminum, //its material |
---|
263 | "con16" , //its name |
---|
264 | 0,0,0); |
---|
265 | |
---|
266 | con16->SetVisAttributes(b16); |
---|
267 | |
---|
268 | G4Cons *solidcon17= new G4Cons("solidcon17", 0.0*mm, 11.5*mm, 0.0*mm, 10.5*mm, 0.275*mm, 0.0*rad, 360.0*deg ); |
---|
269 | G4LogicalVolume * con17 = new G4LogicalVolume(solidcon17, //its solid |
---|
270 | Aluminum, //its material |
---|
271 | "con17" , //its name |
---|
272 | 0,0,0); |
---|
273 | |
---|
274 | con17->SetVisAttributes(b17); |
---|
275 | |
---|
276 | G4Cons *solidcon18= new G4Cons("solidcon18", 0.0*mm, 12.15*mm, 0.0*mm, 11.5*mm, 0.19*mm, 0.0*rad, 360.0*deg ); |
---|
277 | G4LogicalVolume * con18 = new G4LogicalVolume(solidcon18, //its solid |
---|
278 | Aluminum, //its material |
---|
279 | "con18" , //its name |
---|
280 | 0,0,0); |
---|
281 | |
---|
282 | con18->SetVisAttributes(b18); |
---|
283 | |
---|
284 | G4Cons *solidcons19= new G4Cons("solidcons19", 0.0*mm, 13.01*mm, 0.0*mm, 13.35*mm, 0.225*mm, 0.0*rad, 360.0*deg ); |
---|
285 | G4LogicalVolume * cons19 = new G4LogicalVolume(solidcons19, //its solid |
---|
286 | Aluminum, //its material |
---|
287 | "cons19" , //its name |
---|
288 | 0,0,0); |
---|
289 | |
---|
290 | cons19->SetVisAttributes(b19); |
---|
291 | |
---|
292 | G4Tubs *solidtub1= new G4Tubs("solidtub1", 0.0*mm, 13.35*mm, 0.4*mm, 0.0*rad, 360.0*deg ); |
---|
293 | G4LogicalVolume * tub1 = new G4LogicalVolume(solidtub1, //its solid |
---|
294 | Aluminum, //its material |
---|
295 | "tub1" , //its name |
---|
296 | 0,0,0); |
---|
297 | |
---|
298 | tub1->SetVisAttributes(g1); |
---|
299 | |
---|
300 | G4Tubs *solidtub2= new G4Tubs("solidtub2", 13.0*mm, 13.35*mm, 0.225*mm, 0.0*rad, 360.0*deg ); |
---|
301 | G4LogicalVolume * tub2 = new G4LogicalVolume(solidtub2, //its solid |
---|
302 | Aluminum, //its material |
---|
303 | "tub2" , //its name |
---|
304 | 0,0,0); |
---|
305 | |
---|
306 | tub2->SetVisAttributes(g2); |
---|
307 | |
---|
308 | G4Tubs *solidtub3= new G4Tubs("solidtub3", 13.35*mm, 16.0*mm, 0.625*mm, 0.0*rad, 360.0*deg ); |
---|
309 | G4LogicalVolume * tub3 = new G4LogicalVolume(solidtub3, //its solid |
---|
310 | Aluminum, //its material |
---|
311 | "tub3" , //its name |
---|
312 | 0,0,0); |
---|
313 | |
---|
314 | tub3->SetVisAttributes(g3); |
---|
315 | |
---|
316 | |
---|
317 | // Physical Volumes ---- Single Positioned Placement, Repeated Placement, Slicing --------------------------- |
---|
318 | |
---|
319 | |
---|
320 | // Single Positioned Placement |
---|
321 | |
---|
322 | G4RotationMatrix rotMatrixpworld; // unit rotation matrix |
---|
323 | G4double anglepworld = 0.0*deg; // rotational angle |
---|
324 | rotMatrixpworld.rotateX(anglepworld); // rot matrix |
---|
325 | |
---|
326 | G4VPhysicalVolume * pworld= new G4PVPlacement(G4Transform3D(rotMatrixpworld, //rotation |
---|
327 | G4ThreeVector(0.0*mm, 0.0*mm, 0.0*mm)), |
---|
328 | "pworld", //its name (2nd constructor) |
---|
329 | world, //its logical volume |
---|
330 | NULL, //its mother volume |
---|
331 | false, //no boolean operation |
---|
332 | 0); //copy number |
---|
333 | |
---|
334 | G4RotationMatrix rotMatrixphantom; // unit rotation matrix |
---|
335 | G4double anglephantom = 0.0*deg; // rotational angle |
---|
336 | rotMatrixphantom.rotateX(anglephantom); // rot matrix |
---|
337 | |
---|
338 | G4VPhysicalVolume * phantom= new G4PVPlacement(G4Transform3D(rotMatrixphantom, //rotation |
---|
339 | G4ThreeVector(0.0*mm, 0.0*mm, 0.0*mm)), |
---|
340 | "phantom", //its name (2nd constructor) |
---|
341 | waterbox, //its logical volume |
---|
342 | pworld, //its mother volume |
---|
343 | false, //no boolean operation |
---|
344 | 0); //copy number |
---|
345 | |
---|
346 | G4RotationMatrix rotMatrixpcon1; // unit rotation matrix |
---|
347 | G4double anglepcon1 = 0.0*deg; // rotational angle |
---|
348 | rotMatrixpcon1.rotateX(anglepcon1); // rot matrix |
---|
349 | |
---|
350 | G4VPhysicalVolume * pcon1= new G4PVPlacement(G4Transform3D(rotMatrixpcon1, //rotation |
---|
351 | G4ThreeVector(0.0*mm, 0.0*mm, 1034.04*mm)), |
---|
352 | "pcon1", //its name (2nd constructor) |
---|
353 | con1, //its logical volume |
---|
354 | pworld, //its mother volume |
---|
355 | false, //no boolean operation |
---|
356 | 0); //copy number |
---|
357 | |
---|
358 | G4RotationMatrix rotMatrixpcon2; // unit rotation matrix |
---|
359 | G4double anglepcon2 = 0.0*deg; // rotational angle |
---|
360 | rotMatrixpcon2.rotateX(anglepcon2); // rot matrix |
---|
361 | |
---|
362 | G4VPhysicalVolume * pcon2= new G4PVPlacement(G4Transform3D(rotMatrixpcon2, //rotation |
---|
363 | G4ThreeVector(0.0*mm, 0.0*mm, 1033.888*mm)), |
---|
364 | "pcon2", //its name (2nd constructor) |
---|
365 | con2, //its logical volume |
---|
366 | pworld, //its mother volume |
---|
367 | false, //no boolean operation |
---|
368 | 0); //copy number |
---|
369 | |
---|
370 | G4RotationMatrix rotMatrixpcon3; // unit rotation matrix |
---|
371 | G4double anglepcon3 = 0.0*deg; // rotational angle |
---|
372 | rotMatrixpcon3.rotateX(anglepcon3); // rot matrix |
---|
373 | |
---|
374 | G4VPhysicalVolume * pcon3= new G4PVPlacement(G4Transform3D(rotMatrixpcon3, //rotation |
---|
375 | G4ThreeVector(0.0*mm, 0.0*mm, 1033.748*mm)), |
---|
376 | "pcon3", //its name (2nd constructor) |
---|
377 | con3, //its logical volume |
---|
378 | pworld, //its mother volume |
---|
379 | false, //no boolean operation |
---|
380 | 0); //copy number |
---|
381 | |
---|
382 | G4RotationMatrix rotMatrixpcon4; // unit rotation matrix |
---|
383 | G4double anglepcon4 = 0.0*deg; // rotational angle |
---|
384 | rotMatrixpcon4.rotateX(anglepcon4); // rot matrix |
---|
385 | |
---|
386 | G4VPhysicalVolume * pcon4= new G4PVPlacement(G4Transform3D(rotMatrixpcon4, //rotation |
---|
387 | G4ThreeVector(0.0*mm, 0.0*mm, 1033.583*mm)), |
---|
388 | "pcon4", //its name (2nd constructor) |
---|
389 | con4, //its logical volume |
---|
390 | pworld, //its mother volume |
---|
391 | false, //no boolean operation |
---|
392 | 0); //copy number |
---|
393 | |
---|
394 | G4RotationMatrix rotMatrixpcon5; // unit rotation matrix |
---|
395 | G4double anglepcon5 = 0.0*deg; // rotational angle |
---|
396 | rotMatrixpcon5.rotateX(anglepcon5); // rot matrix |
---|
397 | |
---|
398 | G4VPhysicalVolume * pcon5= new G4PVPlacement(G4Transform3D(rotMatrixpcon5, //rotation |
---|
399 | G4ThreeVector(0.0*mm, 0.0*mm, 1033.273*mm)), |
---|
400 | "pcon5", //its name (2nd constructor) |
---|
401 | con5, //its logical volume |
---|
402 | pworld, //its mother volume |
---|
403 | false, //no boolean operation |
---|
404 | 0); //copy number |
---|
405 | |
---|
406 | G4RotationMatrix rotMatrixpcon6; // unit rotation matrix |
---|
407 | G4double anglepcon6 = 0.0*deg; // rotational angle |
---|
408 | rotMatrixpcon6.rotateX(anglepcon6); // rot matrix |
---|
409 | |
---|
410 | G4VPhysicalVolume * pcon6= new G4PVPlacement(G4Transform3D(rotMatrixpcon6, //rotation |
---|
411 | G4ThreeVector(0.0*mm, 0.0*mm, 1032.813*mm)), |
---|
412 | "pcon6", //its name (2nd constructor) |
---|
413 | con6, //its logical volume |
---|
414 | pworld, //its mother volume |
---|
415 | false, //no boolean operation |
---|
416 | 0); //copy number |
---|
417 | |
---|
418 | G4RotationMatrix rotMatrixpcon7; // unit rotation matrix |
---|
419 | G4double anglepcon7 = 0.0*deg; // rotational angle |
---|
420 | rotMatrixpcon7.rotateX(anglepcon7); // rot matrix |
---|
421 | |
---|
422 | G4VPhysicalVolume * pcon7= new G4PVPlacement(G4Transform3D(rotMatrixpcon7, //rotation |
---|
423 | G4ThreeVector(0.0*mm, 0.0*mm, 1032.343*mm)), |
---|
424 | "pcon7", //its name (2nd constructor) |
---|
425 | con7, //its logical volume |
---|
426 | pworld, //its mother volume |
---|
427 | false, //no boolean operation |
---|
428 | 0); //copy number |
---|
429 | |
---|
430 | G4RotationMatrix rotMatrixpcon8; // unit rotation matrix |
---|
431 | G4double anglepcon8 = 0.0*deg; // rotational angle |
---|
432 | rotMatrixpcon8.rotateX(anglepcon8); // rot matrix |
---|
433 | |
---|
434 | G4VPhysicalVolume * pcon8= new G4PVPlacement(G4Transform3D(rotMatrixpcon8, //rotation |
---|
435 | G4ThreeVector(0.0*mm, 0.0*mm, 1031.883*mm)), |
---|
436 | "pcon8", //its name (2nd constructor) |
---|
437 | con8, //its logical volume |
---|
438 | pworld, //its mother volume |
---|
439 | false, //no boolean operation |
---|
440 | 0); //copy number |
---|
441 | |
---|
442 | G4RotationMatrix rotMatrixpcon9; // unit rotation matrix |
---|
443 | G4double anglepcon9 = 0.0*deg; // rotational angle |
---|
444 | rotMatrixpcon9.rotateX(anglepcon9); // rot matrix |
---|
445 | |
---|
446 | G4VPhysicalVolume * pcon9= new G4PVPlacement(G4Transform3D(rotMatrixpcon9, //rotation |
---|
447 | G4ThreeVector(0.0*mm, 0.0*mm, 1031.428*mm)), |
---|
448 | "pcon9", //its name (2nd constructor) |
---|
449 | con9, //its logical volume |
---|
450 | pworld, //its mother volume |
---|
451 | false, //no boolean operation |
---|
452 | 0); //copy number |
---|
453 | |
---|
454 | G4RotationMatrix rotMatrixpcon10; // unit rotation matrix |
---|
455 | G4double anglepcon10 = 0.0*deg; // rotational angle |
---|
456 | rotMatrixpcon10.rotateX(anglepcon10); // rot matrix |
---|
457 | |
---|
458 | G4VPhysicalVolume * pcon10= new G4PVPlacement(G4Transform3D(rotMatrixpcon10, //rotation |
---|
459 | G4ThreeVector(0.0*mm, 0.0*mm, 1030.983*mm)), |
---|
460 | "pcon10", //its name (2nd constructor) |
---|
461 | con10, //its logical volume |
---|
462 | pworld, //its mother volume |
---|
463 | false, //no boolean operation |
---|
464 | 0); //copy number |
---|
465 | |
---|
466 | G4RotationMatrix rotMatrixpcon11; // unit rotation matrix |
---|
467 | G4double anglepcon11 = 0.0*deg; // rotational angle |
---|
468 | rotMatrixpcon11.rotateX(anglepcon11); // rot matrix |
---|
469 | |
---|
470 | G4VPhysicalVolume * pcon11= new G4PVPlacement(G4Transform3D(rotMatrixpcon11, //rotation |
---|
471 | G4ThreeVector(0.0*mm, 0.0*mm, 1030.338*mm)), |
---|
472 | "pcon11", //its name (2nd constructor) |
---|
473 | con11, //its logical volume |
---|
474 | pworld, //its mother volume |
---|
475 | false, //no boolean operation |
---|
476 | 0); //copy number |
---|
477 | |
---|
478 | G4RotationMatrix rotMatrixpcon12; // unit rotation matrix |
---|
479 | G4double anglepcon12 = 0.0*deg; // rotational angle |
---|
480 | rotMatrixpcon12.rotateX(anglepcon12); // rot matrix |
---|
481 | |
---|
482 | G4VPhysicalVolume * pcon12= new G4PVPlacement(G4Transform3D(rotMatrixpcon12, //rotation |
---|
483 | G4ThreeVector(0.0*mm, 0.0*mm, 1029.518*mm)), |
---|
484 | "pcon12", //its name (2nd constructor) |
---|
485 | con12, //its logical volume |
---|
486 | pworld, //its mother volume |
---|
487 | false, //no boolean operation |
---|
488 | 0); //copy number |
---|
489 | |
---|
490 | G4RotationMatrix rotMatrixpcon13; // unit rotation matrix |
---|
491 | G4double anglepcon13 = 0.0*deg; // rotational angle |
---|
492 | rotMatrixpcon13.rotateX(anglepcon13); // rot matrix |
---|
493 | |
---|
494 | G4VPhysicalVolume * pcon13= new G4PVPlacement(G4Transform3D(rotMatrixpcon13, //rotation |
---|
495 | G4ThreeVector(0.0*mm, 0.0*mm, 1028.743*mm)), |
---|
496 | "pcon13", //its name (2nd constructor) |
---|
497 | con13, //its logical volume |
---|
498 | pworld, //its mother volume |
---|
499 | false, //no boolean operation |
---|
500 | 0); //copy number |
---|
501 | |
---|
502 | G4RotationMatrix rotMatrixpcon14; // unit rotation matrix |
---|
503 | G4double anglepcon14 = 0.0*deg; // rotational angle |
---|
504 | rotMatrixpcon14.rotateX(anglepcon14); // rot matrix |
---|
505 | |
---|
506 | G4VPhysicalVolume * pcon14= new G4PVPlacement(G4Transform3D(rotMatrixpcon14, //rotation |
---|
507 | G4ThreeVector(0.0*mm, 0.0*mm, 1028.028*mm)), |
---|
508 | "pcon14", //its name (2nd constructor) |
---|
509 | con14, //its logical volume |
---|
510 | pworld, //its mother volume |
---|
511 | false, //no boolean operation |
---|
512 | 0); //copy number |
---|
513 | |
---|
514 | G4RotationMatrix rotMatrixpcon15; // unit rotation matrix |
---|
515 | G4double anglepcon15 = 0.0*deg; // rotational angle |
---|
516 | rotMatrixpcon15.rotateX(anglepcon15); // rot matrix |
---|
517 | |
---|
518 | G4VPhysicalVolume * pcon15= new G4PVPlacement(G4Transform3D(rotMatrixpcon15, //rotation |
---|
519 | G4ThreeVector(0.0*mm, 0.0*mm, 1027.368*mm)), |
---|
520 | "pcon15", //its name (2nd constructor) |
---|
521 | con15, //its logical volume |
---|
522 | pworld, //its mother volume |
---|
523 | false, //no boolean operation |
---|
524 | 0); //copy number |
---|
525 | |
---|
526 | G4RotationMatrix rotMatrixpcon16; // unit rotation matrix |
---|
527 | G4double anglepcon16 = 0.0*deg; // rotational angle |
---|
528 | rotMatrixpcon16.rotateX(anglepcon16); // rot matrix |
---|
529 | |
---|
530 | G4VPhysicalVolume * pcon16= new G4PVPlacement(G4Transform3D(rotMatrixpcon16, //rotation |
---|
531 | G4ThreeVector(0.0*mm, 0.0*mm, 1026.763*mm)), |
---|
532 | "pcon16", //its name (2nd constructor) |
---|
533 | con16, //its logical volume |
---|
534 | pworld, //its mother volume |
---|
535 | false, //no boolean operation |
---|
536 | 0); //copy number |
---|
537 | |
---|
538 | G4RotationMatrix rotMatrixpcon17; // unit rotation matrix |
---|
539 | G4double anglepcon17 = 0.0*deg; // rotational angle |
---|
540 | rotMatrixpcon17.rotateX(anglepcon17); // rot matrix |
---|
541 | |
---|
542 | G4VPhysicalVolume * pcon17= new G4PVPlacement(G4Transform3D(rotMatrixpcon17, //rotation |
---|
543 | G4ThreeVector(0.0*mm, 0.0*mm, 1025.6208*mm)), |
---|
544 | "pcon17", //its name (2nd constructor) |
---|
545 | con17, //its logical volume |
---|
546 | pworld, //its mother volume |
---|
547 | false, //no boolean operation |
---|
548 | 0); //copy number |
---|
549 | |
---|
550 | G4RotationMatrix rotMatrixpcon18; // unit rotation matrix |
---|
551 | G4double anglepcon18 = 0.0*deg; // rotational angle |
---|
552 | rotMatrixpcon18.rotateX(anglepcon18); // rot matrix |
---|
553 | |
---|
554 | G4VPhysicalVolume * pcon18= new G4PVPlacement(G4Transform3D(rotMatrixpcon18, //rotation |
---|
555 | G4ThreeVector(0.0*mm, 0.0*mm, 1024.743*mm)), |
---|
556 | "pcon18", //its name (2nd constructor) |
---|
557 | con18, //its logical volume |
---|
558 | pworld, //its mother volume |
---|
559 | false, //no boolean operation |
---|
560 | 0); //copy number |
---|
561 | |
---|
562 | G4RotationMatrix rotMatrixpcon19; // unit rotation matrix |
---|
563 | G4double anglepcon19 = 0.0*deg; // rotational angle |
---|
564 | rotMatrixpcon19.rotateX(anglepcon19); // rot matrix |
---|
565 | |
---|
566 | G4VPhysicalVolume * pcon19= new G4PVPlacement(G4Transform3D(rotMatrixpcon19, //rotation |
---|
567 | G4ThreeVector(0.0*mm, 0.0*mm, 1024.778*mm)), |
---|
568 | "pcon19", //its name (2nd constructor) |
---|
569 | cons19, //its logical volume |
---|
570 | pworld, //its mother volume |
---|
571 | false, //no boolean operation |
---|
572 | 0); //copy number |
---|
573 | |
---|
574 | G4RotationMatrix rotMatrixptub1; // unit rotation matrix |
---|
575 | G4double angleptub1 = 0.0*deg; // rotational angle |
---|
576 | rotMatrixptub1.rotateX(angleptub1); // rot matrix |
---|
577 | |
---|
578 | G4VPhysicalVolume * ptub1= new G4PVPlacement(G4Transform3D(rotMatrixptub1, //rotation |
---|
579 | G4ThreeVector(0.0*mm, 0.0*mm, 1024.153*mm)), |
---|
580 | "ptub1", //its name (2nd constructor) |
---|
581 | tub1, //its logical volume |
---|
582 | pworld, //its mother volume |
---|
583 | false, //no boolean operation |
---|
584 | 0); //copy number |
---|
585 | |
---|
586 | G4RotationMatrix rotMatrixptub2; // unit rotation matrix |
---|
587 | G4double angleptub2 = 0.0*deg; // rotational angle |
---|
588 | rotMatrixptub2.rotateX(angleptub2); // rot matrix |
---|
589 | |
---|
590 | G4VPhysicalVolume * ptub2= new G4PVPlacement(G4Transform3D(rotMatrixptub2, //rotation |
---|
591 | G4ThreeVector(0.0*mm, 0.0*mm, 1024.153*mm)), |
---|
592 | "ptub2", //its name (2nd constructor) |
---|
593 | tub2, //its logical volume |
---|
594 | pworld, //its mother volume |
---|
595 | false, //no boolean operation |
---|
596 | 0); //copy number |
---|
597 | |
---|
598 | G4RotationMatrix rotMatrixptub3; // unit rotation matrix |
---|
599 | G4double angleptub3 = 0.0*deg; // rotational angle |
---|
600 | rotMatrixptub3.rotateX(angleptub3); // rot matrix |
---|
601 | |
---|
602 | G4VPhysicalVolume * ptub3= new G4PVPlacement(G4Transform3D(rotMatrixptub3, //rotation |
---|
603 | G4ThreeVector(0.0*mm, 0.0*mm, 1024.378*mm)), |
---|
604 | "ptub3", //its name (2nd constructor) |
---|
605 | tub3, //its logical volume |
---|
606 | pworld, //its mother volume |
---|
607 | false, //no boolean operation |
---|
608 | 0); //copy number |
---|
609 | |
---|
610 | |
---|
611 | // Repeated Placement Translation |
---|
612 | |
---|
613 | |
---|
614 | // Repeated Placement AxialSymmetoric |
---|
615 | |
---|
616 | |
---|
617 | // Slicing Translation |
---|
618 | |
---|
619 | |
---|
620 | // Slicing AxialSymmetric |
---|
621 | |
---|
622 | |
---|
623 | // return the physical World |
---|
624 | |
---|
625 | |
---|
626 | return pworld; |
---|
627 | } |
---|