source: trunk/environments/MOMO/MomoHome/src/flatteningFilter.cc @ 1340

Last change on this file since 1340 was 1337, checked in by garnier, 14 years ago

tag geant4.9.4 beta 1 + modifs locales

File size: 24.2 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//***** 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
51flatteningFilter::flatteningFilter()
52{ ; }
53flatteningFilter::~flatteningFilter()
54{ ; }
55G4VPhysicalVolume* flatteningFilter::Construct( )
56{
57// Elements
58G4Element* elementN = new G4Element( "Nitrogen", "N", 7. , 14.00674*g/mole );
59G4Element* elementO = new G4Element( "Oxygen", "O", 8. , 15.9994*g/mole );
60G4Element* elementH = new G4Element( "Hydrogen", "H", 1. , 1.00794*g/mole );
61
62// Materials from Combination
63
64G4Material* Air = new G4Material("Air",  1.205*mg/cm3, 2, kStateUndefined, 293.15*kelvin, 1.0*atmosphere );
65Air->AddElement( elementN, 1 );
66Air->AddElement( elementO, 0 );
67G4Material* H2O = new G4Material("H2O",  1.0*g/cm3, 2, kStateUndefined, 273.15*kelvin, 1.0*atmosphere );
68H2O->AddElement( elementH, 2 );
69H2O->AddElement( elementO, 1 );
70
71// Materials from Scratch
72
73G4Material* 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
78G4VisAttributes * b1= new G4VisAttributes( G4Colour(0/255. ,238/255. ,238/255. ));
79
80G4VisAttributes * b2= new G4VisAttributes( G4Colour(10/255. ,238/255. ,238/255. ));
81
82G4VisAttributes * b3= new G4VisAttributes( G4Colour(20/255. ,238/255. ,238/255. ));
83
84G4VisAttributes * b4= new G4VisAttributes( G4Colour(30/255. ,238/255. ,238/255. ));
85
86G4VisAttributes * b5= new G4VisAttributes( G4Colour(39/255. ,238/255. ,238/255. ));
87
88G4VisAttributes * b6= new G4VisAttributes( G4Colour(49/255. ,238/255. ,238/255. ));
89
90G4VisAttributes * b7= new G4VisAttributes( G4Colour(57/255. ,238/255. ,238/255. ));
91
92G4VisAttributes * b8= new G4VisAttributes( G4Colour(67/255. ,238/255. ,238/255. ));
93
94G4VisAttributes * b9= new G4VisAttributes( G4Colour(77/255. ,238/255. ,238/255. ));
95
96G4VisAttributes * b10= new G4VisAttributes( G4Colour(87/255. ,238/255. ,238/255. ));
97
98G4VisAttributes * b11= new G4VisAttributes( G4Colour(94/255. ,238/255. ,238/255. ));
99
100G4VisAttributes * b12= new G4VisAttributes( G4Colour(101/255. ,238/255. ,238/255. ));
101
102G4VisAttributes * b13= new G4VisAttributes( G4Colour(109/255. ,238/255. ,238/255. ));
103
104G4VisAttributes * b14= new G4VisAttributes( G4Colour(117/255. ,238/255. ,238/255. ));
105
106G4VisAttributes * b15= new G4VisAttributes( G4Colour(126/255. ,238/255. ,238/255. ));
107
108G4VisAttributes * b16= new G4VisAttributes( G4Colour(135/255. ,238/255. ,238/255. ));
109
110G4VisAttributes * b17= new G4VisAttributes( G4Colour(146/255. ,238/255. ,238/255. ));
111
112G4VisAttributes * b18= new G4VisAttributes( G4Colour(156/255. ,238/255. ,238/255. ));
113
114G4VisAttributes * g1= new G4VisAttributes( G4Colour(156/255. ,255/255. ,41/255. ));
115
116G4VisAttributes * g2= new G4VisAttributes( G4Colour(156/255. ,255/255. ,64/255. ));
117
118G4VisAttributes * g3= new G4VisAttributes( G4Colour(156/255. ,255/255. ,84/255. ));
119
120G4VisAttributes * pink= new G4VisAttributes( G4Colour(255/255. ,153/255. ,153/255. ));
121
122G4VisAttributes * b19= new G4VisAttributes( G4Colour(216/255. ,248/255. ,246/255. ));
123
124// Logical  Volumes
125
126G4Box *solidworld= new G4Box("solidworld", 1000.0*mm, 1000.0*mm, 4000.0*mm );
127G4LogicalVolume * world = new G4LogicalVolume(solidworld,        //its solid
128                         Air,            //its material
129                        "world" ,                //its name
130                         0,0,0);
131
132G4Box *solidwaterbox= new G4Box("solidwaterbox", 200.0*mm, 200.0*mm, 200.0*mm );
133G4LogicalVolume * waterbox = new G4LogicalVolume(solidwaterbox,          //its solid
134                         H2O,            //its material
135                        "waterbox" ,             //its name
136                         0,0,0);
137
138waterbox->SetVisAttributes(pink);
139
140G4Cons *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 );
141G4LogicalVolume * con1 = new G4LogicalVolume(solidcon1,          //its solid
142                         Aluminum,               //its material
143                        "con1" ,                 //its name
144                         0,0,0);
145
146con1->SetVisAttributes(b1);
147
148G4Cons *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 );
149G4LogicalVolume * con2 = new G4LogicalVolume(solidcon2,          //its solid
150                         Aluminum,               //its material
151                        "con2" ,                 //its name
152                         0,0,0);
153
154con2->SetVisAttributes(b2);
155
156G4Cons *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 );
157G4LogicalVolume * con3 = new G4LogicalVolume(solidcon3,          //its solid
158                         Aluminum,               //its material
159                        "con3" ,                 //its name
160                         0,0,0);
161
162con3->SetVisAttributes(b3);
163
164G4Cons *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 );
165G4LogicalVolume * con4 = new G4LogicalVolume(solidcon4,          //its solid
166                         Aluminum,               //its material
167                        "con4" ,                 //its name
168                         0,0,0);
169
170con4->SetVisAttributes(b4);
171
172G4Cons *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 );
173G4LogicalVolume * con5 = new G4LogicalVolume(solidcon5,          //its solid
174                         Aluminum,               //its material
175                        "con5" ,                 //its name
176                         0,0,0);
177
178con5->SetVisAttributes(b5);
179
180G4Cons *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 );
181G4LogicalVolume * con6 = new G4LogicalVolume(solidcon6,          //its solid
182                         Aluminum,               //its material
183                        "con6" ,                 //its name
184                         0,0,0);
185
186con6->SetVisAttributes(b6);
187
188G4Cons *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 );
189G4LogicalVolume * con7 = new G4LogicalVolume(solidcon7,          //its solid
190                         Aluminum,               //its material
191                        "con7" ,                 //its name
192                         0,0,0);
193
194con7->SetVisAttributes(b7);
195
196G4Cons *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 );
197G4LogicalVolume * con8 = new G4LogicalVolume(solidcon8,          //its solid
198                         Aluminum,               //its material
199                        "con8" ,                 //its name
200                         0,0,0);
201
202con8->SetVisAttributes(b8);
203
204G4Cons *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 );
205G4LogicalVolume * con9 = new G4LogicalVolume(solidcon9,          //its solid
206                         Aluminum,               //its material
207                        "con9" ,                 //its name
208                         0,0,0);
209
210con9->SetVisAttributes(b9);
211
212G4Cons *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 );
213G4LogicalVolume * con10 = new G4LogicalVolume(solidcon10,        //its solid
214                         Aluminum,               //its material
215                        "con10" ,                //its name
216                         0,0,0);
217
218con10->SetVisAttributes(b10);
219
220G4Cons *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 );
221G4LogicalVolume * con11 = new G4LogicalVolume(solidcon11,        //its solid
222                         Aluminum,               //its material
223                        "con11" ,                //its name
224                         0,0,0);
225
226con11->SetVisAttributes(b11);
227
228G4Cons *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 );
229G4LogicalVolume * con12 = new G4LogicalVolume(solidcon12,        //its solid
230                         Aluminum,               //its material
231                        "con12" ,                //its name
232                         0,0,0);
233
234con12->SetVisAttributes(b12);
235
236G4Cons *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 );
237G4LogicalVolume * con13 = new G4LogicalVolume(solidcon13,        //its solid
238                         Aluminum,               //its material
239                        "con13" ,                //its name
240                         0,0,0);
241
242con13->SetVisAttributes(b13);
243
244G4Cons *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 );
245G4LogicalVolume * con14 = new G4LogicalVolume(solidcon14,        //its solid
246                         Aluminum,               //its material
247                        "con14" ,                //its name
248                         0,0,0);
249
250con14->SetVisAttributes(b14);
251
252G4Cons *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 );
253G4LogicalVolume * con15 = new G4LogicalVolume(solidcon15,        //its solid
254                         Aluminum,               //its material
255                        "con15" ,                //its name
256                         0,0,0);
257
258con15->SetVisAttributes(b15);
259
260G4Cons *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 );
261G4LogicalVolume * con16 = new G4LogicalVolume(solidcon16,        //its solid
262                         Aluminum,               //its material
263                        "con16" ,                //its name
264                         0,0,0);
265
266con16->SetVisAttributes(b16);
267
268G4Cons *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 );
269G4LogicalVolume * con17 = new G4LogicalVolume(solidcon17,        //its solid
270                         Aluminum,               //its material
271                        "con17" ,                //its name
272                         0,0,0);
273
274con17->SetVisAttributes(b17);
275
276G4Cons *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 );
277G4LogicalVolume * con18 = new G4LogicalVolume(solidcon18,        //its solid
278                         Aluminum,               //its material
279                        "con18" ,                //its name
280                         0,0,0);
281
282con18->SetVisAttributes(b18);
283
284G4Cons *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 );
285G4LogicalVolume * cons19 = new G4LogicalVolume(solidcons19,      //its solid
286                         Aluminum,               //its material
287                        "cons19" ,               //its name
288                         0,0,0);
289
290cons19->SetVisAttributes(b19);
291
292G4Tubs *solidtub1= new G4Tubs("solidtub1", 0.0*mm, 13.35*mm, 0.4*mm, 0.0*rad, 360.0*deg );
293G4LogicalVolume * tub1 = new G4LogicalVolume(solidtub1,          //its solid
294                         Aluminum,               //its material
295                        "tub1" ,                 //its name
296                         0,0,0);
297
298tub1->SetVisAttributes(g1);
299
300G4Tubs *solidtub2= new G4Tubs("solidtub2", 13.0*mm, 13.35*mm, 0.225*mm, 0.0*rad, 360.0*deg );
301G4LogicalVolume * tub2 = new G4LogicalVolume(solidtub2,          //its solid
302                         Aluminum,               //its material
303                        "tub2" ,                 //its name
304                         0,0,0);
305
306tub2->SetVisAttributes(g2);
307
308G4Tubs *solidtub3= new G4Tubs("solidtub3", 13.35*mm, 16.0*mm, 0.625*mm, 0.0*rad, 360.0*deg );
309G4LogicalVolume * tub3 = new G4LogicalVolume(solidtub3,          //its solid
310                         Aluminum,               //its material
311                        "tub3" ,                 //its name
312                         0,0,0);
313
314tub3->SetVisAttributes(g3);
315
316
317// Physical Volumes ----  Single Positioned Placement,   Repeated Placement,   Slicing  ---------------------------
318
319
320// Single Positioned Placement
321
322G4RotationMatrix rotMatrixpworld;   // unit rotation matrix
323G4double anglepworld = 0.0*deg;   // rotational angle
324rotMatrixpworld.rotateX(anglepworld);  // rot matrix
325
326G4VPhysicalVolume *  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
334G4RotationMatrix rotMatrixphantom;   // unit rotation matrix
335G4double anglephantom = 0.0*deg;   // rotational angle
336rotMatrixphantom.rotateX(anglephantom);  // rot matrix
337
338G4VPhysicalVolume *  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
346G4RotationMatrix rotMatrixpcon1;   // unit rotation matrix
347G4double anglepcon1 = 0.0*deg;   // rotational angle
348rotMatrixpcon1.rotateX(anglepcon1);  // rot matrix
349
350G4VPhysicalVolume *  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
358G4RotationMatrix rotMatrixpcon2;   // unit rotation matrix
359G4double anglepcon2 = 0.0*deg;   // rotational angle
360rotMatrixpcon2.rotateX(anglepcon2);  // rot matrix
361
362G4VPhysicalVolume *  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
370G4RotationMatrix rotMatrixpcon3;   // unit rotation matrix
371G4double anglepcon3 = 0.0*deg;   // rotational angle
372rotMatrixpcon3.rotateX(anglepcon3);  // rot matrix
373
374G4VPhysicalVolume *  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
382G4RotationMatrix rotMatrixpcon4;   // unit rotation matrix
383G4double anglepcon4 = 0.0*deg;   // rotational angle
384rotMatrixpcon4.rotateX(anglepcon4);  // rot matrix
385
386G4VPhysicalVolume *  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
394G4RotationMatrix rotMatrixpcon5;   // unit rotation matrix
395G4double anglepcon5 = 0.0*deg;   // rotational angle
396rotMatrixpcon5.rotateX(anglepcon5);  // rot matrix
397
398G4VPhysicalVolume *  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
406G4RotationMatrix rotMatrixpcon6;   // unit rotation matrix
407G4double anglepcon6 = 0.0*deg;   // rotational angle
408rotMatrixpcon6.rotateX(anglepcon6);  // rot matrix
409
410G4VPhysicalVolume *  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
418G4RotationMatrix rotMatrixpcon7;   // unit rotation matrix
419G4double anglepcon7 = 0.0*deg;   // rotational angle
420rotMatrixpcon7.rotateX(anglepcon7);  // rot matrix
421
422G4VPhysicalVolume *  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
430G4RotationMatrix rotMatrixpcon8;   // unit rotation matrix
431G4double anglepcon8 = 0.0*deg;   // rotational angle
432rotMatrixpcon8.rotateX(anglepcon8);  // rot matrix
433
434G4VPhysicalVolume *  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
442G4RotationMatrix rotMatrixpcon9;   // unit rotation matrix
443G4double anglepcon9 = 0.0*deg;   // rotational angle
444rotMatrixpcon9.rotateX(anglepcon9);  // rot matrix
445
446G4VPhysicalVolume *  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
454G4RotationMatrix rotMatrixpcon10;   // unit rotation matrix
455G4double anglepcon10 = 0.0*deg;   // rotational angle
456rotMatrixpcon10.rotateX(anglepcon10);  // rot matrix
457
458G4VPhysicalVolume *  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
466G4RotationMatrix rotMatrixpcon11;   // unit rotation matrix
467G4double anglepcon11 = 0.0*deg;   // rotational angle
468rotMatrixpcon11.rotateX(anglepcon11);  // rot matrix
469
470G4VPhysicalVolume *  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
478G4RotationMatrix rotMatrixpcon12;   // unit rotation matrix
479G4double anglepcon12 = 0.0*deg;   // rotational angle
480rotMatrixpcon12.rotateX(anglepcon12);  // rot matrix
481
482G4VPhysicalVolume *  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
490G4RotationMatrix rotMatrixpcon13;   // unit rotation matrix
491G4double anglepcon13 = 0.0*deg;   // rotational angle
492rotMatrixpcon13.rotateX(anglepcon13);  // rot matrix
493
494G4VPhysicalVolume *  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
502G4RotationMatrix rotMatrixpcon14;   // unit rotation matrix
503G4double anglepcon14 = 0.0*deg;   // rotational angle
504rotMatrixpcon14.rotateX(anglepcon14);  // rot matrix
505
506G4VPhysicalVolume *  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
514G4RotationMatrix rotMatrixpcon15;   // unit rotation matrix
515G4double anglepcon15 = 0.0*deg;   // rotational angle
516rotMatrixpcon15.rotateX(anglepcon15);  // rot matrix
517
518G4VPhysicalVolume *  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
526G4RotationMatrix rotMatrixpcon16;   // unit rotation matrix
527G4double anglepcon16 = 0.0*deg;   // rotational angle
528rotMatrixpcon16.rotateX(anglepcon16);  // rot matrix
529
530G4VPhysicalVolume *  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
538G4RotationMatrix rotMatrixpcon17;   // unit rotation matrix
539G4double anglepcon17 = 0.0*deg;   // rotational angle
540rotMatrixpcon17.rotateX(anglepcon17);  // rot matrix
541
542G4VPhysicalVolume *  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
550G4RotationMatrix rotMatrixpcon18;   // unit rotation matrix
551G4double anglepcon18 = 0.0*deg;   // rotational angle
552rotMatrixpcon18.rotateX(anglepcon18);  // rot matrix
553
554G4VPhysicalVolume *  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
562G4RotationMatrix rotMatrixpcon19;   // unit rotation matrix
563G4double anglepcon19 = 0.0*deg;   // rotational angle
564rotMatrixpcon19.rotateX(anglepcon19);  // rot matrix
565
566G4VPhysicalVolume *  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
574G4RotationMatrix rotMatrixptub1;   // unit rotation matrix
575G4double angleptub1 = 0.0*deg;   // rotational angle
576rotMatrixptub1.rotateX(angleptub1);  // rot matrix
577
578G4VPhysicalVolume *  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
586G4RotationMatrix rotMatrixptub2;   // unit rotation matrix
587G4double angleptub2 = 0.0*deg;   // rotational angle
588rotMatrixptub2.rotateX(angleptub2);  // rot matrix
589
590G4VPhysicalVolume *  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
598G4RotationMatrix rotMatrixptub3;   // unit rotation matrix
599G4double angleptub3 = 0.0*deg;   // rotational angle
600rotMatrixptub3.rotateX(angleptub3);  // rot matrix
601
602G4VPhysicalVolume *  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}
Note: See TracBrowser for help on using the repository browser.