EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EICG4BwdDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EICG4BwdDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef EICG4BwdDETECTOR_H
4 #define EICG4BwdDETECTOR_H
5 
6 #include <g4main/PHG4Detector.h>
7 
8 #include <map>
9 #include <set>
10 #include <string> // for string
11 
12 class G4LogicalVolume;
13 class G4VPhysicalVolume;
14 class PHCompositeNode;
15 class PHG4Subsystem;
16 class PHParameters;
17 
19 {
20  public:
22  EICG4BwdDetector(PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam, const int layer = 0);
23 
25  virtual ~EICG4BwdDetector() override {}
26 
28  virtual 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  int GetDetId(G4VPhysicalVolume *) const;
38  //void SetSteppingAction(EICG4B0SteppingAction *stpact) { m_SteppingAction = stpact; }
39  void SuperDetector(const std::string &name) { m_SuperDetector = name; }
40  const std::string SuperDetector() const { return m_SuperDetector; }
41  int get_Layer() const { return m_Layer; }
43  void SetTowerMappingFile(const std::string &filename)
44  {
46  }
47  private:
48  G4LogicalVolume *ConstructTower();
49  int PlaceTower(G4LogicalVolume *envelope, G4LogicalVolume *tower);
51 
53  {
54  G4double x;
55  G4double y;
56  G4double z;
57  int idx_j;
58  int idx_k;
59  };
60 
61 // std::map<std::string, G4double> m_GlobalParameterMap;
62  std::map<std::string, towerposition> m_TowerPositionMap;
63 
64 // EICG4B0SteppingAction *m_SteppingAction;
66  // active volumes
67  std::set<G4VPhysicalVolume *> m_PhysicalVolumesSet;
68  // std::set<G4LogicalVolume *> m_LogicalVolumesSet;
69  std::map<G4VPhysicalVolume *, int> m_PhysicalVolumesDet;
70  std::set<G4LogicalVolume *> m_LogicalVolSet;
71  // std::map<G4LogicalVolume *, int> m_LogicalVolumesDet;
72  int m_Layer;
73  std::string m_SuperDetector;
74  std::string _mapping_tower_file;
76  protected:
77  void LogicalVolSetInsert(G4LogicalVolume *logvol)
78 {
79  m_LogicalVolSet.insert(logvol);
80 }
81 };
82 
83 #endif // EICG4BwdDETECTOR_H