EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4CEmcTestBeamDetector.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4CEmcTestBeamDetector.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef G4DETECTORS_PHG4CEMCTESTBEAMDETECTOR_H
4 #define G4DETECTORS_PHG4CEMCTESTBEAMDETECTOR_H
5 
6 #include <g4main/PHG4Detector.h>
7 
8 #include <Geant4/G4Types.hh>
9 
10 #include <string> // for string
11 #include <vector>
12 
13 class G4LogicalVolume;
14 class G4VPhysicalVolume;
15 class PHCompositeNode;
16 class PHG4Subsystem;
17 
19 {
20  public:
22  PHG4CEmcTestBeamDetector(PHG4Subsystem *subsys, PHCompositeNode *Node, const std::string &dnam, const int lyr = 0);
23 
26  {
27  }
28 
30  void ConstructMe(G4LogicalVolume *world) override;
31 
33 
34  int IsInCEmcTestBeam(G4VPhysicalVolume *) const;
36 
37  void SetPlaceZ(const G4double place_z) { place_in_z = place_z; }
38  void SetPlace(const G4double place_x, const G4double place_y, const G4double place_z)
39  {
40  place_in_x = place_x;
41  place_in_y = place_y;
43  }
44  void SetXRot(const G4double angle) { x_rot = angle; }
45  void SetYRot(const G4double angle) { y_rot = angle; }
46  void SetZRot(const G4double angle) { z_rot = angle; }
47  void SetActive(const int i = 1) { active = i; }
48  void SetAbsorberActive(const int i = 1) { absorberactive = i; }
49  int IsActive() const { return active; }
50  void SuperDetector(const std::string &name) { superdetector = name; }
51  const std::string SuperDetector() const { return superdetector; }
52  int get_Layer() const { return layer; }
53 
54  void BlackHole(const int i = 1) { blackhole = i; }
55  int IsBlackHole() const { return blackhole; }
56 
57  private:
58  void CalculateGeometry();
59  int ConstructTowerVolume(G4LogicalVolume *tower);
60  int ConstructSandwichVolume(G4LogicalVolume *sandwich);
61 
62  std::vector<G4VPhysicalVolume *> sandwich_vol;
63  G4double w_dimension[3];
64  G4double sc_dimension[3];
65  G4double gap;
66  G4double place_in_x;
67  G4double place_in_y;
68  G4double place_in_z;
69  double plate_x;
70  double plate_z;
72  G4double x_rot;
73  G4double y_rot;
74  G4double z_rot;
75  double alpha;
76  double inner_radius;
77  double outer_radius;
83 
84  int active;
86  int layer;
87  int blackhole;
88  std::string detector_type;
89  std::string superdetector;
90 };
91 
92 #endif