EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EICG4ZDCStructure.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EICG4ZDCStructure.h
1 #ifndef EICG4ZDCSTRUCTURE_H
2 #define EICG4ZDCSTRUCTURE_H
3 
4 #include <set>
5 #include <map>
6 #include <Geant4/globals.hh>
7 
8 class G4LogicalVolume;
9 class G4VPhysicalVolume;
10 class G4VisAttributes;
11 class G4Material;
12 
14  public:
17 
18  double ConstructCrystalTowers(double x0, double y0, double z0,
19  double x1, double y1, double z1,
20  G4VPhysicalVolume *mPhy);
21 
22  double ConstructEMLayers(double x0, double y0, double z0,
23  double x1, double y1, double z1,
24  G4VPhysicalVolume *mPhy);
25  double ConstructHCSiliconLayers(double x0, double y0, double z0,
26  double x1, double y1, double z1,
27  G4VPhysicalVolume *mPhy);
28  double ConstructHCSciLayers(double x0, double y0, double z0,
29  double x1, double y1, double z1,
30  G4VPhysicalVolume *mPhy);
31  void ProvideLogicalVolumesSets(std::set<G4LogicalVolume *> &ActiveLogicalVolumesSet,
32  std::set<G4LogicalVolume *> &AbsorberLogicalVolumesSet);
33  void ProvideLogicalVolumeInfoMap(std::map<G4LogicalVolume *, int> &ActiveLogicalVolumeInfoMap,
34  std::map<G4LogicalVolume *, int> &AbsorberLogicalVolumeInfoMap);
35 
36  void Print();
37  void PrintTowerMap(const std::string &d);
38 
39 
40 private:
41 
42  void SetColors();
43  void Materials();
44 
45  int fLayer;
46 
47  G4Material* fmat_World;
48  G4Material* fmat_W;
49  G4Material* fmat_PET;
50  G4Material* fmat_Sci;
51  G4Material* fmat_Si;
52  G4Material* fmat_Pb;
53  G4Material* fmat_Cu;
54  G4Material* fmat_Fe;
55  G4Material* fmat_Crystal;
56 
57  G4VisAttributes* fvisCrystal;
58  G4VisAttributes* fvisPIX;
59  G4VisAttributes* fvisPAD;
60  G4VisAttributes* fvisDM;
61  G4VisAttributes* fvisW;
62  G4VisAttributes* fvisPb;
63  G4VisAttributes* fvisSci;
64 
65  std::set<G4LogicalVolume *> m_ActiveLogicalVolumesSet;
66  std::set<G4LogicalVolume *> m_AbsorberLogicalVolumesSet;
67  std::map<G4LogicalVolume*, int> m_ActiveLogicalVolumeInfoMap;
68  std::map<G4LogicalVolume*, int> m_AbsorberLogicalVolumeInfoMap;
69 
70  double _z_Crystal[2];
71  double _z_EMLayers[2];
72  double _z_HCSilicon[2];
73  double _z_HCSci[2];
74 
75 };
76 
77 #endif