QwGeant4
QweakSimVDC.hh
Go to the documentation of this file.
1 //=============================================================================
2 //
3 // ---------------------------
4 // | Doxygen File Information |
5 // ---------------------------
6 /**
7 
8  \file QweakSimVDC.hh
9  $Revision: 1.5 $
10  $Date: 2006/05/05 21:41:14 $
11  \author Klaus Hans Grimm
12 
13 */
14 //=============================================================================
15 //
16 //=============================================================================
17 //
18 // ---------------------------
19 // | Doxygen Class Information |
20 // ---------------------------
21 /**
22  \class QweakSimVDC
23 
24  \brief Region 3 Vertical Drift Chamber
25 
26  Placeholder for a long explaination
27 
28  */
29 //=============================================================================
30 //
31 //=============================================================================
32 // -----------------------
33 // | CVS File Information |
34 // -----------------------
35 //
36 // Last Update: $Author: grimm $
37 // Update Date: $Date: 2006/05/05 21:41:14 $
38 // CVS/RCS Revision: $Revision: 1.5 $
39 // Status: $State: Exp $
40 //
41 // ===================================
42 // CVS Revision Log at end of file !!
43 // ===================================
44 //
45 //=============================================================================
46 
47 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
48 #ifndef QweakSimVDC_h
49 #define QweakSimVDC_h
50 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
51 
52 // user includes
53 #include "QweakSimSolids.hh"
55 #include <TString.h>
56 
57 // user classes
59 class QweakSimMaterial;
60 class QweakSimVDCRotator;
62 
63 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
64 
65 //class QweakSimVDC: public QweakSimVGeometryComponent
66 //class QweakSimVDC: public G4VUserDetectorConstruction
68 {
69 public:
70  QweakSimVDC();
71  ~QweakSimVDC();
72 
73  void ConstructComponent(G4VPhysicalVolume*);
74  void DestroyComponent();
75 
76  //=============
77  // Set function
78  //=============
79 
80  void SetVDC_MasterContainerMaterial(G4String);
81  void SetVDC_SubContainerMaterial(G4String);
82  void SetVDC_FoilMaterial(G4String);
83  void SetVDC_WirePlaneMaterial(G4String);
84  void SetVDC_G10FrameMaterial(G4String);
85  void SetVDC_AluFrameMaterial(G4String);
86 
87 
88  void SetVDC_DriftCellMaterial(G4String);
89  void SetVDC_DriftCellFrontWireAngle(G4double frontWireAngle);
90  void SetVDC_DriftCellBackWireAngle(G4double backWireAngle);
91  void SetVDC_DriftCellFullHeight(G4double fullHeight);
92  void SetVDC_DriftCellFullWidthOnFrame(G4double fullWidthOnFrame);
93  void SetVDC_DriftCellFullThickness(G4double fullThickness);
94  void SetVDC_DriftCellNumberPerPlane(G4int numberPerPlane);
96 
97  void SetFrontVDC_CenterPositionInX(G4double xPos, G4int pkg);
98  void SetFrontVDC_CenterPositionInY(G4double yPos, G4int pkg);
99  void SetFrontVDC_CenterPositionInZ(G4double zPos, G4int pkg);
100 
101  void SetVDC_RotationAngleInPhi(G4double vdc_phiangle, G4int pkg);
102  void SetVDC_MeanTrackAngleInTheta(G4double angle) { MeanTrackAngle = angle; }
103 
104 
105  //=============
106  // Get function
107  //=============
108 
109  G4LogicalVolume* getVDC_LogicalVolume() {return VDC_MasterContainer_Logical;}
110 
113 
117 
120 
123 
126 
129 
132 
137 
138  void SetVDCRotator(QweakSimVDCRotator* theRotator){myRotator = theRotator;};
140 
141  void SetTriggerScintillator(QweakSimTriggerScintillator* theTriggerScintillator){myTriggerScintillator = theTriggerScintillator;};
143 
144 private:
145 
148  void SetVDC_BackVDC_CenterPosition(G4int pkg);
150 
153 
154  std::vector<G4RotationMatrix*> Rotation_VDC_MasterContainer; // for Phi angle orientation
155 
156  // mean bending angle after MainMagnet
157  G4double MeanTrackAngle; // ~ 20.8*degree
159 
160 
161  std::vector< QweakSimVDCMessenger* > VDC_Messenger; // pointer to the Messenger
162 
164 
165  G4VPhysicalVolume* theMotherPV; //pointer to MotherVolume
166 
168  std::vector< G4VPhysicalVolume* > VDC_DriftCellMasterContainer_Physical;
169 
172 
175 
177  G4LogicalVolume* VDC_DriftCellFront_Logical;
178  G4VPhysicalVolume* VDC_DriftCellFront_Physical;
179 
181  G4LogicalVolume* VDC_DriftCellBack_Logical;
182  G4VPhysicalVolume* VDC_DriftCellBack_Physical;
183 
184 
185 
193 
199 
200  std::vector<G4double> VDC_CenterFront_XPos;
201  std::vector<G4double> VDC_CenterFront_YPos;
202  std::vector<G4double> VDC_CenterFront_ZPos;
203 
204  std::vector<G4double> VDC_CenterBack_XPos;
205  std::vector<G4double> VDC_CenterBack_YPos;
206  std::vector<G4double> VDC_CenterBack_ZPos;
207 
209 
210  std::vector<G4double> VDC_DriftCell_MasterContainer_XPos;
211  std::vector<G4double> VDC_DriftCell_MasterContainer_YPos;
212  std::vector<G4double> VDC_DriftCell_MasterContainer_ZPos;
213 
214 
216  G4double DriftCell_FullWidthOnFrame; // distance between wires projected on frame
221 
225 
229  G4VisAttributes* VDC_DriftCellFront_VisAtt;
230  G4VisAttributes* VDC_DriftCellBack_VisAtt;
231 
232 
233  // QweakSimVDCSD* driftChamberSD; // pointer to the sensitive DC
234  G4VSensitiveDetector* driftChamberSD;
235  G4VSensitiveDetector* driftCellFrontSD;
236  G4VSensitiveDetector* driftCellBackSD;
237 
238 
239  // new VDC setup
240 
243 
244 
245 
246  G4LogicalVolume* VDC_MasterContainer_Logical;
247  std::vector< G4VPhysicalVolume* > VDC_MasterContainerFront_Physical;
248  std::vector< G4VPhysicalVolume* > VDC_MasterContainerBack_Physical;
249 
250  G4LogicalVolume* VDC_SubContainer_Logical;
251  G4VPhysicalVolume* VDC_SubContainer_Physical;
252 
253  G4SubtractionSolid* VDC_G10Frame_Solid;
254  G4LogicalVolume* VDC_G10Frame_Logical;
255  G4VPhysicalVolume* VDC_G10Frame_Physical;
256 
257  G4SubtractionSolid* VDC_AluFrame_Solid;
258  G4LogicalVolume* VDC_AluFrame_Logical;
259  G4VPhysicalVolume* VDC_AluTopFrame_Physical;
260  G4VPhysicalVolume* VDC_AluBottomFrame_Physical;
261 
262 
263  G4LogicalVolume* VDC_MylarFoil_Logical;
264  G4LogicalVolume* VDC_AluLayer_Logical;
265 
266  G4LogicalVolume* VDC_WirePlane_Logical;
267  G4VPhysicalVolume* VDC_UPlane_Physical;
268  G4VPhysicalVolume* VDC_VPlane_Physical;
269 
270 
274 
280 
281  G4VisAttributes* VDC_MasterContainer_VisAtt;
282  G4VisAttributes* VDC_SubContainer_VisAtt;
283  G4VisAttributes* VDC_G10Frame_VisAtt;
284  G4VisAttributes* VDC_AluFrame_VisAtt;
285 
287  G4VisAttributes* VDC_AM_FoilContainer_VisAtt;
288  G4VisAttributes* VDC_MA_FoilContainer_VisAtt;
289  G4VisAttributes* VDC_AluLayer_VisAtt;
290  G4VisAttributes* VDC_MylarFoil_VisAtt;
291  G4VisAttributes* VDC_WirePlane_VisAtt;
292 
293 
294  // cuts for G4Region and PAIModel
295  static const G4bool fEnablePAI = false;
296  G4double fGammaCut;
297  G4double fElectronCut;
298  G4double fPositronCut;
299  G4Region* fRegGasDet;
300 
301 };
302 
303 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
304 
305 #endif
306 
307 //=======================================================================================
308 // -----------------------
309 // | CVS File Information |
310 // -----------------------
311 //
312 // $Revisions$
313 // $Log: QweakSimVDC.hh,v $
314 // Revision 1.5 2006/05/05 21:41:14 grimm
315 // cosmetic changes
316 //
317 // Revision 1.4 2006/04/26 20:04:59 grimm
318 // Added some variables for an upcoming implementation of the PAI model
319 //
320 // Revision 1.3 2006/01/06 21:36:15 grimm
321 // Major changes: rewrote and updated the VDC geometry code
322 // Added gas and HV foils with aluminum coatings (single or double sided).
323 // Added alu top+bottom support frames.
324 //
325 // Revision 1.2 2005/12/27 19:31:51 grimm
326 // - Redesign of Doxygen header containing CVS info like revision and date
327 // - Added CVS revision log at the end of file
328 //
329 //
330 
331 
G4VPhysicalVolume * theMotherPV
Definition: QweakSimVDC.hh:165
G4VisAttributes * VDC_DriftCellBackContainer_VisAtt
Definition: QweakSimVDC.hh:228
G4double G10Frame_Thickness
Definition: QweakSimVDC.hh:186
G4double G10Frame_InnerLength
Definition: QweakSimVDC.hh:189
void PlaceVDC_DriftCellMasterContainers()
std::vector< G4double > VDC_CenterFront_YPos
Definition: QweakSimVDC.hh:201
void SetVDC_MeanTrackAngleInTheta(G4double angle)
Definition: QweakSimVDC.hh:102
void SetVDC_DriftCellGeometryUpdate()
G4double DriftCell_MasterContainer_FullHeight
Definition: QweakSimVDC.hh:223
void SetVDC_SubContainerMaterial(G4String)
G4VisAttributes * VDC_G10Frame_VisAtt
Definition: QweakSimVDC.hh:283
void SetVDC_DriftCellMaterial(G4String)
G4LogicalVolume * VDC_G10Frame_Logical
Definition: QweakSimVDC.hh:254
G4VisAttributes * VDC_SubContainer_VisAtt
Definition: QweakSimVDC.hh:282
Definition of the Trigger Scintillator detector.
G4VPhysicalVolume * VDC_UPlane_Physical
Definition: QweakSimVDC.hh:267
G4double DriftCell_MasterContainer_FullThickness
Definition: QweakSimVDC.hh:224
QweakSimVDCRotator * myRotator
Definition: QweakSimVDC.hh:142
G4int DriftCell_NumberPerPlane
Definition: QweakSimVDC.hh:215
G4double AluFrame_OuterLength
Definition: QweakSimVDC.hh:195
G4VisAttributes * VDC_AM_FoilContainer_VisAtt
Definition: QweakSimVDC.hh:287
void SetTriggerScintillator(QweakSimTriggerScintillator *theTriggerScintillator)
Definition: QweakSimVDC.hh:141
G4LogicalVolume * getVDC_WirePlane_LogicalVolume()
Definition: QweakSimVDC.hh:114
Region 3 Vertical Drift Chamber.
Definition: QweakSimVDC.hh:67
std::vector< G4double > VDC_CenterBack_XPos
Definition: QweakSimVDC.hh:204
G4VPhysicalVolume * VDC_DriftCellFront_Physical
Definition: QweakSimVDC.hh:178
G4VPhysicalVolume * VDC_SubContainer_Physical
Definition: QweakSimVDC.hh:251
G4LogicalVolume * VDC_AluFrame_Logical
Definition: QweakSimVDC.hh:258
void SetVDCRotator(QweakSimVDCRotator *theRotator)
Definition: QweakSimVDC.hh:138
void SetVDC_FoilMaterial(G4String)
G4SubtractionSolid * VDC_G10Frame_Solid
Definition: QweakSimVDC.hh:253
G4double GetDCVPlaneWireAngle()
Definition: QweakSimVDC.hh:136
G4LogicalVolume * VDC_DriftCellFront_Logical
Definition: QweakSimVDC.hh:177
G4LogicalVolume * VDC_WirePlane_Logical
Definition: QweakSimVDC.hh:266
QweakSimVDCRotator * GetVDCRotator()
Definition: QweakSimVDC.hh:139
void SetVDC_BackVDC_CenterPosition(G4int pkg)
G4SubtractionSolid * VDC_AluFrame_Solid
Definition: QweakSimVDC.hh:257
std::vector< G4double > VDC_CenterBack_YPos
Definition: QweakSimVDC.hh:205
std::vector< G4RotationMatrix * > Rotation_VDC_MasterContainer
Definition: QweakSimVDC.hh:154
G4LogicalVolume * getVDC_DriftCellFrontContainer_LogicalVolume()
Definition: QweakSimVDC.hh:121
G4VPhysicalVolume * getVDC_DriftCellFrontContainer_PhysicalVolume()
Definition: QweakSimVDC.hh:122
G4Region * fRegGasDet
Definition: QweakSimVDC.hh:299
QweakSimTriggerScintillator * GetTriggerScintillator()
Definition: QweakSimVDC.hh:142
Definition of the Support/Shielding of the Collimators.
G4LogicalVolume * VDC_AluLayer_Logical
Definition: QweakSimVDC.hh:264
std::vector< QweakSimVDCMessenger * > VDC_Messenger
Definition: QweakSimVDC.hh:161
G4double fGammaCut
Definition: QweakSimVDC.hh:296
void SetVDC_DriftCellFullWidthOnFrame(G4double fullWidthOnFrame)
G4VPhysicalVolume * getVDC_DriftCellFront_PhysicalVolume()
Definition: QweakSimVDC.hh:128
G4LogicalVolume * VDC_DriftCellFrontContainer_Logical
Definition: QweakSimVDC.hh:170
void SetVDC_AluFrameMaterial(G4String)
G4VPhysicalVolume * getVDC_VWirePlane_PhysicalVolume()
Definition: QweakSimVDC.hh:116
G4double AluFrame_Thickness
Definition: QweakSimVDC.hh:194
static const G4bool fEnablePAI
Definition: QweakSimVDC.hh:295
G4VisAttributes * VDC_MA_FoilContainer_VisAtt
Definition: QweakSimVDC.hh:288
G4LogicalVolume * VDC_SubContainer_Logical
Definition: QweakSimVDC.hh:250
G4LogicalVolume * VDC_DriftCellMasterContainer_Logical
Definition: QweakSimVDC.hh:167
G4VSensitiveDetector * driftChamberSD
Definition: QweakSimVDC.hh:234
G4double DriftCell_WireAngleBack
Definition: QweakSimVDC.hh:220
void SetFrontVDC_CenterPositionInX(G4double xPos, G4int pkg)
Definition of elements and materials.
QweakSimMaterial * pMaterial
Definition: QweakSimVDC.hh:163
void SetVDC_DriftCellFrontWireAngle(G4double frontWireAngle)
G4VPhysicalVolume * VDC_DriftCellFrontContainer_Physical
Definition: QweakSimVDC.hh:171
std::vector< G4double > VDC_DriftCell_MasterContainer_ZPos
Definition: QweakSimVDC.hh:212
void SetVDC_MasterContainerMaterial(G4String)
G4double AluFrame_OuterWidth
Definition: QweakSimVDC.hh:196
void PlaceVDC_MasterContainers()
G4VPhysicalVolume * getVDC_DriftCellMasterContainer_PhysicalVolume()
Definition: QweakSimVDC.hh:119
void SetVDC_G10FrameMaterial(G4String)
G4double DriftCell_WireAngleFront
Definition: QweakSimVDC.hh:219
void SetFrontVDC_CenterPositionInY(G4double yPos, G4int pkg)
void SetVDC_DriftCellNumberPerPlane(G4int numberPerPlane)
std::vector< G4VPhysicalVolume * > VDC_DriftCellMasterContainer_Physical
Definition: QweakSimVDC.hh:168
G4double MeanTrackAngle
Definition: QweakSimVDC.hh:157
G4LogicalVolume * VDC_AM_FoilContainer_Logical
Definition: QweakSimVDC.hh:272
G4VPhysicalVolume * getVDC_UWirePlane_PhysicalVolume()
Definition: QweakSimVDC.hh:115
G4VisAttributes * VDC_DriftCellBack_VisAtt
Definition: QweakSimVDC.hh:230
G4double DriftCell_FullWidthOnFrame
Definition: QweakSimVDC.hh:216
G4double GetDCWidthOnFrame()
Definition: QweakSimVDC.hh:133
G4LogicalVolume * VDC_MA_FoilContainer_Logical
Definition: QweakSimVDC.hh:273
G4VPhysicalVolume * getVDCBack_PhysicalVolume()
Definition: QweakSimVDC.hh:112
void SetVDC_WirePlaneMaterial(G4String)
G4LogicalVolume * VDC_DriftCellBackContainer_Logical
Definition: QweakSimVDC.hh:173
void SetVDC_DriftCellBackWireAngle(G4double backWireAngle)
std::vector< G4double > VDC_DriftCell_MasterContainer_YPos
Definition: QweakSimVDC.hh:211
G4VisAttributes * VDC_DriftCellFrontContainer_VisAtt
Definition: QweakSimVDC.hh:227
G4LogicalVolume * VDC_DriftCellBack_Logical
Definition: QweakSimVDC.hh:181
G4LogicalVolume * VDC_MasterContainer_Logical
Definition: QweakSimVDC.hh:246
G4VPhysicalVolume * VDC_VPlane_Physical
Definition: QweakSimVDC.hh:268
G4double AluFrame_InnerLength
Definition: QweakSimVDC.hh:197
G4double GetDCFullThickness()
Definition: QweakSimVDC.hh:134
void SetVDC_DriftCell_MasterContainer_CenterPosition(G4int pkg)
G4double DriftCell_FullThickness
Definition: QweakSimVDC.hh:218
G4double G10Frame_BorderWidthInY
Definition: QweakSimVDC.hh:192
G4VPhysicalVolume * VDC_TopGasFoilContainer_Physical
Definition: QweakSimVDC.hh:275
G4VPhysicalVolume * VDC_AluBottomFrame_Physical
Definition: QweakSimVDC.hh:260
G4VPhysicalVolume * VDC_TopHVFoilContainer_Physical
Definition: QweakSimVDC.hh:276
void ConstructComponent(G4VPhysicalVolume *)
Definition: QweakSimVDC.cc:218
G4double VDC_RotationAngleInPhi[2]
Definition: QweakSimVDC.hh:158
G4double G10Frame_InnerWidth
Definition: QweakSimVDC.hh:190
void SetFrontVDC_CenterPositionInZ(G4double zPos, G4int pkg)
G4VSensitiveDetector * driftCellFrontSD
Definition: QweakSimVDC.hh:235
G4VPhysicalVolume * getVDC_DriftCellBackContainer_PhysicalVolume()
Definition: QweakSimVDC.hh:125
G4LogicalVolume * getVDC_LogicalVolume()
Definition: QweakSimVDC.hh:109
QweakSimTriggerScintillator * myTriggerScintillator
Definition: QweakSimVDC.hh:147
Scans the input file for /VDC/xyz commands.
void DestroyComponent()
G4VPhysicalVolume * VDC_DriftCellBackContainer_Physical
Definition: QweakSimVDC.hh:174
G4double VDC_FrontBackDistance
Definition: QweakSimVDC.hh:208
G4LogicalVolume * VDC_MylarFoil_Logical
Definition: QweakSimVDC.hh:263
G4VPhysicalVolume * getVDCFront_PhysicalVolume()
Definition: QweakSimVDC.hh:111
G4double fElectronCut
Definition: QweakSimVDC.hh:297
G4VisAttributes * VDC_DriftCellFront_VisAtt
Definition: QweakSimVDC.hh:229
std::vector< G4VPhysicalVolume * > VDC_MasterContainerFront_Physical
Definition: QweakSimVDC.hh:247
std::vector< G4double > VDC_CenterFront_ZPos
Definition: QweakSimVDC.hh:202
G4LogicalVolume * VDC_AMA_FoilContainer_Logical
Definition: QweakSimVDC.hh:271
void SetVDC_DriftCellFullThickness(G4double fullThickness)
G4VSensitiveDetector * driftCellBackSD
Definition: QweakSimVDC.hh:236
G4double G10Frame_OuterWidth
Definition: QweakSimVDC.hh:188
G4VPhysicalVolume * VDC_AluTopFrame_Physical
Definition: QweakSimVDC.hh:259
G4double VDC_MylarFoil_Thickness
Definition: QweakSimVDC.hh:242
G4LogicalVolume * getVDC_DriftCellBackContainer_LogicalVolume()
Definition: QweakSimVDC.hh:124
G4VisAttributes * VDC_MasterContainer_VisAtt
Definition: QweakSimVDC.hh:281
G4VisAttributes * VDC_DriftCellMasterContainer_VisAtt
Definition: QweakSimVDC.hh:226
std::vector< G4double > VDC_DriftCell_MasterContainer_XPos
Definition: QweakSimVDC.hh:210
G4VisAttributes * VDC_MylarFoil_VisAtt
Definition: QweakSimVDC.hh:290
std::vector< G4double > VDC_CenterFront_XPos
Definition: QweakSimVDC.hh:200
G4VPhysicalVolume * getVDC_DriftCellBack_PhysicalVolume()
Definition: QweakSimVDC.hh:131
G4Para * VDC_DriftCellBack_Solid
Definition: QweakSimVDC.hh:180
G4double G10Frame_OuterLength
Definition: QweakSimVDC.hh:187
std::vector< G4VPhysicalVolume * > VDC_MasterContainerBack_Physical
Definition: QweakSimVDC.hh:248
G4VPhysicalVolume * VDC_G10Frame_Physical
Definition: QweakSimVDC.hh:255
G4VisAttributes * VDC_AMA_FoilContainer_VisAtt
Definition: QweakSimVDC.hh:286
G4VPhysicalVolume * VDC_BottomGasFoilContainer_Physical
Definition: QweakSimVDC.hh:279
void SetVDC_DriftCellFullHeight(G4double fullHeight)
G4VisAttributes * VDC_WirePlane_VisAtt
Definition: QweakSimVDC.hh:291
G4VPhysicalVolume * VDC_BottomHVFoilContainer_Physical
Definition: QweakSimVDC.hh:278
G4VPhysicalVolume * VDC_DriftCellBack_Physical
Definition: QweakSimVDC.hh:182
G4double fPositronCut
Definition: QweakSimVDC.hh:298
G4double DriftCell_FullHeight
Definition: QweakSimVDC.hh:217
void SetVDC_RotationAngleInPhi(G4double vdc_phiangle, G4int pkg)
G4VisAttributes * VDC_AluLayer_VisAtt
Definition: QweakSimVDC.hh:289
G4VPhysicalVolume * VDC_CenterHVFoilContainer_Physical
Definition: QweakSimVDC.hh:277
G4Para * VDC_DriftCellFront_Solid
Definition: QweakSimVDC.hh:176
G4double GetDCUPlaneWireAngle()
Definition: QweakSimVDC.hh:135
G4double AluFrame_InnerWidth
Definition: QweakSimVDC.hh:198
G4double G10Frame_BorderWidthInX
Definition: QweakSimVDC.hh:191
G4LogicalVolume * getVDC_DriftCellFront_LogicalVolume()
Definition: QweakSimVDC.hh:127
std::vector< G4double > VDC_CenterBack_ZPos
Definition: QweakSimVDC.hh:206
G4LogicalVolume * getVDC_DriftCellBack_LogicalVolume()
Definition: QweakSimVDC.hh:130
G4VisAttributes * VDC_AluFrame_VisAtt
Definition: QweakSimVDC.hh:284
G4double DriftCell_MasterContainer_FullLength
Definition: QweakSimVDC.hh:222
G4double VDC_AluLayer_Thickness
Definition: QweakSimVDC.hh:241
G4LogicalVolume * getVDC_DriftCellMasterContainer_LogicalVolume()
Definition: QweakSimVDC.hh:118