Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4ZDCDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4ZDCDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4DETECTORS_PHG4ZDCDETECTOR_H
4 #define G4DETECTORS_PHG4ZDCDETECTOR_H
5 
6 #include <g4main/PHG4Detector.h>
7 
8 #include <set>
9 #include <string>
10 
11 class G4LogicalVolume;
12 class G4VPhysicalVolume;
13 class PHCompositeNode;
15 class PHG4Subsystem;
16 class PHG4GDMLConfig;
17 class PHParameters;
18 
23 {
24  public:
26  explicit PHG4ZDCDetector(PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam, const int detid);
27 
29  ~PHG4ZDCDetector() override {}
30 
32  void ConstructMe(G4LogicalVolume *world) override;
33 
35  int IsInZDC(G4VPhysicalVolume *) const;
36 
38  const std::string SuperDetector() const { return m_SuperDetector; }
39 
40  int get_Layer() const { return m_Layer; }
41 
43 
44  private:
45  G4LogicalVolume *ConstructTower(int type);
46  PHParameters *GetParams() const { return m_Params; }
47 
49  PHParameters *m_Params = nullptr;
52 
53  /* ZDC geometry */
54  double m_Angle;
55 
56  double m_TPlate;
57  double m_HPlate;
58  double m_WPlate;
59 
60  double m_TAbsorber;
61  double m_HAbsorber;
62  double m_WAbsorber;
63 
64  double m_DFiber;
65  double m_HFiber;
66  double m_WFiber;
67  double m_GFiber;
68 
69  double m_Gap;
70 
71  double m_TSMD;
72  double m_HSMD;
73  double m_WSMD;
74 
75  double m_RHole;
76  double m_TWin;
77  double m_RWin;
78 
79  double m_PlaceHole;
80  double m_Pxwin;
81  double m_Pywin;
82  double m_Pzwin;
83 
84  int m_NMod;
85  int m_NLay;
86 
90  int m_Layer;
91 
93 
94  std::set<G4LogicalVolume *> m_AbsorberLogicalVolSet;
95  std::set<G4LogicalVolume *> m_ScintiLogicalVolSet;
96  std::set<G4LogicalVolume *> m_FiberLogicalVolSet;
97  std::set<G4LogicalVolume *> m_SupportLogicalVolSet;
98 };
99 
100 #endif