ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4EPDDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4EPDDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 /* vim: set sw=2 ft=cpp: */
4 
5 #ifndef G4EPD_PHG4EPDDETECTOR_H
6 #define G4EPD_PHG4EPDDETECTOR_H
7 
8 #include <g4main/PHG4Detector.h>
9 
10 #include <cstdint>
11 #include <map>
12 #include <set>
13 #include <string>
14 
15 class G4ExtrudedSolid;
16 class G4LogicalVolume;
17 class G4VPhysicalVolume;
18 class PHCompositeNode;
20 class PHG4Subsystem;
21 class PHParameters;
22 
24 {
25  public:
27  PHCompositeNode* node,
29  std::string const& name);
30 
31  void ConstructMe(G4LogicalVolume* world) override;
32 
33  int IsInDetector(G4VPhysicalVolume*) const;
34 
35  uint32_t module_id_for(int32_t index, int32_t slice, int32_t side);
37 
38  void SuperDetector(std::string const& name) { superdetector = name; }
39  const std::string SuperDetector() const { return superdetector; }
40 
42 
43  private:
44  G4ExtrudedSolid* construct_block(int32_t index);
45 
47  PHParameters* m_Params = nullptr;
48 
49  int m_ActiveFlag = 0;
51 
52  std::set<G4LogicalVolume*> m_SupportLogVolSet;
53  std::set<G4LogicalVolume*> m_ActiveLogVolSet;
54 
55  std::map<G4VPhysicalVolume*, uint32_t> m_volumes;
56 
57  std::string superdetector;
58 };
59 
60 #endif /* G4EPD_PHG4EPDETECTOR_H */