Class Reference for E1039 Core & Analysis Software
DetectorConstruction.hh
Go to the documentation of this file.
1 /* This is the class descriptions for the geometry.
2  Version .1 9/18/2004
3  Larry Isenhower
4 */
5 
6 #ifndef DetectorConstruction_h
7 #define DetectorConstruction_h 1
8 
9 
10 #include "Field.hh"
11 #include "GenericSD.hh"
12 
13 #include <G4EqMagElectricField.hh>
14 #include <G4VUserDetectorConstruction.hh>
15 #include <G4ThreeVector.hh>
16 #include <G4UnionSolid.hh>
17 #include <G4NistManager.hh>
18 #include <G4Region.hh>
19 #include <G4ProductionCuts.hh>
20 #include <G4Polyhedron.hh>
21 #include <G4PVReplica.hh>
22 #include <G4UserLimits.hh>
23 #include <G4FieldManager.hh>
24 #include <G4ChordFinder.hh>
25 #include <G4Mag_UsualEqRhs.hh>
26 #include <G4PropagatorInField.hh>
27 #include <G4ClassicalRK4.hh>
28 #include <G4TransportationManager.hh>
29 #include <G4SDManager.hh>
30 #include <G4LogicalVolume.hh>
31 #include <G4VisAttributes.hh>
32 #include <G4Colour.hh>
33 #include <G4Box.hh>
34 #include <G4Tubs.hh>
35 #include <G4SubtractionSolid.hh>
36 #include <G4PVPlacement.hh>
37 #include <G4ios.hh>
38 #include <G4RunManager.hh>
39 #include <globals.hh>
40 #include <G4SystemOfUnits.hh>
41 
42 #include <mysql.h>
43 
44 #include <cstdlib>
45 #include <unistd.h>
46 #include <sys/stat.h>
47 #include <stdlib.h>
48 #include <string>
49 
50 class G4Box;
51 class G4Tubs;
52 class G4Trd;
53 class G4SubtractionSolid;
54 class G4LogicalVolume;
55 class G4VPhysicalVolume;
56 class G4Material;
57 
58 class DetectorConstruction : public G4VUserDetectorConstruction
59 {
60  public:
61 
64 
65  G4VPhysicalVolume* Construct();
66 
67  public:
68 
70 
71  G4Material* targetMat;
72  G4Material* defaultMagnetMat;
73  G4LogicalVolume* targetVolume;
74  G4LogicalVolume* magnetVolume;
75 
76  G4double targetLength;
77  G4double targetCenter;
78  G4double targetRadius;
79  G4double fmagCenter;
80  G4double fmagLength;
81  G4double z1v, z2v, z1h, z2h;
82 
83  vector<G4Element*> elementVec;
84  vector<G4Material*> materialVec;
85  vector<G4VSolid*> solidVec;
86  vector<G4LogicalVolume*> logicalVolumeVec;
87  vector<G4RotationMatrix*> rotationMatrixVec;
88 
89  const G4Material* GetTargetMaterial() {return targetMat;};
90  const G4double GetTargetRadius() {return targetRadius;};
91  const G4double GetTargetLength() {return targetLength;};
92  const G4double GetTargetCenter() {return targetCenter;};
93  const G4double GetFmagCenter() {return fmagCenter;};
94  const G4double GetFmagLength() {return fmagLength;};
95 
96  void SetTargetMaterial(G4String);
97  void IronToggle(bool);
98  void ReloadMagField();
99 
100  private:
101 
102  G4VPhysicalVolume* physiWorld;
103  int AssignAttributes(G4VPhysicalVolume*);
104  MYSQL* con;
105  Settings* mySettings;
106 };
107 
108 #endif
vector< G4RotationMatrix * > rotationMatrixVec
G4LogicalVolume * magnetVolume
G4LogicalVolume * targetVolume
G4VPhysicalVolume * Construct()
const G4double GetTargetCenter()
vector< G4LogicalVolume * > logicalVolumeVec
const G4Material * GetTargetMaterial()
vector< G4Material * > materialVec
const G4double GetTargetRadius()
vector< G4Element * > elementVec
const G4double GetFmagLength()
vector< G4VSolid * > solidVec
const G4double GetFmagCenter()
const G4double GetTargetLength()
void SetTargetMaterial(G4String)