EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BeastMagnetDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file BeastMagnetDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef BEASTMAGNETDETECTOR_H
4 #define BEASTMAGNETDETECTOR_H
5 
6 #include <g4main/PHG4Detector.h>
7 
8 #include <set>
9 #include <string> // for string
10 
12 class G4LogicalVolume;
13 class G4VPhysicalVolume;
14 class PHCompositeNode;
15 class PHG4Subsystem;
16 class PHParameters;
17 
19 {
20  public:
22  BeastMagnetDetector(PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam);
23 
25  virtual ~BeastMagnetDetector() {}
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 
37  void SuperDetector(const std::string &name) { m_SuperDetector = name; }
38  const std::string SuperDetector() const { return m_SuperDetector; }
39 
40  private:
41  void InsertVolumes(G4VPhysicalVolume *physvol);
44 
45  std::string m_GDMPath;
46  std::string m_TopVolName;
47 
48  // active volumes
49  std::set<G4VPhysicalVolume *> m_PhysicalVolumesSet;
50 
51  std::string m_SuperDetector;
53 };
54 
55 #endif // BEASTMAGNETDETECTOR_H