QwGeant4
QweakSimLumiDetector.hh
Go to the documentation of this file.
1 /*
2 
3  \file QweakSimLumiDetector.hh
4  \author Wade Duvall
5 
6 */
7 
8 #ifndef QweakSimLumiDetector_h
9 #define QweakSimLumiDetector_h 1
10 
11 // user includes
12 #include "QweakSimSolids.hh"
13 #include "QweakSimMaterial.hh"
14 
15 // user classes
16 class QweakSimMaterial;
18 
20  private:
23  G4VisAttributes* USLumi_VisAtt;
24 
25  // Lumi positions and rotations
26  G4RotationMatrix* USLumi_Rot;
27  G4RotationMatrix* DSLumi_Rot;
28  G4ThreeVector USLumi_XYZ;
29  G4ThreeVector DSLumi_XYZ;
30 
37 
38  // Define Upsteam and Downstream lumis
39  G4VSolid* USLumi_Solid;
40  G4LogicalVolume* USLumi_Logical;
41  G4VPhysicalVolume* USLumi_Physical;
42  G4VSolid* DSLumi_Solid;
43  G4LogicalVolume* DSLumi_Logical;
44  G4VPhysicalVolume* DSLumi_Physical;
45 
46  /* USLumi geometries */
47  G4double USLumi_Length_X;
48  G4double USLumi_Length_Y;
49  G4double USLumi_Length_Z;
50 
51  // DSLumi geometries
52  G4double DSLumi_Length_X;
53  G4double DSLumi_Length_Y;
54  G4double DSLumi_Length_Z;
55 
56  // Quartz bar for lumis
57  G4Material* QuartzBar;
58 
59  // Sensitive detectors
60  G4VSensitiveDetector* USLumiSD;
61  G4VSensitiveDetector* DSLumiSD;
62 
63  public:
64  // Constructor and destructor
66  virtual ~QweakSimLumiDetector();
67 
68  // fuctions for the messanger class
69  void SetUSLumi_PositionInX(G4double);
70  void SetUSLumi_PositionInY(G4double);
71  void SetUSLumi_PositionInZ(G4double);
72 
73  void SetUSLumi_Material(G4String);
74 
75  void SetUSLumi_Enabled();
76  void SetUSLumi_Disabled();
77 
78  void ConstructComponent(G4VPhysicalVolume*);
79 
80  // For the GDML crap
81  G4VPhysicalVolume* getUSLumiPhysicalVolume() {
82  return USLumi_Physical;
83  }
84  G4VPhysicalVolume* getDSLumiPhysicalVolume() {
85  return DSLumi_Physical;
86  }
87 
88 };
89 
90 #endif
G4VSensitiveDetector * DSLumiSD
G4LogicalVolume * USLumi_Logical
G4VPhysicalVolume * USLumi_Physical
QweakSimMaterial * pMaterial
Definition of elements and materials.
QweakSimLumiMessenger * LumiMessenger
void SetUSLumi_Material(G4String)
G4VSensitiveDetector * USLumiSD
void SetUSLumi_PositionInX(G4double)
void SetUSLumi_PositionInY(G4double)
G4LogicalVolume * DSLumi_Logical
G4VPhysicalVolume * DSLumi_Physical
void ConstructComponent(G4VPhysicalVolume *)
G4RotationMatrix * USLumi_Rot
G4VPhysicalVolume * getDSLumiPhysicalVolume()
G4RotationMatrix * DSLumi_Rot
G4VPhysicalVolume * getUSLumiPhysicalVolume()
G4VisAttributes * USLumi_VisAtt
void SetUSLumi_PositionInZ(G4double)