Analysis Software
Documentation for sPHENIX simulation 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:
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(uint32_t index, uint32_t slice, uint32_t side);
36  uint32_t module_id_for(G4VPhysicalVolume* volume);
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 
58 };
59 
60 #endif /* G4EPD_PHG4EPDETECTOR_H */