ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EICG4B0Detector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EICG4B0Detector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef EICG4B0DETECTOR_H
4 #define EICG4B0DETECTOR_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  EICG4B0Detector(PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam, const int layer = 0);
23 
25  virtual ~EICG4B0Detector() override {}
26 
28  virtual void ConstructMe(G4LogicalVolume *world) override;
29 
30  void Print(const std::string &what = "ALL") const override;
31 
33 
34  int IsInDetector(G4VPhysicalVolume *) const;
36 
37  int GetDetId(G4VPhysicalVolume *) const;
38  void SuperDetector(const std::string &name) { m_SuperDetector = name; }
39  const std::string SuperDetector() const { return m_SuperDetector; }
40  int get_Layer() const { return m_Layer; }
42 
43  private:
45  // active volumes
46  std::set<G4VPhysicalVolume *> m_PhysicalVolumesSet;
47  // std::set<G4LogicalVolume *> m_LogicalVolumesSet;
48  std::map<G4VPhysicalVolume *, int> m_PhysicalVolumesDet;
49  // std::map<G4LogicalVolume *, int> m_LogicalVolumesDet;
50  int m_Layer;
51  std::string m_SuperDetector;
52 };
53 
54 #endif // EICG4B0DETECTOR_H