ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4HybridHomogeneousCalorimeterDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4HybridHomogeneousCalorimeterDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4DETECTORS_PHG4HYBRIDHOMOGENEOUSCALORIMETERDETECTOR_H
4 #define G4DETECTORS_PHG4HYBRIDHOMOGENEOUSCALORIMETERDETECTOR_H
5 
7 
8 #include <g4main/PHG4Detector.h>
9 
10 #include <map>
11 #include <set>
12 #include <string>
13 
14 class G4LogicalVolume;
15 class G4Material;
16 class G4VPhysicalVolume;
17 class PHCompositeNode;
19 class PHG4Subsystem;
20 class PHParameters;
21 
29 {
30  public:
33 
36 
38  virtual void ConstructMe(G4LogicalVolume *world);
39 
41  virtual int IsInCrystalCalorimeter(G4VPhysicalVolume *) const;
42 
43  // ----- accessing member variables: ------------
44 
45  void SuperDetector(const std::string &name) { m_SuperDetector = name; }
46  const std::string SuperDetector() const { return m_SuperDetector; }
47 
48  int get_DetectorId() const { return m_DetectorId; }
49  void DetectorId(const int i) { m_DetectorId = i; }
50  void DoFullLightProp(bool doProp) { m_doLightProp = doProp; }
51 
52  // ----- additional accessors used by derived classes: ------------
53 
55 
56  protected: // for variables also used in PHG4ProjCrystalCalorimeterDetector
60 
61  private: // private stuff
64  int PlaceTower(G4LogicalVolume *envelope, G4LogicalVolume *tower); //, G4LogicalVolume *support);
65  G4Material *GetScintillatorMaterial(float setting);
70  void SurfaceTable(G4LogicalVolume *vol);
73  {
77  int idx_j;
78  int idx_k;
79  };
80 
81  int m_DetectorId = 0;
82 
83  std::string m_SuperDetector;
84 
85  PHParameters *m_Params = nullptr;
86 
88 
89  std::string _towerlogicnameprefix;
90 
91  std::map<std::string, G4double> _map_global_parameter;
92  std::map<std::string, towerposition> _map_tower;
93  std::set<G4VPhysicalVolume *> m_ActiveVolumeSet;
94  std::set<G4VPhysicalVolume *> m_PassiveVolumeSet;
95  // since getting parameters is a map search we do not want to
96  // do this in every step, the parameters used are cached
97  // in the following variables
101 };
102 
103 #endif