33 containerOut_xdown = tofPara->Get(
"containerOut_xdown" );
34 containerOut_xup = tofPara->Get(
"containerOut_xup" );
35 containerOut_y = tofPara->Get(
"containerOut_y" );
36 containerOut_z = tofPara->Get(
"containerOut_z" );
37 container_thickness = tofPara->Get(
"container_thickness" );
38 container_lowBorder = tofPara->Get(
"container_lowBorder" );
40 containerIn_xdown = tofPara->Get(
"containerIn_xdown" );
41 containerIn_xup = tofPara->Get(
"containerIn_xup" );
42 containerIn_y = tofPara->Get(
"containerIn_y" );
43 containerIn_z = tofPara->Get(
"containerIn_z" );
45 upCover_xdown = tofPara->Get(
"upCover_xdown" );
46 upCover_xup = tofPara->Get(
"upCover_xup" );
47 upCover_y = tofPara->Get(
"upCover_y" );
48 upCover_z = tofPara->Get(
"upCover_z" );
49 upCover_posz = tofPara->Get(
"upCover_posz" );
51 lowCover1_xdown = tofPara->Get(
"lowCover1_xdown" );
52 lowCover1_xup = tofPara->Get(
"lowCover1_xup" );
53 lowCover1_y = tofPara->Get(
"lowCover1_y" );
54 lowCover1_z = tofPara->Get(
"lowCover1_z" );
55 lowCover1_addx = tofPara->Get(
"lowCover1_addx" );
56 lowCover1_addz = tofPara->Get(
"lowCover1_addz" );
57 lowCover1_posz = tofPara->Get(
"lowCover1_posz" );
59 lowCover2_xdown = tofPara->Get(
"lowCover2_xdown" );
60 lowCover2_xup = tofPara->Get(
"lowCover2_xup" );
61 lowCover2_y = tofPara->Get(
"lowCover2_y" );
62 lowCover2_z = tofPara->Get(
"lowCover2_z" );
63 lowCover2_posz = tofPara->Get(
"lowCover2_posz" );
65 upFEE_xdown = tofPara->Get(
"upFEE_xdown" );
66 upFEE_xup = tofPara->Get(
"upFEE_xup" );
67 upFEE_y = tofPara->Get(
"upFEE_y" );
68 upFEE_z = tofPara->Get(
"upFEE_z" );
69 FEE_thickness = tofPara->Get(
"FEE_thickness" );
70 upFEE_posz = tofPara->Get(
"upFEE_posz" );
72 upFEE_pcb_xdown = tofPara->Get(
"upFEE_pcb_xdown" );
73 upFEE_pcb_xup = tofPara->Get(
"upFEE_pcb_xup" );
74 upFEE_pcb_y = tofPara->Get(
"upFEE_pcb_y" );
75 upFEE_pcb_z = tofPara->Get(
"upFEE_pcb_z" );
77 sideFEE_x = tofPara->Get(
"sideFEE_x" );
78 sideFEE_y = tofPara->Get(
"sideFEE_y" );
79 sideFEE_z = tofPara->Get(
"sideFEE_z" );
80 sideFEE_posl = tofPara->Get(
"sideFEE_posl" );
82 sideFEE_pcb_x = tofPara->Get(
"sideFEE_pcb_x" );
83 sideFEE_pcb_y = tofPara->Get(
"sideFEE_pcb_y" );
84 sideFEE_pcb_z = tofPara->Get(
"sideFEE_pcb_z" );
86 castingDie_x = tofPara->Get(
"castingDie_x" );
87 castingDie_y = tofPara->Get(
"castingDie_y" );
88 castingDie_z = tofPara->Get(
"castingDie_z" );
89 castingDie_addr = tofPara->Get(
"castingDie_addr" );
90 castingDie_subtractx = tofPara->Get(
"castingDie_subtractx" );
91 castingDie_subtract_posz = tofPara->Get(
"castingDie_subtract_posz" );
92 castingDie_posz1 = tofPara->Get(
"castingDie_posz1" );
93 castingDie_posz2 = tofPara->Get(
"castingDie_posz2" );
95 chamber_in_posy = tofPara->Get(
"chamber_in_posy" );
96 chamber_out_posy = tofPara->Get(
"chamber_out_posy" );
98 bracket_x = tofPara->Get(
"bracket_x" );
99 bracket_y = tofPara->Get(
"bracket_y" );
100 bracket_z = tofPara->Get(
"bracket_z" );
101 bracket_r = tofPara->Get(
"bracket_r" );
102 bracket_posx = tofPara->Get(
"bracket_posx" );
104 upStopBlock_x = tofPara->Get(
"upStopBlock_x" );
105 upStopBlock_y = tofPara->Get(
"upStopBlock_y" );
106 upStopBlock_z = tofPara->Get(
"upStopBlock_z" );
107 upStopBlock_subtractr = tofPara->Get(
"upStopBlock_subtractr" );
108 upStopBlock_subtractposz = tofPara->Get(
"upStopBlock_subtractposz" );
110 sideStopBlock_x = tofPara->Get(
"sideStopBlock_x" );
111 sideStopBlock_y = tofPara->Get(
"sideStopBlock_y" );
112 sideStopBlock_z = tofPara->Get(
"sideStopBlock_z" );
113 sideStopBlock_thickness = tofPara->Get(
"sideStopBlock_thickness" );
114 sideStopBlock_posz0 = tofPara->Get(
"sideStopBlock_posz0" );
115 sideStopBlock_posz1 = tofPara->Get(
"sideStopBlock_posz1" );
117 honeyComb_xdown = tofPara->Get(
"honeyComb_xdown" );
118 honeyComb_xup = tofPara->Get(
"honeyComb_xup" );
119 honeyComb_y = tofPara->Get(
"honeyComb_y" );
120 honeyComb_z = tofPara->Get(
"honeyComb_z" );
121 honeyComb_surface_y = tofPara->Get(
"honeyComb_surface_y" );
122 honeyComb_posz = tofPara->Get(
"honeyComb_posz" );
124 tape_mrpc_xdown = tofPara->Get(
"tape_mrpc_xdown" );
125 tape_mrpc_xup = tofPara->Get(
"tape_mrpc_xup" );
126 tape_mrpc_y = tofPara->Get(
"tape_mrpc_y" );
127 tape_mrpc_z = tofPara->Get(
"tape_mrpc_z" );
128 tape_mrpc_posz = tofPara->Get(
"tape_mrpc_posz" );
130 pcbBoard_xdown = tofPara->Get(
"pcbBoard_xdown" );
131 pcbBoard_xup = tofPara->Get(
"pcbBoard_xup" );
132 pcbBoard_y0 = tofPara->Get(
"pcbBoard_y0" );
133 pcbBoard_y1 = tofPara->Get(
"pcbBoard_y1" );
134 pcbBoard_z = tofPara->Get(
"pcbBoard_z" );
136 strip_x[0] = tofPara->Get(
"strip_x[0]" );
137 strip_x[1] = tofPara->Get(
"strip_x[1]" );
138 strip_x[2] = tofPara->Get(
"strip_x[2]" );
139 strip_x[3] = tofPara->Get(
"strip_x[3]" );
140 strip_x[4] = tofPara->Get(
"strip_x[4]" );
141 strip_x[5] = tofPara->Get(
"strip_x[5]" );
142 strip_x[6] = tofPara->Get(
"strip_x[6]" );
143 strip_x[7] = tofPara->Get(
"strip_x[7]" );
144 strip_x[8] = tofPara->Get(
"strip_x[8]" );
145 strip_x[9] = tofPara->Get(
"strip_x[9]" );
146 strip_x[10] = tofPara->Get(
"strip_x[10]" );
147 strip_x[11] = tofPara->Get(
"strip_x[11]" );
148 strip_y = tofPara->Get(
"strip_y" );
149 strip_z = tofPara->Get(
"strip_z" );
150 strip_gap = tofPara->Get(
"strip_gap" );
151 strip_posz = tofPara->Get(
"strip_posz" );
153 mylar_xdown = tofPara->Get(
"mylar_xdown" );
154 mylar_xup = tofPara->Get(
"mylar_xup" );
155 mylar_y = tofPara->Get(
"mylar_y" );
156 mylar_z = tofPara->Get(
"mylar_z" );
157 mylar_posz = tofPara->Get(
"mylar_posz" );
159 glass0_xdown = tofPara->Get(
"glass0_xdown" );
160 glass0_xup = tofPara->Get(
"glass0_xup" );
161 glass0_y = tofPara->Get(
"glass0_y" );
162 glass0_z = tofPara->Get(
"glass0_z" );
163 glass0_posz = tofPara->Get(
"glass0_posz" );
165 glass1_xdown = tofPara->Get(
"glass1_xdown" );
166 glass1_xup = tofPara->Get(
"glass1_xup" );
167 glass1_y = tofPara->Get(
"glass1_y" );
168 glass1_z = tofPara->Get(
"glass1_z" );
169 glass1_posz = tofPara->Get(
"glass1_posz" );
171 gasLayer_xdown = tofPara->Get(
"gasLayer_xdown" );
172 gasLayer_xup = tofPara->Get(
"gasLayer_xup" );
173 gasLayer_y = tofPara->Get(
"gasLayer_y" );
174 gasLayer_z = tofPara->Get(
"gasLayer_z" );
175 gasLayer_posz = tofPara->Get(
"gasLayer_posz" );
177 endcap_r = tofPara->Get(
"endcap_r" );
178 endcap_length = tofPara->Get(
"endcap_length" );
179 layer_posz = tofPara->Get(
"layer_posz" );
180 startAngle_east = tofPara->Get(
"startAngle_east" );
181 startAngle_west = tofPara->Get(
"startAngle_west" );
327 Name <<
"solid_upFEE_" << name;
329 G4LogicalVolume* logical_upFEE =
330 new G4LogicalVolume( solid_upFEE, G4Material::GetMaterial(
"Air" ), name );
333 Name <<
"solid_upFEE_out_" << name;
337 Name <<
"solid_upFEE_in_" << name;
338 G4Trd* solid_upFEE_in =
339 new G4Trd(
Name.str(), upFEE_xdown / 2 - FEE_thickness, upFEE_xup / 2 - FEE_thickness,
340 upFEE_y / 2, upFEE_y / 2, upFEE_z / 2 - FEE_thickness );
343 Name <<
"solid_upFEE_box_" << name;
344 G4Transform3D transform_upFEE(
rot_dummy, G4ThreeVector( 0, -1 * FEE_thickness, 0 ) );
345 G4SubtractionSolid* solid_upFEE_box =
346 new G4SubtractionSolid(
Name.str(), solid_upFEE_out, solid_upFEE_in, transform_upFEE );
349 Name <<
"logical_upFEE_box_" << name;
350 G4LogicalVolume* logical_upFEE_box =
new G4LogicalVolume(
351 solid_upFEE_box, G4Material::GetMaterial(
"Aluminium" ),
Name.str() );
354 Name <<
"logical_upFEE_pcb_" << name;
358 Name <<
"physical_upFEE_pcb_" << name;
359 new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logical_upFEE_pcb,
Name.str(), logical_upFEE,
363 Name <<
"physical_upFEE_box_" << name;
364 new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logical_upFEE_box,
Name.str(), logical_upFEE,
367 G4VisAttributes* vis =
new G4VisAttributes();
368 vis->SetColor( G4Color( 0.2, 0., 1 ) );
370 logical_upFEE_box->SetVisAttributes( vis );
372 G4VisAttributes* vis1 =
new G4VisAttributes();
373 vis1->SetVisibility( 0 );
374 logical_upFEE->SetVisAttributes( vis1 );
376 return logical_upFEE;
404 Name <<
"solid_sideFEE_" << name;
406 G4LogicalVolume* logical_sideFEE =
407 new G4LogicalVolume( solid_sideFEE, G4Material::GetMaterial(
"Air" ), name );
410 Name <<
"solid_sideFEE_out_" << name;
414 Name <<
"solid_sideFEE_in_" << name;
415 G4Trd* solid_sideFEE_in =
416 new G4Trd(
Name.str(), sideFEE_x / 2, sideFEE_x / 2, sideFEE_y / 2 - FEE_thickness,
417 sideFEE_y / 2 - FEE_thickness, sideFEE_z / 2 - FEE_thickness );
420 Name <<
"solid_sideFEE_box_" << name;
421 G4Transform3D transform_sideFEE(
rot_dummy, G4ThreeVector( FEE_thickness, 0, 0 ) );
422 G4SubtractionSolid* solid_sideFEE_box =
new G4SubtractionSolid(
423 Name.str(), solid_sideFEE_out, solid_sideFEE_in, transform_sideFEE );
426 Name <<
"logical_sideFEE_box_" << name;
427 G4LogicalVolume* logical_sideFEE_box =
new G4LogicalVolume(
428 solid_sideFEE_box, G4Material::GetMaterial(
"Aluminium" ),
Name.str() );
431 Name <<
"logical_sideFEE_pcb_" << name;
435 Name <<
"physical_sideFEE_pcb_" << name;
436 new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logical_sideFEE_pcb,
Name.str(),
440 Name <<
"physical_sideFEE_box_" << name;
441 new G4PVPlacement( 0, G4ThreeVector( 0, 0, 0 ), logical_sideFEE_box,
Name.str(),
444 G4VisAttributes* vis =
new G4VisAttributes();
445 vis->SetColor( G4Color( 0.2, 0., 1 ) );
447 logical_sideFEE_box->SetVisAttributes( vis );
449 G4VisAttributes* vis1 =
new G4VisAttributes();
450 vis1->SetVisibility( 0 );
451 logical_sideFEE->SetVisAttributes( vis1 );
453 return logical_sideFEE;
458 Name << name <<
"_1";
460 G4Trd* solid_castingDie_outline_1 =
new G4Trd(
462 castingDie_y / 2 +
smallL, castingDie_y / 2 +
smallL, castingDie_z / 2 +
smallL * 10 );
464 Name << name <<
"_2";
465 G4Tubs* solid_castingDie_outline_2 =
466 new G4Tubs(
Name.str(), 0, castingDie_addr +
smallL, castingDie_z / 2 +
smallL * 10,
467 0 * degree, 360 * degree );
470 G4Transform3D transform_castingDie_outline_1(
471 rot_dummy, G4ThreeVector( castingDie_x / 2 - 0.1 * mm, 0, 0 ) );
473 Name << name <<
"_3";
474 G4UnionSolid* solid_castingDie_outline_3 =
475 new G4UnionSolid(
Name.str(), solid_castingDie_outline_1, solid_castingDie_outline_2,
476 transform_castingDie_outline_1 );
478 G4Transform3D transform_castingDie_outline_2(
479 rot_dummy, G4ThreeVector( -1 * castingDie_x / 2 + 0.1 * mm, 0, 0 ) );
480 G4UnionSolid* solid_castingDie_outline =
481 new G4UnionSolid( name, solid_castingDie_outline_3, solid_castingDie_outline_2,
482 transform_castingDie_outline_2 );
483 return solid_castingDie_outline;
517 Name <<
"solid_containerOut_" << name;
522 Name <<
"solid_upCover_" << name;
524 G4ThreeVector translation_upCover( 0, ( containerOut_y + upCover_y ) / 2,
525 ( upCover_z - containerOut_z ) / 2 - upCover_posz );
526 G4Transform3D transform_upCover(
rot_dummy, translation_upCover );
528 Name <<
"solid_container_" << name <<
"_1";
529 G4UnionSolid* solid_container_1 =
530 new G4UnionSolid(
Name.str(), solid_containerOut, solid_upCover, transform_upCover );
534 Name <<
"solid_upFEE_" << name;
536 G4ThreeVector translation_upFEE( 0, containerOut_y / 2 + upCover_y + upFEE_y / 2,
537 upCover_z - upFEE_posz - upFEE_z / 2 - upCover_posz -
538 containerOut_z / 2 );
539 G4Transform3D transform_upFEE(
rot_dummy, translation_upFEE );
541 Name <<
"solid_container_" << name <<
"_2";
542 G4UnionSolid* solid_container_2 =
543 new G4UnionSolid(
Name.str(), solid_container_1, solid_upFEE, transform_upFEE );
547 Name <<
"solid_sideFEE_" << name;
550 double angle_containerFrameSide =
551 atan( ( containerOut_xup - containerOut_xdown ) / 2 / containerOut_z ) *
rad;
552 double l_containerFrameSide = containerOut_z /
cos( angle_containerFrameSide );
554 ( l_containerFrameSide / 2 - sideFEE_posl ) *
sin( angle_containerFrameSide ) +
555 ( containerOut_xup + containerOut_xdown ) / 4 +
556 sideFEE_x / 2 *
cos( angle_containerFrameSide );
558 ( l_containerFrameSide / 2 - sideFEE_posl ) *
cos( angle_containerFrameSide ) -
559 sideFEE_x / 2 *
sin( angle_containerFrameSide );
560 G4ThreeVector translation_sideFEE_left( -x_sideFEE, 0, z_sideFEE );
561 G4RotationMatrix rot_sideFEE_left;
562 rot_sideFEE_left.rotateY( -angle_containerFrameSide );
563 G4Transform3D transform_sideFEE_left( rot_sideFEE_left, translation_sideFEE_left );
565 Name <<
"solid_container_" << name <<
"_3";
566 G4UnionSolid* solid_container_3 =
567 new G4UnionSolid(
Name.str(), solid_container_2, solid_sideFEE, transform_sideFEE_left );
569 G4ThreeVector translation_sideFEE_right( x_sideFEE, 0, z_sideFEE );
570 G4RotationMatrix rot_sideFEE_right;
571 rot_sideFEE_right.rotateY( angle_containerFrameSide );
572 G4Transform3D transform_sideFEE_right( rot_sideFEE_right, translation_sideFEE_right );
574 Name <<
"solid_container_" << name <<
"_4";
575 G4UnionSolid* solid_container_4 =
new G4UnionSolid(
Name.str(), solid_container_3,
576 solid_sideFEE, transform_sideFEE_right );
580 Name <<
"solid_castingDie_" << name;
583 G4RotationMatrix rot_castingDie;
584 rot_castingDie.rotateX( 90 * deg );
585 G4ThreeVector translation_castingDie_1( 0, containerOut_y / 2 + upCover_y + castingDie_z / 2,
586 -containerOut_z / 2 + upCover_posz +
588 G4Transform3D transform_castingDie_1( rot_castingDie, translation_castingDie_1 );
590 Name <<
"solid_container_" << name <<
"_5";
591 G4UnionSolid* solid_container_5 =
new G4UnionSolid(
592 Name.str(), solid_container_4, solid_castingDie, transform_castingDie_1 );
594 G4ThreeVector translation_castingDie_2( 0, containerOut_y / 2 + upCover_y + castingDie_z / 2,
595 -containerOut_z / 2 + upCover_posz +
597 G4Transform3D transform_castingDie_2( rot_castingDie, translation_castingDie_2 );
599 Name <<
"solid_container_" << name <<
"_6";
600 G4UnionSolid* solid_container_6 =
new G4UnionSolid(
601 Name.str(), solid_container_5, solid_castingDie, transform_castingDie_2 );
604 G4VSolid* solid_lowCover;
606 Name <<
"solid_lowCover_" << name;
610 z_lowCover = ( lowCover1_z - containerOut_z ) / 2 - lowCover1_posz;
613 else if (
flag == 1 )
615 z_lowCover = ( lowCover2_z - containerOut_z ) / 2 - lowCover2_posz;
620 G4cout <<
"!!!!!!!! Wrong lower Board !!!!!!!!!" << G4endl;
624 G4ThreeVector translation_lowCover( 0, -1 * ( containerOut_y + upCover_y ) / 2, z_lowCover );
625 G4Transform3D transform_lowCover(
rot_dummy, translation_lowCover );
627 Name <<
"solid_container_" << name;
628 G4UnionSolid* solid_container =
629 new G4UnionSolid(
Name.str(), solid_container_6, solid_lowCover, transform_lowCover );
630 G4LogicalVolume* logical_container =
631 new G4LogicalVolume( solid_container, G4Material::GetMaterial(
"Air" ), name );
633 G4VisAttributes* vis =
new G4VisAttributes();
634 vis->SetColor( G4Color( 0.5, 0.5, 0.6 ) );
635 vis->SetForceWireframe(
true );
636 logical_container->SetVisAttributes( vis );
639 return logical_container;
682 Name <<
"solid_honeyComb_" << name;
683 G4Trd* solid_honeyComb =
new G4Trd(
Name.str(), honeyComb_xdown / 2, honeyComb_xup / 2,
684 honeyComb_y / 2, honeyComb_y / 2, honeyComb_z / 2 );
685 G4LogicalVolume* logical_honeyComb =
686 new G4LogicalVolume( solid_honeyComb, G4Material::GetMaterial(
"honeycombCore" ), name );
690 Name <<
"solid_honeyComb_surface_" << name;
691 G4Trd* solid_honeyComb_surface =
692 new G4Trd(
Name.str(), honeyComb_xdown / 2, honeyComb_xup / 2, honeyComb_surface_y / 2,
693 honeyComb_surface_y / 2, honeyComb_z / 2 );
696 Name <<
"logical_honeyComb_surface_" << name;
697 G4LogicalVolume* logical_honeyComb_surface =
new G4LogicalVolume(
698 solid_honeyComb_surface, G4Material::GetMaterial(
"insulationBoard" ),
Name.str() );
701 Name <<
"physical_honeyComb_surface_" << name <<
"_0";
703 0, G4ThreeVector( 0, ( honeyComb_y - honeyComb_surface_y ) / 2. -
smallL, 0 ),
704 logical_honeyComb_surface,
Name.str(), logical_honeyComb,
false, 0,
checkOverlap );
707 Name <<
"physical_honeyComb_surface_" << name <<
"_1";
709 0, G4ThreeVector( 0, -( honeyComb_y - honeyComb_surface_y ) / 2. +
smallL, 0 ),
710 logical_honeyComb_surface,
Name.str(), logical_honeyComb,
false, 0,
checkOverlap );
712 G4VisAttributes* vis1 =
new G4VisAttributes();
713 vis1->SetColor( G4Color::Green() );
715 logical_honeyComb_surface->SetVisAttributes( vis1 );
717 G4VisAttributes* vis =
new G4VisAttributes();
718 vis->SetColor( G4Color( 0.55, 0.3, 0.3 ) );
720 logical_honeyComb->SetVisAttributes( vis );
722 return logical_honeyComb;
895 Name <<
"solid_upStopBlock_" << name <<
"_1";
896 G4Trd* solid_upStopBlock_1 =
897 new G4Trd(
Name.str(), upStopBlock_x / 2, upStopBlock_x / 2, upStopBlock_y / 2,
898 upStopBlock_y / 2, upStopBlock_z / 2 );
901 Name <<
"solid_upStopBlock_" << name <<
"_2";
902 G4Tubs* solid_upStopBlock_2 =
903 new G4Tubs(
Name.str(), 0, upStopBlock_subtractr +
smallL, upStopBlock_x / 2 +
smallL,
904 0 * degree, 360 * degree );
906 G4RotationMatrix rot_upStopBlock;
908 rot_upStopBlock.rotateY( 90 * degree );
909 G4Transform3D transform_upStopBlock(
912 0, 0, ( upStopBlock_z - upStopBlock_subtractr ) / 2 - upStopBlock_subtractposz ) );
915 Name <<
"solid_upStopBlock_" << name;
916 G4SubtractionSolid* solid_upStopBlock =
new G4SubtractionSolid(
917 Name.str(), solid_upStopBlock_1, solid_upStopBlock_2, transform_upStopBlock );
918 G4LogicalVolume* logical_upStopBlock =
919 new G4LogicalVolume( solid_upStopBlock, G4Material::GetMaterial(
"Nylon" ), name );
921 G4VisAttributes* vis =
new G4VisAttributes();
922 vis->SetColor( G4Color( 0.3, 0.3, 0.3 ) );
924 logical_upStopBlock->SetVisAttributes( vis );
926 return logical_upStopBlock;
931 Name <<
"solid_sideStopBlock_" << name <<
"_1";
932 G4Trd* solid_sideStopBlock_1 =
933 new G4Trd(
Name.str(), sideStopBlock_x / 2, sideStopBlock_x / 2, sideStopBlock_y / 2,
934 sideStopBlock_y / 2, sideStopBlock_z / 2 );
937 Name <<
"solid_sideStopBlock_" << name <<
"_2";
938 G4Trd* solid_sideStopBlock_2 =
new G4Trd(
939 Name.str(), ( sideStopBlock_x - sideStopBlock_thickness ) / 2 +
smallL,
940 ( sideStopBlock_x - sideStopBlock_thickness ) / 2 +
smallL, sideStopBlock_y / 2 +
smallL,
941 sideStopBlock_y / 2 +
smallL, sideStopBlock_z / 2 - sideStopBlock_thickness );
943 G4Transform3D transform_upStopBlock(
rot_dummy,
944 G4ThreeVector( sideStopBlock_thickness / 2, 0, 0 ) );
947 Name <<
"solid_sideStopBlock_" << name;
948 G4SubtractionSolid* solid_sideStopBlock =
new G4SubtractionSolid(
949 Name.str(), solid_sideStopBlock_1, solid_sideStopBlock_2, transform_upStopBlock );
950 G4LogicalVolume* logical_sideStopBlock =
951 new G4LogicalVolume( solid_sideStopBlock, G4Material::GetMaterial(
"Nylon" ), name );
953 G4VisAttributes* vis =
new G4VisAttributes();
954 vis->SetColor( G4Color( 0.3, 0.3, 0.3 ) );
956 logical_sideStopBlock->SetVisAttributes( vis );
958 return logical_sideStopBlock;