EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4_PlugDoor_EIC.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4_PlugDoor_EIC.C
1 #ifndef MACRO_G4PLUGDOOREIC_C
2 #define MACRO_G4PLUGDOOREIC_C
3 
4 #include <GlobalVariables.C>
5 
7 
8 #include <g4main/PHG4Reco.h>
9 
10 R__LOAD_LIBRARY(libg4detectors.so)
11 
12 namespace Enable
13 {
14  bool PLUGDOOR = false;
15  bool PLUGDOOR_ABSORBER = false;
16  bool PLUGDOOR_OVERLAPCHECK = false;
17 } // namespace Enable
18 
19 namespace G4PLUGDOOR
20 {
21  // sPHENIX forward flux return(s)
22  // define via four corners in the engineering drawing
23  double z_1 = 330.81;
24  double z_2 = 360.81;
25  double r_1 = 30;
26  double r_2 = 263.5;
27 
28  double length = z_2 - z_1;
29  double place_z = -(z_1 + z_2) / 2.;
30 } // namespace G4PLUGDOOR
31 
33 {
36 }
37 
38 void PlugDoor(PHG4Reco *g4Reco)
39 {
40  //----------------------------------------
42  const bool flux_door_active = Enable::ABSORBER || Enable::PLUGDOOR_ABSORBER;
43 
44  const string material("Steel_1006");
45 
46  PHG4CylinderSubsystem *flux_return_minus = new PHG4CylinderSubsystem("FLUXRET_ETA_MINUS", 0);
47  flux_return_minus->set_double_param("length", G4PLUGDOOR::length);
48  flux_return_minus->set_double_param("radius", G4PLUGDOOR::r_1);
49  flux_return_minus->set_double_param("place_z", G4PLUGDOOR::place_z);
50  flux_return_minus->set_double_param("thickness", G4PLUGDOOR::r_2 - G4PLUGDOOR::r_1);
51  flux_return_minus->set_string_param("material", material);
52  flux_return_minus->SetActive(flux_door_active);
53  flux_return_minus->SuperDetector("FLUXRET_ETA_MINUS");
54  flux_return_minus->OverlapCheck(OverlapCheck);
55  g4Reco->registerSubsystem(flux_return_minus);
56 
57  return;
58 }
59 #endif