ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EICG4dRICHDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EICG4dRICHDetector.h
1 #ifndef DRICHDETECTOR_H
2 #define DRICHDETECTOR_H
3 
4 #include <g4main/PHG4Detector.h>
5 
6 #include <fstream>
7 #include <map>
8 #include <set>
9 #include <string> // for string
10 
11 class G4LogicalVolume;
12 class G4VPhysicalVolume;
13 class PHCompositeNode;
14 class PHG4Subsystem;
15 class PHParameters;
16 
18 {
19  public:
22  PHParameters *parameters, const std::string &dnam);
23 
25  virtual ~EICG4dRICHDetector() {}
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  // recursively add detectors to active volume list
38  void ActivateVolumeTree(G4VPhysicalVolume *volu, G4int petal = 0);
39 
40  // access detector numbers, for the given volume
41  int GetPetal(G4VPhysicalVolume *volu);
42  int GetPSST(G4VPhysicalVolume *volu);
43 
44  void SuperDetector(const std::string &name) { m_SuperDetector = name; }
45  const std::string SuperDetector() const { return m_SuperDetector; }
46 
47  private:
49 
50  // active volumes
51  std::set<G4VPhysicalVolume *> m_PhysicalVolumesSet;
52  std::map<G4VPhysicalVolume *, G4int> m_PetalMap;
53 
54  std::string m_SuperDetector;
55 };
56 
57 #endif // DRICHDETECTOR_H