File indexing completed on 2025-12-17 09:24:00
0001 #ifndef MACRO_G4CEMCALBEDO_C
0002 #define MACRO_G4CEMCALBEDO_C
0003
0004 #include <GlobalVariables.C>
0005
0006 #include <g4detectors/PHG4CylinderSubsystem.h>
0007
0008 #include <g4main/PHG4Reco.h>
0009
0010 namespace Enable
0011 {
0012 bool CEMCALBEDO = false;
0013 bool CEMCALBEDO_ABSORBER = false;
0014 }
0015
0016 namespace G4CEMCALBEDO
0017 {
0018 double teflon_cylinder_thickness = 1.5;
0019 double inner_radius = 95. - teflon_cylinder_thickness;
0020 double albedo_thickness = 2.;
0021 }
0022
0023 void CEmcAlbedoInit()
0024 {
0025 BlackHoleGeometry::max_z = std::max(BlackHoleGeometry::max_z, 149.47);
0026 BlackHoleGeometry::min_z = std::min(BlackHoleGeometry::min_z, -149.47);
0027 BlackHoleGeometry::max_radius = std::max(BlackHoleGeometry::max_radius, G4CEMCALBEDO::inner_radius + G4CEMCALBEDO::teflon_cylinder_thickness + G4CEMCALBEDO::albedo_thickness);
0028 }
0029
0030 void CEmcAlbedo(PHG4Reco *g4Reco)
0031 {
0032 bool AbsorberActive = Enable::ABSORBER || Enable::CEMCALBEDO_ABSORBER;
0033 PHG4CylinderSubsystem *cyl = new PHG4CylinderSubsystem("CEMC_ELECTRONICS", 0);
0034 cyl->SuperDetector("CEMC_MOCKUP");
0035 cyl->set_double_param("radius", G4CEMCALBEDO::inner_radius);
0036 cyl->set_string_param("material", "G4_TEFLON");
0037 cyl->set_double_param("thickness", G4CEMCALBEDO::teflon_cylinder_thickness);
0038 if (AbsorberActive)
0039 {
0040 cyl->SetActive();
0041 }
0042 g4Reco->registerSubsystem(cyl);
0043 cyl = new PHG4CylinderSubsystem("CEMC_ALBEDO", 1);
0044 cyl->SuperDetector("CEMC_MOCKUP");
0045 cyl->set_double_param("radius", G4CEMCALBEDO::inner_radius + G4CEMCALBEDO::teflon_cylinder_thickness);
0046 cyl->set_string_param("material", "Spacal_W_Epoxy");
0047 cyl->set_double_param("thickness", G4CEMCALBEDO::albedo_thickness);
0048 if (AbsorberActive)
0049 {
0050 cyl->SetActive();
0051 }
0052 g4Reco->registerSubsystem(cyl);
0053 }
0054 #endif