File indexing completed on 2025-08-05 08:17:53
0001
0002
0003 #ifndef G4DETECTORS_PHG4ZDCDETECTOR_H
0004 #define G4DETECTORS_PHG4ZDCDETECTOR_H
0005
0006 #include <g4main/PHG4Detector.h>
0007
0008 #include <set>
0009 #include <string>
0010
0011 class G4LogicalVolume;
0012 class G4VPhysicalVolume;
0013 class PHCompositeNode;
0014 class PHG4ZDCDisplayAction;
0015 class PHG4Subsystem;
0016 class PHG4GDMLConfig;
0017 class PHParameters;
0018
0019
0020
0021
0022 class PHG4ZDCDetector : public PHG4Detector
0023 {
0024 public:
0025
0026 explicit PHG4ZDCDetector(PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam, const int detid);
0027
0028
0029 ~PHG4ZDCDetector() override = default;
0030
0031
0032 void ConstructMe(G4LogicalVolume *world) override;
0033
0034
0035 int IsInZDC(G4VPhysicalVolume *) const;
0036
0037 void SuperDetector(const std::string &name) { m_SuperDetector = name; }
0038 const std::string &SuperDetector() const { return m_SuperDetector; }
0039
0040 int get_Layer() const { return m_Layer; }
0041
0042 PHG4ZDCDisplayAction *GetDisplayAction() { return m_DisplayAction; }
0043
0044 private:
0045 G4LogicalVolume *ConstructTower(int type);
0046 PHParameters *GetParams() const { return m_Params; }
0047
0048 PHG4ZDCDisplayAction *m_DisplayAction = nullptr;
0049 PHParameters *m_Params = nullptr;
0050
0051 PHG4GDMLConfig *m_GdmlConfig = nullptr;
0052
0053
0054 double m_Angle;
0055
0056 double m_TPlate;
0057 double m_HPlate;
0058 double m_WPlate;
0059
0060 double m_TAbsorber;
0061 double m_HAbsorber;
0062 double m_WAbsorber;
0063
0064 double m_DFiber;
0065 double m_HFiber;
0066 double m_WFiber;
0067 double m_GFiber;
0068
0069 double m_Gap;
0070
0071 double m_TSMD;
0072 double m_HSMD;
0073 double m_WSMD;
0074
0075 double m_RHole;
0076 double m_TWin;
0077 double m_RWin;
0078
0079 double m_PlaceHole;
0080 double m_Pxwin;
0081 double m_Pywin;
0082 double m_Pzwin;
0083
0084 int m_NMod;
0085 int m_NLay;
0086
0087 int m_ActiveFlag;
0088 int m_AbsorberActiveFlag;
0089 int m_SupportActiveFlag;
0090 int m_Layer;
0091
0092 std::string m_SuperDetector;
0093
0094 std::set<G4LogicalVolume *> m_AbsorberLogicalVolSet;
0095 std::set<G4LogicalVolume *> m_ScintiLogicalVolSet;
0096 std::set<G4LogicalVolume *> m_FiberLogicalVolSet;
0097 std::set<G4LogicalVolume *> m_SupportLogicalVolSet;
0098 };
0099
0100 #endif