EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EICG4ZDCDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EICG4ZDCDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef EICG4ZDCDETECTOR_H
4 #define EICG4ZDCDETECTOR_H
5 
6 #include <g4main/PHG4Detector.h>
7 
8 #include <map>
9 #include <set>
10 #include <string> // for string
11 
12 class G4LogicalVolume;
13 class G4VPhysicalVolume;
14 class PHCompositeNode;
15 class PHG4Subsystem;
16 class PHParameters;
17 
19 {
20  public:
22  EICG4ZDCDetector(PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam);
23 
25  virtual ~EICG4ZDCDetector() {}
26 
28  void ConstructMe(G4LogicalVolume *world) override;
29 
30  void Print(const std::string &what = "ALL") const override;
31 
33 
34  int IsInDetector(G4VPhysicalVolume *) const;
36  int GetActiveVolumeInfo(G4VPhysicalVolume *volume);
37  int GetAbsorberVolumeInfo(G4VPhysicalVolume *volume);
38 
39  void SuperDetector(const std::string &name) { m_SuperDetector = name; }
40  const std::string SuperDetector() const { return m_SuperDetector; }
41 
42  private:
44 
45  std::set<G4LogicalVolume *> m_ActiveLogicalVolumesSet;
46  std::set<G4LogicalVolume *> m_AbsorberLogicalVolumesSet;
47 
48  // active volumes
49  // std::set<G4VPhysicalVolume *> m_PhysicalVolumesSet;
50  std::map<G4LogicalVolume*, int> m_ActiveLogicalVolumeInfoMap;
51  std::map<G4LogicalVolume*, int> m_AbsorberLogicalVolumeInfoMap;
52 
53  std::string m_SuperDetector;
54 };
55 
56 #endif // EICG4ZDCDETECTOR_H