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 ,
43 {-0.15 , -0.15 , +2.85 , -0.15 , -0.15 , +0.15 , +0.15 , -2.85 ,
45 {-0.15 , -0.15 , -0.15 , +2.85 , -0.15 , -0.15 , -0.15 , +0.15 ,
46 +0.15 , +0.15 , -2.85 , +0.15 , +0.15 , +0.15 },
47 {-0.15 , -0.15 , -0.15 , -0.15 , +2.85 , -0.15 , -0.15 , -0.15 ,
48 -0.15 , +0.15 , +0.15 , +0.15 , +0.15 , -2.85 , +0.15 , +0.15 ,
51 {+1.36 + 4.31 , +0.14 + 4.31 , +1.36 + 4.31 , +0.0 + 4.31 , +1.22 + 4.31 , +0.0 ,
52 +1.22 , 0.0 , +1.36 , +0.14 },
53 {+0.14 + 4.31 , +1.36 + 4.31 , +0.14 + 4.31 , +1.36 + 4.31 , +0.0 + 4.31 ,
54 +1.22 + 4.31 , +0.0 + 4.31 , +1.22 , +0.0 , +1.22 , +0.0 , +1.36 ,
56 {+1.36 + 4.31 , +0.14 + 4.31 , +1.36 + 4.31 , +0.14 + 4.31 , +1.36 + 4.31 ,
57 +0.0 + 4.31 , +1.22 + 4.31 , +0.0 + 4.31 , +1.22 + 4.31 , +0.0 , +1.22 ,
58 +0.0 , +1.22 , +0.0 , +1.36 , +0.14 , +1.36 , +0.14 }};
206 FairGeoMedium* mAir = geoMedia->getMedium(
"air");
208 Fatal(
"Main",
"FairMedium air not found");
209 geoBuild->createMedium(mAir);
212 Fatal(
"Main",
"Medium air not found");
215 FairGeoMedium* mCarbon = geoMedia->getMedium(
"carbon");
217 Fatal(
"Main",
"FairMedium carbon not found");
218 geoBuild->createMedium(mCarbon);
221 Fatal(
"Main",
"Medium carbon not found");
224 FairGeoMedium* mFiberGlass = geoMedia->getMedium(
"fiberglass");
226 Fatal(
"Main",
"FairMedium fiberglass not found");
227 geoBuild->createMedium(mFiberGlass);
230 Fatal(
"Main",
"Medium fiberglass not found");
233 FairGeoMedium* mCopper = geoMedia->getMedium(
"copper");
235 Fatal(
"Main",
"FairMedium copper not found");
236 geoBuild->createMedium(mCopper);
239 Fatal(
"Main",
"Medium copper not found");
242 FairGeoMedium* mSilicon = geoMedia->getMedium(
"silicon");
244 Fatal(
"Main",
"FairMedium silicon not found");
245 geoBuild->createMedium(mSilicon);
248 Fatal(
"Main",
"Medium silicon not found");
473 switch (module_type) {
489 ((
TGeoXtru*)moduleS)->DefinePolygon(5, x_pos, y_pos);
501 ((
TGeoXtru*)moduleS)->DefinePolygon(5, x_pos, y_pos);
507 Error(
"CreateModule()",
"Incorrect module type selected!!!");
516 sensor_zone_upper_part_bevelS->
SetName(
"sensor_zone_upper_part_bevelS");
534 Double_t x_pos_sensor_zone_bevel[5] = {
537 Double_t y_pos_sensor_zone_bevel[5] = {
542 ((
TGeoXtru*)sensor_zone_upper_part_bevelS)->DefinePolygon(5, x_pos_sensor_zone_bevel, y_pos_sensor_zone_bevel);
553 sensor_zone_lower_part_bevelS->
SetName(
"sensor_zone_lower_part_bevelS");
571 Double_t x_pos_sensor_zone_bevel[5] = {
574 Double_t y_pos_sensor_zone_bevel[5] = {
579 ((
TGeoXtru*)sensor_zone_lower_part_bevelS)->DefinePolygon(5, x_pos_sensor_zone_bevel, y_pos_sensor_zone_bevel);
594 new TGeoVolume(
"Sensor_zone_upper_part_rectV", sensor_zone_upper_part_rectS);
598 new TGeoVolume(
"Sensor_zone_upper_part_bevelV", sensor_zone_upper_part_bevelS);
602 new TGeoVolume(
"Sensor_zone_lower_part_rectV", sensor_zone_lower_part_rectS);
606 new TGeoVolume(
"Sensor_zone_lower_part_bevelV", sensor_zone_lower_part_bevelS);
610 if (silicon_medium) {
612 sensor_zone_upper_part_rectV->
SetMedium(silicon_medium);
613 sensor_zone_upper_part_bevelV->
SetMedium(silicon_medium);
614 sensor_zone_lower_part_rectV->
SetMedium(silicon_medium);
615 sensor_zone_lower_part_bevelV->
SetMedium(silicon_medium);
617 Fatal(
"Main",
"Invalid medium for modules and sensor zones!");
627 switch (module_type) {
636 sensor_zone_upper_part_pos->
SetDz(0.0);
643 sensor_zone_lower_part_pos->
SetDz(0.0);
645 moduleV->
AddNode(sensor_zone_upper_part_rectV, 0, sensor_zone_upper_part_pos);
646 moduleV->
AddNode(sensor_zone_lower_part_rectV, 0, sensor_zone_lower_part_pos);
655 sensor_zone_upper_part_pos->
SetDz(0.0);
657 moduleV->
AddNode(sensor_zone_upper_part_rectV, 0, sensor_zone_upper_part_pos);
668 sensor_zone_upper_part_pos->
SetDz(0.0);
672 sensor_zone_lower_part_bevel_pos->
SetDx(0.0);
675 sensor_zone_lower_part_bevel_pos->
SetDz(0.0);
677 moduleV->
AddNode(sensor_zone_upper_part_rectV, 0, sensor_zone_upper_part_pos);
678 moduleV->
AddNode(sensor_zone_lower_part_bevelV, 0, sensor_zone_lower_part_bevel_pos);
686 sensor_zone_upper_part_pos->
SetDx(0);
687 sensor_zone_upper_part_pos->
SetDy(0);
688 sensor_zone_upper_part_pos->
SetDz(0.0);
690 moduleV->
AddNode(sensor_zone_upper_part_bevelV, 0, sensor_zone_upper_part_pos);
695 Error(
"CreateModule()",
"Incorrect module type selected!!!");