Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4Prototype3InnerHcalDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4Prototype3InnerHcalDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4CALOPROTOTYPE_PHG4PROTOTYPE3INNERHCALDETECTOR_H
4 #define G4CALOPROTOTYPE_PHG4PROTOTYPE3INNERHCALDETECTOR_H
5 
6 #include <g4main/PHG4Detector.h>
7 
8 #include <Geant4/G4TwoVector.hh>
9 
10 #include <map>
11 #include <set>
12 #include <string>
13 
14 class G4AssemblyVolume;
15 class G4LogicalVolume;
16 class G4VPhysicalVolume;
17 class PHCompositeNode;
18 class PHG4Subsystem;
19 class PHParameters;
20 
22 {
23  public:
26 
30  void ConstructMe(G4LogicalVolume *world);
31 
33  void Print(const std::string &what = "ALL") const;
34 
36 
39 
41  const std::string SuperDetector() const { return m_SuperDetector; }
42  int get_Layer() const { return m_Layer; }
43 
44  int get_scinti_row_id(const std::string &volname);
45  int get_steel_plate_id(const std::string &volname);
46 
47  private:
48  G4LogicalVolume *ConstructSteelPlate(G4LogicalVolume *hcalenvelope);
49  G4LogicalVolume *ConstructScintillatorBoxHiEta(G4LogicalVolume *hcalenvelope);
50  G4LogicalVolume *ConstructScintiTile9(G4LogicalVolume *hcalenvelope);
51  G4LogicalVolume *ConstructScintiTile10(G4LogicalVolume *hcalenvelope);
52  G4LogicalVolume *ConstructScintiTile11(G4LogicalVolume *hcalenvelope);
53  G4LogicalVolume *ConstructScintiTile12(G4LogicalVolume *hcalenvelope);
54  double GetScintiAngle();
55  int ConstructInnerHcal(G4LogicalVolume *sandwich);
56 
58  G4LogicalVolume *m_InnerHcalSteelPlate;
59  G4AssemblyVolume *m_InnerHcalAssembly;
60  G4LogicalVolume *m_scintibox;
61  std::set<G4LogicalVolume *> m_ActiveVolumeSet;
66 
73 
79 
85 
91 
92  double m_ScintiX;
93  double m_SteelZ;
94  double m_ScintiTileZ;
97  double m_ScintiGap;
98  double m_DeltaPhi;
99  double m_VolumeSteel;
101 
104  // leave this in in case we ever need those coordinates
105  // G4TwoVector m_ScintiCornerUpperRight;
106  // G4TwoVector m_ScintiCornerUpperLeft;
107 
110 
111  int m_Active;
113 
114  int m_Layer;
116  std::map<std::string, int> m_SteelPlateIdMap;
117  std::map<std::string, int> m_ScintillatorIdMap;
118 };
119 
120 #endif // G4DETECTORS_PHG4PROTOTYPE3INNERHCALDETECTOR_H