ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AllSiliconTrackerDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file AllSiliconTrackerDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef ALLSILICONTRACKERDETECTOR_H
4 #define ALLSILICONTRACKERDETECTOR_H
5 
6 #include <g4main/PHG4Detector.h>
7 
8 #include <map>
9 #include <set>
10 #include <string> // for string
11 
13 class G4LogicalVolume;
14 class G4VPhysicalVolume;
15 class PHCompositeNode;
16 class PHG4HitContainer;
17 class PHG4Subsystem;
18 class PHParameters;
19 
21 {
22  public:
24  AllSiliconTrackerDetector(PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam);
25 
28 
30  void ConstructMe(G4LogicalVolume *world) override;
31 
32  void Print(const std::string &what = "ALL") const override;
33 
35 
36  int IsInDetector(G4VPhysicalVolume *) const;
38 
39  void SuperDetector(const std::string &name) { m_SuperDetector = name; }
40  const std::string SuperDetector() const { return m_SuperDetector; }
41 
42  int get_detid(const G4VPhysicalVolume *physvol, const int whichactive);
43  PHG4HitContainer *get_hitcontainer(const int i);
44 
45  private:
46  enum
47  {
50  };
51  void InsertVolumes(G4VPhysicalVolume *physvol, const int flag);
55 
56  std::string m_GDMPath;
57 
58  std::string m_SuperDetector;
59  int m_Active;
61 
62  // active volumes
63  std::map<const G4VPhysicalVolume *, int> m_ActivePhysicalVolumesSet;
64  std::map<const G4VPhysicalVolume *, int> m_PassivePhysicalVolumesSet;
65 
66  std::map<int, PHG4HitContainer *> m_HitContainerMap;
67 };
68 
69 #endif // ALLSILICONTRACKERDETECTOR_H