QwGeant4
QweakSimShieldingWall.hh
Go to the documentation of this file.
1 
2 //=============================================================================
3 //
4 // ---------------------------
5 // | Doxygen File Information |
6 // ---------------------------
7 /**
8 
9  \file QweakSimShieldingWall.hh
10  $Revision: 1.4 $
11  $Date: 2006/04/26 20:02:17 $
12  \author Klaus Hans Grimm
13 
14 */
15 //=============================================================================
16 //
17 //=============================================================================
18 //
19 // ---------------------------
20 // | Doxygen Class Information |
21 // ---------------------------
22 /**
23  \class QweakSimShieldingWall
24 
25  \brief Defines the Shielding Wall with trapezoid cut outs
26  (located after Main Magnet and before Region 3 VDCs)
27 
28  Placeholder for a long explaination
29 
30  */
31 //=============================================================================
32 
33 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
34 #ifndef QweakSimShieldingWall_h
35 #define QweakSimShieldingWall_h 1
36 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
37 
38 // system includes
39 #include <vector>
40 
41 // geant4 includes
42 #include "G4ThreeVector.hh"
43 
44 // geant4 classes
45 class G4Cons;
46 class G4Trap;
47 class G4Material;
48 class G4VisAttributes;
49 class G4LogicalVolume;
50 class G4VPhysicalVolume;
51 class G4SubtractionSolid;
52 
53 // user classes
54 class QweakSimMaterial;
56 
57 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
58 
59 //class QweakSimShieldingWall: public QweakSimVGeometryComponent
60 //class QweakSimShieldingWall: public G4VUserDetectorConstruction
62 {
63 public:
66 
67  void ConstructShieldingWallHousing_UsingTrapezoids(G4VPhysicalVolume*);
68  void ConstructShieldingWallHousing_UsingCones(G4VPhysicalVolume*);
69 
70  void DestroyComponent();
72  void SetCollimatorWallMaterial(G4String);
73 
76 
77  void SetOctantCutOut_Trap_PolarAngle(G4double);
79 
83 
87 
95 
96  void SetCollimatorWall_FullLengthInX(G4double);
97  void SetCollimatorWall_FullLengthInY(G4double);
98  void SetCollimatorWall_FullLengthInZ(G4double);
99 
102 
103 
104  //---------------------------------------------------------------
105  void ConstructFrontWall(G4VPhysicalVolume* MotherVolume);
106  void ConstructBackWall(G4VPhysicalVolume* MotherVolume);
107  void ConstructBeamLeftSideWall(G4VPhysicalVolume* MotherVolume);
108  void ConstructBeamRightSideWall(G4VPhysicalVolume* MotherVolume);
109  void ConstructTopWall(G4VPhysicalVolume* MotherVolume);
110  //-----
111  void ShowCollimatorWall();
112  void HideCollimatorWall();
113  //-----
114  void ShowFrontWall();
115  void HideFrontWall();
116  //-----
117  void ShowBackWall();
118  void HideBackWall();
119  //-----
120  void ShowBeamLeftSideWall();
121  void HideBeamLeftSideWall();
122  //-----
123  void ShowBeamRightSideWall();
124  void HideBeamRightSideWall();
125  //-----
126  void ShowTopWall();
127  void HideTopWall();
128  //---------------------------------------------------------------
129 
130 private:
131 
133 
135 
136  G4LogicalVolume* ShieldingWallHousing_Logical;
137  G4VPhysicalVolume* ShieldingWallHousing_Physical;
139 
143 
146 
150 
154 
158 
165 
166  // needed for octant cuts in the shielding wall
167  std::vector< G4SubtractionSolid* > MyShieldingWallHousing_Solid;
168 
169  // std::vector< G4ThreeVector > OctantTranslationVector;
170  // std::vector< G4RotationMatrix > OctantRotationMatrix;
171  // std::vector< G4Transform3D > OctantTransform3D;
172 
175 
177  G4VisAttributes* ShieldingWallHousing_VisAtt;
178 
179  //--------------------
180  // Hut area related
181  //--------------------
182  G4double InnerHut_FullLength_X; // horizontally
183  G4double InnerHut_FullLength_Z; // along beam
184 
185  //--------------------
186  // Front Wall related
187  //--------------------
188  G4LogicalVolume* FrontWall_Logical;
189  G4VPhysicalVolume* FrontWall_Physical;
190  G4Material* FrontWall_Material;
191 
195 
199 
200  G4SubtractionSolid* MyFrontWall_Solid;
201 
205 
206  G4ThreeVector positionFrontWall;
207  G4VisAttributes* FrontWall_VisAtt;
208 
209  //--------------------
210  // Back Wall related
211  //--------------------
212  G4LogicalVolume* BackWall_Logical;
213  G4VPhysicalVolume* BackWall_Physical;
214  G4Material* BackWall_Material;
215 
219 
223 
224  G4SubtractionSolid* MyBackWall_Solid;
225 
229 
230  G4ThreeVector positionBackWall;
231  G4VisAttributes* BackWall_VisAtt;
232 
233  //----------------------------
234  // Beam Left Side Wall related
235  //----------------------------
236  G4LogicalVolume* BeamLeftSideWall_Logical;
237  G4VPhysicalVolume* BeamLeftSideWall_Physical;
239 
243 
246 
248  G4VisAttributes* BeamLeftSideWall_VisAtt;
249 
250  //-----------------------------
251  // Beam Right Side Wall related
252  //-----------------------------
253  G4LogicalVolume* BeamRightSideWall_Logical;
254  G4VPhysicalVolume* BeamRightSideWall_Physical;
256 
260 
264 
267 
269  G4VisAttributes* BeamRightSideWall_VisAtt;
270 
271  //-----------------------------
272  // Top Wall related
273  //-----------------------------
274  //
275  G4LogicalVolume* TopWall_Logical;
276  G4VPhysicalVolume* TopWall_Physical;
277  G4Material* TopWall_Material;
278 
282 
285 
286  G4ThreeVector positionTopWall;
287  G4VisAttributes* TopWall_VisAtt;
288 
289 };
290 
291 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
292 
293 #endif
294 
295 
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
G4double ShieldingWallHousing_UpStreamWall_ZPosition
Defines the Shielding Wall with trapezoid cut outs (located after Main Magnet and before Region 3 VDC...
void SetOctantCutOut_Cone_FrontInnerDiameter(G4double fid)
G4double BeamRightSideWallBeamCutout_FullLength_X
void ConstructBackWall(G4VPhysicalVolume *MotherVolume)
void SetOctantCutOut_Cone_BackOuterDiameter(G4double bod)
G4double OctantCutOut_Trap_FullLengthFront_Outer
G4ThreeVector positionBeamRightSideWall
G4VPhysicalVolume * BackWall_Physical
G4VPhysicalVolume * getShieldingWallHousingPhysicalVolume()
QweakSimShieldingWallMessenger * ShieldingWallMessenger
G4VPhysicalVolume * FrontWall_Physical
void SetOctantCutOut_Cone_FrontOuterDiameter(G4double fod)
G4SubtractionSolid * MyFrontWall_Solid
void SetOctantCutOut_Trap_FullHeightBack(G4double)
G4double BeamRightSideWallBeamCutout_FullLength_Z
void SetOctantCutOut_Cone_BackInnerDiameter(G4double bid)
void SetOctantCutOut_Cone_DeltaPhiAngle(G4double dpa)
void SetOctantCutOut_Trap_FullHeightFront(G4double)
void ConstructFrontWall(G4VPhysicalVolume *MotherVolume)
G4VPhysicalVolume * BeamRightSideWall_Physical
Definition of elements and materials.
G4double OctantCutOut_Trap_FullLengthFront_Inner
void SetOctantCutOut_Trap_FullLengthBack_Inner(G4double)
void SetCollimatorWallMaterial(G4String)
G4Material * ShieldingWallHousing_Material
G4SubtractionSolid * MyBackWall_Solid
void SetCollimatorWall_FullLengthInZ(G4double)
void SetOctantCutOut_Cone_StartingPhiAngle(G4double spa)
void SetCollimatorWall_CenterPositionInZ(G4double)
G4VisAttributes * BeamLeftSideWall_VisAtt
void ConstructBeamRightSideWall(G4VPhysicalVolume *MotherVolume)
G4LogicalVolume * BeamRightSideWall_Logical
G4VisAttributes * TopWall_VisAtt
G4ThreeVector positionBeamLeftSideWall
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)
G4LogicalVolume * getShieldingWallHousingLogicalVolume()
G4VPhysicalVolume * TopWall_Physical
void SetOctantCutOut_Trap_RadialDistance(G4double)
G4LogicalVolume * BeamLeftSideWall_Logical
G4double BeamRightSideWallBeamCutout_FullLength_Y
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)