1 #ifndef MACRO_G4CEMCEIC_C
2 #define MACRO_G4CEMCEIC_C
4 #include <GlobalVariables.C>
16 #include <caloreco/RawClusterBuilderGraph.h>
17 #include <caloreco/RawClusterBuilderTemplate.h>
18 #include <caloreco/RawTowerCalibration.h>
102 cout <<
"inconsistency, radius: " << radius
103 <<
" larger than allowed inner radius for CEMC = 95 cm" << endl;
120 theta2 =
M_PI - theta2;
129 double totaltoplength = z1 +
z2;
131 double totalbottomlength = z3 + z4;
135 double layer_shift = 0;
142 double thislength = totalbottomlength + (height / TMath::Tan(theta1)) + (height / TMath::Tan(theta2));
145 cemc->set_double_param(
"radius", radius);
146 cemc->set_string_param(
"material",
"Spacal_W_Epoxy");
148 cemc->set_double_param(
"length", thislength);
149 cemc->set_int_param(
"lengthviarapidity", 0);
156 ztemp = radius / TMath::Tan(theta2);
157 layer_shift = -1. * (ztemp - (thislength / 2.));
158 cemc->set_double_param(
"place_z", layer_shift);
160 cemc->SuperDetector(
"ABSORBER_CEMC");
161 if (AbsorberActive) cemc->SetActive();
162 cemc->OverlapCheck(OverlapCheck);
173 thislength = totalbottomlength + (height / TMath::Tan(theta1)) + (height / TMath::Tan(theta2));
176 cemc->set_double_param(
"radius", radius);
177 cemc->set_string_param(
"material",
"PMMA");
179 cemc->set_int_param(
"lightyield", 1);
180 cemc->set_int_param(
"lengthviarapidity", 0);
181 cemc->set_double_param(
"length", thislength);
187 cemc->set_double_param(
"place_z", layer_shift);
189 cemc->SuperDetector(
"CEMC");
192 cemc->OverlapCheck(OverlapCheck);
207 double l1 = (radius + 0.5) / TMath::Tan(theta1);
208 double l2 = (radius + 0.5) / TMath::Tan(theta2);
215 layer_shift = -1. * ((l2 - l1) / 2.);
218 if (AbsorberActive) cemc_cyl->
SetActive();
245 cemc_cells->
cellsize(i, 2. *
M_PI / 256. * radius, 2. *
M_PI / 256. * radius);
268 const double photoelectron_per_GeV = 500;
272 CemcTowerDigitizer->
Detector(
"CEMC");
273 CemcTowerDigitizer->
Verbosity(verbosity);
283 CemcTowerCalibration->
Detector(
"CEMC");
284 CemcTowerCalibration->
Verbosity(verbosity);
311 cemc_clusterbuilder->
Detector(
"CEMC");
312 cemc_clusterbuilder->
Verbosity(verbosity);
315 std::string femc_prof = getenv(
"CALIBRATIONROOT");
316 femc_prof +=
"/EmcProfile/CEMCprof_Thresh30MeV.root";
323 cemc_clusterbuilder->
Detector(
"CEMC");
324 cemc_clusterbuilder->
Verbosity(verbosity);
329 cout <<
"CEMC_Clusters - unknown clusterizer setting!! " << endl;