ECCE @ 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 
36 
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();
61 
62  std::vector<G4VPhysicalVolume *> sandwich_vol;
69  double plate_x;
70  double plate_z;
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