Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4Prototype2OuterHcalDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4Prototype2OuterHcalDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4CALOPROTOTYPE_PHG4PROTOTYPE2OUTERHCALDETECTOR_H
4 #define G4CALOPROTOTYPE_PHG4PROTOTYPE2OUTERHCALDETECTOR_H
5 
6 #include <g4main/PHG4Detector.h>
7 
8 #include <Geant4/G4TwoVector.hh>
9 
10 #include <map>
11 #include <set>
12 #include <string> // for 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 
29 
31  virtual void ConstructMe(G4LogicalVolume* world);
32 
33  virtual 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  G4LogicalVolume* ConstructSteelPlate(G4LogicalVolume* hcalenvelope);
45  G4LogicalVolume* ConstructScintillatorBox(G4LogicalVolume* hcalenvelope);
46  G4LogicalVolume* ConstructScintillatorBoxHiEta(G4LogicalVolume* hcalenvelope);
47  G4LogicalVolume* ConstructScintiTileU1(G4LogicalVolume* hcalenvelope);
48  G4LogicalVolume* ConstructScintiTileU2(G4LogicalVolume* hcalenvelope);
49  G4LogicalVolume* ConstructScintiTile9(G4LogicalVolume* hcalenvelope);
50  G4LogicalVolume* ConstructScintiTile10(G4LogicalVolume* hcalenvelope);
51  G4LogicalVolume* ConstructScintiTile11(G4LogicalVolume* hcalenvelope);
52  G4LogicalVolume* ConstructScintiTile12(G4LogicalVolume* hcalenvelope);
53  double GetScintiAngle();
54 
55  int get_scinti_row_id(const std::string& volname);
56  int get_steel_plate_id(const std::string& volname);
57 
58  private:
59  int ConstructOuterHcal(G4LogicalVolume* sandwich);
60  std::set<G4LogicalVolume*> m_ActiveVolumeSet;
62  G4LogicalVolume* m_OuterHcalSteelPlate;
63  G4AssemblyVolume* m_OuterHcalAssembly;
68 
74 
85 
91 
97 
103 
104  double m_ScintiX;
106  double m_SteelZ;
107  double m_SizeZ;
112  double m_ScintiGap;
113  double m_TiltAngle;
114  double m_DeltaPhi;
117 
120 
123 
124  int m_Layer;
126  std::map<std::string, int> m_SteelPlateIdMap;
127  std::map<std::string, int> m_ScintillatorIdMap;
128 };
129 
130 #endif