EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4PhenixDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4PhenixDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4MAIN_PHG4PHENIXDETECTOR_H
4 #define G4MAIN_PHG4PHENIXDETECTOR_H
5 
6 #include <Geant4/G4VUserDetectorConstruction.hh>
7 #include <Geant4/G4Types.hh> // for G4double
8 
9 #include <list>
10 #include <string> // for string
11 
12 class G4LogicalVolume;
13 class G4VPhysicalVolume;
14 class PHG4Detector;
16 class PHG4Reco;
17 
19 class PHG4PhenixDetector : public G4VUserDetectorConstruction
20 {
21  public:
24 
26  ~PHG4PhenixDetector() override;
27 
28  void Verbosity(const int verb) { m_Verbosity = verb; }
29  int Verbosity() const { return m_Verbosity; }
30 
32  void AddDetector(PHG4Detector* detector)
33  {
34  m_DetectorList.push_back(detector);
35  }
36 
38  G4VPhysicalVolume* Construct() override;
39 
40  G4double GetWorldSizeX() const { return WorldSizeX; }
41 
42  G4double GetWorldSizeY() const { return WorldSizeY; }
43  G4double GetWorldSizeZ() const { return WorldSizeZ; }
44 
45  void SetWorldSizeX(const G4double sx) { WorldSizeX = sx; }
46  void SetWorldSizeY(const G4double sy) { WorldSizeY = sy; }
47  void SetWorldSizeZ(const G4double sz) { WorldSizeZ = sz; }
48 
49  void SetWorldShape(const std::string& s) { worldshape = s; }
50  void SetWorldMaterial(const std::string& s) { worldmaterial = s; }
51  G4VPhysicalVolume* GetPhysicalVolume(void) { return physiWorld; }
52 
53  private:
55 
57 
59 
60  std::list<PHG4Detector*> m_DetectorList;
61 
62  G4LogicalVolume* logicWorld; //pointer to the logical World
63  G4VPhysicalVolume* physiWorld; //pointer to the physical World
64  G4double WorldSizeX;
65  G4double WorldSizeY;
66  G4double WorldSizeZ;
67  std::string worldshape;
68  std::string worldmaterial;
69 };
70 
71 #endif // G4MAIN_PHG4PHENIXDETECTOR_H