QwGeant4
QweakSimShieldingWall.cc
Go to the documentation of this file.
1 
2 //=============================================================================
3 //
4 // ---------------------------
5 // | Doxygen File Information |
6 // ---------------------------
7 //
8 /**
9 
10  \file QweakSimShieldingWall.cc
11 
12  $Revision: 1.6 $
13  $Date: 2006/05/05 21:54:17 $
14 
15  \author Klaus Hans Grimm
16 
17 */
18 //=============================================================================
19 
20 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
21 
22 //
23 // Updated to the geometry definition from geant3. This is the as-designed shielding wall.
24 //
25 // The vertices for the window openings are (x, y, z)
26 //
27 // front face: (197.85, +/- 67.95, 300)
28 // front face: (263.65, +/- 79.95, 300)
29 //
30 // back face: (232.45, +/- 79.635, 380)
31 // back face: (291.75, +/- 90.45, 380)
32 //
33 // -- Peiqing 2011 Nov 12
34 //
35 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
36 
37 #include "QweakSimShieldingWall.hh"
38 
39 // user includes
40 #include "QweakSimSolids.hh"
41 #include "QweakSimMaterial.hh"
43 
44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
45 
47 {
48 G4cout << G4endl << "###### Calling QweakSimShieldingWall::QweakSimShieldingWall() " << G4endl << G4endl;
49 
51 
52 //--------------------
53 // Front Shielding Wall related
54 //--------------------
55 //
56 // initialize pointers
60 
61 // clear vector containing temp solids for boolean soild subtractions
63  MyShieldingWallHousing_Solid.resize(9); // 8 octants + 1 beam hole
64 
65  // See report of Yongjuang : http://www.jlab.org/~yl0094a/Qweak_SCIN/status_report/status_09152005.html
66  // values are for z=380cm (start wall) and z=430cm (end wall)
67 
68  // Update the z location. - Peiqing 2011 Nov.
69  // z= 300 - 380 cm, thickness = 80 cm
70 
72  OctantCutOut_Trap_PolarAngle = -21.40*degree;
74 
78 
82 
83  //---------------------------
84  // Conical cutouts are not used anymore for the Shielding Wall
85  // However I will leave the code here
86  /*
87  OctantCutOut_Cone_FrontInnerDiameter = 153.0*mm;
88  OctantCutOut_Cone_FrontOuterDiameter = 500.0*mm;
89  OctantCutOut_Cone_BackInnerDiameter = 193.0*mm;
90  OctantCutOut_Cone_BackOuterDiameter = 600.0*mm;
91  OctantCutOut_Cone_StartingPhiAngle = -12.0*degree;
92  OctantCutOut_Cone_DeltaPhiAngle = 24.0*degree;
93  */
94 
95  // define wall geometry values
96  ShieldingWallHousing_FullLength_X = 670.56*cm; // Full X length (264")
97  ShieldingWallHousing_FullLength_Y = 670.56*cm; // Full Y length
98  ShieldingWallHousing_FullLength_Z = 80.0*cm; // Full Z length
99 
102 
103  // get shielding wall material
104  ShieldingWallHousing_Material = pMaterial->GetMaterial("ShieldingConcrete");
105  //ShieldingWallHousing_Material = pMaterial->GetMaterial("CDA943");
106 
108  ShieldingWallHousing_VisAtt = new G4VisAttributes();
109 
110  //--------------------
111  // Hut area related
112  //--------------------
113  //
114 // InnerHut_FullLength_X = 312.50*inch; // horizontally, Paulo design
115 // InnerHut_FullLength_Z = 148.35*inch; // along beam , Paulo design
116 
117 // Val's changes from Paulos design 2013-04-16
118  InnerHut_FullLength_X = 446.0*inch; // horizontally, Paulo design
119  InnerHut_FullLength_Z = 233.26*inch; // along beam , Paulo design
120 
121 
122  //--------------------
123  // Front Wall related
124  //--------------------
125  //
126  FrontWall_Logical = NULL;
127  FrontWall_Physical = NULL;
128  FrontWall_Material = NULL;
129  //
130 // FrontWall_FullLength_X = ShieldingWallHousing_FullLength_X + 2*60.0*inch; // adding left/right block x-dim
131  FrontWall_FullLength_X = ShieldingWallHousing_FullLength_X + 2*140.0*inch; // Val's change based on Paulo design 2013-05-03
134  //
138  //
139  // Upstream face of FrontWall is not in coincience with Upstream face of shielding wall
140  DeltaZOffset_FrontWall_ShieldingWall = 12.4*cm; // from SW
143  //
144  MyFrontWall_Solid = NULL;
145  //
146  FrontWall_Material = pMaterial->GetMaterial("ShieldingConcrete");
147  //
148  FrontWall_VisAtt = NULL;
149  FrontWall_VisAtt = new G4VisAttributes();
150 
151  //--------------------
152  // Back Wall related
153  //--------------------
154  //
155  BackWall_Logical = NULL;
156  BackWall_Physical = NULL;
157  BackWall_Material = NULL;
158  //
159 // BackWall_FullLength_X = 312.0*inch; // Paulo IDEAS
160  BackWall_FullLength_X = 546.0*inch; // Paulo's drawings! Updated by Val 2013-05-03
161  BackWall_FullLength_Y = 312.0*inch; // Paulo IDEAS
162  //BackWall_FullLength_Z = 48.0*inch; // Paulo IDEAS
163  BackWall_FullLength_Z = 52.0*inch; // Paulo's drawings! Updated by Val 2013-04-16
164  //
165  BackWallBeamCutout_FullLength_X = 29.0*inch +0.01*cm;
168  //
170  //
171  MyBackWall_Solid = NULL;
172  //
173  BackWall_Material = pMaterial->GetMaterial("ShieldingConcrete");
174  //
175  BackWall_VisAtt = NULL;
176  BackWall_VisAtt = new G4VisAttributes();
177 
178 
179  //------------------------------
180  // Beam Left Side Wall related
181  //------------------------------
182  //
186  //
187  BeamLeftSideWall_FullLength_X = 48.0*inch; // Paulo IDEAS
189 // BeamLeftSideWall_FullLength_Z = InnerHut_FullLength_Z + 48.0*inch + 15*inch; // Paulo IDEAS
190  BeamLeftSideWall_FullLength_Z = InnerHut_FullLength_Z;// Paulo Drawing - Val change 2013-05-03
191 
192 //
195  //
196  BeamLeftSideWall_Material = pMaterial->GetMaterial("ShieldingConcrete");
197  //
199  BeamLeftSideWall_VisAtt = new G4VisAttributes();
200 
201 
202  //------------------------------
203  // Beam Right Side Wall related
204  //------------------------------
205  //
209  //
213  //
216  //
217  BeamRightSideWall_Material = pMaterial->GetMaterial("ShieldingConcrete");
218  //
220  BeamRightSideWall_VisAtt = new G4VisAttributes();
221 
222  //------------------------------
223  // Top Wall related
224  //------------------------------
225  //
226  TopWall_Logical = NULL;
227  TopWall_Physical = NULL;
228  TopWall_Material = NULL;
229  //
231  TopWall_FullLength_Y = 20.0*inch;
232 // TopWall_FullLength_Z = BackWall_CenterZPosition - FrontWall_CenterZPosition;
233  TopWall_FullLength_Z = BackWall_CenterZPosition - FrontWall_CenterZPosition + 4.0*inch; //Val's change to fit new Hut size 2013/05-03
234  //
236 // TopWall_CenterZPosition = 0.5*(FrontWall_CenterZPosition + BackWall_CenterZPosition) - 18.0*inch;
237  TopWall_CenterZPosition = 0.5*(FrontWall_CenterZPosition + BackWall_CenterZPosition) - 8.0*inch; //Val's change to fit new Hut size 2013/05-03
238  //
239  TopWall_Material = pMaterial->GetMaterial("ShieldingConcrete");
240  //
241  TopWall_VisAtt = NULL;
242  TopWall_VisAtt = new G4VisAttributes();
243 
244 //--------------------------------------------------
245 
246 
247 ShieldingWallMessenger = NULL;
249 
250 
251 //--------------------------------------------------
252 
253 }
254 
255 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
257 {
259 }
260 
261 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
263 {
264 G4cout << G4endl << "###### Calling QweakSimShieldingWall::DefineOctantCutOut() " << G4endl << G4endl;
265 
266  // definition of octant cut out
267  OctantCutOut_Trap_Solid = new QweakSimTrap("Octant_cut",
268  0.5 * ShieldingWallHousing_FullLength_Z +0.1*mm, // Half-length along the z-axis
269  OctantCutOut_Trap_PolarAngle, // Polar angle of the line joining the centres of the
270  // faces at -/+pDz
271  OctantCutOut_Trap_AzimuthalAngle, // Azimuthal angle of the line joining the centre of the
272  // face at -pDz to the centre of the face at +pDz
273  0.5*OctantCutOut_Trap_FullHeightFront, // Half-length along y of the face at -pDz
274  0.5*OctantCutOut_Trap_FullLengthFront_Outer, // Half-length along x of the side at y=-pDy1 of the face
275  // at -pDz
276  0.5*OctantCutOut_Trap_FullLengthFront_Inner, // Half-length along x of the side at y=+pDy1 of the face
277  // at -pDz
278  0.0*degree, // Angle with respect to the y axis from the centre of the
279  // side at y=-pDy1 to the centre at y=+pDy1 of the face
280  // at -pDz
281  0.5*OctantCutOut_Trap_FullHeightBack, // Half-length along y of the face at +pDz
282  0.5*OctantCutOut_Trap_FullLengthBack_Outer, // Half-length along x of the side at y=-pDy2 of the face
283  // at +pDz
284  0.5*OctantCutOut_Trap_FullLengthBack_Inner, // Half-length along x of the side at y=+pDy2 of the face
285  // at +pDz
286  0.0*degree // Angle with respect to the y axis from the centre of the
287  // side at y=-pDy2 to the centre at y=+pDy2 of the face
288  // at +pDz
289  );
290 
291 G4cout << G4endl << "###### Leaving QweakSimShieldingWall::DefineOctantCutOut() " << G4endl << G4endl;
292 }
293 
294 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
296 {
297  G4cout << G4endl << "###### Calling QweakSimShieldingWall::DefineOctantCutOut() " << G4endl << G4endl;
298 
299  // definition of octant cut out
300  OctantCutOut_Cone_Solid = new G4Cons("Octant_cut",
308  );
309 
310  G4cout << G4endl << "###### Leaving QweakSimShieldingWall::DefineOctantCutOut() " << G4endl << G4endl;
311 }
312 
313 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
314 
316 {
317 G4cout << G4endl << "###### Calling QweakSimShieldingWall::ConstructComponent() " << G4endl << G4endl;
318 
319  // define center position
321 
322 
323  // define shielding wall solid volume
324  G4cout << G4endl << "###### QweakSimShieldingWall: Define ShieldingWall_Solid " << G4endl << G4endl;
325 
326  G4Box* ShieldingWallHousing_Solid = new G4Box("ShieldingWallHousing_Sol",
327  0.5 * ShieldingWallHousing_FullLength_X , // half X length required by Geant4
328  0.5 * ShieldingWallHousing_FullLength_Y , // half Y length required by Geant4
329  0.5 * ShieldingWallHousing_FullLength_Z ); // half Z length required by Geant4
330 
331 
332 
333  // Cut in the the shielding wall due to beam line
334  G4Tubs* BeamlimeHole = new G4Tubs("Beamline_cut",0.0*cm,50.0*cm,ShieldingWallHousing_FullLength_Z,0.0*degree,360.0*degree);
335 
336 
337  // subtract beam linbe hole from shielding wall
338  MyShieldingWallHousing_Solid[0] = new G4SubtractionSolid("Wall-Hole",ShieldingWallHousing_Solid, BeamlimeHole);
339 
340 
341  // get the trapezoidal octant cut out solid
343 
344  // I tried to use <vector> for a octant translation and rotation loop
345  // but G4Transform3D is very stubborn to accept a vector or matrix component as an argument....
346  // So I do it 8x the very stupid way ....
347 
348  // octant #1 location
349  G4double Angle_Octant1;
350  G4ThreeVector Translation_Octant1;
351  G4RotationMatrix Rotation_Octant1;
352 
353  Angle_Octant1 = 90.0*degree;
354  Translation_Octant1.setX(cos(Angle_Octant1)*OctantCutOut_Trap_RadialDistance);
355  Translation_Octant1.setY(sin(Angle_Octant1)*OctantCutOut_Trap_RadialDistance);
356  Translation_Octant1.setZ(0.0*cm);
357 
358  //Rotation_Octant1.rotateZ(Angle_Octant1);
359  Rotation_Octant1.rotateZ(Angle_Octant1+90*degree);
360 
361  G4Transform3D Transform3D_Octant1(Rotation_Octant1,Translation_Octant1);
362 
363  // octant #2 location
364  G4double Angle_Octant2;
365  G4ThreeVector Translation_Octant2;
366  G4RotationMatrix Rotation_Octant2;
367 
368  Angle_Octant2 = 45.0*degree;
369  Translation_Octant2.setX(cos(Angle_Octant2)*OctantCutOut_Trap_RadialDistance);
370  Translation_Octant2.setY(sin(Angle_Octant2)*OctantCutOut_Trap_RadialDistance);
371  Translation_Octant2.setZ(0.0*cm);
372 
373  Rotation_Octant2.rotateZ(Angle_Octant2+90*degree);
374 
375  G4Transform3D Transform3D_Octant2(Rotation_Octant2,Translation_Octant2);
376 
377  // octant #3 location
378  G4double Angle_Octant3;
379  G4ThreeVector Translation_Octant3;
380  G4RotationMatrix Rotation_Octant3;
381 
382  Angle_Octant3 = 0.0*degree;
383  Translation_Octant3.setX(cos(Angle_Octant3)*OctantCutOut_Trap_RadialDistance);
384  Translation_Octant3.setY(sin(Angle_Octant3)*OctantCutOut_Trap_RadialDistance);
385  Translation_Octant3.setZ(0.0*cm);
386 
387  Rotation_Octant3.rotateZ(Angle_Octant3+90*degree);
388 
389  G4Transform3D Transform3D_Octant3(Rotation_Octant3,Translation_Octant3);
390 
391  // octant #4 location
392  G4double Angle_Octant4;
393  G4ThreeVector Translation_Octant4;
394  G4RotationMatrix Rotation_Octant4;
395 
396  Angle_Octant4 = 315.0*degree;
397  Translation_Octant4.setX(cos(Angle_Octant4)*OctantCutOut_Trap_RadialDistance);
398  Translation_Octant4.setY(sin(Angle_Octant4)*OctantCutOut_Trap_RadialDistance);
399  Translation_Octant4.setZ(0.0*cm);
400 
401  Rotation_Octant4.rotateZ(Angle_Octant4+90*degree);
402 
403  G4Transform3D Transform3D_Octant4(Rotation_Octant4,Translation_Octant4);
404 
405 
406  // octant #5 location
407  G4double Angle_Octant5;
408  G4ThreeVector Translation_Octant5;
409  G4RotationMatrix Rotation_Octant5;
410 
411  Angle_Octant5 = 270.0*degree;
412  Translation_Octant5.setX(cos(Angle_Octant5)*OctantCutOut_Trap_RadialDistance);
413  Translation_Octant5.setY(sin(Angle_Octant5)*OctantCutOut_Trap_RadialDistance);
414  Translation_Octant5.setZ(0.0*cm);
415 
416  Rotation_Octant5.rotateZ(Angle_Octant5+90*degree);
417 
418  G4Transform3D Transform3D_Octant5(Rotation_Octant5,Translation_Octant5);
419 
420 
421  // octant #6 location
422  G4double Angle_Octant6;
423  G4ThreeVector Translation_Octant6;
424  G4RotationMatrix Rotation_Octant6;
425 
426  Angle_Octant6 = 225.0*degree;
427  Translation_Octant6.setX(cos(Angle_Octant6)*OctantCutOut_Trap_RadialDistance);
428  Translation_Octant6.setY(sin(Angle_Octant6)*OctantCutOut_Trap_RadialDistance);
429  Translation_Octant6.setZ(0.0*cm);
430 
431  Rotation_Octant6.rotateZ(Angle_Octant6+90*degree);
432 
433  G4Transform3D Transform3D_Octant6(Rotation_Octant6,Translation_Octant6);
434 
435 
436 // octant #7 location
437  G4double Angle_Octant7;
438  G4ThreeVector Translation_Octant7;
439  G4RotationMatrix Rotation_Octant7;
440 
441  Angle_Octant7 = 180.0*degree;
442  Translation_Octant7.setX(cos(Angle_Octant7)*OctantCutOut_Trap_RadialDistance);
443  Translation_Octant7.setY(sin(Angle_Octant7)*OctantCutOut_Trap_RadialDistance);
444  Translation_Octant7.setZ(0.0*cm);
445 
446  Rotation_Octant7.rotateZ(Angle_Octant7+90*degree);
447 
448  G4Transform3D Transform3D_Octant7(Rotation_Octant7,Translation_Octant7);
449 
450 // octant #8 location
451  G4double Angle_Octant8;
452  G4ThreeVector Translation_Octant8;
453  G4RotationMatrix Rotation_Octant8;
454 
455  Angle_Octant8 = 135.0*degree;
456  Translation_Octant8.setX(cos(Angle_Octant8)*OctantCutOut_Trap_RadialDistance);
457  Translation_Octant8.setY(sin(Angle_Octant8)*OctantCutOut_Trap_RadialDistance);
458  Translation_Octant8.setZ(0.0*cm);
459 
460  Rotation_Octant8.rotateZ(Angle_Octant8+90*degree);
461 
462  G4Transform3D Transform3D_Octant8(Rotation_Octant8,Translation_Octant8);
463 
464 
465  // subtract octant hole from shielding wall
466  MyShieldingWallHousing_Solid[1] = new G4SubtractionSolid ("Wall-Octant1",
469  Transform3D_Octant1 );
470 
471  // subtract octant hole from previous G4StbtractionSolid
472  MyShieldingWallHousing_Solid[2] = new G4SubtractionSolid ("Wall-Octant2",
475  Transform3D_Octant2 );
476 
477  // subtract octant hole from previous G4StbtractionSolid
478  MyShieldingWallHousing_Solid[3] = new G4SubtractionSolid ("Wall-Octant3",
481  Transform3D_Octant3 );
482 
483  // subtract octant hole from previous G4StbtractionSolid
484  MyShieldingWallHousing_Solid[4] = new G4SubtractionSolid ("Wall-Octant4",
487  Transform3D_Octant4 );
488 
489  // subtract octant hole from previous G4StbtractionSolid
490  MyShieldingWallHousing_Solid[5] = new G4SubtractionSolid ("Wall-Octant5",
493  Transform3D_Octant5 );
494 
495  // subtract octant hole from previous G4StbtractionSolid
496  MyShieldingWallHousing_Solid[6] = new G4SubtractionSolid ("Wall-Octant6",
499  Transform3D_Octant6 );
500 
501  // subtract octant hole from previous G4StbtractionSolid
502  MyShieldingWallHousing_Solid[7] = new G4SubtractionSolid ("Wall-Octant7",
505  Transform3D_Octant7 );
506 
507  // subtract octant hole from previous G4StbtractionSolid
508  MyShieldingWallHousing_Solid[8] = new G4SubtractionSolid ("Wall-Octant8",
511  Transform3D_Octant8 );
512 
513 
514 
515 
516  // define Shielding logical volume
517  G4cout << G4endl << "###### QweakSimShieldingWall: Define ShieldingWall_Logical " << G4endl << G4endl;
518 
521  "ShieldingWallHousing_Log",
522  0,0,0);
523 
524 
525 
526 
527  // define shielding wall physical volume
528  G4cout << G4endl << "###### QweakSimShieldingWall: Define ShieldingWall_Physical " << G4endl << G4endl;
529  ShieldingWallHousing_Physical = new G4PVPlacement(0,
531  "ShieldingWallHousing",
533  MotherVolume,
534  false,
535  0,
536  pSurfChk);
537 // jpan@nuclear.uwinnipeg.ca
538 
539 G4cout << G4endl << "###### QweakSimShieldingWall: Setting Attributes " << G4endl << G4endl;
540 
541  G4Colour blue (0.,0.,1.);
542  G4Colour mangenta (237/255.,173/255.,255/255.);
543  G4Colour mangenta1 (104/255., 49/255., 94/255.);
544 
545  ShieldingWallHousing_VisAtt->SetColor(mangenta1);
546  ShieldingWallHousing_VisAtt->SetVisibility(true);
547  //ShieldingWallHousing_VisAtt->SetVisibility(false);
548  //ShieldingWallHousing_VisAtt->SetForceWireframe(true);
549  ShieldingWallHousing_VisAtt->SetForceSolid(true);
551 
552 G4cout << G4endl << "###### Leaving QweakSimShieldingWall::ConstructComponent() " << G4endl << G4endl;
553 
554 } // end of QweakSimShieldingWall::ConstructComponent()
555 
556 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
557 
559 {
560  // search the material by its name
561  G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
562  if (pttoMaterial)
563  {
564  G4cout << "==== Changing CollimatorWall Material: Looking up Material " << G4endl;
565  ShieldingWallHousing_Logical->SetMaterial(pttoMaterial);
566  G4cout << "==== Changing CollimatorWall Material: Now the CollimatorWall is made of " << materialName << G4endl;
567  }
568  else {
569  G4cerr << "==== ERROR: Changing CollimatorWall Material failed" << G4endl;
570  }
571 
572 }
573 
574 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
575 
577 {
578 }
579 
580 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
581 
583 {
584 G4cout << G4endl << "###### Calling QweakSimShieldingWall::SetCollimatorWall_CenterPositionInZ() " << G4endl << G4endl;
585 
586  ShieldingWallHousing_Physical->SetTranslation(G4ThreeVector(0.,0., zPos));
587 
588 G4cout << G4endl << "###### Leaving QweakSimShieldingWall::SetCollimatorWall_CenterPositionInZ() " << G4endl << G4endl;
589 }
590 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
592 {
593 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_RadialDistance() " << G4endl << G4endl;
594  OctantCutOut_Trap_RadialDistance = myRadialDistance;
595 }
596 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
598 {
599 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_FullLengthFront_Outer() " << G4endl << G4endl;
600  OctantCutOut_Trap_FullLengthFront_Outer = myFullLengthFront;
601 }
602 
603 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
605 {
606 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_FullLengthFront_Inner() " << G4endl << G4endl;
607  OctantCutOut_Trap_FullLengthFront_Inner = myFullLengthFront;
608 }
609 
610 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
612 {
613 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_FullLengthBack_Outer() " << G4endl << G4endl;
614  OctantCutOut_Trap_FullLengthBack_Outer = myFullLengthBack;
615 }
616 
617 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
619 {
620 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_FullLengthBack_Inner() " << G4endl << G4endl;
621  OctantCutOut_Trap_FullLengthBack_Inner = myFullLengthBack;
622 }
623 
624 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
626 {
627 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_FullHeightFront() " << G4endl << G4endl;
628  OctantCutOut_Trap_FullHeightFront = myFullHeightFront;
629 }
630 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
632 {
633 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_FullHeightBack() " << G4endl << G4endl;
634  OctantCutOut_Trap_FullHeightBack = myFullHeightBack;
635 }
636 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
638 {
639 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_PolarAngle() " << G4endl << G4endl;
640  OctantCutOut_Trap_PolarAngle = myPolarAngle;
641 }
642 
643 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
645 {
646 G4cout << "###### Calling QweakSimShieldingWall::SetOctantCutOut_AzimuthalAngle() " << G4endl << G4endl;
647  OctantCutOut_Trap_AzimuthalAngle = myAzimuthalAngle;
648 }
649 
650 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
652 {
653  G4cout << "###### Calling QweakSimShieldingWall::SetCollimatorWall_FullLengthInX() " << G4endl << G4endl;
654 ShieldingWallHousing_FullLength_X = myFullLengthInX;
655 }
656 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
658 {
659  G4cout << "###### Calling QweakSimShieldingWall::SetCollimatorWall_FullLengthInY() " << G4endl << G4endl;
660 ShieldingWallHousing_FullLength_Y = myFullLengthInY;
661 }
662 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
664 {
665  G4cout << "###### Calling QweakSimShieldingWall::SetCollimatorWall_FullLengthInZ() " << G4endl << G4endl;
666 ShieldingWallHousing_FullLength_Z = myFullLengthInZ;
667 }
668 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
669 
671 {
672 G4cout << G4endl << "###### Calling QweakSimShieldingWall::ConstructComponent() " << G4endl << G4endl;
673 
674  // define center position
676 
677 
678  // define shielding wall solid volume
679  G4cout << G4endl << "###### QweakSimShieldingWall: Define ShieldingWall_Solid " << G4endl << G4endl;
680 
681  G4Box* ShieldingWallHousing_Solid = new G4Box("ShieldingWallHousing_Sol",
682  0.5 * ShieldingWallHousing_FullLength_X , // half X length required by Geant4
683  0.5 * ShieldingWallHousing_FullLength_Y , // half Y length required by Geant4
684  0.5 * ShieldingWallHousing_FullLength_Z ); // half Z length required by Geant4
685 
686 
687 
688  // Cut in the the shielding wall due to beam line
689  G4Tubs* BeamlimeHole = new G4Tubs("Beamline_cut",0.0*cm, 0.5*10.158*cm,ShieldingWallHousing_FullLength_Z,0.0*degree,360.0*degree);
690 
691 
692  // subtract beam linbe hole from shielding wall
693  MyShieldingWallHousing_Solid[0] = new G4SubtractionSolid("Wall-Hole",ShieldingWallHousing_Solid, BeamlimeHole);
694 
695 
696  // get the trapezoidal octant cut out solid
698 
699  // I tried to use <vector> for a octant translation and rotation loop
700  // but G4Transform3D is very stubborn to accept a vector or matrix component as an argument....
701  // So I do it 8x the very stupid way ....
702 
703  // octant #1 location
704  G4double Angle_Octant1;
705  G4ThreeVector Translation_Octant1;
706  G4RotationMatrix Rotation_Octant1;
707 
708  Angle_Octant1 = 90.0*degree;
709  Translation_Octant1.setX(0.0*cm);
710  Translation_Octant1.setY(0.0*cm);
711  Translation_Octant1.setZ(0.0*cm);
712 
713  Rotation_Octant1.rotateZ(Angle_Octant1);
714 
715  G4Transform3D Transform3D_Octant1(Rotation_Octant1,Translation_Octant1);
716 
717  // octant #2 location
718  G4double Angle_Octant2;
719  G4ThreeVector Translation_Octant2;
720  G4RotationMatrix Rotation_Octant2;
721 
722  Angle_Octant2 = 45.0*degree;
723  Translation_Octant2.setX(0.0*cm);
724  Translation_Octant2.setY(0.0*cm);
725  Translation_Octant2.setZ(0.0*cm);
726 
727  Rotation_Octant2.rotateZ(Angle_Octant2);
728 
729  G4Transform3D Transform3D_Octant2(Rotation_Octant2,Translation_Octant2);
730 
731  // octant #3 location
732  G4double Angle_Octant3;
733  G4ThreeVector Translation_Octant3;
734  G4RotationMatrix Rotation_Octant3;
735 
736  Angle_Octant3 = 0.0*degree;
737  Translation_Octant3.setX(0.0*cm);
738  Translation_Octant3.setY(0.0*cm);
739  Translation_Octant3.setZ(0.0*cm);
740 
741  Rotation_Octant3.rotateZ(Angle_Octant3);
742 
743  G4Transform3D Transform3D_Octant3(Rotation_Octant3,Translation_Octant3);
744 
745  // octant #4 location
746  G4double Angle_Octant4;
747  G4ThreeVector Translation_Octant4;
748  G4RotationMatrix Rotation_Octant4;
749 
750  Angle_Octant4 = 315.0*degree;
751  Translation_Octant4.setX(0.0*cm);
752  Translation_Octant4.setY(0.0*cm);
753  Translation_Octant4.setZ(0.0*cm);
754 
755  Rotation_Octant4.rotateZ(Angle_Octant4);
756 
757  G4Transform3D Transform3D_Octant4(Rotation_Octant4,Translation_Octant4);
758 
759 
760  // octant #5 location
761  G4double Angle_Octant5;
762  G4ThreeVector Translation_Octant5;
763  G4RotationMatrix Rotation_Octant5;
764 
765  Angle_Octant5 = 270.0*degree;
766  Translation_Octant5.setX(0.0*cm);
767  Translation_Octant5.setY(0.0*cm);
768  Translation_Octant5.setZ(0.0*cm);
769 
770  Rotation_Octant5.rotateZ(Angle_Octant5);
771 
772  G4Transform3D Transform3D_Octant5(Rotation_Octant5,Translation_Octant5);
773 
774 
775  // octant #6 location
776  G4double Angle_Octant6;
777  G4ThreeVector Translation_Octant6;
778  G4RotationMatrix Rotation_Octant6;
779 
780  Angle_Octant6 = 225.0*degree;
781  Translation_Octant6.setX(0.0*cm);
782  Translation_Octant6.setY(0.0*cm);
783  Translation_Octant6.setZ(0.0*cm);
784 
785  Rotation_Octant6.rotateZ(Angle_Octant6);
786 
787  G4Transform3D Transform3D_Octant6(Rotation_Octant6,Translation_Octant6);
788 
789 
790 // octant #7 location
791  G4double Angle_Octant7;
792  G4ThreeVector Translation_Octant7;
793  G4RotationMatrix Rotation_Octant7;
794 
795  Angle_Octant7 = 180.0*degree;
796  Translation_Octant7.setX(0.0*cm);
797  Translation_Octant7.setY(0.0*cm);
798  Translation_Octant7.setZ(0.0*cm);
799 
800  Rotation_Octant7.rotateZ(Angle_Octant7);
801 
802  G4Transform3D Transform3D_Octant7(Rotation_Octant7,Translation_Octant7);
803 
804 // octant #8 location
805  G4double Angle_Octant8;
806  G4ThreeVector Translation_Octant8;
807  G4RotationMatrix Rotation_Octant8;
808 
809  Angle_Octant8 = 135.0*degree;
810  Translation_Octant8.setX(0.0*cm);
811  Translation_Octant8.setY(0.0*cm);
812  Translation_Octant8.setZ(0.0*cm);
813 
814  Rotation_Octant8.rotateZ(Angle_Octant8);
815 
816  G4Transform3D Transform3D_Octant8(Rotation_Octant8,Translation_Octant8);
817 
818 
819  // subtract octant hole from shielding wall
820  MyShieldingWallHousing_Solid[1] = new G4SubtractionSolid ("Wall-Octant1",
823  Transform3D_Octant1 );
824 
825  // subtract octant hole from previous G4StbtractionSolid
826  MyShieldingWallHousing_Solid[2] = new G4SubtractionSolid ("Wall-Octant2",
829  Transform3D_Octant2 );
830 
831  // subtract octant hole from previous G4StbtractionSolid
832  MyShieldingWallHousing_Solid[3] = new G4SubtractionSolid ("Wall-Octant3",
835  Transform3D_Octant3 );
836 
837  // subtract octant hole from previous G4StbtractionSolid
838  MyShieldingWallHousing_Solid[4] = new G4SubtractionSolid ("Wall-Octant4",
841  Transform3D_Octant4 );
842 
843  // subtract octant hole from previous G4StbtractionSolid
844  MyShieldingWallHousing_Solid[5] = new G4SubtractionSolid ("Wall-Octant5",
847  Transform3D_Octant5 );
848 
849  // subtract octant hole from previous G4StbtractionSolid
850  MyShieldingWallHousing_Solid[6] = new G4SubtractionSolid ("Wall-Octant6",
853  Transform3D_Octant6 );
854 
855  // subtract octant hole from previous G4StbtractionSolid
856  MyShieldingWallHousing_Solid[7] = new G4SubtractionSolid ("Wall-Octant7",
859  Transform3D_Octant7 );
860 
861  // subtract octant hole from previous G4StbtractionSolid
862  MyShieldingWallHousing_Solid[8] = new G4SubtractionSolid ("Wall-Octant8",
865  Transform3D_Octant8 );
866 
867 
868 
869 
870  // define Shielding logical volume
871  G4cout << G4endl << "###### QweakSimShieldingWall: Define ShieldingWall_Logical " << G4endl << G4endl;
872 
875  "ShieldingWallHousing_Log",
876  0,0,0);
877 
878 
879 
880 
881  // define shielding wall physical volume
882  G4cout << G4endl << "###### QweakSimShieldingWall: Define ShieldingWall_Physical " << G4endl << G4endl;
883  ShieldingWallHousing_Physical = new G4PVPlacement(0,
885  "ShieldingWallHousing",
887  MotherVolume,
888  false,
889  0,
890  pSurfChk);
891 
892 
893 G4cout << G4endl << "###### QweakSimShieldingWall: Setting Attributes " << G4endl << G4endl;
894 
895  G4Colour blue (0.,0.,1.);
896  G4Colour mangenta (237/255.,173/255.,255/255.);
897  G4Colour mangenta1 (104/255., 49/255., 94/255.);
898  G4Colour orange (1.0, 0.5, 0.0);
899 
900  ShieldingWallHousing_VisAtt->SetColor(orange);
901  ShieldingWallHousing_VisAtt->SetVisibility(true);
902  //ShieldingWallHousing_VisAtt->SetForceWireframe(true);
903  ShieldingWallHousing_VisAtt->SetForceSolid(true);
905 
906 G4cout << G4endl << "###### Leaving QweakSimShieldingWall::ConstructComponent() " << G4endl << G4endl;
907 
908 } // end of QweakSimShieldingWall::ConstructComponent()
909 
910 
911 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
912 void QweakSimShieldingWall::ConstructFrontWall(G4VPhysicalVolume* MotherVolume)
913 {
914  // define center position
915  positionFrontWall = G4ThreeVector(0.0*cm,0.0*cm, FrontWall_CenterZPosition);
916 
917 
918  // define frontwall solid volume
919  G4cout << G4endl << "###### QweakSimShieldingWall: Define ShieldingWall_Solid " << G4endl << G4endl;
920 
921  G4Box* FrontWall_Solid = new G4Box("FrontWall_Sol",
922  0.5 * FrontWall_FullLength_X , // half X length required by Geant4
923  0.5 * FrontWall_FullLength_Y , // half Y length required by Geant4
924  0.5 * FrontWall_FullLength_Z ); // half Z length required by Geant4
925 
926 
927 
928  // Cut in the the front wall due to lead box (shielding the beam line)
929  G4Box* FrontWallBeamCutout_Solid = new G4Box("FrontWallBeamCutout_Sol",
930  0.5 * FrontWallBeamCutout_FullLength_X , // half X length required by Geant4
931  0.5 * FrontWallBeamCutout_FullLength_Y , // half Y length required by Geant4
932  0.5 * FrontWallBeamCutout_FullLength_Z ); // half Z length required by Geant4
933 
934 
935 
936  // subtract beam linbe hole from shielding wall
937  MyFrontWall_Solid = new G4SubtractionSolid("FrontWall-Hole", FrontWall_Solid, FrontWallBeamCutout_Solid );
938 
939 
940  // define front wall logical volume
941  G4cout << G4endl << "###### QweakSimShieldingWall: Define FrontWall_Logical " << G4endl << G4endl;
942 
943  FrontWall_Logical = new G4LogicalVolume(MyFrontWall_Solid,
945  "FrontWall_Log",
946  0,0,0);
947 
948  // define front wall physical volume
949  G4cout << G4endl << "###### QweakSimShieldingWall: Define FrontWall_Physical " << G4endl << G4endl;
950  FrontWall_Physical = new G4PVPlacement(0,
952  "FrontWall",
954  MotherVolume,
955  false,
956  0,
957  pSurfChk);
958 
959 G4cout << G4endl << "###### QweakSimShieldingWall: Setting Attributes for Front Wall" << G4endl << G4endl;
960 
961  G4Colour grey ( 127/255., 127/255., 127/255.);
962  G4Colour orange (1.0, 0.5, 0.0);
963 
964  FrontWall_VisAtt->SetColor(orange);
965  FrontWall_VisAtt->SetVisibility(true);
966  //FrontWall_VisAtt->SetForceWireframe(true);
967  //FrontWall_VisAtt->SetForceSolid(true);
968  FrontWall_Logical->SetVisAttributes(FrontWall_VisAtt);
969 
970 G4cout << G4endl << "###### Leaving QweakSimShieldingWall::ConstructFrontWall() " << G4endl << G4endl;
971 
972 
973 }
974 
975 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
976 void QweakSimShieldingWall::ConstructBackWall(G4VPhysicalVolume* MotherVolume)
977 {
978  // define center position
979  positionBackWall = G4ThreeVector(0.0*cm,0.0*cm, BackWall_CenterZPosition);
980 
981 
982  // define Backwall solid volume
983  G4cout << G4endl << "###### QweakSimShieldingWall: Define ShieldingWall_Solid " << G4endl << G4endl;
984 
985  G4Box* BackWall_Solid = new G4Box("BackWall_Sol",
986  0.5 * BackWall_FullLength_X , // half X length required by Geant4
987  0.5 * BackWall_FullLength_Y , // half Y length required by Geant4
988  0.5 * BackWall_FullLength_Z ); // half Z length required by Geant4
989 
990 
991 
992  // Cut in the the Back wall due to lead box (shielding the beam line)
993  G4Box* BackWallBeamCutout_Solid = new G4Box("BackWallBeamCutout_Sol",
994  0.5 * BackWallBeamCutout_FullLength_X , // half X length required by Geant4
995  0.5 * BackWallBeamCutout_FullLength_Y , // half Y length required by Geant4
996  0.5 * BackWallBeamCutout_FullLength_Z ); // half Z length required by Geant4
997 
998 
999 
1000  // subtract beam linbe hole from shielding wall
1001  MyBackWall_Solid = new G4SubtractionSolid("BackWall-Hole", BackWall_Solid, BackWallBeamCutout_Solid );
1002 
1003 
1004  // define Back wall logical volume
1005  G4cout << G4endl << "###### QweakSimShieldingWall: Define BackWall_Logical " << G4endl << G4endl;
1006 
1007  BackWall_Logical = new G4LogicalVolume(MyBackWall_Solid,
1009  "BackWall_Log",
1010  0,0,0);
1011 
1012  // define Back wall physical volume
1013  G4cout << G4endl << "###### QweakSimShieldingWall: Define BackWall_Physical " << G4endl << G4endl;
1014  BackWall_Physical = new G4PVPlacement(0,
1016  "BackWall",
1018  MotherVolume,
1019  false,
1020  0,
1021  pSurfChk);
1022 
1023 G4cout << G4endl << "###### QweakSimShieldingWall: Setting Attributes for Back Wall" << G4endl << G4endl;
1024 
1025  G4Colour grey1 ( 157/255., 157/255., 157/255.);
1026  G4Colour orange (1.0, 0.5, 0.0);
1027 
1028  BackWall_VisAtt->SetColor(orange);
1029  BackWall_VisAtt->SetVisibility(true);
1030  //BackWall_VisAtt->SetForceWireframe(true);
1031  //BackWall_VisAtt->SetForceSolid(true);
1032  BackWall_Logical->SetVisAttributes(BackWall_VisAtt);
1033 
1034 G4cout << G4endl << "###### Leaving QweakSimShieldingWall::ConstructBackWall() " << G4endl << G4endl;
1035 
1036 }
1037 
1038 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1039 void QweakSimShieldingWall::ConstructBeamLeftSideWall(G4VPhysicalVolume* MotherVolume)
1040 {
1041  // define center position
1043 
1044  // define BeamLeftSidewall solid volume
1045  G4cout << G4endl << "###### QweakSimShieldingWall: Define BeamLeftSideWall_Solid " << G4endl << G4endl;
1046 
1047  G4Box* BeamLeftSideWall_Solid = new G4Box("BeamLeftSideWall_Sol",
1048  0.5 * BeamLeftSideWall_FullLength_X , // half X length required by Geant4
1049  0.5 * BeamLeftSideWall_FullLength_Y , // half Y length required by Geant4
1050  0.5 * BeamLeftSideWall_FullLength_Z ); // half Z length required by Geant4
1051 
1052  // define BeamLeftSide wall logical volume
1053  G4cout << G4endl << "###### QweakSimShieldingWall: Define BeamLeftSideWall_Logical " << G4endl << G4endl;
1054 
1055  BeamLeftSideWall_Logical = new G4LogicalVolume(BeamLeftSideWall_Solid,
1057  "BeamLeftSideWall_Log",
1058  0,0,0);
1059 
1060  // define BeamLeftSide wall physical volume
1061  G4cout << G4endl << "###### QweakSimShieldingWall: Define BeamLeftSideWall_Physical " << G4endl << G4endl;
1062  BeamLeftSideWall_Physical = new G4PVPlacement(0,
1064  "BeamLeftSideWall",
1066  MotherVolume,
1067  false,
1068  0,
1069  pSurfChk);
1070 
1071  G4cout << G4endl << "###### QweakSimShieldingWall: Setting Attributes for BeamLeftSide Wall" << G4endl << G4endl;
1072 
1073  G4Colour grey1 ( 157/255., 157/255., 157/255.);
1074  G4Colour orange (1.0, 0.5, 0.0);
1075 
1076  BeamLeftSideWall_VisAtt->SetColor(orange);
1077  BeamLeftSideWall_VisAtt->SetVisibility(true);
1078  //BeamLeftSideWall_VisAtt->SetForceWireframe(true);
1079  //BeamLeftSideWall_VisAtt->SetForceSolid(true);
1081 
1082  G4cout << G4endl << "###### Leaving QweakSimShieldingWall::ConstructBeamLeftSideWall() " << G4endl << G4endl;
1083 
1084 
1085 }
1086 
1087 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1088 void QweakSimShieldingWall::ConstructBeamRightSideWall(G4VPhysicalVolume* MotherVolume)
1089 {
1090  // define center position
1092 
1093  // define BeamRightSidewall solid volume
1094  G4cout << G4endl << "###### QweakSimShieldingWall: Define BeamRightSideWall_Solid " << G4endl << G4endl;
1095 
1096  G4Box* BeamRightSideWall_Solid = new G4Box("BeamRightSideWall_Sol",
1097  0.5 * BeamRightSideWall_FullLength_X , // half X length required by Geant4
1098  0.5 * BeamRightSideWall_FullLength_Y , // half Y length required by Geant4
1099  0.5 * BeamRightSideWall_FullLength_Z ); // half Z length required by Geant4
1100 
1101  // define BeamRightSide wall logical volume
1102  G4cout << G4endl << "###### QweakSimShieldingWall: Define BeamRightSideWall_Logical " << G4endl << G4endl;
1103 
1104  BeamRightSideWall_Logical = new G4LogicalVolume(BeamRightSideWall_Solid,
1106  "BeamRightSideWall_Log",
1107  0,0,0);
1108 
1109  // define BeamRightSide wall physical volume
1110  G4cout << G4endl << "###### QweakSimShieldingWall: Define BeamRightSideWall_Physical " << G4endl << G4endl;
1111  BeamRightSideWall_Physical = new G4PVPlacement(0,
1113  "BeamRightSideWall",
1115  MotherVolume,
1116  false,
1117  0,
1118  pSurfChk);
1119 
1120  G4cout << G4endl << "###### QweakSimShieldingWall: Setting Attributes for BeamRightSide Wall" << G4endl << G4endl;
1121 
1122  G4Colour grey1 ( 157/255., 157/255., 157/255.);
1123  G4Colour orange (1.0, 0.5, 0.0);
1124 
1125  BeamRightSideWall_VisAtt->SetColor(orange);
1126  BeamRightSideWall_VisAtt->SetVisibility(true);
1127  //BeamRightSideWall_VisAtt->SetForceWireframe(true);
1128  //BeamRightSideWall_VisAtt->SetForceSolid(true);
1130 
1131  G4cout << G4endl << "###### Leaving QweakSimShieldingWall::ConstructBeamRightSideWall() " << G4endl << G4endl;
1132 
1133 }
1134 
1135 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1136 void QweakSimShieldingWall::ConstructTopWall(G4VPhysicalVolume* MotherVolume)
1137 {
1138  // define center position
1140 
1141  // define Topwall solid volume
1142  G4cout << G4endl << "###### QweakSimShieldingWall: Define TopWall_Solid " << G4endl << G4endl;
1143 
1144  G4Box* TopWall_Solid = new G4Box("TopWall_Sol",
1145  0.5 * TopWall_FullLength_X , // half X length required by Geant4
1146  0.5 * TopWall_FullLength_Y , // half Y length required by Geant4
1147  0.5 * TopWall_FullLength_Z ); // half Z length required by Geant4
1148 
1149  // define Top wall logical volume
1150  G4cout << G4endl << "###### QweakSimShieldingWall: Define TopWall_Logical " << G4endl << G4endl;
1151 
1152  TopWall_Logical = new G4LogicalVolume(TopWall_Solid,
1154  "TopWall_Log",
1155  0,0,0);
1156 
1157  // define Top wall physical volume
1158  G4cout << G4endl << "###### QweakSimShieldingWall: Define TopWall_Physical " << G4endl << G4endl;
1159  TopWall_Physical = new G4PVPlacement(0,
1160  positionTopWall,
1161  "TopWall",
1163  MotherVolume,
1164  false,
1165  0,
1166  pSurfChk);
1167 
1168  G4cout << G4endl << "###### QweakSimShieldingWall: Setting Attributes for Top Wall" << G4endl << G4endl;
1169 
1170  G4Colour grey1 ( 157/255., 157/255., 157/255.);
1171  G4Colour orange (1.0, 0.5, 0.0);
1172 
1173  TopWall_VisAtt->SetColor(orange);
1174  TopWall_VisAtt->SetVisibility(true);
1175  //TopWall_VisAtt->SetForceWireframe(true);
1176  //TopWall_VisAtt->SetForceSolid(true);
1177  TopWall_Logical->SetVisAttributes(TopWall_VisAtt);
1178 
1179  G4cout << G4endl << "###### Leaving QweakSimShieldingWall::ConstructTopWall() " << G4endl << G4endl;
1180 
1181 
1182 }
1183 
1184 
1185 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1187 {
1188  G4cout << "###### Calling QweakSimShieldingWall::ShowCollimatorWall() " << G4endl << G4endl;
1189 
1190  ShieldingWallHousing_VisAtt->SetVisibility(true);
1191 
1192  G4cout << "###### Leaving QweakSimShieldingWall::ShowCollimatorWall() " << G4endl << G4endl;
1193 }
1194 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1196 {
1197  G4cout << "###### Calling QweakSimShieldingWall::HideCollimatorWall() " << G4endl << G4endl;
1198 
1199  ShieldingWallHousing_VisAtt->SetVisibility(false);
1200 
1201  G4cout << "###### Leaving QweakSimShieldingWall::HideCollimatorWall() " << G4endl << G4endl;
1202 }
1203 
1204 
1205 
1206 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1208 {
1209  G4cout << "###### Calling QweakSimShieldingWall::ShowFrontWall() " << G4endl << G4endl;
1210 
1211  FrontWall_VisAtt->SetVisibility(true);
1212 
1213  G4cout << "###### Leaving QweakSimShieldingWall::ShowFrontWall() " << G4endl << G4endl;
1214 }
1215 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1217 {
1218  G4cout << "###### Calling QweakSimShieldingWall::HideFrontWall() " << G4endl << G4endl;
1219 
1220  FrontWall_VisAtt->SetVisibility(false);
1221 
1222  G4cout << "###### Leaving QweakSimShieldingWall::HideFrontWall() " << G4endl << G4endl;
1223 }
1224 
1225 
1226 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1228 {
1229  G4cout << "###### Calling QweakSimShieldingWall::ShowBackWall() " << G4endl << G4endl;
1230 
1231  BackWall_VisAtt->SetVisibility(true);
1232 
1233  G4cout << "###### Leaving QweakSimShieldingWall::ShowBackWall() " << G4endl << G4endl;
1234 }
1235 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1237 {
1238  G4cout << "###### Calling QweakSimShieldingWall::HideBackWall() " << G4endl << G4endl;
1239 
1240  BackWall_VisAtt->SetVisibility(false);
1241 
1242  G4cout << "###### Leaving QweakSimShieldingWall::HideBackWall() " << G4endl << G4endl;
1243 }
1244 
1245 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1247 {
1248  G4cout << "###### Calling QweakSimShieldingWall::ShowBeamLeftSideWall() " << G4endl << G4endl;
1249 
1250  BeamLeftSideWall_VisAtt->SetVisibility(true);
1251 
1252  G4cout << "###### Leaving QweakSimShieldingWall::ShowBeamLeftSideWall() " << G4endl << G4endl;
1253 }
1254 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1256 {
1257  G4cout << "###### Calling QweakSimShieldingWall::HideBeamLeftSideWall() " << G4endl << G4endl;
1258 
1259  BeamLeftSideWall_VisAtt->SetVisibility(false);
1260 
1261  G4cout << "###### Leaving QweakSimShieldingWall::HideBeamLeftSideWall() " << G4endl << G4endl;
1262 }
1263 
1264 
1265 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1267 {
1268  G4cout << "###### Calling QweakSimShieldingWall::ShowBeamRightSideWall() " << G4endl << G4endl;
1269 
1270  BeamRightSideWall_VisAtt->SetVisibility(true);
1271 
1272  G4cout << "###### Leaving QweakSimShieldingWall::ShowBeamRightSideWall() " << G4endl << G4endl;
1273 }
1274 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1276 {
1277  G4cout << "###### Calling QweakSimShieldingWall::HideBeamRightSideWall() " << G4endl << G4endl;
1278 
1279  BeamRightSideWall_VisAtt->SetVisibility(false);
1280 
1281  G4cout << "###### Leaving QweakSimShieldingWall::HideBeamRightSideWall() " << G4endl << G4endl;
1282 }
1283 
1284 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1286 {
1287  G4cout << "###### Calling QweakSimShieldingWall::ShowTopWall() " << G4endl << G4endl;
1288 
1289  TopWall_VisAtt->SetVisibility(true);
1290 
1291  G4cout << "###### Leaving QweakSimShieldingWall::ShowTopWall() " << G4endl << G4endl;
1292 }
1293 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1295 {
1296  G4cout << "###### Calling QweakSimShieldingWall::HideTopWall() " << G4endl << G4endl;
1297 
1298  TopWall_VisAtt->SetVisibility(false);
1299 
1300  G4cout << "###### Leaving QweakSimShieldingWall::HideTopWall() " << G4endl << G4endl;
1301 }
1302 
1303 
1304 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1305 
1306 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1307 
1308 //=======================================================
1309 // -----------------------
1310 // | CVS File Information |
1311 // -----------------------
1312 //
1313 // $Revisions$
1314 // $Log: QweakSimShieldingWall.cc,v $
1315 // Revision 1.6 2006/05/05 21:54:17 grimm
1316 // The ShieldingWallHousing_UpStreamWall_ZPosition moved from 380*cm down to 330.0*cm
1317 // according to Paulo's drawings. Frees some space needed by the VDCs.
1318 //
1319 // To be checked: Octant Cutouts
1320 //
1321 // Revision 1.5 2006/04/26 20:01:57 grimm
1322 // The shielding wall has been extended to a shielding detector hut
1323 //
1324 // Revision 1.4 2006/01/18 20:20:34 grimm
1325 // Added visibility functions: ShowShieldingWall(), HideShieldingWall()
1326 //
1327 // Revision 1.3 2005/12/28 23:27:28 grimm
1328 // Changed material from CDA* used for the collimators to concrete.
1329 //
1330 // Revision 1.2 2005/12/27 19:14:36 grimm
1331 // - Redesign of Doxygen header containing CVS info like revision and date
1332 // - Added CVS revision log at the end of file
1333 //
1334 //
void SetOctantCutOut_Trap_FullLengthFront_Inner(G4double)
void SetOctantCutOut_Trap_FullLengthFront_Outer(G4double)
G4LogicalVolume * ShieldingWallHousing_Logical
G4VisAttributes * BeamRightSideWall_VisAtt
std::vector< G4SubtractionSolid * > MyShieldingWallHousing_Solid
QweakSimMaterial * pMaterial
G4VisAttributes * ShieldingWallHousing_VisAtt
G4LogicalVolume * BackWall_Logical
void ConstructTopWall(G4VPhysicalVolume *MotherVolume)
G4ThreeVector positionShieldingWallHousing
static QweakSimMaterial * GetInstance()
G4double ShieldingWallHousing_UpStreamWall_ZPosition
void ConstructBackWall(G4VPhysicalVolume *MotherVolume)
G4double OctantCutOut_Trap_FullLengthFront_Outer
G4ThreeVector positionBeamRightSideWall
G4VPhysicalVolume * BackWall_Physical
QweakSimShieldingWallMessenger * ShieldingWallMessenger
G4VPhysicalVolume * FrontWall_Physical
G4SubtractionSolid * MyFrontWall_Solid
void SetOctantCutOut_Trap_FullHeightBack(G4double)
static const G4bool pSurfChk
void SetOctantCutOut_Trap_FullHeightFront(G4double)
void ConstructFrontWall(G4VPhysicalVolume *MotherVolume)
G4VPhysicalVolume * BeamRightSideWall_Physical
G4double OctantCutOut_Trap_FullLengthFront_Inner
void SetOctantCutOut_Trap_FullLengthBack_Inner(G4double)
void SetCollimatorWallMaterial(G4String)
G4Material * ShieldingWallHousing_Material
G4SubtractionSolid * MyBackWall_Solid
void SetCollimatorWall_FullLengthInZ(G4double)
static const G4double inch
void SetCollimatorWall_CenterPositionInZ(G4double)
G4VisAttributes * BeamLeftSideWall_VisAtt
void ConstructBeamRightSideWall(G4VPhysicalVolume *MotherVolume)
G4LogicalVolume * BeamRightSideWall_Logical
G4VisAttributes * TopWall_VisAtt
G4ThreeVector positionBeamLeftSideWall
G4Material * GetMaterial(G4String material)
G4VisAttributes * BackWall_VisAtt
void ConstructShieldingWallHousing_UsingTrapezoids(G4VPhysicalVolume *)
void SetOctantCutOut_Trap_FullLengthBack_Outer(G4double)
void SetCollimatorWall_FullLengthInX(G4double)
void SetOctantCutOut_Trap_AzimuthalAngle(G4double)
G4VPhysicalVolume * ShieldingWallHousing_Physical
void ConstructBeamLeftSideWall(G4VPhysicalVolume *MotherVolume)
G4VPhysicalVolume * TopWall_Physical
void SetOctantCutOut_Trap_RadialDistance(G4double)
G4LogicalVolume * BeamLeftSideWall_Logical
Scans the input file for /ShieldingWall/xyz commands.
G4LogicalVolume * TopWall_Logical
G4LogicalVolume * FrontWall_Logical
G4VisAttributes * FrontWall_VisAtt
void ConstructShieldingWallHousing_UsingCones(G4VPhysicalVolume *)
G4VPhysicalVolume * BeamLeftSideWall_Physical
void SetOctantCutOut_Trap_PolarAngle(G4double)
void SetCollimatorWall_FullLengthInY(G4double)