ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4ProjCrystalCalorimeterDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4ProjCrystalCalorimeterDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4DETECTORS_PHG4PROJCRYSTALCALORIMETERDETECTOR_H
4 #define G4DETECTORS_PHG4PROJCRYSTALCALORIMETERDETECTOR_H
5 
7 
9 
10 #include <Geant4/G4Types.hh> // for G4double, G4int
11 
12 #include <set> // for set
13 #include <string> // for string
14 
15 class G4LogicalVolume;
16 class G4VPhysicalVolume;
17 class PHCompositeNode;
18 class PHG4Subsystem;
19 class PHParameters;
20 
28 {
29  public:
32 
35 
37  virtual void ConstructMe(G4LogicalVolume* world) override;
38 
40  virtual int IsInCrystalCalorimeter(G4VPhysicalVolume*) const override;
41 
42  // ----- accessing member variables: ------------
43 
44  void SetCrystalSize(G4double dx_front, G4double dy_front, G4double dx_back, G4double dy_back, G4double dz)
45  {
46  _dx_front = dx_front;
47  _dy_front = dy_front;
48  _dx_back = dx_back;
49  _dy_back = dy_back;
50  _dz_crystal = dz;
51  }
52 
53  void GetCrystalSize(G4double& dx_front, G4double& dy_front, G4double& dx_back, G4double& dy_back, G4double& dz)
54  {
55  dx_front = _dx_front;
56  dy_front = _dy_front;
57  dx_back = _dx_back;
58  dy_back = _dy_back;
59  dz = _dz_crystal;
60  }
61 
62  void GetCarbonFiberAdjustments(G4double& adjust_width, G4double& adjust_length);
63 
64  void GetCarbonFiberSpacing(G4double& CF_width, G4double& Air_CF, G4double& Air_Cry);
65 
66  protected:
68 
69  private:
71  int Fill4x4Unit(G4LogicalVolume* crystal_logic);
72  int FillSpecialUnit(G4LogicalVolume* crystal_logic, G4int ident);
73 
74  /* crystal geometry */
80 
82 
83  std::set<G4VPhysicalVolume*> m_ActiveVolumeSet;
84  std::set<G4VPhysicalVolume*> m_PassiveVolumeSet;
85  // since getting parameters is a map search we do not want to
86  // do this in every step, the parameters used are cached
87  // in the following variables
90 };
91 
92 #endif