34 {+9.15 , +3.15 , -9.15 , +9.15 , +3.15 , -9.15 },
35 {+15.15 , +9.15 , +3.15 , -9.15 , -15.15 , +15.15 , +9.15 , +3.15 ,
37 {+21.15 , +15.15 , +9.15 , +3.15 , -9.15 , -15.15 , -21.15 , +21.15 ,
38 +15.15 , +9.15 , +3.15 , -9.15 , -15.15 , -21.15 },
39 {+27.15 , +21.15 , +15.15 , +9.15 , +3.15 , -9.15 , -15.15 , -21.15 ,
40 -27.15 , +27.15 , +21.15 , +15.15 , +9.15 , +3.15 , -9.15 , -15.15 ,
42 {+33.15 , +27.15 , +21.15 , +15.15 , +9.15 , +3.15 ,
43 -9.15 , -15.15 , -21.15 , -27.15 , -33.15 , +33.15 ,
44 +27.15 , +21.15 , +15.15 , +9.15 , +3.15 , -9.15 ,
45 -15.15 , -21.15 , -27.15 , -33.15 }};
47 {-0.15 , +2.85 , -0.15 , +0.15 , -2.85 , +0.15 },
48 {-0.15 , -0.15 , +2.85 , -0.15 , -0.15 , +0.15 , +0.15 , -2.85 ,
50 {-0.15 , -0.15 , -0.15 , +2.85 , -0.15 , -0.15 , -0.15 , +0.15 ,
51 +0.15 , +0.15 , -2.85 , +0.15 , +0.15 , +0.15 },
52 {-0.15 , -0.15 , -0.15 , -0.15 , +2.85 , -0.15 , -0.15 , -0.15 ,
53 -0.15 , +0.15 , +0.15 , +0.15 , +0.15 , -2.85 , +0.15 , +0.15 ,
55 {-0.15 , -0.15 , -0.15 , -0.15 , -0.15 , +2.85 , -0.15 , -0.15 ,
56 -0.15 , -0.15 , -0.15 , +0.15 , +0.15 , +0.15 , +0.15 , +0.15 ,
57 -2.85 , +0.15 , +0.15 , +0.15 , +0.15 , +0.15 }};
59 {+0.14 + 4.31 , +1.36 + 4.31 , +0.0 + 4.31 , +1.22 , 0.0 , +1.36 },
60 {+1.36 + 4.31 , +0.14 + 4.31 , +1.36 + 4.31 , +0.0 + 4.31 , +1.22 + 4.31 , +0.0 ,
61 +1.22 , 0.0 , +1.36 , +0.14 },
62 {+0.14 + 4.31 , +1.36 + 4.31 , +0.14 + 4.31 , +1.36 + 4.31 , +0.0 + 4.31 ,
63 +1.22 + 4.31 , +0.0 + 4.31 , +1.22 , +0.0 , +1.22 , +0.0 , +1.36 ,
65 {+1.36 + 4.31 , +0.14 + 4.31 , +1.36 + 4.31 , +0.14 + 4.31 , +1.36 + 4.31 ,
66 +0.0 + 4.31 , +1.22 + 4.31 , +0.0 + 4.31 , +1.22 + 4.31 , +0.0 , +1.22 ,
67 +0.0 , +1.22 , +0.0 , +1.36 , +0.14 , +1.36 , +0.14 },
68 {+0.14 + 4.31 , +1.36 + 4.31 ,
69 +0.14 + 4.31 , +1.36 + 4.31 ,
70 +0.14 + 4.31 , +1.36 + 4.31 ,
71 +0.0 + 4.31 , +1.22 + 4.31 ,
72 +0.0 + 4.31 , +1.22 + 4.31 ,
607 switch (module_type) {
627 ((
TGeoXtru*)moduleS)->DefinePolygon(5, x_pos, y_pos);
641 ((
TGeoXtru*)moduleS)->DefinePolygon(5, x_pos, y_pos);
647 Error(
"CreateModule()",
"Incorrect module type selected!!!");
651 TGeoShape* sensor_zone_upper_part_rectS =
657 sensor_zone_upper_part_bevelS->
SetName(
"sensor_zone_upper_part_bevelS");
671 Double_t x_delta_bottom_BP = (y_delta_bottom_BP - (
YBevelSize[module_size] + y_delta))
678 +
XModuleSize[module_size] * 0.5 - x_delta_bottom_BP,
680 Double_t y_pos_sensor_zone_bevel[5] = {
687 ((
TGeoXtru*)sensor_zone_upper_part_bevelS)->DefinePolygon(5, x_pos_sensor_zone_bevel, y_pos_sensor_zone_bevel);
688 ((
TGeoXtru*)sensor_zone_upper_part_bevelS)->DefineSection(0, -
ZModuleSize[module_size] * 0.5);
689 ((
TGeoXtru*)sensor_zone_upper_part_bevelS)->DefineSection(1, +
ZModuleSize[module_size] * 0.5);
693 TGeoShape* sensor_zone_lower_part_rectS =
699 sensor_zone_lower_part_bevelS->
SetName(
"sensor_zone_lower_part_bevelS");
713 Double_t x_delta_bottom_BP = (y_delta_bottom_BP - (
YBevelSize[module_size] + y_delta))
720 +
XModuleSize[module_size] * 0.5 - x_delta_bottom_BP,
722 Double_t y_pos_sensor_zone_bevel[5] = {
729 ((
TGeoXtru*)sensor_zone_lower_part_bevelS)->DefinePolygon(5, x_pos_sensor_zone_bevel, y_pos_sensor_zone_bevel);
730 ((
TGeoXtru*)sensor_zone_lower_part_bevelS)->DefineSection(0, -
ZModuleSize[module_size] * 0.5);
731 ((
TGeoXtru*)sensor_zone_lower_part_bevelS)->DefineSection(1, +
ZModuleSize[module_size] * 0.5);
744 new TGeoVolume(
"Sensor_zone_upper_part_rectV", sensor_zone_upper_part_rectS);
748 new TGeoVolume(
"Sensor_zone_upper_part_bevelV", sensor_zone_upper_part_bevelS);
752 new TGeoVolume(
"Sensor_zone_lower_part_rectV", sensor_zone_lower_part_rectS);
756 new TGeoVolume(
"Sensor_zone_lower_part_bevelV", sensor_zone_lower_part_bevelS);
760 if (silicon_medium) {
762 sensor_zone_upper_part_rectV->
SetMedium(silicon_medium);
763 sensor_zone_upper_part_bevelV->
SetMedium(silicon_medium);
764 sensor_zone_lower_part_rectV->
SetMedium(silicon_medium);
765 sensor_zone_lower_part_bevelV->
SetMedium(silicon_medium);
767 Fatal(
"Main",
"Invalid medium for modules and sensor zones!");
777 switch (module_type) {
785 sensor_zone_upper_part_pos->
SetDy(
788 sensor_zone_upper_part_pos->
SetDz(0.0);
794 sensor_zone_lower_part_pos->
SetDy(
797 sensor_zone_lower_part_pos->
SetDz(0.0);
799 moduleV->
AddNode(sensor_zone_upper_part_rectV, 0, sensor_zone_upper_part_pos);
800 moduleV->
AddNode(sensor_zone_lower_part_rectV, 0, sensor_zone_lower_part_pos);
811 sensor_zone_upper_part_pos->
SetDz(0.0);
813 moduleV->
AddNode(sensor_zone_upper_part_rectV, 0, sensor_zone_upper_part_pos);
823 sensor_zone_upper_part_pos->
SetDy(
826 sensor_zone_upper_part_pos->
SetDz(0.0);
830 sensor_zone_lower_part_bevel_pos->
SetDx(0.0);
834 sensor_zone_lower_part_bevel_pos->
SetDz(0.0);
836 moduleV->
AddNode(sensor_zone_upper_part_rectV, 0, sensor_zone_upper_part_pos);
837 moduleV->
AddNode(sensor_zone_lower_part_bevelV, 0, sensor_zone_lower_part_bevel_pos);
845 sensor_zone_upper_part_pos->
SetDx(0);
846 sensor_zone_upper_part_pos->
SetDy(0);
847 sensor_zone_upper_part_pos->
SetDz(0.0);
849 moduleV->
AddNode(sensor_zone_upper_part_bevelV, 0, sensor_zone_upper_part_pos);
854 Error(
"CreateModule()",
"Incorrect module type selected!!!");