EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4LBLVtxDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4LBLVtxDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 
4 #ifndef G4DETECTORS_G4LBLVTXDETECTOR_H
5 #define G4DETECTORS_G4LBLVTXDETECTOR_H
6 
7 #include <g4main/PHG4Detector.h>
8 
9 #include <set>
10 #include <string>
11 
13 
14 class G4LogicalVolume;
15 class G4VPhysicalVolume;
16 
17 class PHCompositeNode;
18 class PHG4Subsystem;
19 class PHParameters;
20 
24 class G4LBLVtxDetector : public PHG4Detector
25 {
26  public:
27  G4LBLVtxDetector(PHG4Subsystem* subsys, PHCompositeNode* Node, const std::string& dnam, PHParameters* parameters);
28 
29  virtual ~G4LBLVtxDetector();
30 
32  void ConstructMe(G4LogicalVolume* world);
33 
34  int IsInDetector(G4VPhysicalVolume*) const;
35 
36  void SuperDetector(const std::string& name) { m_SuperDetector = name; }
37  const std::string SuperDetector() const { return m_SuperDetector; }
38 
39  void Print(const std::string& what = "ALL") const;
40 
41  private:
42  void SetActiveVolumes(G4VPhysicalVolume* physvol);
43 
45 
46  std::string m_GDMPath;
47  std::string m_TopVolName;
48  std::set<G4VPhysicalVolume*> m_ActivePhysVolumeMap;
49  std::set<G4VPhysicalVolume*> m_PassivePhysVolumeMap;
50  std::set<std::string> m_ActiveVolName;
51  double m_placeX;
52  double m_placeY;
53  double m_placeZ;
54 
55  double m_rotationX;
56  double m_rotationY;
57  double m_rotationZ;
58 
59  int m_Active;
60  int m_AbsorberActive;
61 
62  std::string m_SuperDetector;
63 };
64 
65 #endif /* G4DETECTORS_G4LBLVTXDETECTOR_H */