QwGeant4
QweakSimHDC.hh
Go to the documentation of this file.
1 //=============================================================================
2 //
3 // ---------------------------
4 // | Doxygen File Information |
5 // ---------------------------
6 /**
7 
8  \file QweakSimHDC.hh
9  $Revision: 1.2 $
10  $Date: 2005/12/27 19:24:35 $
11  \author Klaus Hans Grimm
12 
13 */
14 //=============================================================================
15 //
16 //=============================================================================
17 //
18 // ---------------------------
19 // | Doxygen Class Information |
20 // ---------------------------
21 /**
22  \class QweakSimHDC
23 
24  \brief Region 2 Horizontal 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: 2005/12/27 19:24:35 $
38 // CVS/RCS Revision: $Revision: 1.2 $
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 QweakSimHDC_h
49 #define QweakSimHDC_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 
61 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
62 
63 //class QweakSimHDC: public QweakSimVGeometryComponent
64 //class QweakSimHDC: public G4VUserDetectorConstruction
66 {
67 public:
68  QweakSimHDC();
69  ~QweakSimHDC();
70 
71  void ConstructComponent(G4VPhysicalVolume*);
72  void DestroyComponent();
73 
74  //=============
75  // Set function
76  //=============
77 
78  void SetHDC_MasterContainerMaterial(G4String);
79  void SetHDC_SubContainerMaterial(G4String);
80  void SetHDC_FrameMaterial(G4String);
81  void SetHDC_FoilMaterial(G4String);
82  void SetHDC_WirePlaneMaterial(G4String);
83 
84  void SetFrontHDC_CenterPositionInX(G4double xPos, G4int pkg);
85  void SetFrontHDC_CenterPositionInY(G4double yPos, G4int pkg);
86  void SetFrontHDC_CenterPositionInZ(G4double zPos, G4int pkg);
87 
88  void SetBackHDC_CenterPositionInX(G4double xPos, G4int pkg);
89  void SetBackHDC_CenterPositionInY(G4double yPos, G4int pkg);
90  void SetBackHDC_CenterPositionInZ(G4double zPos, G4int pkg);
91 
92  void SetHDC_RotationAngleInPhi(G4double HDC_phiangle, G4int pkg);
93 
94 
95  //=============
96  // Get function
97  //=============
98 
99  G4LogicalVolume* getHDC_LogicalVolume() {return HDC_MasterContainer_Logical;}
100 
103 
104  G4LogicalVolume* getHDC_Frame_LogicalVolume() {return HDC_Frame_Logical;}
105  G4VPhysicalVolume* getHDC_Frame_PhysicalVolume() {return HDC_Frame_Physical;}
106 
107 
108  G4LogicalVolume* getHDC_Foil_LogicalVolume() {return HDC_Foil_Logical;}
109  G4VPhysicalVolume* getHDC_Foil_PhysicalVolume() {return HDC_Foil_Physical;}
110 
113 
114 
116 
117 private:
118 
120 
121  // mean bending angle after MainMagnet
122  G4double MeanTrackAngle; // ~ 20.8*degree
123 
125 
126  G4VPhysicalVolume* theMotherPV; //pointer to MotherVolume
127 
128  G4VPhysicalVolume* HDC_PackageContainer_Physical;
129 
130  std::vector<G4RotationMatrix*> Rotation_HDC; // for Phi angle orientation
132 
133  G4LogicalVolume* HDC_MasterContainer_Logical;
134  std::vector<G4VPhysicalVolume*> HDC_MasterContainerFront_Physical;
135  std::vector<G4VPhysicalVolume*> HDC_MasterContainerBack_Physical;
136 
137  G4LogicalVolume* HDC_SubContainer_Logical;
138  G4VPhysicalVolume* HDC_SubContainer_Physical;
139 
140  G4LogicalVolume* HDC_Frame_Logical;
141  G4VPhysicalVolume* HDC_Frame_Physical;
142 
143  G4LogicalVolume* HDC_Foil_Logical;
144  G4VPhysicalVolume* HDC_Foil_Physical;
145 
146  G4LogicalVolume* HDC_WirePlane_Logical;
147  G4VPhysicalVolume* HDC_WirePlane_Physical;
148 
149  std::vector<QweakSimHDCMessenger*> HDC_Messenger; // pointer to the Messenger
150 
158 
160 
166 
168 
169  std::vector<G4double> HDC_CenterFront_XPos;
170  std::vector<G4double> HDC_CenterFront_YPos;
171  std::vector<G4double> HDC_CenterFront_ZPos;
172 
173  std::vector<G4double> HDC_CenterBack_XPos;
174  std::vector<G4double> HDC_CenterBack_YPos;
175  std::vector<G4double> HDC_CenterBack_ZPos;
176 
177 
178  G4VisAttributes* HDC_MasterContainer_VisAtt;
179  G4VisAttributes* HDC_SubContainer_VisAtt;
180  G4VisAttributes* HDC_Frame_VisAtt;
181  G4VisAttributes* HDC_Foil_VisAtt;
182  G4VisAttributes* HDC_WirePlane_VisAtt;
183 
184  // QweakSimHDCSD* driftChamberSD; // pointer to the sensitive DC
185  G4VSensitiveDetector* HdriftChamberSD;
186 
187  G4SubtractionSolid* HDC_Frame_Solid;
188 
189 };
190 
191 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
192 
193 #endif
194 
195 //=======================================================================================
196 // -----------------------
197 // | CVS File Information |
198 // -----------------------
199 //
200 // $Revisions$
201 // $Log: QweakSimHDC.hh,v $
202 // Revision 1.2 2005/12/27 19:24:35 grimm
203 // - Redesign of Doxygen header containing CVS info like revision and date
204 // - Added CVS revision log at the end of file
205 //
206 //
G4double HDCFrame_BorderWidthInY
Definition: QweakSimHDC.hh:157
G4double GetHDC_RotationAngleInPhi()
Definition: QweakSimHDC.hh:115
QweakSimMaterial * pMaterial
Definition: QweakSimHDC.hh:124
G4double HDCFrame_OuterWidth
Definition: QweakSimHDC.hh:153
G4double HDC_CenterPositionInZ
Definition: QweakSimHDC.hh:167
G4double HDCFrame_BorderWidthInX
Definition: QweakSimHDC.hh:156
void DestroyComponent()
Definition: QweakSimHDC.cc:541
G4double AluFrame_Thickness
Definition: QweakSimHDC.hh:161
std::vector< G4VPhysicalVolume * > HDC_MasterContainerBack_Physical
Definition: QweakSimHDC.hh:135
void SetBackHDC_CenterPositionInZ(G4double zPos, G4int pkg)
Definition: QweakSimHDC.cc:617
G4LogicalVolume * HDC_Foil_Logical
Definition: QweakSimHDC.hh:143
void PlaceHDC_MasterContainers()
Definition: QweakSimHDC.cc:648
void SetHDC_RotationAngleInPhi(G4double HDC_phiangle, G4int pkg)
Definition: QweakSimHDC.cc:630
G4double HDCFrame_Thickness
Definition: QweakSimHDC.hh:151
std::vector< G4double > HDC_CenterFront_YPos
Definition: QweakSimHDC.hh:170
G4double AluFrame_OuterLength
Definition: QweakSimHDC.hh:162
G4VPhysicalVolume * HDC_SubContainer_Physical
Definition: QweakSimHDC.hh:138
void SetHDC_SubContainerMaterial(G4String)
Definition: QweakSimHDC.cc:473
void SetFrontHDC_CenterPositionInZ(G4double zPos, G4int pkg)
Definition: QweakSimHDC.cc:574
G4double AluFrame_InnerLength
Definition: QweakSimHDC.hh:164
std::vector< QweakSimHDCMessenger * > HDC_Messenger
Definition: QweakSimHDC.hh:149
G4VPhysicalVolume * theMotherPV
Definition: QweakSimHDC.hh:126
G4LogicalVolume * HDC_SubContainer_Logical
Definition: QweakSimHDC.hh:137
G4double AluFrame_InnerWidth
Definition: QweakSimHDC.hh:165
std::vector< G4VPhysicalVolume * > HDC_MasterContainerFront_Physical
Definition: QweakSimHDC.hh:134
G4LogicalVolume * getHDC_WirePlane_LogicalVolume()
Definition: QweakSimHDC.hh:111
Definition of elements and materials.
G4double HDC_DriftCell_TotalThickness
Definition: QweakSimHDC.hh:159
void SetBackHDC_CenterPositionInY(G4double yPos, G4int pkg)
Definition: QweakSimHDC.cc:603
G4VPhysicalVolume * getHDC_WirePlane_PhysicalVolume()
Definition: QweakSimHDC.hh:112
G4VPhysicalVolume * HDC_Foil_Physical
Definition: QweakSimHDC.hh:144
G4VPhysicalVolume * HDC_WirePlane_Physical
Definition: QweakSimHDC.hh:147
std::vector< G4double > HDC_CenterBack_ZPos
Definition: QweakSimHDC.hh:175
G4double AluFrame_OuterWidth
Definition: QweakSimHDC.hh:163
void SetHDC_MasterContainerMaterial(G4String)
Definition: QweakSimHDC.cc:456
G4VisAttributes * HDC_MasterContainer_VisAtt
Definition: QweakSimHDC.hh:178
G4LogicalVolume * HDC_Frame_Logical
Definition: QweakSimHDC.hh:140
void SetHDC_WirePlaneMaterial(G4String)
Definition: QweakSimHDC.cc:524
G4double MeanTrackAngle
Definition: QweakSimHDC.hh:122
void SetHDC_FrameMaterial(G4String)
Definition: QweakSimHDC.cc:490
G4VisAttributes * HDC_SubContainer_VisAtt
Definition: QweakSimHDC.hh:179
std::vector< G4double > HDC_CenterBack_XPos
Definition: QweakSimHDC.hh:173
std::vector< G4double > HDC_CenterFront_XPos
Definition: QweakSimHDC.hh:169
std::vector< G4double > HDC_CenterFront_ZPos
Definition: QweakSimHDC.hh:171
void SetFrontHDC_CenterPositionInY(G4double yPos, G4int pkg)
Definition: QweakSimHDC.cc:560
G4VPhysicalVolume * HDC_Frame_Physical
Definition: QweakSimHDC.hh:141
G4double HDC_RotationAngleInPhi[2]
Definition: QweakSimHDC.hh:131
G4VSensitiveDetector * HdriftChamberSD
Definition: QweakSimHDC.hh:185
G4VisAttributes * HDC_WirePlane_VisAtt
Definition: QweakSimHDC.hh:182
G4VPhysicalVolume * HDC_PackageContainer_Physical
Definition: QweakSimHDC.hh:128
void ConstructComponent(G4VPhysicalVolume *)
Definition: QweakSimHDC.cc:187
Region 2 Horizontal Drift Chamber.
Definition: QweakSimHDC.hh:65
G4LogicalVolume * HDC_WirePlane_Logical
Definition: QweakSimHDC.hh:146
G4double HDCFrame_InnerLength
Definition: QweakSimHDC.hh:154
G4VPhysicalVolume * getHDC_Frame_PhysicalVolume()
Definition: QweakSimHDC.hh:105
G4VPhysicalVolume * getHDC_Foil_PhysicalVolume()
Definition: QweakSimHDC.hh:109
std::vector< G4RotationMatrix * > Rotation_HDC
Definition: QweakSimHDC.hh:130
Scans the input file for /HDC/xyz commands.
void SetFrontHDC_CenterPositionInX(G4double xPos, G4int pkg)
Definition: QweakSimHDC.cc:546
G4double HDCFrame_InnerWidth
Definition: QweakSimHDC.hh:155
G4VPhysicalVolume * getHDCBack_PhysicalVolume()
Definition: QweakSimHDC.hh:102
G4double HDCFrame_OuterLength
Definition: QweakSimHDC.hh:152
G4VisAttributes * HDC_Foil_VisAtt
Definition: QweakSimHDC.hh:181
G4VisAttributes * HDC_Frame_VisAtt
Definition: QweakSimHDC.hh:180
G4SubtractionSolid * HDC_Frame_Solid
Definition: QweakSimHDC.hh:187
G4LogicalVolume * getHDC_Foil_LogicalVolume()
Definition: QweakSimHDC.hh:108
G4LogicalVolume * getHDC_LogicalVolume()
Definition: QweakSimHDC.hh:99
G4LogicalVolume * getHDC_Frame_LogicalVolume()
Definition: QweakSimHDC.hh:104
G4VPhysicalVolume * getHDCFront_PhysicalVolume()
Definition: QweakSimHDC.hh:101
void SetHDC_FoilMaterial(G4String)
Definition: QweakSimHDC.cc:507
std::vector< G4double > HDC_CenterBack_YPos
Definition: QweakSimHDC.hh:174
G4LogicalVolume * HDC_MasterContainer_Logical
Definition: QweakSimHDC.hh:133
void SetBackHDC_CenterPositionInX(G4double xPos, G4int pkg)
Definition: QweakSimHDC.cc:589