Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4Prototype2InnerHcalDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4Prototype2InnerHcalDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4CALOPROTOTYPE_PHG4PROTOTYPE2INNERHCALDETECTOR_H
4 #define G4CALOPROTOTYPE_PHG4PROTOTYPE2INNERHCALDETECTOR_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 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  protected:
59  int ConstructInnerHcal(G4LogicalVolume* sandwich);
60  std::set<G4LogicalVolume*> m_ActiveVolumeSet;
62  std::map<std::string, int> m_SteelPlateIdMap;
63  std::map<std::string, int> m_ScintillatorIdMap;
65  G4LogicalVolume* m_InnerHcalSteelPlate;
66  G4AssemblyVolume* m_InnerHcalAssembly;
76 
81 
88 
94 
100 
106 
107  double m_ScintiX;
108  double m_SteelZ;
109  double m_SizeZ;
114  double m_ScintiGap;
115  double m_DeltaPhi;
118 
121 
124 
125  int m_Layer;
126 };
127 
128 #endif