47 TGeoMedium* kMedPeek = gGeoManager->GetMedium(
"MFT_PEEK$");
48 TGeoMedium* kMed_Water = gGeoManager->GetMedium(
"MFT_Water$");
49 TGeoMedium* kMedAlu = gGeoManager->GetMedium(
"MFT_Alu$");
50 TGeoMedium* kMedPolyPipe = gGeoManager->GetMedium(
"MFT_Polyimide$");
52 TGeoVolumeAssembly* mHalfPSU =
new TGeoVolumeAssembly(
"PSU");
54 Double_t delta_thickness = 0.2;
56 Double_t water_pipe_main_position_radius = (18.62 + 18.18) / 2.;
58 Double_t block_widest_angle = 126.07;
59 Double_t block_radius = (19.5 + 17.7) / 2.;
60 Double_t block_angle_index[] = {126.08, 114.03, 101.91, 89.96, 77.88, 66.06, 54.16, 42.06, 30, 17.99, 6.07};
66 std::string name_middle_spacer_main_cover =
"";
69 Double_t middle_spacer_main_thickness = 0.50;
70 Double_t middle_spacer_main_min_radius1 = 17.0;
71 Double_t middle_spacer_main_max_radius1 = 21.7;
72 Double_t middle_spacer_main_sub_rectangle_top_height = 5 + 2.787;
73 Double_t middle_spacer_main_sub_rectangle_top_width = middle_spacer_main_max_radius1 * 2;
75 TGeoTubeSeg* middle_spacer_main_arc =
new TGeoTubeSeg(
"middle_spacer_main_arc", middle_spacer_main_min_radius1, middle_spacer_main_max_radius1, middle_spacer_main_thickness / 2, 180, 0);
76 TGeoBBox* middle_spacer_main_sub_rectangle_top =
new TGeoBBox(
"middle_spacer_main_sub_rectangle_top", middle_spacer_main_sub_rectangle_top_width / 2., middle_spacer_main_sub_rectangle_top_height / 2., middle_spacer_main_thickness / 2. + delta_thickness);
77 TGeoTranslation* trans_middle_spacer_main_sub_rectangle_top =
new TGeoTranslation(
"trans_middle_spacer_main_sub_rectangle_top", 0, -middle_spacer_main_sub_rectangle_top_height / 2, 0);
78 trans_middle_spacer_main_sub_rectangle_top->RegisterYourself();
80 Double_t middle_spacer_main_add_rectangle_side_height = 4.5 + 1.5;
81 Double_t middle_spacer_main_add_rectangle_side_width = 9.0;
82 TGeoBBox* middle_spacer_main_add_rectangle_side =
new TGeoBBox(
"middle_spacer_main_add_rectangle_side", middle_spacer_main_add_rectangle_side_width / 2., middle_spacer_main_add_rectangle_side_height / 2., middle_spacer_main_thickness / 2.);
83 TGeoTranslation* trans_middle_spacer_main_add_rectangle_side_left =
new TGeoTranslation(
"trans_middle_spacer_main_add_rectangle_side_left", 28.4 / 2. + middle_spacer_main_add_rectangle_side_width / 2., -5 - middle_spacer_main_add_rectangle_side_height / 2., 0);
84 TGeoTranslation* trans_middle_spacer_main_add_rectangle_side_right =
new TGeoTranslation(
"trans_middle_spacer_main_add_rectangle_side_right", -(28.4 / 2. + middle_spacer_main_add_rectangle_side_width / 2.), -5 - middle_spacer_main_add_rectangle_side_height / 2., 0);
85 trans_middle_spacer_main_add_rectangle_side_left->RegisterYourself();
86 trans_middle_spacer_main_add_rectangle_side_right->RegisterYourself();
88 Double_t middle_spacer_main_add_rectangle_side_small_thickness = 1.18;
89 Double_t middle_spacer_main_add_rectangle_side_small_height = 1.5;
90 Double_t middle_spacer_main_add_rectangle_side_small_width = 2.4;
91 TGeoBBox* middle_spacer_main_add_rectangle_side_small =
new TGeoBBox(
"middle_spacer_main_add_rectangle_side_small", middle_spacer_main_add_rectangle_side_small_width / 2., middle_spacer_main_add_rectangle_side_small_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2.);
92 TGeoTranslation* trans_middle_spacer_main_add_rectangle_side_small_left =
new TGeoTranslation(
"trans_middle_spacer_main_add_rectangle_side_small_left", 28.4 / 2. + middle_spacer_main_add_rectangle_side_width + middle_spacer_main_add_rectangle_side_small_width / 2, -5 - middle_spacer_main_add_rectangle_side_small_height / 2., 0);
93 TGeoTranslation* trans_middle_spacer_main_add_rectangle_side_small_right =
new TGeoTranslation(
"trans_middle_spacer_main_add_rectangle_side_small_right", -(28.4 / 2. + middle_spacer_main_add_rectangle_side_width + middle_spacer_main_add_rectangle_side_small_width / 2), -5 - middle_spacer_main_add_rectangle_side_small_height / 2., 0);
94 trans_middle_spacer_main_add_rectangle_side_small_left->RegisterYourself();
95 trans_middle_spacer_main_add_rectangle_side_small_right->RegisterYourself();
97 TGeoCompositeShape* middle_spacer_main =
new TGeoCompositeShape(
"middle_spacer_main",
98 "middle_spacer_main_arc - middle_spacer_main_sub_rectangle_top:trans_middle_spacer_main_sub_rectangle_top"
99 " + middle_spacer_main_add_rectangle_side:trans_middle_spacer_main_add_rectangle_side_left + middle_spacer_main_add_rectangle_side:trans_middle_spacer_main_add_rectangle_side_right"
100 " + middle_spacer_main_add_rectangle_side_small:trans_middle_spacer_main_add_rectangle_side_small_left + middle_spacer_main_add_rectangle_side_small:trans_middle_spacer_main_add_rectangle_side_small_right");
104 Double_t middle_spacer_cover_thickness = 0.15;
105 Double_t middle_spacer_cover_arc_max_radius = 19.5;
106 Double_t middle_spacer_cover_arc_min_radius = 17.0;
107 TGeoTubeSeg* middle_spacer_cover_arc =
new TGeoTubeSeg(
"middle_spacer_cover_arc", middle_spacer_cover_arc_min_radius, middle_spacer_cover_arc_max_radius, middle_spacer_cover_thickness / 2, 180, 0);
108 TGeoTranslation* trans_middle_spacer_cover_arc =
new TGeoTranslation(
"trans_middle_spacer_cover_arc", 0, 0, middle_spacer_main_thickness / 2 + middle_spacer_cover_thickness / 2);
109 trans_middle_spacer_cover_arc->RegisterYourself();
111 Double_t middle_spacer_cover_sub_rectangle_top_height = 5.0 + 1.5 + 1.9;
112 Double_t middle_spacer_cover_sub_rectangle_top_width = middle_spacer_cover_arc_max_radius * 2;
113 TGeoBBox* middle_spacer_cover_sub_rectangle_top =
new TGeoBBox(
"middle_spacer_cover_sub_rectangle_top", middle_spacer_cover_sub_rectangle_top_width / 2., middle_spacer_cover_sub_rectangle_top_height, middle_spacer_cover_thickness / 2. + delta_thickness);
114 TGeoTranslation* trans_middle_spacer_cover_sub_rectangle_top =
new TGeoTranslation(
"trans_middle_spacer_cover_sub_rectangle_top", 0, 0, middle_spacer_main_thickness / 2 + middle_spacer_cover_thickness / 2);
115 trans_middle_spacer_cover_sub_rectangle_top->RegisterYourself();
117 Double_t middle_spacer_cover_rectangle_side1_height = 1.9;
118 Double_t middle_spacer_cover_rectangle_side1_width_left = 4.2;
119 Double_t middle_spacer_cover_rectangle_side1_width_right = 8.8;
120 TGeoBBox* middle_spacer_cover_rectangle_side1_left =
new TGeoBBox(
"middle_spacer_cover_rectangle_side1_left", middle_spacer_cover_rectangle_side1_width_left / 2., middle_spacer_cover_rectangle_side1_height / 2., middle_spacer_cover_thickness / 2.);
121 TGeoBBox* middle_spacer_cover_rectangle_side1_right =
new TGeoBBox(
"middle_spacer_cover_rectangle_side1_right", middle_spacer_cover_rectangle_side1_width_right / 2., middle_spacer_cover_rectangle_side1_height / 2., middle_spacer_cover_thickness / 2.);
122 TGeoTranslation* trans_middle_spacer_cover_rectangle_side1_left =
new TGeoTranslation(
"trans_middle_spacer_cover_rectangle_side1_left", 28.4 / 2 + middle_spacer_cover_rectangle_side1_width_left / 2, -5 - 1.5 - 1.9 + middle_spacer_cover_rectangle_side1_height / 2, middle_spacer_main_thickness / 2 + middle_spacer_cover_thickness / 2);
123 TGeoTranslation* trans_middle_spacer_cover_rectangle_side1_right =
new TGeoTranslation(
"trans_middle_spacer_cover_rectangle_side1_right", -(28.4 / 2 + middle_spacer_cover_rectangle_side1_width_right / 2), -5 - 1.5 - 1.9 + middle_spacer_cover_rectangle_side1_height / 2, middle_spacer_main_thickness / 2 + middle_spacer_cover_thickness / 2);
124 trans_middle_spacer_cover_rectangle_side1_left->RegisterYourself();
125 trans_middle_spacer_cover_rectangle_side1_right->RegisterYourself();
127 Double_t middle_spacer_cover_rectangle_side2_height = 1.5;
128 Double_t middle_spacer_cover_rectangle_side2_width = 2.0;
129 TGeoBBox* middle_spacer_cover_rectangle_side2 =
new TGeoBBox(
"middle_spacer_cover_rectangle_side2", middle_spacer_cover_rectangle_side2_width / 2., middle_spacer_cover_rectangle_side2_height / 2., middle_spacer_cover_thickness / 2.);
130 TGeoTranslation* trans_middle_spacer_cover_rectangle_side2_left =
new TGeoTranslation(
"trans_middle_spacer_cover_rectangle_side2_left", 28.4 / 2 + middle_spacer_cover_rectangle_side2_width / 2, -5 - 1.5 - 2.787 + middle_spacer_cover_rectangle_side2_height / 2, middle_spacer_main_thickness / 2 + middle_spacer_cover_thickness / 2);
131 TGeoTranslation* trans_middle_spacer_cover_rectangle_side2_right =
new TGeoTranslation(
"trans_middle_spacer_cover_rectangle_side2_right", -(28.4 / 2 + middle_spacer_cover_rectangle_side2_width / 2), -5 - 1.5 - 2.787 + middle_spacer_cover_rectangle_side2_height / 2, middle_spacer_main_thickness / 2 + middle_spacer_cover_thickness / 2);
132 trans_middle_spacer_cover_rectangle_side2_left->RegisterYourself();
133 trans_middle_spacer_cover_rectangle_side2_right->RegisterYourself();
135 Double_t middle_spacer_cover_rectangle_side3_height = 1.9;
136 Double_t middle_spacer_cover_rectangle_side3_width = 2.1;
137 TGeoBBox* middle_spacer_cover_rectangle_side3 =
new TGeoBBox(
"middle_spacer_cover_rectangle_side3", middle_spacer_cover_rectangle_side3_width / 2., middle_spacer_cover_rectangle_side3_height / 2., middle_spacer_cover_thickness / 2.);
138 TGeoTranslation* trans_middle_spacer_cover_rectangle_side3 =
new TGeoTranslation(
"trans_middle_spacer_cover_rectangle_side3", 28.4 / 2 + 8.8 - middle_spacer_cover_rectangle_side3_width / 2, -5 - 1.5 - middle_spacer_cover_rectangle_side3_height / 2, middle_spacer_main_thickness / 2 + middle_spacer_cover_thickness / 2);
139 trans_middle_spacer_cover_rectangle_side3->RegisterYourself();
141 name_middle_spacer_main_cover +=
142 " middle_spacer_cover_arc:trans_middle_spacer_cover_arc - middle_spacer_cover_sub_rectangle_top:trans_middle_spacer_cover_sub_rectangle_top"
143 " + middle_spacer_cover_rectangle_side1_left:trans_middle_spacer_cover_rectangle_side1_left + middle_spacer_cover_rectangle_side1_right:trans_middle_spacer_cover_rectangle_side1_right"
144 " + middle_spacer_cover_rectangle_side2:trans_middle_spacer_cover_rectangle_side2_left + middle_spacer_cover_rectangle_side2:trans_middle_spacer_cover_rectangle_side2_right"
145 " + middle_spacer_cover_rectangle_side3:trans_middle_spacer_cover_rectangle_side3";
147 Double_t middle_spacer_cover_block_thickness = 0.19;
148 Double_t middle_spacer_cover_block_height = 1.0;
149 Double_t middle_spacer_cover_block_width = 1.0;
150 Double_t middle_spacer_cover_block_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + middle_spacer_cover_block_thickness / 2.;
152 TGeoBBox* middle_spacer_cover_block =
new TGeoBBox(
"middle_spacer_cover_block", middle_spacer_cover_block_width / 2, middle_spacer_cover_block_height / 2, middle_spacer_cover_block_thickness / 2);
154 TGeoCompositeShape* rotated_middle_spacer_cover_block[24];
155 for (Int_t iB = 0; iB < 11; ++iB) {
157 Double_t block_angle = (180. - block_angle_index[iB]) / 2. * TMath::Pi() / 180.;
159 TGeoRotation* rotate_electric_board_sub_box_left =
new TGeoRotation(Form(
"rotate_middle_spacer_cover_block_No%d", iB * 2), 180 - block_angle * 180. / TMath::Pi(), 0, 0);
160 TGeoRotation* rotate_electric_board_sub_box_right =
new TGeoRotation(Form(
"rotate_middle_spacer_cover_block_No%d", iB * 2 + 1), block_angle * 180. / TMath::Pi(), 0, 0);
161 rotate_electric_board_sub_box_left->RegisterYourself();
162 rotate_electric_board_sub_box_right->RegisterYourself();
164 Double_t cent_block_left[] = {block_radius * TMath::Cos(block_angle), -block_radius * TMath::Sin(block_angle), middle_spacer_cover_block_position_z};
165 Double_t cent_block_right[] = {block_radius * TMath::Cos(TMath::Pi() - block_angle), -block_radius * TMath::Sin(TMath::Pi() - block_angle), middle_spacer_cover_block_position_z};
167 TGeoCombiTrans* combtrans_electric_board_sub_box_left =
new TGeoCombiTrans(Form(
"combtrans_spacer_cover_block_No%d", 2 * iB), cent_block_left[0], cent_block_left[1], cent_block_left[2], rotate_electric_board_sub_box_left);
168 TGeoCombiTrans* combtrans_electric_board_sub_box_right =
new TGeoCombiTrans(Form(
"combtrans_spacer_cover_block_No%d", 2 * iB + 1), cent_block_right[0], cent_block_right[1], cent_block_right[2], rotate_electric_board_sub_box_right);
169 combtrans_electric_board_sub_box_left->RegisterYourself();
170 combtrans_electric_board_sub_box_right->RegisterYourself();
172 name_middle_spacer_main_cover += Form(
"+middle_spacer_cover_block:combtrans_spacer_cover_block_No%d", 2 * iB);
173 name_middle_spacer_main_cover += Form(
"+middle_spacer_cover_block:combtrans_spacer_cover_block_No%d", 2 * iB + 1);
176 TGeoTranslation* trans_spacer_cover_block_left =
new TGeoTranslation(
"trans_spacer_cover_block_left", 22.259 - middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2, middle_spacer_cover_block_position_z);
177 trans_spacer_cover_block_left->RegisterYourself();
178 name_middle_spacer_main_cover +=
"+middle_spacer_cover_block:trans_spacer_cover_block_left";
180 TGeoTranslation* trans_spacer_cover_block_right =
new TGeoTranslation(
"trans_spacer_cover_block_right", -22.247 + middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2, middle_spacer_cover_block_position_z);
181 trans_spacer_cover_block_right->RegisterYourself();
182 name_middle_spacer_main_cover +=
"+middle_spacer_cover_block:trans_spacer_cover_block_right";
184 TGeoCompositeShape* middle_spacer_cover =
new TGeoCompositeShape(
"middle_spacer_cover", name_middle_spacer_main_cover.c_str());
186 TGeoRotation* rotate_middle_spacer_cover_back =
new TGeoRotation(
"rotate_middle_spacer_cover_back", 180, 180, 0);
187 rotate_middle_spacer_cover_back->RegisterYourself();
189 TGeoCompositeShape* middle_spacer_cover_bothside =
new TGeoCompositeShape(
"middle_spacer_cover_bothside",
"middle_spacer_cover + middle_spacer_cover:rotate_middle_spacer_cover_back");
193 Double_t water_pipe_inner_radius = 0.3 / 2.;
194 Double_t water_pipe_outer_radius = 0.4 / 2.;
196 Double_t water_pipe_main_angle = 126.19;
198 Double_t water_pipe_side_position_radius = (1.8 + 1.4) / 2;
199 Double_t water_pipe_side_angle = 63.1;
201 Double_t water_pipe_straight_tube_side1_length = 2.865 / 2.;
202 Double_t water_pipe_straight_tube_side2_length = 8.950 / 2;
204 TGeoTorus* middle_spacer_sub_water_pipe_main_torus =
new TGeoTorus(
"middle_spacer_sub_water_pipe_main_torus", water_pipe_main_position_radius, 0., water_pipe_outer_radius, 180 + (180 - water_pipe_main_angle) / 2., water_pipe_main_angle);
206 TGeoTorus* middle_spacer_sub_water_pipe_side_torus_left1 =
new TGeoTorus(
"middle_spacer_sub_water_pipe_side_torus_left1", water_pipe_side_position_radius, 0., water_pipe_outer_radius, 90, water_pipe_side_angle);
207 TGeoTorus* middle_spacer_sub_water_pipe_side_torus_right1 =
new TGeoTorus(
"middle_spacer_sub_water_pipe_side_torus_right1", water_pipe_side_position_radius, 0., water_pipe_outer_radius, 90 - water_pipe_side_angle, water_pipe_side_angle);
209 TGeoTranslation* trans_middle_spacer_sub_water_pipe_side_torus_left1 =
new TGeoTranslation(
"trans_middle_spacer_sub_water_pipe_side_torus_left1", (water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.), -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.), 0);
210 TGeoTranslation* trans_middle_spacer_sub_water_pipe_side_torus_right1 =
new TGeoTranslation(
"trans_middle_spacer_sub_water_pipe_side_torus_right1", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.), -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.), 0);
211 trans_middle_spacer_sub_water_pipe_side_torus_left1->RegisterYourself();
212 trans_middle_spacer_sub_water_pipe_side_torus_right1->RegisterYourself();
214 TGeoTubeSeg* middle_spacer_sub_water_pipe_straight_tube_side1 =
new TGeoTubeSeg(
"middle_spacer_sub_water_pipe_straight_tube_side1", 0., water_pipe_outer_radius, water_pipe_straight_tube_side1_length, 0, 360);
215 TGeoRotation* rotate_middle_spacer_sub_water_pipe_straight_tube_side1 =
new TGeoRotation(
"rotate_middle_spacer_sub_water_pipe_straight_tube_side1", 90, 90, 0);
216 rotate_middle_spacer_sub_water_pipe_straight_tube_side1->RegisterYourself();
218 TGeoCombiTrans* combtrans_rotated_middle_spacer_sub_water_pipe_straight_tube_side1_left =
new TGeoCombiTrans(
"combtrans_rotated_middle_spacer_sub_water_pipe_straight_tube_side1_left", (water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length,
219 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius, 0, rotate_middle_spacer_sub_water_pipe_straight_tube_side1);
220 TGeoCombiTrans* combtrans_rotated_middle_spacer_sub_water_pipe_straight_tube_side1_right =
new TGeoCombiTrans(
"combtrans_rotated_middle_spacer_sub_water_pipe_straight_tube_side1_right", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length,
221 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius, 0, rotate_middle_spacer_sub_water_pipe_straight_tube_side1);
222 combtrans_rotated_middle_spacer_sub_water_pipe_straight_tube_side1_left->RegisterYourself();
223 combtrans_rotated_middle_spacer_sub_water_pipe_straight_tube_side1_right->RegisterYourself();
225 TGeoTorus* middle_spacer_sub_water_pipe_side_torus_left2 =
new TGeoTorus(
"middle_spacer_sub_water_pipe_side_torus_left2", water_pipe_side_position_radius, 0., water_pipe_outer_radius, 0, 90);
226 TGeoTorus* middle_spacer_sub_water_pipe_side_torus_right2 =
new TGeoTorus(
"middle_spacer_sub_water_pipe_side_torus_right2", water_pipe_side_position_radius, 0., water_pipe_outer_radius, 90, 90);
228 TGeoTranslation* trans_middle_spacer_sub_water_pipe_side_torus_left2 =
new TGeoTranslation(
"trans_middle_spacer_sub_water_pipe_side_torus_left2", +(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length * 2,
229 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius, 0);
230 TGeoTranslation* trans_middle_spacer_sub_water_pipe_side_torus_right2 =
new TGeoTranslation(
"trans_middle_spacer_sub_water_pipe_side_torus_right2", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length * 2,
231 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius, 0);
232 trans_middle_spacer_sub_water_pipe_side_torus_left2->RegisterYourself();
233 trans_middle_spacer_sub_water_pipe_side_torus_right2->RegisterYourself();
235 TGeoTubeSeg* middle_spacer_sub_water_pipe_straight_tube_side2 =
new TGeoTubeSeg(
"middle_spacer_sub_water_pipe_straight_tube_side2", 0., water_pipe_outer_radius, water_pipe_straight_tube_side2_length, 0, 360);
237 TGeoRotation* rotate_middle_spacer_sub_water_pipe_straight_tube_side2 =
new TGeoRotation(
"rotate_middle_spacer_sub_water_pipe_straight_tube_side2", 0, 90, 0);
238 rotate_middle_spacer_sub_water_pipe_straight_tube_side2->RegisterYourself();
240 TGeoCombiTrans* combtrans_middle_spacer_sub_water_pipe_straight_tube_side_left2 =
new TGeoCombiTrans(
"combtrans_middle_spacer_sub_water_pipe_straight_tube_side_left2", +(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length * 2 + water_pipe_side_position_radius,
241 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius - water_pipe_straight_tube_side2_length, 0, rotate_middle_spacer_sub_water_pipe_straight_tube_side2);
243 TGeoCombiTrans* combtrans_middle_spacer_sub_water_pipe_straight_tube_side_right2 =
new TGeoCombiTrans(
"combtrans_middle_spacer_sub_water_pipe_straight_tube_side_right2", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length * 2 - water_pipe_side_position_radius,
244 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius - water_pipe_straight_tube_side2_length, 0, rotate_middle_spacer_sub_water_pipe_straight_tube_side2);
246 combtrans_middle_spacer_sub_water_pipe_straight_tube_side_left2->RegisterYourself();
247 combtrans_middle_spacer_sub_water_pipe_straight_tube_side_right2->RegisterYourself();
249 TGeoCompositeShape* middle_spacer_shape =
new TGeoCompositeShape(
"middle_spacer_shape",
250 "middle_spacer_main + middle_spacer_cover_bothside"
251 " - middle_spacer_sub_water_pipe_main_torus - middle_spacer_sub_water_pipe_side_torus_left1:trans_middle_spacer_sub_water_pipe_side_torus_left1 - middle_spacer_sub_water_pipe_side_torus_right1:trans_middle_spacer_sub_water_pipe_side_torus_right1"
252 " - middle_spacer_sub_water_pipe_straight_tube_side1:combtrans_rotated_middle_spacer_sub_water_pipe_straight_tube_side1_left - middle_spacer_sub_water_pipe_straight_tube_side1:combtrans_rotated_middle_spacer_sub_water_pipe_straight_tube_side1_right"
253 " - middle_spacer_sub_water_pipe_side_torus_left2:trans_middle_spacer_sub_water_pipe_side_torus_left2 - middle_spacer_sub_water_pipe_side_torus_right2:trans_middle_spacer_sub_water_pipe_side_torus_right2"
254 " - middle_spacer_sub_water_pipe_straight_tube_side2:combtrans_middle_spacer_sub_water_pipe_straight_tube_side_left2 - middle_spacer_sub_water_pipe_straight_tube_side2:combtrans_middle_spacer_sub_water_pipe_straight_tube_side_right2");
256 TGeoVolume* middle_spacer =
new TGeoVolume(
"middle_spacer", middle_spacer_shape, kMedAlu);
257 middle_spacer->SetLineColor(kTeal - 4);
258 mHalfPSU->AddNode(middle_spacer, 0,
nullptr);
264 Double_t electric_board_thickness = 0.171;
265 Double_t electric_board_max_radius1 = 26.706;
266 Double_t electric_board_min_radius1 = 17.0;
267 Double_t electric_board_sub_rectangle_middle_height = 5 + 4.347;
268 Double_t electric_board_sub_rectangle_middle_width = electric_board_max_radius1 * 2;
269 Double_t electric_board_sub_rectangle_bottom_height = 10.00;
270 Double_t electric_board_sub_rectangle_bottom_width = 20.80;
271 Double_t electric_board_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness / 2;
273 TGeoTubeSeg* electric_board_main =
new TGeoTubeSeg(
"electric_board_main", electric_board_min_radius1, electric_board_max_radius1, electric_board_thickness / 2, 180, 0);
274 TGeoTranslation* trans_electric_board_main =
new TGeoTranslation(
"trans_electric_board_main", 0, 0, electric_board_position_z);
275 trans_electric_board_main->RegisterYourself();
277 TGeoBBox* electric_board_sub_rectangle_middle =
new TGeoBBox(
"electric_board_sub_rectangle_middle", electric_board_sub_rectangle_middle_width / 2., electric_board_sub_rectangle_middle_height / 2., electric_board_thickness / 2. + delta_thickness);
278 TGeoBBox* electric_board_sub_rectangle_bottom =
new TGeoBBox(
"electric_board_sub_rectangle_bottom", electric_board_sub_rectangle_bottom_width / 2., electric_board_sub_rectangle_bottom_height / 2., electric_board_thickness / 2. + delta_thickness);
280 TGeoTranslation* trans_electric_board_sub_rectangle_middle =
new TGeoTranslation(
"trans_electric_board_sub_rectangle_middle", 0, -electric_board_sub_rectangle_middle_height / 2., electric_board_position_z);
281 TGeoTranslation* trans_electric_board_sub_rectangle_bottom =
new TGeoTranslation(
"trans_electric_board_sub_rectangle_bottom", 0, -(24.6 + electric_board_sub_rectangle_bottom_height / 2.), electric_board_position_z);
282 trans_electric_board_sub_rectangle_middle->RegisterYourself();
283 trans_electric_board_sub_rectangle_bottom->RegisterYourself();
285 Double_t electric_board_add_rectangle_side_height = 4.347;
286 Double_t electric_board_add_rectangle_side_width = 8.800;
288 TGeoBBox* electric_board_add_rectangle_side =
new TGeoBBox(
"electric_board_add_rectangle_side", electric_board_add_rectangle_side_width / 2., electric_board_add_rectangle_side_height / 2., electric_board_thickness / 2.);
289 TGeoTranslation* trans_electric_board_add_rectangle_side_left =
new TGeoTranslation(
"trans_electric_board_add_rectangle_side_left", 28.4 / 2. + electric_board_add_rectangle_side_width / 2., -5.0 - electric_board_add_rectangle_side_height / 2., electric_board_position_z);
290 TGeoTranslation* trans_electric_board_add_rectangle_side_right =
new TGeoTranslation(
"trans_electric_board_add_rectangle_side_right", -(28.4 / 2. + electric_board_add_rectangle_side_width / 2.), -5.0 - electric_board_add_rectangle_side_height / 2., electric_board_position_z);
291 trans_electric_board_add_rectangle_side_left->RegisterYourself();
292 trans_electric_board_add_rectangle_side_right->RegisterYourself();
294 Double_t electric_board_sub_rectangle_side_width = 10.;
295 Double_t electric_board_sub_rectangle_side_height = 8.576;
297 TGeoBBox* electric_board_sub_rectangle_side =
new TGeoBBox(
"electric_board_sub_rectangle_side", electric_board_sub_rectangle_side_width / 2., electric_board_sub_rectangle_side_height / 2., electric_board_thickness / 2. + delta_thickness);
298 TGeoTranslation* trans_electric_board_sub_rectangle_side_left =
new TGeoTranslation(
"trans_electric_board_sub_rectangle_side_left", 28.4 / 2 + 8.8 + electric_board_sub_rectangle_side_width / 2., -5.0 - electric_board_sub_rectangle_side_height / 2., electric_board_position_z);
299 TGeoTranslation* trans_electric_board_sub_rectangle_side_right =
new TGeoTranslation(
"trans_electric_board_sub_rectangle_side_right", -(28.4 / 2 + 8.8 + electric_board_sub_rectangle_side_width / 2.), -5.0 - electric_board_sub_rectangle_side_height / 2., electric_board_position_z);
300 trans_electric_board_sub_rectangle_side_left->RegisterYourself();
301 trans_electric_board_sub_rectangle_side_right->RegisterYourself();
303 Double_t electric_board_sub_box_height = 1.1;
304 Double_t electric_board_sub_box_width = 1.1;
306 TGeoBBox* electric_board_sub_box =
new TGeoBBox(
"electric_board_sub_box", electric_board_sub_box_width / 2, electric_board_sub_box_height / 2, electric_board_thickness / 2 + delta_thickness);
308 TGeoCompositeShape* rotated_electric_board_sub_box[24];
310 std::string name_electric_board_shape =
311 "electric_board_main:trans_electric_board_main - electric_board_sub_rectangle_middle:trans_electric_board_sub_rectangle_middle - electric_board_sub_rectangle_bottom:trans_electric_board_sub_rectangle_bottom"
312 " + electric_board_add_rectangle_side:trans_electric_board_add_rectangle_side_left + electric_board_add_rectangle_side:trans_electric_board_add_rectangle_side_right"
313 " - electric_board_sub_rectangle_side:trans_electric_board_sub_rectangle_side_left - electric_board_sub_rectangle_side:trans_electric_board_sub_rectangle_side_right";
315 for (Int_t iB = 0; iB < 11; ++iB) {
317 Double_t block_angle = (180. - block_angle_index[iB]) / 2. * TMath::Pi() / 180.;
319 TGeoRotation* rotate_electric_board_sub_box_left =
new TGeoRotation(Form(
"rotate_electric_board_sub_box_No%d", iB * 2), 180 - block_angle * 180. / TMath::Pi(), 0, 0);
320 TGeoRotation* rotate_electric_board_sub_box_right =
new TGeoRotation(Form(
"rotate_electric_board_sub_box_No%d", iB * 2 + 1), block_angle * 180. / TMath::Pi(), 0, 0);
321 rotate_electric_board_sub_box_left->RegisterYourself();
322 rotate_electric_board_sub_box_right->RegisterYourself();
324 Double_t cent_block_left[] = {block_radius * TMath::Cos(block_angle), -block_radius * TMath::Sin(block_angle), electric_board_position_z};
325 Double_t cent_block_right[] = {block_radius * TMath::Cos(TMath::Pi() - block_angle), -block_radius * TMath::Sin(TMath::Pi() - block_angle), electric_board_position_z};
327 TGeoCombiTrans* combtrans_electric_board_sub_box_left =
new TGeoCombiTrans(Form(
"combtrans_electric_board_sub_box_No%d", 2 * iB), cent_block_left[0], cent_block_left[1], cent_block_left[2], rotate_electric_board_sub_box_left);
328 TGeoCombiTrans* combtrans_electric_board_sub_box_right =
new TGeoCombiTrans(Form(
"combtrans_electric_board_sub_box_No%d", 2 * iB + 1), cent_block_right[0], cent_block_right[1], cent_block_right[2], rotate_electric_board_sub_box_right);
329 combtrans_electric_board_sub_box_left->RegisterYourself();
330 combtrans_electric_board_sub_box_right->RegisterYourself();
332 name_electric_board_shape += Form(
"-electric_board_sub_box:combtrans_electric_board_sub_box_No%d", 2 * iB);
333 name_electric_board_shape += Form(
"-electric_board_sub_box:combtrans_electric_board_sub_box_No%d", 2 * iB + 1);
336 TGeoTranslation* trans_electric_board_sub_box_left =
new TGeoTranslation(
"trans_electric_board_sub_box_left", 22.259 - electric_board_sub_box_width / 2, -8.305 + electric_board_sub_box_height / 2, electric_board_position_z);
337 trans_electric_board_sub_box_left->RegisterYourself();
338 name_electric_board_shape +=
"-electric_board_sub_box:trans_electric_board_sub_box_left";
340 TGeoTranslation* trans_electric_board_sub_box_right =
new TGeoTranslation(
"trans_electric_board_sub_box_right", -22.247 + electric_board_sub_box_width / 2, -8.305 + electric_board_sub_box_height / 2, electric_board_position_z);
341 trans_electric_board_sub_box_right->RegisterYourself();
342 name_electric_board_shape +=
"-electric_board_sub_box:trans_electric_board_sub_box_right";
344 TGeoCompositeShape* electric_board_shape =
new TGeoCompositeShape(
"electric_board_shape", name_electric_board_shape.c_str());
346 TGeoRotation* trans_electric_board_front =
new TGeoRotation(
"trans_electric_board_front", 0, 0, 0);
347 TGeoRotation* trans_electric_board_back =
new TGeoRotation(
"trans_electric_board_back", 180, 180, 0);
349 TGeoVolume* electric_board =
new TGeoVolume(
"electric_board", electric_board_shape, kMedPeek);
350 electric_board->SetLineColor(kGreen + 2);
351 mHalfPSU->AddNode(electric_board, 0, trans_electric_board_front);
352 mHalfPSU->AddNode(electric_board, 0, trans_electric_board_back);
358 TGeoTorus* water_pipe_main_torus =
new TGeoTorus(
"water_pipe_main_torus", water_pipe_main_position_radius, water_pipe_inner_radius, water_pipe_outer_radius, 180 + (180 - water_pipe_main_angle) / 2., water_pipe_main_angle);
360 TGeoTorus* water_pipe_side_torus_left1 =
new TGeoTorus(
"water_pipe_side_torus_left1", water_pipe_side_position_radius, water_pipe_inner_radius, water_pipe_outer_radius, 90, water_pipe_side_angle);
361 TGeoTorus* water_pipe_side_torus_right1 =
new TGeoTorus(
"water_pipe_side_torus_right1", water_pipe_side_position_radius, water_pipe_inner_radius, water_pipe_outer_radius, 90 - water_pipe_side_angle, water_pipe_side_angle);
363 TGeoTranslation* trans_water_pipe_side_torus_left1 =
new TGeoTranslation(
"trans_water_pipe_side_torus_left1", (water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.), -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.), 0);
364 TGeoTranslation* trans_water_pipe_side_torus_right1 =
new TGeoTranslation(
"trans_water_pipe_side_torus_right1", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.), -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.), 0);
365 trans_water_pipe_side_torus_left1->RegisterYourself();
366 trans_water_pipe_side_torus_right1->RegisterYourself();
368 TGeoTubeSeg* water_pipe_straight_tube_side1 =
new TGeoTubeSeg(
"water_pipe_straight_tube_side1", water_pipe_inner_radius, water_pipe_outer_radius, water_pipe_straight_tube_side1_length, 0, 360);
370 TGeoRotation* rotate_water_pipe_straight_tube_side1 =
new TGeoRotation(
"rotate_water_pipe_straight_tube_side1", 90, 90, 0);
371 rotate_water_pipe_straight_tube_side1->RegisterYourself();
373 TGeoCombiTrans* combtrans_rotated_water_pipe_straight_tube_side1_left =
new TGeoCombiTrans(
"combtrans_rotated_water_pipe_straight_tube_side1_left", (water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length,
374 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius, 0, rotate_water_pipe_straight_tube_side1);
375 TGeoCombiTrans* combtrans_rotated_water_pipe_straight_tube_side1_right =
new TGeoCombiTrans(
"combtrans_rotated_water_pipe_straight_tube_side1_right", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length,
376 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius, 0, rotate_water_pipe_straight_tube_side1);
377 combtrans_rotated_water_pipe_straight_tube_side1_left->RegisterYourself();
378 combtrans_rotated_water_pipe_straight_tube_side1_right->RegisterYourself();
380 TGeoTorus* water_pipe_side_torus_left2 =
new TGeoTorus(
"water_pipe_side_torus_left2", water_pipe_side_position_radius, water_pipe_inner_radius, water_pipe_outer_radius, 0, 90);
381 TGeoTorus* water_pipe_side_torus_right2 =
new TGeoTorus(
"water_pipe_side_torus_right2", water_pipe_side_position_radius, water_pipe_inner_radius, water_pipe_outer_radius, 90, 90);
382 TGeoTranslation* trans_water_pipe_side_torus_left2 =
new TGeoTranslation(
"trans_water_pipe_side_torus_left2", +(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length * 2, -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius, 0);
383 TGeoTranslation* trans_water_pipe_side_torus_right2 =
new TGeoTranslation(
"trans_water_pipe_side_torus_right2", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length * 2, -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius, 0);
384 trans_water_pipe_side_torus_left2->RegisterYourself();
385 trans_water_pipe_side_torus_right2->RegisterYourself();
387 TGeoTubeSeg* water_pipe_straight_tube_side2 =
new TGeoTubeSeg(
"water_pipe_straight_tube_side2", water_pipe_inner_radius, water_pipe_outer_radius, water_pipe_straight_tube_side2_length, 0, 360);
388 TGeoRotation* rotate_water_pipe_straight_tube_side2 =
new TGeoRotation(
"rotate_water_pipe_straight_tube_side2", 0, 90, 0);
390 rotate_water_pipe_straight_tube_side2->RegisterYourself();
392 TGeoCombiTrans* combtrans_water_pipe_straight_tube_side_left2 =
new TGeoCombiTrans(
"combtrans_water_pipe_straight_tube_side_left2", +(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length * 2 + water_pipe_side_position_radius,
393 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius - water_pipe_straight_tube_side2_length, 0, rotate_water_pipe_straight_tube_side2);
395 TGeoCombiTrans* combtrans_water_pipe_straight_tube_side_right2 =
new TGeoCombiTrans(
"combtrans_water_pipe_straight_tube_side_right2", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length * 2 - water_pipe_side_position_radius,
396 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius - water_pipe_straight_tube_side2_length, 0, rotate_water_pipe_straight_tube_side2);
398 combtrans_water_pipe_straight_tube_side_left2->RegisterYourself();
399 combtrans_water_pipe_straight_tube_side_right2->RegisterYourself();
402 TGeoTorus* pipe_side_torus_left3 =
new TGeoTorus(
"pipe_side_torus_left3", water_pipe_side_position_radius, water_pipe_inner_radius, water_pipe_outer_radius, 0, 90);
403 TGeoRotation* rotate_water_torus_left3 =
new TGeoRotation(
"rotate_water_torus_left3", -90, 90, 0);
404 TGeoCombiTrans* combtrans_water_torus_left3 =
new TGeoCombiTrans(
"combtrans_water_torus_left3", +(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length * 2 + water_pipe_side_position_radius,
405 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - 2 * water_pipe_straight_tube_side2_length, -water_pipe_side_position_radius, rotate_water_torus_left3);
406 combtrans_water_torus_left3->RegisterYourself();
407 Float_t water_pipe_straight_tube_side3_length = 5;
408 TGeoTubeSeg* pipe_straight_tube_left3 =
new TGeoTubeSeg(
"pipe_straight_tube_left3", water_pipe_inner_radius, water_pipe_outer_radius, water_pipe_straight_tube_side3_length, 0, 360);
409 TGeoRotation* rotate_water_straight_tube_left3 =
new TGeoRotation(
"rotate_water_straight_tube_left3", 0, 0, 0);
410 TGeoCombiTrans* combtrans_water_straight_tube_side_left3 =
new TGeoCombiTrans(
"combtrans_water_straight_tube_side_left3", +(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length * 2 + water_pipe_side_position_radius,
411 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - 2 * water_pipe_straight_tube_side2_length - water_pipe_side_position_radius, -water_pipe_straight_tube_side3_length - water_pipe_side_position_radius, rotate_water_straight_tube_left3);
412 combtrans_water_straight_tube_side_left3->RegisterYourself();
414 TGeoTorus* pipe_side_torus_rigth3 =
new TGeoTorus(
"pipe_side_torus_rigth3", water_pipe_side_position_radius, water_pipe_inner_radius, water_pipe_outer_radius, 0, 90);
415 TGeoRotation* rotate_water_torus_rigth3 =
new TGeoRotation(
"rotate_water_torus_rigth3", -90, 90, 0);
416 TGeoCombiTrans* combtrans_water_torus_rigth3 =
new TGeoCombiTrans(
"combtrans_water_torus_rigth3", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length * 2 - water_pipe_side_position_radius,
417 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - 2 * water_pipe_straight_tube_side2_length, -water_pipe_side_position_radius, rotate_water_torus_rigth3);
418 combtrans_water_torus_rigth3->RegisterYourself();
420 TGeoTubeSeg* pipe_straight_tube_rigth3 =
new TGeoTubeSeg(
"pipe_straight_tube_rigth3", water_pipe_inner_radius, water_pipe_outer_radius, water_pipe_straight_tube_side3_length, 0, 360);
421 TGeoRotation* rotate_water_straight_tube_rigth3 =
new TGeoRotation(
"rotate_water_straight_tube_rigth3", 0, 0, 0);
422 TGeoCombiTrans* combtrans_water_straight_tube_side_rigth3 =
new TGeoCombiTrans(
"combtrans_water_straight_tube_side_rigth3", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length * 2 - water_pipe_side_position_radius,
423 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - 2 * water_pipe_straight_tube_side2_length - water_pipe_side_position_radius, -water_pipe_straight_tube_side3_length - water_pipe_side_position_radius, rotate_water_straight_tube_rigth3);
424 combtrans_water_straight_tube_side_rigth3->RegisterYourself();
426 TGeoCompositeShape* water_pipe_toPatchPanel =
new TGeoCompositeShape(
"water_pipe_toPatchPanel",
427 "pipe_straight_tube_left3:combtrans_water_straight_tube_side_left3"
428 " + pipe_side_torus_left3:combtrans_water_torus_left3"
429 " + pipe_straight_tube_rigth3:combtrans_water_straight_tube_side_rigth3"
430 " + pipe_side_torus_rigth3:combtrans_water_torus_rigth3");
431 TGeoVolume* poly_pipe =
new TGeoVolume(
"poly_pipe_toPatchPanel", water_pipe_toPatchPanel, kMedPolyPipe);
432 poly_pipe->SetLineColor(kGray);
433 mHalfPSU->AddNode(poly_pipe, 1,
nullptr);
437 TGeoCompositeShape* water_pipe_shape =
new TGeoCompositeShape(
"water_pipe_shape",
438 "water_pipe_main_torus + water_pipe_side_torus_left1:trans_water_pipe_side_torus_left1 + water_pipe_side_torus_right1:trans_water_pipe_side_torus_right1"
439 " + water_pipe_straight_tube_side1:combtrans_rotated_water_pipe_straight_tube_side1_left + water_pipe_straight_tube_side1:combtrans_rotated_water_pipe_straight_tube_side1_right"
440 " + water_pipe_side_torus_left2:trans_water_pipe_side_torus_left2 + water_pipe_side_torus_right2:trans_water_pipe_side_torus_right2"
441 " + water_pipe_straight_tube_side2:combtrans_water_pipe_straight_tube_side_left2 + water_pipe_straight_tube_side2:combtrans_water_pipe_straight_tube_side_right2"
442 " + pipe_straight_tube_left3:combtrans_water_straight_tube_side_left3"
443 " + pipe_side_torus_left3:combtrans_water_torus_left3"
444 " + pipe_straight_tube_rigth3:combtrans_water_straight_tube_side_rigth3"
445 " + pipe_side_torus_rigth3:combtrans_water_torus_rigth3");
447 TGeoVolume* water_pipe =
new TGeoVolume(
"water_pipe", water_pipe_shape, kMedAlu);
448 water_pipe->SetLineColor(kGray);
449 mHalfPSU->AddNode(water_pipe, 1,
nullptr);
455 TGeoTorus* water_main_torus =
new TGeoTorus(
"water_main_torus", water_pipe_main_position_radius, 0, water_pipe_inner_radius, 180 + (180 - water_pipe_main_angle) / 2., water_pipe_main_angle);
457 TGeoTorus* water_side_torus_left1 =
new TGeoTorus(
"water_side_torus_left1", water_pipe_side_position_radius, 0, water_pipe_inner_radius, 90, water_pipe_side_angle);
458 TGeoTorus* water_side_torus_right1 =
new TGeoTorus(
"water_side_torus_right1", water_pipe_side_position_radius, 0, water_pipe_inner_radius, 90 - water_pipe_side_angle, water_pipe_side_angle);
460 TGeoTranslation* trans_water_side_torus_left1 =
new TGeoTranslation(
"trans_water_side_torus_left1", (water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.), -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.), 0);
461 TGeoTranslation* trans_water_side_torus_right1 =
new TGeoTranslation(
"trans_water_side_torus_right1", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.), -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.), 0);
462 trans_water_side_torus_left1->RegisterYourself();
463 trans_water_side_torus_right1->RegisterYourself();
465 TGeoTubeSeg* water_straight_tube_side1 =
new TGeoTubeSeg(
"water_straight_tube_side1", 0, water_pipe_inner_radius, water_pipe_straight_tube_side1_length, 0, 360);
466 TGeoRotation* rotate_water_straight_tube_side1 =
new TGeoRotation(
"rotate_water_straight_tube_side1", 90, 90, 0);
467 rotate_water_straight_tube_side1->RegisterYourself();
469 TGeoCombiTrans* combtrans_rotated_water_straight_tube_side1_left =
new TGeoCombiTrans(
"combtrans_rotated_water_straight_tube_side1_left", (water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length, -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius, 0, rotate_water_straight_tube_side1);
470 TGeoCombiTrans* combtrans_rotated_water_straight_tube_side1_right =
new TGeoCombiTrans(
"combtrans_rotated_water_straight_tube_side1_right", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length, -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius, 0, rotate_water_straight_tube_side1);
471 combtrans_rotated_water_straight_tube_side1_left->RegisterYourself();
472 combtrans_rotated_water_straight_tube_side1_right->RegisterYourself();
474 TGeoTorus* water_side_torus_left2 =
new TGeoTorus(
"water_side_torus_left2", water_pipe_side_position_radius, 0, water_pipe_inner_radius, 0, 90);
475 TGeoTorus* water_side_torus_right2 =
new TGeoTorus(
"water_side_torus_right2", water_pipe_side_position_radius, 0, water_pipe_inner_radius, 90, 90);
476 TGeoTranslation* trans_water_side_torus_left2 =
new TGeoTranslation(
"trans_water_side_torus_left2", +(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length * 2, -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius, 0);
477 TGeoTranslation* trans_water_side_torus_right2 =
new TGeoTranslation(
"trans_water_side_torus_right2", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length * 2, -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius, 0);
478 trans_water_side_torus_left2->RegisterYourself();
479 trans_water_side_torus_right2->RegisterYourself();
481 TGeoTubeSeg* water_straight_tube_side2 =
new TGeoTubeSeg(
"water_straight_tube_side2", 0, water_pipe_inner_radius, water_pipe_straight_tube_side2_length, 0, 360);
482 TGeoRotation* rotate_water_straight_tube_side2 =
new TGeoRotation(
"rotate_water_straight_tube_side2", 0, 90, 0);
483 rotate_water_straight_tube_side2->RegisterYourself();
485 TGeoCombiTrans* combtrans_water_straight_tube_side_left2 =
new TGeoCombiTrans(
"combtrans_water_straight_tube_side_left2", +(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_straight_tube_side1_length * 2 + water_pipe_side_position_radius,
486 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius - water_pipe_straight_tube_side2_length, 0, rotate_water_straight_tube_side2);
488 TGeoCombiTrans* combtrans_water_straight_tube_side_right2 =
new TGeoCombiTrans(
"combtrans_water_straight_tube_side_right2", -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Cos((90 - water_pipe_side_angle) * TMath::Pi() / 180.) - water_pipe_straight_tube_side1_length * 2 - water_pipe_side_position_radius,
489 -(water_pipe_main_position_radius + water_pipe_side_position_radius) * TMath::Sin((90 - water_pipe_side_angle) * TMath::Pi() / 180.) + water_pipe_side_position_radius - water_pipe_side_position_radius - water_pipe_straight_tube_side2_length, 0, rotate_water_straight_tube_side2);
491 combtrans_water_straight_tube_side_left2->RegisterYourself();
492 combtrans_water_straight_tube_side_right2->RegisterYourself();
495 TGeoTorus* water_side_torus_left3 =
new TGeoTorus(
"water_side_torus_left3", water_pipe_side_position_radius, 0, water_pipe_inner_radius, 0, 90);
496 TGeoTubeSeg* water_straight_tube_left3 =
new TGeoTubeSeg(
"water_straight_tube_left3", 0, water_pipe_inner_radius, water_pipe_straight_tube_side3_length, 0, 360);
497 TGeoTorus* water_side_torus_rigth3 =
new TGeoTorus(
"water_side_torus_rigth3", water_pipe_side_position_radius, 0, water_pipe_inner_radius, 0, 90);
498 TGeoTubeSeg* water_straight_tube_rigth3 =
new TGeoTubeSeg(
"water_straight_tube_rigth3", 0, water_pipe_inner_radius, water_pipe_straight_tube_side3_length, 0, 360);
501 TGeoCompositeShape* water_shape =
new TGeoCompositeShape(
"water_shape",
502 "water_main_torus + water_side_torus_left1:trans_water_side_torus_left1 + water_side_torus_right1:trans_water_side_torus_right1"
503 " + water_straight_tube_side1:combtrans_rotated_water_straight_tube_side1_left + water_straight_tube_side1:combtrans_rotated_water_straight_tube_side1_right"
504 " + water_side_torus_left2:trans_water_side_torus_left2 + water_side_torus_right2:trans_water_side_torus_right2"
505 " + water_straight_tube_side2:combtrans_water_straight_tube_side_left2 + water_straight_tube_side2:combtrans_water_straight_tube_side_right2"
506 " + water_straight_tube_left3:combtrans_water_straight_tube_side_left3"
507 " + water_side_torus_left3:combtrans_water_torus_left3"
508 " + water_straight_tube_rigth3:combtrans_water_straight_tube_side_rigth3"
509 " + water_side_torus_rigth3:combtrans_water_torus_rigth3");
511 TGeoVolume* water =
new TGeoVolume(
"water", water_shape, kMed_Water);
512 water->SetLineColor(kBlue);
513 mHalfPSU->AddNode(water, 1,
nullptr);
521 Double_t DCDC_sheet1_thickness = 0.040;
522 Double_t DCDC_sheet1_height = 1.694;
523 Double_t DCDC_sheet1_width = 4.348;
524 Double_t DCDC_sheet1_radius = (block_radius + DCDC_sheet1_width / 2. - 0.673 - 1.85 + 1.85 / 2.);
526 Double_t DCDC_sheet1_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + middle_spacer_cover_block_thickness + DCDC_sheet1_thickness / 2;
529 TGeoBBox* DCDC_sheet1_box =
new TGeoBBox(
"DCDC_sheet1_box", DCDC_sheet1_width / 2., DCDC_sheet1_height / 2., DCDC_sheet1_thickness / 2.);
531 TGeoCompositeShape* rotated_DCDC_sheet1_box[24];
533 std::string name_DCDC_sheet1_box =
"";
535 for (Int_t iB = 0; iB < 11; ++iB) {
537 Double_t block_angle = (180. - block_angle_index[iB]) / 2. * TMath::Pi() / 180.;
539 TGeoRotation* rotate_DCDC_sheet1_box_left =
new TGeoRotation(Form(
"rotate_DCDC_sheet1_box_No%d", iB * 2), 180 - block_angle * 180. / TMath::Pi(), 0, 0);
540 TGeoRotation* rotate_DCDC_sheet1_box_right =
new TGeoRotation(Form(
"rotate_DCDC_sheet1_box_No%d", iB * 2 + 1), block_angle * 180. / TMath::Pi(), 0, 0);
541 rotate_DCDC_sheet1_box_left->RegisterYourself();
542 rotate_DCDC_sheet1_box_right->RegisterYourself();
544 Double_t cent_block_left[] = {DCDC_sheet1_radius * TMath::Cos(block_angle), -DCDC_sheet1_radius * TMath::Sin(block_angle), DCDC_sheet1_position_z};
545 Double_t cent_block_right[] = {DCDC_sheet1_radius * TMath::Cos(TMath::Pi() - block_angle), -DCDC_sheet1_radius * TMath::Sin(TMath::Pi() - block_angle), DCDC_sheet1_position_z};
547 TGeoCombiTrans* combtrans_DCDC_sheet1_box_left =
new TGeoCombiTrans(Form(
"combtrans_DCDC_sheet1_box_No%d", 2 * iB), cent_block_left[0], cent_block_left[1], cent_block_left[2], rotate_DCDC_sheet1_box_left);
548 TGeoCombiTrans* combtrans_DCDC_sheet1_box_right =
new TGeoCombiTrans(Form(
"combtrans_DCDC_sheet1_box_No%d", 2 * iB + 1), cent_block_right[0], cent_block_right[1], cent_block_right[2], rotate_DCDC_sheet1_box_right);
549 combtrans_DCDC_sheet1_box_left->RegisterYourself();
550 combtrans_DCDC_sheet1_box_right->RegisterYourself();
553 name_DCDC_sheet1_box += Form(
"DCDC_sheet1_box:combtrans_DCDC_sheet1_box_No%d", 2 * iB);
555 name_DCDC_sheet1_box += Form(
"+DCDC_sheet1_box:combtrans_DCDC_sheet1_box_No%d", 2 * iB);
558 name_DCDC_sheet1_box += Form(
"+DCDC_sheet1_box:combtrans_DCDC_sheet1_box_No%d", 2 * iB + 1);
561 TGeoBBox* DCDC_sheet1_box_side =
new TGeoBBox(
"DCDC_sheet1_box_side", DCDC_sheet1_height / 2., DCDC_sheet1_width / 2., DCDC_sheet1_thickness / 2.);
563 TGeoTranslation* trans_DCDC_sheet1_box_left =
new TGeoTranslation(
"trans_DCDC_sheet1_box_left", 22.259 - middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2 - 0.576, DCDC_sheet1_position_z);
564 trans_DCDC_sheet1_box_left->RegisterYourself();
565 name_DCDC_sheet1_box +=
"+DCDC_sheet1_box_side:trans_DCDC_sheet1_box_left";
567 TGeoTranslation* trans_DCDC_sheet1_box_right =
new TGeoTranslation(
"trans_DCDC_sheet1_box_right", -22.247 + middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2 - 0.576, DCDC_sheet1_position_z);
568 trans_DCDC_sheet1_box_right->RegisterYourself();
569 name_DCDC_sheet1_box +=
"+DCDC_sheet1_box_side:trans_DCDC_sheet1_box_right";
571 TGeoCompositeShape* DCDC_sheet1_shape =
new TGeoCompositeShape(
"DCDC_sheet1_shape", name_DCDC_sheet1_box.c_str());
573 TGeoVolume* DCDC_sheet1 =
new TGeoVolume(
"DCDC_sheet1", DCDC_sheet1_shape, kMedPeek);
574 DCDC_sheet1->SetLineColor(kGreen);
576 TGeoRotation* trans_DCDC_sheet1_front =
new TGeoRotation(
"trans_DCDC_sheet1_front", 0, 0, 0);
577 TGeoRotation* trans_DCDC_sheet1_back =
new TGeoRotation(
"trans_DCDC_sheet1_back", 180, 180, 0);
579 mHalfPSU->AddNode(DCDC_sheet1, 0, trans_DCDC_sheet1_front);
580 mHalfPSU->AddNode(DCDC_sheet1, 0, trans_DCDC_sheet1_back);
584 Double_t DCDC_cover_thickness = 0.800;
585 Double_t DCDC_cover_outer_height = 1.400;
586 Double_t DCDC_cover_outer_width = 1.85;
587 Double_t DCDC_cover_depth = 0.05;
588 Double_t DCDC_cover_inner_width = DCDC_cover_outer_width - 2 * DCDC_cover_depth;
589 Double_t DCDC_cover_inner_height = DCDC_cover_outer_height - 2 * DCDC_cover_depth;
591 Double_t DCDC_cover_position_z = DCDC_sheet1_position_z + DCDC_sheet1_thickness / 2. + DCDC_cover_thickness / 2.;
593 TGeoBBox* DCDC_cover_outer_box =
new TGeoBBox(
"DCDC_cover_outer_box", DCDC_cover_outer_width / 2., DCDC_cover_outer_height / 2., DCDC_cover_thickness / 2.);
594 TGeoBBox* DCDC_cover_innner_box =
new TGeoBBox(
"DCDC_cover_inner_box", DCDC_cover_inner_width / 2., DCDC_cover_inner_height / 2., DCDC_cover_thickness / 2.);
596 TGeoCompositeShape* rotated_DCDC_cover_outer_box[23];
597 TGeoCompositeShape* rotated_DCDC_cover_inner_box[23];
599 std::string name_DCDC_cover_box =
"";
601 for (Int_t iB = 0; iB < 11; ++iB) {
603 Double_t block_angle = (180. - block_angle_index[iB]) / 2. * TMath::Pi() / 180.;
605 TGeoRotation* rotate_DCDC_cover_box_left =
new TGeoRotation(Form(
"rotate_DCDC_cover_box_No%d", iB * 2), 180 - block_angle * 180. / TMath::Pi(), 0, 0);
606 TGeoRotation* rotate_DCDC_cover_box_right =
new TGeoRotation(Form(
"rotate_DCDC_cover_box_No%d", iB * 2 + 1), block_angle * 180. / TMath::Pi(), 0, 0);
607 rotate_DCDC_cover_box_left->RegisterYourself();
608 rotate_DCDC_cover_box_right->RegisterYourself();
610 Double_t cent_block_left[] = {block_radius * TMath::Cos(block_angle), -block_radius * TMath::Sin(block_angle), DCDC_cover_position_z};
611 Double_t cent_block_right[] = {block_radius * TMath::Cos(TMath::Pi() - block_angle), -block_radius * TMath::Sin(TMath::Pi() - block_angle), DCDC_cover_position_z};
613 TGeoCombiTrans* combtrans_DCDC_cover_outer_box_left =
new TGeoCombiTrans(Form(
"combtrans_DCDC_cover_outer_box_No%d", 2 * iB), cent_block_left[0], cent_block_left[1], cent_block_left[2], rotate_DCDC_cover_box_left);
614 TGeoCombiTrans* combtrans_DCDC_cover_outer_box_right =
new TGeoCombiTrans(Form(
"combtrans_DCDC_cover_outer_box_No%d", 2 * iB + 1), cent_block_right[0], cent_block_right[1], cent_block_right[2], rotate_DCDC_cover_box_right);
615 combtrans_DCDC_cover_outer_box_left->RegisterYourself();
616 combtrans_DCDC_cover_outer_box_right->RegisterYourself();
618 TGeoCombiTrans* combtrans_DCDC_cover_inner_box_left =
new TGeoCombiTrans(Form(
"combtrans_DCDC_cover_inner_box_No%d", 2 * iB), cent_block_left[0], cent_block_left[1], cent_block_left[2] - 2 * DCDC_cover_depth, rotate_DCDC_cover_box_left);
619 TGeoCombiTrans* combtrans_DCDC_cover_inner_box_right =
new TGeoCombiTrans(Form(
"combtrans_DCDC_cover_inner_box_No%d", 2 * iB + 1), cent_block_right[0], cent_block_right[1], cent_block_right[2] - 2 * DCDC_cover_depth, rotate_DCDC_cover_box_right);
620 combtrans_DCDC_cover_inner_box_left->RegisterYourself();
621 combtrans_DCDC_cover_inner_box_right->RegisterYourself();
624 name_DCDC_cover_box += Form(
"DCDC_cover_outer_box:combtrans_DCDC_cover_outer_box_No%d - DCDC_cover_inner_box:combtrans_DCDC_cover_inner_box_No%d", 2 * iB, 2 * iB);
626 name_DCDC_cover_box += Form(
"+DCDC_cover_outer_box:combtrans_DCDC_cover_outer_box_No%d - DCDC_cover_inner_box:combtrans_DCDC_cover_inner_box_No%d", 2 * iB, 2 * iB);
628 name_DCDC_cover_box += Form(
"+DCDC_cover_outer_box:combtrans_DCDC_cover_outer_box_No%d - DCDC_cover_inner_box:combtrans_DCDC_cover_inner_box_No%d", 2 * iB + 1, 2 * iB + 1);
631 TGeoBBox* DCDC_cover_outer_box_side =
new TGeoBBox(
"DCDC_cover_outer_box_side", DCDC_cover_outer_height / 2., DCDC_cover_outer_width / 2., DCDC_cover_thickness / 2.);
632 TGeoBBox* DCDC_cover_innner_box_side =
new TGeoBBox(
"DCDC_cover_inner_box_side", DCDC_cover_inner_height / 2., DCDC_cover_inner_width / 2., DCDC_cover_thickness / 2.);
634 TGeoTranslation* trans_DCDC_cover_outer_box_left =
new TGeoTranslation(
"trans_DCDC_cover_outer_box_left", 22.259 - middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2, DCDC_cover_position_z);
635 TGeoTranslation* trans_DCDC_cover_inner_box_left =
new TGeoTranslation(
"trans_DCDC_cover_inner_box_left", 22.259 - middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2, DCDC_cover_position_z - 2 * DCDC_cover_depth);
636 trans_DCDC_cover_outer_box_left->RegisterYourself();
637 trans_DCDC_cover_inner_box_left->RegisterYourself();
638 name_DCDC_cover_box +=
"+DCDC_cover_outer_box_side:trans_DCDC_cover_outer_box_left - DCDC_cover_inner_box_side:trans_DCDC_cover_inner_box_left";
640 TGeoTranslation* trans_DCDC_cover_outer_box_right =
new TGeoTranslation(
"trans_DCDC_cover_outer_box_right", -22.247 + middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2, DCDC_cover_position_z);
641 TGeoTranslation* trans_DCDC_cover_inner_box_right =
new TGeoTranslation(
"trans_DCDC_cover_inner_box_right", -22.247 + middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2, DCDC_cover_position_z - 2 * DCDC_cover_depth);
642 trans_DCDC_cover_outer_box_right->RegisterYourself();
643 trans_DCDC_cover_inner_box_right->RegisterYourself();
644 name_DCDC_cover_box +=
"+DCDC_cover_outer_box_side:trans_DCDC_cover_outer_box_right - DCDC_cover_inner_box_side:trans_DCDC_cover_inner_box_right";
646 TGeoCompositeShape* DCDC_cover_shape =
new TGeoCompositeShape(
"DCDC_cover_shape", name_DCDC_cover_box.c_str());
647 TGeoVolume* DCDC_cover =
new TGeoVolume(
"DCDC_cover", DCDC_cover_shape, kMedAlu);
648 DCDC_cover->SetLineColor(kGray);
650 TGeoRotation* trans_DCDC_cover_front =
new TGeoRotation(
"trans_DCDC_cover_front", 0, 0, 0);
651 TGeoRotation* trans_DCDC_cover_back =
new TGeoRotation(
"trans_DCDC_cover_back", 180, 180, 0);
653 mHalfPSU->AddNode(DCDC_cover, 0, trans_DCDC_cover_front);
654 mHalfPSU->AddNode(DCDC_cover, 0, trans_DCDC_cover_back);
658 Double_t DCDC_connector_thickness = 0.225;
659 Double_t DCDC_connector_height = 1.44;
660 Double_t DCDC_connector_width = 0.305;
661 Double_t DCDC_connector_radius = (block_radius + DCDC_sheet1_width / 2. - 0.673 - 1.85 + 1.85 / 2. + DCDC_sheet1_width / 2 - 0.55 - 0.305 + 0.305 / 2.);
662 Double_t DCDC_connector_position_z = DCDC_sheet1_position_z + DCDC_sheet1_thickness / 2. + DCDC_connector_thickness / 2;
664 TGeoBBox* DCDC_connector_box =
new TGeoBBox(
"DCDC_connector_box", DCDC_connector_width / 2., DCDC_connector_height / 2., DCDC_connector_thickness / 2.);
666 TGeoCompositeShape* rotated_DCDC_connector_box[23];
668 std::string name_DCDC_connector_box =
"";
670 for (Int_t iB = 0; iB < 11; ++iB) {
672 Double_t block_angle = (180. - block_angle_index[iB]) / 2. * TMath::Pi() / 180.;
674 TGeoRotation* rotate_DCDC_connector_box_left =
new TGeoRotation(Form(
"rotate_DCDC_connector_box_No%d", iB * 2), 180 - block_angle * 180. / TMath::Pi(), 0, 0);
675 TGeoRotation* rotate_DCDC_connector_box_right =
new TGeoRotation(Form(
"rotate_DCDC_connector_box_No%d", iB * 2 + 1), block_angle * 180. / TMath::Pi(), 0, 0);
676 rotate_DCDC_connector_box_left->RegisterYourself();
677 rotate_DCDC_connector_box_right->RegisterYourself();
678 Double_t cent_block_left[] = {DCDC_connector_radius * TMath::Cos(block_angle), -DCDC_connector_radius * TMath::Sin(block_angle), DCDC_connector_position_z};
679 Double_t cent_block_right[] = {DCDC_connector_radius * TMath::Cos(TMath::Pi() - block_angle), -DCDC_connector_radius * TMath::Sin(TMath::Pi() - block_angle), DCDC_connector_position_z};
681 TGeoCombiTrans* combtrans_DCDC_connector_box_left =
new TGeoCombiTrans(Form(
"combtrans_DCDC_connector_box_No%d", 2 * iB), cent_block_left[0], cent_block_left[1], cent_block_left[2], rotate_DCDC_connector_box_left);
682 TGeoCombiTrans* combtrans_DCDC_connector_box_right =
new TGeoCombiTrans(Form(
"combtrans_DCDC_connector_box_No%d", 2 * iB + 1), cent_block_right[0], cent_block_right[1], cent_block_right[2], rotate_DCDC_connector_box_right);
683 combtrans_DCDC_connector_box_left->RegisterYourself();
684 combtrans_DCDC_connector_box_right->RegisterYourself();
687 name_DCDC_connector_box += Form(
"DCDC_connector_box:combtrans_DCDC_connector_box_No%d", 2 * iB);
689 name_DCDC_connector_box += Form(
"+DCDC_connector_box:combtrans_DCDC_connector_box_No%d", 2 * iB);
691 name_DCDC_connector_box += Form(
"+DCDC_connector_box:combtrans_DCDC_connector_box_No%d", 2 * iB + 1);
694 TGeoBBox* DCDC_connector_box_side =
new TGeoBBox(
"DCDC_connector_box_side", DCDC_connector_height / 2., DCDC_connector_width / 2., DCDC_connector_thickness / 2.);
696 TGeoTranslation* trans_DCDC_connector_box_left =
new TGeoTranslation(
"trans_DCDC_connector_box_left", 22.259 - middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2 - 2.019, DCDC_connector_position_z);
697 trans_DCDC_connector_box_left->RegisterYourself();
698 name_DCDC_connector_box +=
"+DCDC_connector_box_side:trans_DCDC_connector_box_left";
700 TGeoTranslation* trans_DCDC_connector_box_right =
new TGeoTranslation(
"trans_DCDC_connector_box_right", -22.247 + middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2 - 2.019, DCDC_connector_position_z);
701 trans_DCDC_connector_box_right->RegisterYourself();
702 name_DCDC_connector_box +=
"+DCDC_connector_box_side:trans_DCDC_connector_box_right";
704 TGeoCompositeShape* DCDC_connector_shape =
new TGeoCompositeShape(
"DCDC_connector_shape", name_DCDC_connector_box.c_str());
706 TGeoVolume* DCDC_connector =
new TGeoVolume(
"DCDC_connector", DCDC_connector_shape, kMedPeek);
707 DCDC_connector->SetLineColor(kGray + 2);
709 TGeoRotation* trans_DCDC_connector_front =
new TGeoRotation(
"trans_DCDC_connector_front", 0, 0, 0);
710 TGeoRotation* trans_DCDC_connector_back =
new TGeoRotation(
"trans_DCDC_connector_back", 180, 180, 0);
712 mHalfPSU->AddNode(DCDC_connector, 0, trans_DCDC_connector_front);
713 mHalfPSU->AddNode(DCDC_connector, 0, trans_DCDC_connector_back);
721 Double_t mezzanine_prop_main_length = 1.615;
722 Double_t mezzanine_prop_main_radius = 0.476 / 2.;
723 Double_t mezzanine_prop_small_length = 0.16;
724 Double_t mezzanine_prop_small_radius = 0.3 / 2.;
725 Double_t mezzanine_prop_lid_radius = 0.57 / 2.;
727 Double_t mezzanine_prop_main_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length / 2;
728 Double_t mezzanine_prop_small_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length + mezzanine_prop_small_length / 2.;
729 Double_t mezzanine_prop_lid_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length + mezzanine_prop_small_length;
731 TGeoTubeSeg* mezzanine_prop_main_tube =
new TGeoTubeSeg(
"mezzanine_prop_main_tube", 0, mezzanine_prop_main_radius, mezzanine_prop_main_length / 2., 0, 360);
732 TGeoTubeSeg* mezzanine_prop_small_tube =
new TGeoTubeSeg(
"mezzanine_prop_small_tube", 0, mezzanine_prop_small_radius, mezzanine_prop_small_length / 2., 0, 360);
733 TGeoSphere* mezzanine_prop_lid_sphere =
new TGeoSphere(
"mezzanine_prop_lid_sphere", 0, mezzanine_prop_lid_radius, 0, 90, 0, 360);
734 TGeoTranslation* trans_mezzanine_prop_main_tube =
new TGeoTranslation(
"trans_mezzanine_prop_main_tube", 0, 0, mezzanine_prop_main_position_z);
735 TGeoTranslation* trans_mezzanine_prop_small_tube =
new TGeoTranslation(
"trans_mezzanine_prop_small_tube", 0, 0, mezzanine_prop_small_position_z);
736 TGeoTranslation* trans_mezzanine_prop_lid_sphere =
new TGeoTranslation(
"trans_mezzanine_prop_lid_sphere", 0, 0, mezzanine_prop_lid_position_z);
737 trans_mezzanine_prop_main_tube->RegisterYourself();
738 trans_mezzanine_prop_small_tube->RegisterYourself();
739 trans_mezzanine_prop_lid_sphere->RegisterYourself();
741 TGeoCompositeShape* mazzanine_prop_shape =
new TGeoCompositeShape(
"mazzanine_prop_shape",
"mezzanine_prop_main_tube:trans_mezzanine_prop_main_tube + mezzanine_prop_small_tube:trans_mezzanine_prop_small_tube + mezzanine_prop_lid_sphere:trans_mezzanine_prop_lid_sphere");
742 TGeoTranslation* trans_mezzanine_prop_left =
new TGeoTranslation(
"trans_mezzanine_prop_left", +8, -21.5, 0);
743 TGeoTranslation* trans_mezzanine_prop_right =
new TGeoTranslation(
"trans_mezzanine_prop_right", -8, -21.5, 0);
744 trans_mezzanine_prop_left->RegisterYourself();
745 trans_mezzanine_prop_right->RegisterYourself();
746 TGeoCompositeShape* mazzanine_prop_shape_bothside =
new TGeoCompositeShape(
"mazzanine_prop_shape_bothside",
"mazzanine_prop_shape:trans_mezzanine_prop_left+mazzanine_prop_shape:trans_mezzanine_prop_right");
748 TGeoVolume* mazzanine_prop =
new TGeoVolume(
"mazzanine_prop", mazzanine_prop_shape_bothside, kMedAlu);
749 mazzanine_prop->SetLineColor(kAzure - 3);
751 TGeoRotation* trans_mazzanine_prop_front =
new TGeoRotation(
"trans_mazzanine_prop_front", 0, 0, 0);
752 TGeoRotation* trans_mazzanine_prop_back =
new TGeoRotation(
"trans_mazzanine_prop_back", 180, 180, 0);
754 mHalfPSU->AddNode(mazzanine_prop, 0, trans_mazzanine_prop_front);
755 mHalfPSU->AddNode(mazzanine_prop, 0, trans_mazzanine_prop_back);
759 Double_t mezzanine_main_thickness = mezzanine_prop_small_length;
760 Double_t mezzanine_main_width = 20.7;
761 Double_t mezzanine_main_height = 9.5;
762 Double_t mezzanine_main_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length + mezzanine_main_thickness / 2.;
764 TGeoBBox* mezzanine_main_box =
new TGeoBBox(
"mezzanine_main_box", mezzanine_main_width / 2., mezzanine_main_height / 2., mezzanine_main_thickness / 2.);
765 TGeoTubeSeg* mezzanine_main_sub_arc =
new TGeoTubeSeg(
"mezzanine_main_sub_arc", 0, electric_board_min_radius1, mezzanine_main_thickness / 2 + delta_thickness, 180, 0);
766 TGeoTubeSeg* mezzanine_main_sub_hole =
new TGeoTubeSeg(
"mezzanine_main_sub_hole", 0, mezzanine_prop_small_radius, mezzanine_main_thickness / 2 + delta_thickness, 0, 360);
768 TGeoTranslation* trans_mezzanine_main_box =
new TGeoTranslation(
"trans_mezzanine_main_box", 0, -15.1 - mezzanine_main_height / 2., mezzanine_main_position_z);
769 TGeoTranslation* trans_mezzanine_main_sub_arc =
new TGeoTranslation(
"trans_mezzanine_main_sub_arc", 0, 0, mezzanine_main_position_z);
770 TGeoTranslation* trans_mezzanine_main_sub_hole_left =
new TGeoTranslation(
"trans_mezzanine_main_sub_hole_left", +8, -21.5, mezzanine_main_position_z);
771 TGeoTranslation* trans_mezzanine_main_sub_hole_right =
new TGeoTranslation(
"trans_mezzanine_main_sub_hole_right", +8, -21.5, mezzanine_main_position_z);
772 trans_mezzanine_main_box->RegisterYourself();
773 trans_mezzanine_main_sub_arc->RegisterYourself();
774 trans_mezzanine_main_sub_hole_right->RegisterYourself();
775 trans_mezzanine_main_sub_hole_left->RegisterYourself();
777 TGeoCompositeShape* mezzanine_shape =
new TGeoCompositeShape(
"mezzanine_shape",
"mezzanine_main_box:trans_mezzanine_main_box - mezzanine_main_sub_arc:trans_mezzanine_main_sub_arc - mezzanine_main_sub_hole:trans_mezzanine_main_sub_hole_left - mezzanine_main_sub_hole:trans_mezzanine_main_sub_hole_right");
778 TGeoVolume* mezzanine =
new TGeoVolume(
"mezzanine", mezzanine_shape, kMedPeek);
779 mezzanine->SetLineColor(kGreen + 2);
781 TGeoRotation* trans_mezzanine_front =
new TGeoRotation(
"trans_mazzanine_front", 0, 0, 0);
782 TGeoRotation* trans_mazzanine_back =
new TGeoRotation(
"trans_mazzanine_back", 180, 180, 0);
784 mHalfPSU->AddNode(mezzanine, 0, trans_mezzanine_front);
785 mHalfPSU->AddNode(mezzanine, 0, trans_mazzanine_back);
789 Double_t mezzanine_connector_base_box_thickness = 1.186;
790 Double_t mezzanine_connector_base_box_width = 6.778;
791 Double_t mezzanine_connector_base_box_height = 1.595;
792 Double_t mezzanine_connector_base_box_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_connector_base_box_thickness / 2;
794 Double_t mezzanine_connector_base_sub_box_thickness = mezzanine_connector_base_box_thickness - 0.307;
795 Double_t mezzanine_connector_base_sub_box_width = 6.778;
796 Double_t mezzanine_connector_base_sub_box_height = 1.468;
798 TGeoBBox* mezzanine_connector_base_box =
new TGeoBBox(
"mezzanine_connector_base", mezzanine_connector_base_box_width / 2., mezzanine_connector_base_box_height / 2., mezzanine_connector_base_box_thickness / 2.);
799 TGeoBBox* mezzanine_connector_base_sub_box =
new TGeoBBox(
"mezzanine_connector_base_sub_box", mezzanine_connector_base_sub_box_width / 2. + delta_thickness, mezzanine_connector_base_sub_box_height / 2., mezzanine_connector_base_sub_box_thickness / 2.);
801 TGeoTranslation* trans_mezzanine_connector_base_box =
new TGeoTranslation(
"trans_mezzanine_connector_base_box", 0, -22.421 - mezzanine_connector_base_box_height / 2.0, mezzanine_connector_base_box_position_z);
802 TGeoTranslation* trans_mezzanine_connector_base_sub_box =
new TGeoTranslation(
"trans_mezzanine_connector_base_sub_box", 0, -22.421 - mezzanine_connector_base_box_height / 2.0, mezzanine_connector_base_box_position_z + (mezzanine_connector_base_box_thickness - mezzanine_connector_base_sub_box_thickness) / 2.);
803 trans_mezzanine_connector_base_box->RegisterYourself();
804 trans_mezzanine_connector_base_sub_box->RegisterYourself();
806 TGeoCompositeShape* mezzanine_connector_base_shape =
new TGeoCompositeShape(
"mezzanine_connector_base_shape",
"mezzanine_connector_base:trans_mezzanine_connector_base_box - mezzanine_connector_base_sub_box:trans_mezzanine_connector_base_sub_box");
807 TGeoVolume* mezzanine_connector_base =
new TGeoVolume(
"mezzanine_connector_base", mezzanine_connector_base_shape, kMedPeek);
808 mezzanine_connector_base->SetLineColor(kOrange + 7);
810 TGeoRotation* trans_mezzanine_connector_base_front =
new TGeoRotation(
"trans_mezzanine_connector_base_front", 0, 0, 0);
811 TGeoRotation* trans_mezzanine_connector_base_back =
new TGeoRotation(
"trans_mezzanine_connector_base_back", 180, 180, 0);
812 mHalfPSU->AddNode(mezzanine_connector_base, 0, trans_mezzanine_connector_base_front);
813 mHalfPSU->AddNode(mezzanine_connector_base, 0, trans_mezzanine_connector_base_back);
815 Double_t mezzanine_connector_lid_bottom_box_thickness = 0.112;
816 Double_t mezzanine_connector_lid_bottom_box_width = 6.778;
817 Double_t mezzanine_connector_lid_bottom_box_height = 1.468;
818 Double_t mezzanine_connector_lid_bottom_box_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + 0.967 + mezzanine_connector_lid_bottom_box_thickness / 2.;
820 TGeoBBox* mezzanine_connector_lid_bottom_box =
new TGeoBBox(
"mezzanine_connector_lid_bottom_box", mezzanine_connector_lid_bottom_box_width / 2., mezzanine_connector_lid_bottom_box_height / 2., mezzanine_connector_lid_bottom_box_thickness / 2.);
821 TGeoVolume* mezzanine_connector_lid_bottom =
new TGeoVolume(
"mezzanine_connector_lid_bottom", mezzanine_connector_lid_bottom_box, kMedPeek);
822 mezzanine_connector_lid_bottom->SetLineColor(kGray + 2);
824 TGeoTranslation* trans_mezzanine_connector_lid_bottom_front =
new TGeoTranslation(
"trans_mezzanine_connector_lid_bottom_front", 0, 0 - 22.421 - mezzanine_connector_base_box_height / 2., mezzanine_connector_lid_bottom_box_position_z);
825 TGeoTranslation* trans_mezzanine_connector_lid_bottom_back =
new TGeoTranslation(
"trans_mezzanine_connector_lid_bottom_back", 0, 0 - 22.421 - mezzanine_connector_base_box_height / 2., -mezzanine_connector_lid_bottom_box_position_z);
826 mHalfPSU->AddNode(mezzanine_connector_lid_bottom, 0, trans_mezzanine_connector_lid_bottom_front);
827 mHalfPSU->AddNode(mezzanine_connector_lid_bottom, 0, trans_mezzanine_connector_lid_bottom_back);
829 Double_t mezzanine_connector_lid_top_box_thickness = mezzanine_main_position_z - mezzanine_main_thickness / 2 - mezzanine_connector_lid_bottom_box_position_z - mezzanine_connector_lid_bottom_box_thickness / 2.;
830 Double_t mezzanine_connector_lid_top_box_width = 6.660;
831 Double_t mezzanine_connector_lid_top_box_height = 1.328;
832 Double_t mezzanine_connector_lid_top_box_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + 0.967 + mezzanine_connector_lid_bottom_box_thickness + mezzanine_connector_lid_top_box_thickness / 2.;
833 TGeoBBox* mezzanine_connector_lid_top_box =
new TGeoBBox(
"mezzanine_connector_lid_top_box", mezzanine_connector_lid_top_box_width / 2., mezzanine_connector_lid_top_box_height / 2., mezzanine_connector_lid_top_box_thickness / 2.);
834 TGeoVolume* mezzanine_connector_lid_top =
new TGeoVolume(
"mezzanine_connector_lid_top", mezzanine_connector_lid_top_box, kMedPeek);
835 mezzanine_connector_lid_top->SetLineColor(kGray + 2);
837 TGeoTranslation* trans_mezzanine_connector_lid_top_front =
new TGeoTranslation(
"trans_mezzanine_connector_lid_top_front", 0, 0 - 22.421 - mezzanine_connector_base_box_height / 2., mezzanine_connector_lid_top_box_position_z);
838 TGeoTranslation* trans_mezzanine_connector_lid_top_back =
new TGeoTranslation(
"trans_mezzanine_connector_lid_top_back", 0, 0 - 22.421 - mezzanine_connector_base_box_height / 2., -mezzanine_connector_lid_top_box_position_z);
839 mHalfPSU->AddNode(mezzanine_connector_lid_top, 0, trans_mezzanine_connector_lid_top_front);
840 mHalfPSU->AddNode(mezzanine_connector_lid_top, 0, trans_mezzanine_connector_lid_top_back);
844 Double_t spacer_sheet1_mezzanine_box_thickness = 0.086;
845 Double_t spacer_sheet1_mezzanine_box_width = 1.397;
846 Double_t spacer_sheet1_mezzanine_box_height = 0.343;
847 Double_t spacer_sheet1_mezzanine_box_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length - spacer_sheet1_mezzanine_box_thickness / 2.;
848 Double_t gap_sheet1_on_mezzanine = 0.1;
850 TGeoBBox* spacer_sheet1_mezzanine_box =
new TGeoBBox(
"spacer_sheet1_mezzanine_box", spacer_sheet1_mezzanine_box_width / 2., spacer_sheet1_mezzanine_box_height / 2., spacer_sheet1_mezzanine_box_thickness / 2.);
851 TGeoTranslation* trans_spacer_sheet1_mezzanine_box_front[5];
852 trans_spacer_sheet1_mezzanine_box_front[0] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_front_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), spacer_sheet1_mezzanine_box_position_z);
853 trans_spacer_sheet1_mezzanine_box_front[1] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_front_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), spacer_sheet1_mezzanine_box_position_z);
854 trans_spacer_sheet1_mezzanine_box_front[2] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_front_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), spacer_sheet1_mezzanine_box_position_z);
855 trans_spacer_sheet1_mezzanine_box_front[3] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_front_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), spacer_sheet1_mezzanine_box_position_z);
856 trans_spacer_sheet1_mezzanine_box_front[4] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_front_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), spacer_sheet1_mezzanine_box_position_z);
857 TGeoTranslation* trans_spacer_sheet1_mezzanine_box_back[5];
858 trans_spacer_sheet1_mezzanine_box_back[0] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_back_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -spacer_sheet1_mezzanine_box_position_z);
859 trans_spacer_sheet1_mezzanine_box_back[1] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_back_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -spacer_sheet1_mezzanine_box_position_z);
860 trans_spacer_sheet1_mezzanine_box_back[2] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_back_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -spacer_sheet1_mezzanine_box_position_z);
861 trans_spacer_sheet1_mezzanine_box_back[3] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_back_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -spacer_sheet1_mezzanine_box_position_z);
862 trans_spacer_sheet1_mezzanine_box_back[4] =
new TGeoTranslation(
"trans_spacer_sheet1_mezzanine_box_back_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -spacer_sheet1_mezzanine_box_position_z);
864 TGeoVolume* spacer_sheet1_mezzanine =
new TGeoVolume(
"spacer_sheet1_mezzanine", spacer_sheet1_mezzanine_box, kMedPeek);
865 spacer_sheet1_mezzanine->SetLineColor(kGray + 2);
866 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_front[0]);
867 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_front[1]);
868 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_front[2]);
869 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_front[3]);
870 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_front[4]);
871 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_back[0]);
872 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_back[1]);
873 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_back[2]);
874 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_back[3]);
875 mHalfPSU->AddNode(spacer_sheet1_mezzanine, 0, trans_spacer_sheet1_mezzanine_box_back[4]);
877 Double_t sheet1_on_mezzanine_box_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length - spacer_sheet1_mezzanine_box_thickness - DCDC_sheet1_thickness / 2.;
879 TGeoTranslation* trans_sheet1_on_mezzanine_box_front[5];
880 trans_sheet1_on_mezzanine_box_front[0] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_front_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), sheet1_on_mezzanine_box_position_z);
881 trans_sheet1_on_mezzanine_box_front[1] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_front_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), sheet1_on_mezzanine_box_position_z);
882 trans_sheet1_on_mezzanine_box_front[2] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_front_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), sheet1_on_mezzanine_box_position_z);
883 trans_sheet1_on_mezzanine_box_front[3] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_front_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), sheet1_on_mezzanine_box_position_z);
884 trans_sheet1_on_mezzanine_box_front[4] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_front_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), sheet1_on_mezzanine_box_position_z);
885 TGeoTranslation* trans_sheet1_on_mezzanine_box_back[5];
886 trans_sheet1_on_mezzanine_box_back[0] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_back_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), -sheet1_on_mezzanine_box_position_z);
887 trans_sheet1_on_mezzanine_box_back[1] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_back_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), -sheet1_on_mezzanine_box_position_z);
888 trans_sheet1_on_mezzanine_box_back[2] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_back_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), -sheet1_on_mezzanine_box_position_z);
889 trans_sheet1_on_mezzanine_box_back[3] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_back_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), -sheet1_on_mezzanine_box_position_z);
890 trans_sheet1_on_mezzanine_box_back[4] =
new TGeoTranslation(
"trans_sheet1_on_mezzanine_box_back_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_sheet1_width / 2.), -sheet1_on_mezzanine_box_position_z);
892 TGeoVolume* sheet1_on_mezzanine =
new TGeoVolume(
"sheet1_on_mezzanine", DCDC_sheet1_box_side, kMedPeek);
893 sheet1_on_mezzanine->SetLineColor(kGreen);
895 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_front[0]);
896 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_front[1]);
897 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_front[2]);
898 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_front[3]);
899 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_front[4]);
900 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_back[0]);
901 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_back[1]);
902 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_back[2]);
903 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_back[3]);
904 mHalfPSU->AddNode(sheet1_on_mezzanine, 0, trans_sheet1_on_mezzanine_box_back[4]);
906 Double_t DCDC_connector_on_mezzanine_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length - spacer_sheet1_mezzanine_box_thickness - DCDC_sheet1_thickness - DCDC_connector_thickness / 2.;
908 TGeoVolume* DCDC_connector_on_mezzanine =
new TGeoVolume(
"DCDC_connector_on_mezzanine", DCDC_connector_box_side, kMedPeek);
909 DCDC_connector_on_mezzanine->SetLineColor(kGray + 2);
910 TGeoTranslation* trans_DCDC_connector_on_mezzanine_front[5];
911 trans_DCDC_connector_on_mezzanine_front[0] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_front_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), DCDC_connector_on_mezzanine_position_z);
912 trans_DCDC_connector_on_mezzanine_front[1] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_front_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), DCDC_connector_on_mezzanine_position_z);
913 trans_DCDC_connector_on_mezzanine_front[2] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_front_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), DCDC_connector_on_mezzanine_position_z);
914 trans_DCDC_connector_on_mezzanine_front[3] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_front_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), DCDC_connector_on_mezzanine_position_z);
915 trans_DCDC_connector_on_mezzanine_front[4] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_front_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), DCDC_connector_on_mezzanine_position_z);
916 TGeoTranslation* trans_DCDC_connector_on_mezzanine_back[5];
917 trans_DCDC_connector_on_mezzanine_back[0] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_back_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -DCDC_connector_on_mezzanine_position_z);
918 trans_DCDC_connector_on_mezzanine_back[1] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_back_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -DCDC_connector_on_mezzanine_position_z);
919 trans_DCDC_connector_on_mezzanine_back[2] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_back_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -DCDC_connector_on_mezzanine_position_z);
920 trans_DCDC_connector_on_mezzanine_back[3] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_back_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -DCDC_connector_on_mezzanine_position_z);
921 trans_DCDC_connector_on_mezzanine_back[4] =
new TGeoTranslation(
"trans_DCDC_connector_on_mezzanine_back_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (spacer_sheet1_mezzanine_box_width / 2. + 0.531), -DCDC_connector_on_mezzanine_position_z);
922 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_front[0]);
923 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_front[1]);
924 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_front[2]);
925 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_front[3]);
926 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_front[4]);
927 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_back[0]);
928 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_back[1]);
929 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_back[2]);
930 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_back[3]);
931 mHalfPSU->AddNode(DCDC_connector_on_mezzanine, 0, trans_DCDC_connector_on_mezzanine_back[4]);
933 Double_t DCDC_cover_on_mezzanine_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length - spacer_sheet1_mezzanine_box_thickness - DCDC_sheet1_thickness - DCDC_cover_thickness / 2.;
935 TGeoTranslation* trans_DCDC_cover_innner_box_back =
new TGeoTranslation(
"trans_DCDC_cover_innner_box_back", 0, 0, -2 * DCDC_cover_depth);
936 TGeoTranslation* trans_DCDC_cover_innner_box_front =
new TGeoTranslation(
"trans_DCDC_cover_innner_box_front", 0, 0, +2 * DCDC_cover_depth);
937 trans_DCDC_cover_innner_box_back->RegisterYourself();
938 trans_DCDC_cover_innner_box_front->RegisterYourself();
940 TGeoRotation* rotate_DCDC_cover_on_mezzanine_shape =
new TGeoRotation(
"rotate_DCDC_cover_on_mezzanine_shape", 0, 180, 180);
941 rotate_DCDC_cover_on_mezzanine_shape->RegisterYourself();
943 TGeoCompositeShape* DCDC_cover_on_mezzanine_shape_back =
new TGeoCompositeShape(
"DCDC_cover_on_mezzanine_shape_back",
"DCDC_cover_outer_box_side - DCDC_cover_inner_box_side:trans_DCDC_cover_innner_box_back");
944 TGeoCompositeShape* DCDC_cover_on_mezzanine_shape_front =
new TGeoCompositeShape(
"DCDC_cover_on_mezzanine_shape_front",
"DCDC_cover_outer_box_side - DCDC_cover_inner_box_side:trans_DCDC_cover_innner_box_front");
946 TGeoVolume* DCDC_cover_on_mezzanine_front =
new TGeoVolume(
"DCDC_cover_on_mezzanine_front", DCDC_cover_on_mezzanine_shape_front, kMedPeek);
947 TGeoVolume* DCDC_cover_on_mezzanine_back =
new TGeoVolume(
"DCDC_cover_on_mezzanine_back", DCDC_cover_on_mezzanine_shape_back, kMedPeek);
948 DCDC_cover_on_mezzanine_front->SetLineColor(kGray);
949 DCDC_cover_on_mezzanine_back->SetLineColor(kGray);
951 TGeoTranslation* trans_DCDC_cover_on_mezzanine_front[5];
952 trans_DCDC_cover_on_mezzanine_front[0] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_front_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), DCDC_cover_on_mezzanine_position_z);
953 trans_DCDC_cover_on_mezzanine_front[1] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_front_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), DCDC_cover_on_mezzanine_position_z);
954 trans_DCDC_cover_on_mezzanine_front[2] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_front_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), DCDC_cover_on_mezzanine_position_z);
955 trans_DCDC_cover_on_mezzanine_front[3] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_front_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), DCDC_cover_on_mezzanine_position_z);
956 trans_DCDC_cover_on_mezzanine_front[4] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_front_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), DCDC_cover_on_mezzanine_position_z);
957 TGeoTranslation* trans_DCDC_cover_on_mezzanine_back[5];
958 trans_DCDC_cover_on_mezzanine_back[0] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_back_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -DCDC_cover_on_mezzanine_position_z);
959 trans_DCDC_cover_on_mezzanine_back[1] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_back_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -DCDC_cover_on_mezzanine_position_z);
960 trans_DCDC_cover_on_mezzanine_back[2] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_back_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -DCDC_cover_on_mezzanine_position_z);
961 trans_DCDC_cover_on_mezzanine_back[3] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_back_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -DCDC_cover_on_mezzanine_position_z);
962 trans_DCDC_cover_on_mezzanine_back[4] =
new TGeoTranslation(
"trans_DCDC_cover_on_mezzanine_back_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -DCDC_cover_on_mezzanine_position_z);
964 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_front, 0, trans_DCDC_cover_on_mezzanine_front[0]);
965 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_front, 0, trans_DCDC_cover_on_mezzanine_front[1]);
966 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_front, 0, trans_DCDC_cover_on_mezzanine_front[2]);
967 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_front, 0, trans_DCDC_cover_on_mezzanine_front[3]);
968 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_front, 0, trans_DCDC_cover_on_mezzanine_front[4]);
969 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_back, 0, trans_DCDC_cover_on_mezzanine_back[0]);
970 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_back, 0, trans_DCDC_cover_on_mezzanine_back[1]);
971 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_back, 0, trans_DCDC_cover_on_mezzanine_back[2]);
972 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_back, 0, trans_DCDC_cover_on_mezzanine_back[3]);
973 mHalfPSU->AddNode(DCDC_cover_on_mezzanine_back, 0, trans_DCDC_cover_on_mezzanine_back[4]);
979 Double_t main_connector1_thickness = 0.752;
980 Double_t main_connector1_width = 2.350;
981 Double_t main_connector1_height = 0.160;
982 TGeoBBox* connector1_box =
new TGeoBBox(
"connector1_box", main_connector1_width / 2., main_connector1_height / 2., main_connector1_thickness / 2.);
984 Double_t main_connector2_thickness = 0.564;
985 Double_t main_connector2_width = 2.086;
986 Double_t main_connector2_height = 0.499;
987 TGeoBBox* connector2_box =
new TGeoBBox(
"connector2_box", main_connector2_width / 2., main_connector2_height / 2., main_connector2_thickness / 2.);
989 Double_t main_connector3_thickness = 0.742;
990 Double_t main_connector3_width = 2.567;
991 Double_t main_connector3_height = 0.579;
992 TGeoBBox* connector3_box =
new TGeoBBox(
"connector3_box", main_connector3_width / 2., main_connector3_height / 2., main_connector3_thickness / 2.);
994 TGeoVolume* main_connector1 =
new TGeoVolume(
"main_connector1", connector1_box, kMedPeek);
995 main_connector1->SetLineColor(kGray + 2);
996 TGeoVolume* main_connector2 =
new TGeoVolume(
"main_connector2", connector2_box, kMedPeek);
997 main_connector2->SetLineColor(kGray + 2);
998 TGeoVolume* main_connector3 =
new TGeoVolume(
"main_connector3", connector3_box, kMedPeek);
999 main_connector3->SetLineColor(kGray + 2);
1001 TGeoTranslation* trans_main_connector1_front[10];
1002 trans_main_connector1_front[0] =
new TGeoTranslation(
"trans_main_connector1_front_No0", 14.462 + main_connector2_width / 2., -4.276 - main_connector1_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1003 trans_main_connector1_front[1] =
new TGeoTranslation(
"trans_main_connector1_front_No1", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1, -4.276 - main_connector1_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1004 trans_main_connector1_front[2] =
new TGeoTranslation(
"trans_main_connector1_front_No2", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2, -4.276 - main_connector1_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1005 trans_main_connector1_front[3] =
new TGeoTranslation(
"trans_main_connector1_front_No3", -(14.462 + main_connector2_width / 2.), -4.276 - main_connector1_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1006 trans_main_connector1_front[4] =
new TGeoTranslation(
"trans_main_connector1_front_No4", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1), -4.276 - main_connector1_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1007 trans_main_connector1_front[5] =
new TGeoTranslation(
"trans_main_connector1_front_No5", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2), -4.276 - main_connector1_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1008 TGeoTranslation* trans_main_connector1_back[10];
1009 trans_main_connector1_back[0] =
new TGeoTranslation(
"trans_main_connector1_back_No0", 14.462 + main_connector2_width / 2., -4.276 - main_connector1_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1010 trans_main_connector1_back[1] =
new TGeoTranslation(
"trans_main_connector1_back_No1", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1, -4.276 - main_connector1_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1011 trans_main_connector1_back[2] =
new TGeoTranslation(
"trans_main_connector1_back_No2", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2, -4.276 - main_connector1_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1012 trans_main_connector1_back[3] =
new TGeoTranslation(
"trans_main_connector1_back_No3", -(14.462 + main_connector2_width / 2.), -4.276 - main_connector1_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1013 trans_main_connector1_back[4] =
new TGeoTranslation(
"trans_main_connector1_back_No4", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1), -4.276 - main_connector1_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1014 trans_main_connector1_back[5] =
new TGeoTranslation(
"trans_main_connector1_back_No5", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2), -4.276 - main_connector1_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1016 TGeoTranslation* trans_main_connector2_front[10];
1017 trans_main_connector2_front[0] =
new TGeoTranslation(
"trans_main_connector2_front_No0", 14.462 + main_connector2_width / 2., -4.276 - main_connector1_height - main_connector2_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1018 trans_main_connector2_front[1] =
new TGeoTranslation(
"trans_main_connector2_front_No1", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1, -4.276 - main_connector1_height - main_connector2_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1019 trans_main_connector2_front[2] =
new TGeoTranslation(
"trans_main_connector2_front_No2", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2, -4.276 - main_connector1_height - main_connector2_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1020 trans_main_connector2_front[3] =
new TGeoTranslation(
"trans_main_connector2_front_No3", -(14.462 + main_connector2_width / 2.), -4.276 - main_connector1_height - main_connector2_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1021 trans_main_connector2_front[4] =
new TGeoTranslation(
"trans_main_connector2_front_No4", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1), -4.276 - main_connector1_height - main_connector2_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1022 trans_main_connector2_front[5] =
new TGeoTranslation(
"trans_main_connector2_front_No5", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2), -4.276 - main_connector1_height - main_connector2_height / 2., middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2);
1023 TGeoTranslation* trans_main_connector2_back[10];
1024 trans_main_connector2_back[0] =
new TGeoTranslation(
"trans_main_connector2_back_No0", 14.462 + main_connector2_width / 2., -4.276 - main_connector1_height - main_connector2_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1025 trans_main_connector2_back[1] =
new TGeoTranslation(
"trans_main_connector2_back_No1", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1, -4.276 - main_connector1_height - main_connector2_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1026 trans_main_connector2_back[2] =
new TGeoTranslation(
"trans_main_connector2_back_No2", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2, -4.276 - main_connector1_height - main_connector2_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1027 trans_main_connector2_back[3] =
new TGeoTranslation(
"trans_main_connector2_back_No3", -(14.462 + main_connector2_width / 2.), -4.276 - main_connector1_height - main_connector2_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1028 trans_main_connector2_back[4] =
new TGeoTranslation(
"trans_main_connector2_back_No4", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1), -4.276 - main_connector1_height - main_connector2_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1029 trans_main_connector2_back[5] =
new TGeoTranslation(
"trans_main_connector2_back_No5", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2), -4.276 - main_connector1_height - main_connector2_height / 2., -(middle_spacer_main_add_rectangle_side_small_thickness / 2. + main_connector3_thickness / 2));
1031 TGeoTranslation* trans_main_connector3_front[10];
1032 trans_main_connector3_front[0] =
new TGeoTranslation(
"trans_main_connector3_front_No0", 14.462 + main_connector2_width / 2., -4.436 - main_connector2_height - main_connector3_height / 2., electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2);
1033 trans_main_connector3_front[1] =
new TGeoTranslation(
"trans_main_connector3_front_No1", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1, -4.436 - main_connector2_height - main_connector3_height / 2., electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2);
1034 trans_main_connector3_front[2] =
new TGeoTranslation(
"trans_main_connector3_front_No2", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2, -4.436 - main_connector2_height - main_connector3_height / 2., electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2);
1035 trans_main_connector3_front[3] =
new TGeoTranslation(
"trans_main_connector3_front_No3", -(14.462 + main_connector2_width / 2.), -4.436 - main_connector2_height - main_connector3_height / 2., electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2);
1036 trans_main_connector3_front[4] =
new TGeoTranslation(
"trans_main_connector3_front_No4", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1), -4.436 - main_connector2_height - main_connector3_height / 2., electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2);
1037 trans_main_connector3_front[5] =
new TGeoTranslation(
"trans_main_connector3_front_No5", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2), -4.436 - main_connector2_height - main_connector3_height / 2., electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2);
1038 TGeoTranslation* trans_main_connector3_back[10];
1039 trans_main_connector3_back[0] =
new TGeoTranslation(
"trans_main_connector3_back_No0", 14.462 + main_connector2_width / 2., -4.436 - main_connector2_height - main_connector3_height / 2., -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2));
1040 trans_main_connector3_back[1] =
new TGeoTranslation(
"trans_main_connector3_back_No1", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1, -4.436 - main_connector2_height - main_connector3_height / 2., -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2));
1041 trans_main_connector3_back[2] =
new TGeoTranslation(
"trans_main_connector3_back_No2", 14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2, -4.436 - main_connector2_height - main_connector3_height / 2., -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2));
1042 trans_main_connector3_back[3] =
new TGeoTranslation(
"trans_main_connector3_back_No3", -(14.462 + main_connector2_width / 2.), -4.436 - main_connector2_height - main_connector3_height / 2., -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2));
1043 trans_main_connector3_back[4] =
new TGeoTranslation(
"trans_main_connector3_back_No4", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 1), -4.436 - main_connector2_height - main_connector3_height / 2., -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2));
1044 trans_main_connector3_back[5] =
new TGeoTranslation(
"trans_main_connector3_back_No5", -(14.462 + main_connector2_width / 2. + (0.766 + main_connector2_width) * 2), -4.436 - main_connector2_height - main_connector3_height / 2., -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2));
1046 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_front[0]);
1047 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_front[1]);
1048 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_front[2]);
1049 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_front[3]);
1050 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_front[4]);
1051 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_front[5]);
1053 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_front[0]);
1054 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_front[1]);
1055 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_front[2]);
1056 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_front[3]);
1057 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_front[4]);
1058 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_front[5]);
1060 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_front[0]);
1061 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_front[1]);
1062 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_front[2]);
1063 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_front[3]);
1064 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_front[4]);
1065 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_front[5]);
1067 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_back[0]);
1068 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_back[1]);
1069 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_back[2]);
1070 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_back[3]);
1071 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_back[4]);
1072 mHalfPSU->AddNode(main_connector1, 0, trans_main_connector1_back[5]);
1073 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_back[0]);
1074 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_back[1]);
1075 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_back[2]);
1076 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_back[3]);
1077 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_back[4]);
1078 mHalfPSU->AddNode(main_connector2, 0, trans_main_connector2_back[5]);
1079 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_back[0]);
1080 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_back[1]);
1081 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_back[2]);
1082 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_back[3]);
1083 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_back[4]);
1084 mHalfPSU->AddNode(main_connector3, 0, trans_main_connector3_back[5]);
1090 Double_t coil_torus_inner_radius1 = TMath::Min(DCDC_cover_inner_width, DCDC_cover_inner_height) / 10.0;
1091 Double_t coil_torus_outer_radius1 = TMath::Min(DCDC_cover_inner_width, DCDC_cover_inner_height) / 8.0;
1092 Double_t coil_radius1 = TMath::Min(DCDC_cover_inner_width, DCDC_cover_inner_height) / 3.0 - coil_torus_outer_radius1;
1093 Double_t coil_position_z = DCDC_sheet1_position_z + DCDC_sheet1_thickness / 2. + coil_torus_outer_radius1;
1095 TGeoTorus* coil_torus =
new TGeoTorus(
"coil_torus", coil_radius1, coil_torus_inner_radius1, coil_torus_outer_radius1, 0, 360);
1097 std::string name_coil =
"";
1099 TGeoCompositeShape* rotated_coil_torus[23];
1101 for (Int_t iB = 0; iB < 11; ++iB) {
1103 Double_t block_angle = (180. - block_angle_index[iB]) / 2. * TMath::Pi() / 180.;
1105 TGeoRotation* rotate_coil_torus_left =
new TGeoRotation(Form(
"rotate_coil_torus_No%d", iB * 2), 180 - block_angle * 180. / TMath::Pi(), 0, 0);
1106 TGeoRotation* rotate_coil_torus_right =
new TGeoRotation(Form(
"rotate_coil_torus_No%d", iB * 2 + 1), block_angle * 180. / TMath::Pi(), 0, 0);
1107 rotate_coil_torus_left->RegisterYourself();
1108 rotate_coil_torus_right->RegisterYourself();
1110 Double_t cent_block_left[] = {block_radius * TMath::Cos(block_angle), -block_radius * TMath::Sin(block_angle), coil_position_z};
1111 Double_t cent_block_right[] = {block_radius * TMath::Cos(TMath::Pi() - block_angle), -block_radius * TMath::Sin(TMath::Pi() - block_angle), coil_position_z};
1113 TGeoCombiTrans* combtrans_coil_torus_left =
new TGeoCombiTrans(Form(
"combtrans_coil_torus_No%d", 2 * iB), cent_block_left[0], cent_block_left[1], cent_block_left[2], rotate_coil_torus_left);
1114 TGeoCombiTrans* combtrans_coil_torus_right =
new TGeoCombiTrans(Form(
"combtrans_coil_torus_No%d", 2 * iB + 1), cent_block_right[0], cent_block_right[1], cent_block_right[2], rotate_coil_torus_right);
1115 combtrans_coil_torus_left->RegisterYourself();
1116 combtrans_coil_torus_right->RegisterYourself();
1119 name_coil += Form(
"coil_torus:combtrans_coil_torus_No%d", 2 * iB);
1121 name_coil += Form(
"+coil_torus:combtrans_coil_torus_No%d", 2 * iB);
1123 name_coil += Form(
"+coil_torus:combtrans_coil_torus_No%d", 2 * iB + 1);
1126 TGeoTorus* coil_torus_side =
new TGeoTorus(
"coil_torus_side", coil_radius1, coil_torus_inner_radius1, coil_torus_outer_radius1, 0, 360);
1128 TGeoTranslation* trans_coil_torus_side_left =
new TGeoTranslation(
"trans_coil_torus_side_left", 22.259 - middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2, coil_position_z);
1129 trans_coil_torus_side_left->RegisterYourself();
1130 name_coil +=
"+coil_torus_side:trans_coil_torus_side_left";
1132 TGeoTranslation* trans_coil_torus_side_right =
new TGeoTranslation(
"trans_coil_torus_side_right", -22.247 + middle_spacer_cover_block_width / 2, -8.305 + middle_spacer_cover_block_height / 2, coil_position_z);
1133 trans_coil_torus_side_right->RegisterYourself();
1134 name_coil +=
"+coil_torus_side:trans_coil_torus_side_right";
1136 TGeoCompositeShape* coil_shape =
new TGeoCompositeShape(
"coil_shape", name_coil.c_str());
1138 TGeoVolume* coil =
new TGeoVolume(
"coil", coil_shape, kMedAlu);
1139 coil->SetLineColor(kYellow);
1141 TGeoRotation* trans_coil_front =
new TGeoRotation(
"trans_coil_front", 0, 0, 0);
1142 TGeoRotation* trans_coil_back =
new TGeoRotation(
"trans_coil_back", 180, 180, 0);
1144 mHalfPSU->AddNode(coil, 0, trans_coil_front);
1145 mHalfPSU->AddNode(coil, 0, trans_coil_back);
1149 Double_t coil_on_mezzanine_position_z = middle_spacer_main_thickness / 2. + middle_spacer_cover_thickness + electric_board_thickness + mezzanine_prop_main_length - spacer_sheet1_mezzanine_box_thickness - DCDC_sheet1_thickness - coil_torus_outer_radius1;
1151 TGeoTranslation* trans_coil_on_mezzanine_front[5];
1152 trans_coil_on_mezzanine_front[0] =
new TGeoTranslation(
"trans_coil_on_mezzanine_front_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), coil_on_mezzanine_position_z);
1153 trans_coil_on_mezzanine_front[1] =
new TGeoTranslation(
"trans_coil_on_mezzanine_front_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), coil_on_mezzanine_position_z);
1154 trans_coil_on_mezzanine_front[2] =
new TGeoTranslation(
"trans_coil_on_mezzanine_front_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), coil_on_mezzanine_position_z);
1155 trans_coil_on_mezzanine_front[3] =
new TGeoTranslation(
"trans_coil_on_mezzanine_front_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), coil_on_mezzanine_position_z);
1156 trans_coil_on_mezzanine_front[4] =
new TGeoTranslation(
"trans_coil_on_mezzanine_front_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), coil_on_mezzanine_position_z);
1157 TGeoTranslation* trans_coil_on_mezzanine_back[5];
1158 trans_coil_on_mezzanine_back[0] =
new TGeoTranslation(
"trans_coil_on_mezzanine_back_No0", +2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -coil_on_mezzanine_position_z);
1159 trans_coil_on_mezzanine_back[1] =
new TGeoTranslation(
"trans_coil_on_mezzanine_back_No1", +1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -coil_on_mezzanine_position_z);
1160 trans_coil_on_mezzanine_back[2] =
new TGeoTranslation(
"trans_coil_on_mezzanine_back_No2", 0 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -coil_on_mezzanine_position_z);
1161 trans_coil_on_mezzanine_back[3] =
new TGeoTranslation(
"trans_coil_on_mezzanine_back_No3", -1 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -coil_on_mezzanine_position_z);
1162 trans_coil_on_mezzanine_back[4] =
new TGeoTranslation(
"trans_coil_on_mezzanine_back_No4", -2 * (DCDC_sheet1_height + gap_sheet1_on_mezzanine), -17.952 - (DCDC_cover_outer_width / 2. + 1.825), -coil_on_mezzanine_position_z);
1164 TGeoVolume* coil_on_mezzanine =
new TGeoVolume(
"coil_on_mezzanine", coil_torus, kMedAlu);
1165 coil_on_mezzanine->SetLineColor(kYellow);
1167 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_front[0]);
1168 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_front[1]);
1169 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_front[2]);
1170 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_front[3]);
1171 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_front[4]);
1172 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_back[0]);
1173 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_back[1]);
1174 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_back[2]);
1175 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_back[3]);
1176 mHalfPSU->AddNode(coil_on_mezzanine, 0, trans_coil_on_mezzanine_back[4]);
1180 Double_t main_connector_angle1 = 52 * TMath::Pi() / 180.;
1181 Double_t main_connector_angle2 = 45 * TMath::Pi() / 180.;
1187 TGeoRotation* rotate_main_connector_box_angle1_left =
new TGeoRotation(
"rotate_main_connector_box_angle1_left", 0, 0, 90 - main_connector_angle1 * 180 / TMath::Pi());
1188 TGeoRotation* rotate_main_connector_box_angle2_left =
new TGeoRotation(
"rotate_main_connector_box_angle2_left", 0, 0, 90 - main_connector_angle2 * 180 / TMath::Pi());
1189 TGeoRotation* rotate_main_connector_box_angle1_right =
new TGeoRotation(
"rotate_main_connector_box_angle1_right", 0, 0, -90 + main_connector_angle1 * 180 / TMath::Pi());
1190 TGeoRotation* rotate_main_connector_box_angle2_right =
new TGeoRotation(
"rotate_main_connector_box_angle2_right", 0, 0, -90 + main_connector_angle2 * 180 / TMath::Pi());
1191 rotate_main_connector_box_angle1_left->RegisterYourself();
1192 rotate_main_connector_box_angle2_left->RegisterYourself();
1193 rotate_main_connector_box_angle1_right->RegisterYourself();
1194 rotate_main_connector_box_angle2_right->RegisterYourself();
1196 TGeoTranslation* trans_connector1_box =
new TGeoTranslation(
"trans_connector1_box", 0, -main_connector3_height / 2. - main_connector2_height - main_connector1_height / 2., 0);
1197 TGeoTranslation* trans_connector2_box =
new TGeoTranslation(
"trans_connector2_box", 0, -main_connector3_height / 2. - main_connector2_height / 2., 0);
1198 TGeoTranslation* trans_connector3_box =
new TGeoTranslation(
"trans_connector3_box", 0, 0, 0);
1199 trans_connector1_box->RegisterYourself();
1200 trans_connector2_box->RegisterYourself();
1201 trans_connector3_box->RegisterYourself();
1203 TGeoCompositeShape* comp_connector_box =
new TGeoCompositeShape(
"comp_connector_box",
"connector1_box:trans_connector1_box+connector2_box:trans_connector2_box+connector3_box:trans_connector3_box");
1205 TGeoVolume* connector =
new TGeoVolume(
"connector", comp_connector_box, kMedPeek);
1206 connector->SetLineColor(kGray + 2);
1208 TGeoCombiTrans* trans_connector1_front =
new TGeoCombiTrans(
"trans_connector1_front", +(17.064 + 15.397) / 2., -(21.795 + 19.758) / 2, electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2, rotate_main_connector_box_angle1_left);
1209 TGeoCombiTrans* trans_connector2_front =
new TGeoCombiTrans(
"trans_connector2_front", +(19.345 + 17.941) / 2, -(19.757 + 17.531) / 2, electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2, rotate_main_connector_box_angle2_left);
1210 TGeoCombiTrans* trans_connector3_front =
new TGeoCombiTrans(
"trans_connector1_front", -(17.064 + 15.397) / 2., -(21.795 + 19.758) / 2, electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2, rotate_main_connector_box_angle1_right);
1211 TGeoCombiTrans* trans_connector4_front =
new TGeoCombiTrans(
"trans_connector2_front", -(19.345 + 17.941) / 2, -(19.757 + 17.531) / 2, electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2, rotate_main_connector_box_angle2_right);
1213 mHalfPSU->AddNode(connector, 0, trans_connector1_front);
1214 mHalfPSU->AddNode(connector, 0, trans_connector2_front);
1215 mHalfPSU->AddNode(connector, 0, trans_connector3_front);
1216 mHalfPSU->AddNode(connector, 0, trans_connector4_front);
1218 TGeoCombiTrans* trans_connector1_back =
new TGeoCombiTrans(
"trans_connector1_back", +(17.064 + 15.397) / 2., -(21.795 + 19.758) / 2, -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2), rotate_main_connector_box_angle1_left);
1219 TGeoCombiTrans* trans_connector2_back =
new TGeoCombiTrans(
"trans_connector2_back", +(19.345 + 17.941) / 2, -(19.757 + 17.531) / 2, -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2), rotate_main_connector_box_angle2_left);
1220 TGeoCombiTrans* trans_connector3_back =
new TGeoCombiTrans(
"trans_connector1_back", -(17.064 + 15.397) / 2., -(21.795 + 19.758) / 2, -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2), rotate_main_connector_box_angle1_right);
1221 TGeoCombiTrans* trans_connector4_back =
new TGeoCombiTrans(
"trans_connector2_back", -(19.345 + 17.941) / 2, -(19.757 + 17.531) / 2, -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2), rotate_main_connector_box_angle2_right);
1223 mHalfPSU->AddNode(connector, 0, trans_connector1_back);
1224 mHalfPSU->AddNode(connector, 0, trans_connector2_back);
1225 mHalfPSU->AddNode(connector, 0, trans_connector3_back);
1226 mHalfPSU->AddNode(connector, 0, trans_connector4_back);
1230 Double_t main_large_connector_bottom_angle1 = 36 * TMath::Pi() / 180.;
1232 Double_t main_large_connector1_thickness = 0.752;
1233 Double_t main_large_connector1_width = 3.95;
1234 Double_t main_large_connector1_height = 0.16;
1236 Double_t main_large_connector2_thickness = 0.56;
1237 Double_t main_large_connector2_width = 3.95;
1238 Double_t main_large_connector2_height = 0.536;
1240 Double_t main_large_connector3_thickness = 0.626;
1241 Double_t main_large_connector3_width = 4.167;
1242 Double_t main_large_connector3_height = 0.579;
1244 TGeoBBox* large_connector_bottom1_box =
new TGeoBBox(
"large_connector1_box", main_large_connector1_width / 2., main_large_connector1_height / 2., main_large_connector1_thickness / 2.);
1245 TGeoBBox* large_connector_bottom2_box =
new TGeoBBox(
"large_connector2_box", main_large_connector2_width / 2., main_large_connector2_height / 2., main_large_connector2_thickness / 2.);
1246 TGeoBBox* large_connector_bottom3_box =
new TGeoBBox(
"large_connector3_box", main_large_connector3_width / 2., main_large_connector3_height / 2., main_large_connector3_thickness / 2.);
1248 TGeoTranslation* trans_large_connector1_box =
new TGeoTranslation(
"trans_large_connector1_box", 0, -main_large_connector3_height / 2. - main_large_connector2_height - main_large_connector1_height / 2., 0);
1249 TGeoTranslation* trans_large_connector2_box =
new TGeoTranslation(
"trans_large_connector2_box", 0, -main_large_connector3_height / 2. - main_large_connector2_height / 2., 0);
1250 TGeoTranslation* trans_large_connector3_box =
new TGeoTranslation(
"trans_large_connector3_box", 0, 0, 0);
1251 trans_large_connector1_box->RegisterYourself();
1252 trans_large_connector2_box->RegisterYourself();
1253 trans_large_connector3_box->RegisterYourself();
1255 TGeoCompositeShape* comp_large_connector_box =
new TGeoCompositeShape(
"comp_large_connector_box",
"large_connector1_box:trans_large_connector1_box+large_connector2_box:trans_large_connector2_box+large_connector3_box:trans_large_connector3_box");
1257 TGeoRotation* rotate_large_connector_bottom_box_front =
new TGeoRotation(
"rotate_large_connector_bottom_box_front", 0, 0, -(90 - main_large_connector_bottom_angle1 * 180 / TMath::Pi()));
1258 TGeoRotation* rotate_large_connector_bottom_box_back =
new TGeoRotation(
"rotate_large_connector_bottom_box_back", 0, 0, (90 - main_large_connector_bottom_angle1 * 180 / TMath::Pi()));
1259 rotate_large_connector_bottom_box_front->RegisterYourself();
1260 rotate_large_connector_bottom_box_back->RegisterYourself();
1262 TGeoCombiTrans* combtrans_rotated_large_connector_front =
new TGeoCombiTrans(
"combtrans_rotated_large_connector_front", -(22.268 + 20.287) / 2, (-17.315 - 13.603) / 2, +(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2), rotate_large_connector_bottom_box_front);
1263 TGeoCombiTrans* combtrans_rotated_large_connector_back =
new TGeoCombiTrans(
"combtrans_rotated_large_connector_back", +(22.268 + 20.287) / 2, (-17.315 - 13.603) / 2, -(electric_board_position_z + electric_board_thickness / 2 + main_connector3_thickness / 2), rotate_large_connector_bottom_box_back);
1265 TGeoVolume* large_connector =
new TGeoVolume(
"large_connector", comp_large_connector_box, kMedPeek);
1266 large_connector->SetLineColor(kGray + 2);
1268 mHalfPSU->AddNode(large_connector, 0, combtrans_rotated_large_connector_front);
1269 mHalfPSU->AddNode(large_connector, 0, combtrans_rotated_large_connector_back);