6 #include "GeoModelKernel/GeoBox.h"
7 #include "GeoModelKernel/GeoTube.h"
8 #include "GeoModelKernel/GeoPcon.h"
9 #include "GeoModelKernel/GeoEllipticalTube.h"
10 #include "GeoModelKernel/GeoShapeSubtraction.h"
11 #include "GeoModelKernel/GeoShapeIntersection.h"
12 #include "GeoModelKernel/GeoShapeUnion.h"
13 #include "GeoModelKernel/GeoShapeShift.h"
14 #include "GeoModelKernel/GeoLogVol.h"
15 #include "GeoModelKernel/GeoNameTag.h"
16 #include "GeoModelKernel/GeoPhysVol.h"
17 #include "GeoModelKernel/GeoFullPhysVol.h"
18 #include "GeoModelKernel/GeoTransform.h"
19 #include "GeoModelKernel/GeoAlignableTransform.h"
20 #include "GeoModelKernel/GeoDefinitions.h"
21 #include "GeoGenericFunctions/AbsFunction.h"
22 #include "GeoGenericFunctions/Sin.h"
23 #include "GeoGenericFunctions/Cos.h"
24 #include "GaudiKernel/SystemOfUnits.h"
28 const GeoTube *
tube =
new GeoTube(0, diameter/2, halfL-dL);
34 const GeoShapeShift& magTube0 = (*tube)<<
rotate<<shift;
37 const GeoLogVol *tubeLog =
new GeoLogVol(
name, &magTube0,
m_MapMaterials[std::string(
"std::Vacuum")]);
39 GeoPhysVol *tubePhys =
new GeoPhysVol(tubeLog);
41 GeoNameTag *
tag =
new GeoNameTag(
name);
44 fwrPhys->add(tubePhys);
49 void ForwardRegionGeoModelFactory::insertCircularElement(
const std::string&
name,
double x,
double y,
double z,
double rotationAngle,
double xAperture,
double yAperture,
double halfL,
double dL,
double tubeThickness, GeoPhysVol* fwrPhys)
53 const GeoTube *ringTube =
new GeoTube(
r0,
r0+tubeThickness, halfL-dL);
55 const GeoLogVol *ringLog =
new GeoLogVol(
name+
"Log", ringTube,
m_MapMaterials[std::string(
"Steel")]);
57 GeoPhysVol *ringPhys =
new GeoPhysVol(ringLog);
60 GeoTransform *move =
new GeoTransform(GeoTrf::Translate3D(
x,
y,
z));
62 GeoTransform *
rotate =
new GeoTransform(GeoTrf::RotateY3D(rotationAngle));
65 GeoNameTag *
tag =
new GeoNameTag(
name);
68 fwrPhys->add(ringPhys);
82 void ForwardRegionGeoModelFactory::insertEllipticalElement(
const std::string&
name,
double x,
double y,
double z,
double rotationAngle,
double xAperture,
double yAperture,
double halfL,
double dL,
double tubeThickness, GeoPhysVol* fwrPhys)
84 const GeoShape * ringTube0;
96 GeoShapeSubtraction * ringTube =
new GeoShapeSubtraction(ringTube0, ringTube2);
98 const GeoLogVol *ringLog =
new GeoLogVol(
name+
"Log", ringTube,
m_MapMaterials[std::string(
"Steel")]);
100 GeoPhysVol *ringPhys =
new GeoPhysVol(ringLog);
103 GeoTransform *move =
new GeoTransform(GeoTrf::Translate3D(
x,
y,
z));
105 GeoTransform *
rotate =
new GeoTransform(GeoTrf::RotateY3D(rotationAngle));
108 GeoNameTag *
tag =
new GeoNameTag(
name);
111 fwrPhys->add(ringPhys);
125 void ForwardRegionGeoModelFactory::insertXRecticircularElement(
const std::string&
name,
double x,
double y,
double z,
double rotationAngle,
double xAperture,
double yAperture,
double halfL,
double dL,
double tubeThickness, GeoPhysVol* fwrPhys)
131 const GeoTube *ringTube =
new GeoTube(yAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, yAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL);
132 const GeoTube *circ =
new GeoTube(0, yAperture*
Gaudi::Units::mm/2, halfL-dL);
134 GeoShapeIntersection *innerVac =
new GeoShapeIntersection(rect,circ);
136 const GeoTube *circ2 =
new GeoTube(0, yAperture*
Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL);
138 GeoShapeIntersection *beamScreenCu0 =
new GeoShapeIntersection(rect2,circ2);
139 GeoShapeSubtraction *beamScreenCu =
new GeoShapeSubtraction(beamScreenCu0, innerVac);
141 const GeoTube *circ3 =
new GeoTube(0, yAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
142 const GeoBox *rect3 =
new GeoBox(xAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
143 GeoShapeIntersection *beamScreenSteel01 =
new GeoShapeIntersection(rect3,circ3);
144 GeoShapeSubtraction *beamScreenSteel02 =
new GeoShapeSubtraction(beamScreenSteel01, innerVac);
145 GeoShapeSubtraction *beamScreenSteel =
new GeoShapeSubtraction(beamScreenSteel02, beamScreenCu);
147 const GeoLogVol *ringLog =
new GeoLogVol(
name+
"BeamPipe", ringTube,
m_MapMaterials[std::string(
"Steel")]);
148 const GeoLogVol *ringLogCu =
new GeoLogVol(
name+
"BeamScreenCu", beamScreenCu,
m_MapMaterials[std::string(
"Copper")]);
149 const GeoLogVol *ringLogSteel =
new GeoLogVol(
name+
"BeamScreenSteel", beamScreenSteel,
m_MapMaterials[std::string(
"Steel")]);
151 GeoPhysVol *ringPhys =
new GeoPhysVol(ringLog);
152 GeoPhysVol *ringPhysCu =
new GeoPhysVol(ringLogCu);
153 GeoPhysVol *ringPhysSteel =
new GeoPhysVol(ringLogSteel);
156 GeoTransform *move =
new GeoTransform(GeoTrf::Translate3D(
x,
y,
z));
158 GeoTransform *
rotate =
new GeoTransform(GeoTrf::RotateY3D(rotationAngle));
161 GeoNameTag *
tag =
new GeoNameTag(
name+
"BeamPipe");
164 fwrPhys->add(ringPhys);
170 tag =
new GeoNameTag(
name+
"BeamScreenCu");
172 fwrPhys->add(ringPhysCu);
175 tag =
new GeoNameTag(
name+
"BeamScreenSteel");
177 fwrPhys->add(ringPhysSteel);
206 void ForwardRegionGeoModelFactory::insertYRecticircularElement(
const std::string&
name,
double x,
double y,
double z,
double rotationAngle,
double xAperture,
double yAperture,
double halfL,
double dL,
double tubeThickness, GeoPhysVol* fwrPhys)
212 const GeoTube *ringTube =
new GeoTube(xAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, xAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL);
213 const GeoTube *circ =
new GeoTube(0, xAperture*
Gaudi::Units::mm/2, halfL-dL);
215 GeoShapeIntersection *innerVac =
new GeoShapeIntersection(rect,circ);
217 const GeoTube *circ2 =
new GeoTube(0, xAperture*
Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL);
219 GeoShapeIntersection *beamScreenCu0 =
new GeoShapeIntersection(rect2,circ2);
220 GeoShapeSubtraction *beamScreenCu =
new GeoShapeSubtraction(beamScreenCu0, innerVac);
222 const GeoTube *circ3 =
new GeoTube(0, xAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
223 const GeoBox *rect3 =
new GeoBox(xAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*
Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
224 GeoShapeIntersection *beamScreenSteel01 =
new GeoShapeIntersection(rect3,circ3);
225 GeoShapeSubtraction *beamScreenSteel02 =
new GeoShapeSubtraction(beamScreenSteel01, innerVac);
226 GeoShapeSubtraction *beamScreenSteel =
new GeoShapeSubtraction(beamScreenSteel02, beamScreenCu);
228 const GeoLogVol *ringLog =
new GeoLogVol(
name+
"BeamPipe", ringTube,
m_MapMaterials[std::string(
"Steel")]);
229 const GeoLogVol *ringLogCu =
new GeoLogVol(
name+
"BeamScreenCu", beamScreenCu,
m_MapMaterials[std::string(
"Copper")]);
230 const GeoLogVol *ringLogSteel =
new GeoLogVol(
name+
"BeamScreenSteel", beamScreenSteel,
m_MapMaterials[std::string(
"Steel")]);
232 GeoPhysVol *ringPhys =
new GeoPhysVol(ringLog);
233 GeoPhysVol *ringPhysCu =
new GeoPhysVol(ringLogCu);
234 GeoPhysVol *ringPhysSteel =
new GeoPhysVol(ringLogSteel);
237 GeoTransform *move =
new GeoTransform(GeoTrf::Translate3D(
x,
y,
z));
239 GeoTransform *
rotate =
new GeoTransform(GeoTrf::RotateY3D(rotationAngle));
242 GeoNameTag *
tag =
new GeoNameTag(
name+
"BeamPipe");
245 fwrPhys->add(ringPhys);
250 tag =
new GeoNameTag(
name+
"BeamScreenCu");
252 fwrPhys->add(ringPhysCu);
255 tag =
new GeoNameTag(
name+
"BeamScreenSteel");
257 fwrPhys->add(ringPhysSteel);
291 double TAN_A, TAN_B, TAN_C, TAN_Dsmall, TAN_Dbig, TAN_thick1, TAN_xseparation;
301 double TAN_Rsmall, TAN_Rbig, TAN_coneZh, TAN_coneR, TAN_coneXh;
302 TAN_Rsmall = 0.5*TAN_Dsmall;
303 TAN_Rbig = 0.5*TAN_Dbig;
304 TAN_coneZh = TAN_B*
cos(5*
M_PI/180);
305 TAN_coneR = 2*TAN_B*
sin(5*
M_PI/180)+TAN_Rsmall;
306 TAN_coneXh = TAN_Rbig-TAN_B*
sin(5*
M_PI/180)-TAN_Rsmall;
313 TANi_cone0->addPlane(2*TAN_coneZh, TAN_Rsmall, 2*TAN_Rbig);
314 TANi_cone0->addPlane(TAN_coneZh, TAN_Rsmall, 2*TAN_Rbig);
315 TANi_cone0->addPlane(-TAN_coneZh, TAN_coneR, 2*TAN_Rbig);
318 const GeoShapeShift& TANi_cone = (*TANi_cone0)<<TAN_rotateCone<<TAN_moveCone;
320 const GeoBox *TAN_box0 =
new GeoBox(2*TAN_Rbig,2*TAN_Rbig,TAN_A+TAN_B);
322 const GeoShapeShift& TAN_box = (*TAN_box0)<<TAN_moveBox;
324 const GeoTube *TANi_bigtube =
new GeoTube(0, TAN_Rbig, 0.5*(TAN_A+TAN_B));
326 GeoShapeSubtraction *TANi_hcyl =
new GeoShapeSubtraction(TANi_bigtube, &TAN_box);
328 GeoShapeSubtraction *TANi_h =
new GeoShapeSubtraction(TANi_hcyl, &TANi_cone);
332 GeoTrf::Transform3D TAN_moveTube1 = GeoTrf::Translate3D(TAN_xseparation,0,0.5*(TAN_A+TAN_B));
333 GeoTrf::Transform3D TAN_moveTube2 = GeoTrf::Translate3D(-TAN_xseparation,0,0.5*(TAN_A+TAN_B));
337 TANo_cone0->addPlane(2*TAN_coneZh, TAN_Rsmall+TAN_thick1, 2*TAN_Rbig);
338 TANo_cone0->addPlane(TAN_coneZh, TAN_Rsmall+TAN_thick1, 2*TAN_Rbig);
339 TANo_cone0->addPlane(-TAN_coneZh, TAN_coneR+TAN_thick1, 2*TAN_Rbig);
340 const GeoShapeShift& TANo_cone = (*TANo_cone0)<<TAN_rotateCone<<TAN_moveCone;
342 const GeoTube *TANo_bigtube =
new GeoTube(0, TAN_Rbig+TAN_thick1, 0.5*(TAN_A+TAN_B));
344 GeoShapeSubtraction *TANo_hcyl =
new GeoShapeSubtraction(TANo_bigtube, &TAN_box);
346 GeoShapeSubtraction *TANo_h =
new GeoShapeSubtraction(TANo_hcyl, &TANo_cone);
348 const GeoTube *TAN_antiblock0 =
new GeoTube(0, TAN_Rsmall, 0.5*(TAN_A+2*TAN_B));
350 const GeoShapeShift& TAN_antiblock = (*TAN_antiblock0)<<TAN_moveAntiblock;
352 GeoShapeSubtraction *TAN_shape0 =
new GeoShapeSubtraction(TANo_h, TANi_h);
353 GeoShapeSubtraction *TAN_shape =
new GeoShapeSubtraction(TAN_shape0, &TAN_antiblock);
354 const GeoShapeShift& TAN_shape1 = (*TAN_shape)<<TAN_moveH;
355 const GeoShapeShift& TAN_shape2 = (*TAN_shape)<<TAN_moveH<<TAN_rotateH;
357 const GeoTube *TANo_ftube =
new GeoTube(TAN_Rsmall,TAN_Rsmall+TAN_thick1,0.5*TAN_C-0.1*
Gaudi::Units::mm);
358 const GeoShapeShift& TANo_ftube1 = (*TANo_ftube)<<TAN_moveTube1;
359 const GeoShapeShift& TANo_ftube2 = (*TANo_ftube)<<TAN_moveTube2;
361 GeoShapeUnion *TANo0 =
new GeoShapeUnion(&TAN_shape1, &TAN_shape2);
362 GeoShapeUnion *TANo1 =
new GeoShapeUnion(TANo0, &TANo_ftube1);
363 GeoShapeUnion *TANo =
new GeoShapeUnion(TANo1, &TANo_ftube2);
366 const GeoLogVol *ringLog =
new GeoLogVol(
name+
"Log", TANo,
m_MapMaterials[std::string(
"Steel")]);
368 GeoPhysVol *ringPhys =
new GeoPhysVol(ringLog);
371 GeoTransform *move =
new GeoTransform(GeoTrf::Translate3D(
x,
y,
z));
373 GeoTransform *
rotate =
new GeoTransform(GeoTrf::RotateY3D(rotationAngle));
376 GeoNameTag *
tag =
new GeoNameTag(
name);
379 fwrPhys->add(ringPhys);
396 double TCL_BOX_halflength, TCL_BOX_halfwidth, TCL_BOX_halfheight, TCL_BOX_sideThickness, TCL_BOX_topBottomThickness, TCL_BOX_endThickness, TCL_TUBE_halflength, TCL_TUBE_halfapperture, TCL_TUBE_thickness;
403 TCL_BOX_halfheight = 60+TCL_BOX_topBottomThickness;
409 double TCL_CuBlock_halflength, TCL_CuBlock_halfwidth, TCL_CuBlock_halfheight, TCL_CuBlockCylCut_zDepth, TCL_CuBlockCylCut_angle, TCL_CuBlockCylCut_cylR, TCL_CuBlockCylCut_cylHalflength, TCL_CuBlockCylCut_xDepth, TCL_CuBlockCylCut_xShift;
418 TCL_CuBlockCylCut_cylHalflength = TCL_CuBlockCylCut_zDepth/
cos(TCL_CuBlockCylCut_angle);
419 TCL_CuBlockCylCut_xDepth = TCL_CuBlockCylCut_zDepth*
tan(TCL_CuBlockCylCut_angle);
420 TCL_CuBlockCylCut_xShift = -TCL_CuBlock_halfwidth-TCL_CuBlockCylCut_cylR/
cos(TCL_CuBlockCylCut_angle)+TCL_CuBlockCylCut_xDepth;
422 double TCL_CuBeam_halflength, TCL_CuBeam_halfwidth, TCL_CuBeam_halfheight, TCL_Cooling_width;
436 const GeoBox * boxIn =
new GeoBox(TCL_BOX_halfwidth-TCL_BOX_sideThickness, TCL_BOX_halfheight-TCL_BOX_topBottomThickness, TCL_BOX_halflength-TCL_BOX_endThickness);
437 const GeoTube * tubeIn =
new GeoTube(0, TCL_TUBE_halfapperture, TCL_TUBE_halflength+0.5*TCL_BOX_endThickness);
438 GeoTrf::Transform3D moveTubeIn = GeoTrf::Translate3D(0, 0, TCL_BOX_halflength+TCL_TUBE_halflength-0.5*TCL_BOX_endThickness);
439 const GeoShapeShift& tubeIn1 = (*tubeIn)<<moveTubeIn;
440 const GeoShapeShift& tubeIn2 = (*tubeIn)<<moveTubeIn<<rotateY180;
441 const GeoShapeUnion * innerVac0 =
new GeoShapeUnion(boxIn,&tubeIn1);
442 GeoShapeUnion * innerVac =
new GeoShapeUnion(innerVac0,&tubeIn2);
445 const GeoBox * boxFull =
new GeoBox(TCL_BOX_halfwidth, TCL_BOX_halfheight, TCL_BOX_halflength);
446 const GeoTube * tubeOut =
new GeoTube(TCL_TUBE_halfapperture, TCL_TUBE_halfapperture+TCL_TUBE_thickness, TCL_TUBE_halflength);
447 GeoTrf::Transform3D moveTubeOut = GeoTrf::Translate3D(0, 0, TCL_BOX_halflength+TCL_TUBE_halflength);
448 const GeoShapeShift& tubeOut1 = (*tubeOut)<<moveTubeOut;
449 const GeoShapeShift& tubeOut2 = (*tubeOut)<<moveTubeOut<<rotateY180;
450 const GeoShapeUnion * outerSteelFull0 =
new GeoShapeUnion(boxFull,&tubeOut1);
451 const GeoShapeUnion * outerSteelFull =
new GeoShapeUnion(outerSteelFull0,&tubeOut2);
452 GeoShapeSubtraction * outerSteel =
new GeoShapeSubtraction(outerSteelFull,innerVac);
455 const GeoBox * cuBoxFull =
new GeoBox(TCL_CuBlock_halfwidth, TCL_CuBlock_halfheight, TCL_CuBlock_halflength);
456 const GeoTube * cylCut0 =
new GeoTube(0, TCL_CuBlockCylCut_cylR, TCL_CuBlockCylCut_cylHalflength);
458 GeoTrf::Transform3D moveCylCut = GeoTrf::Translate3D(TCL_CuBlockCylCut_xShift, 0, TCL_CuBlock_halflength);
459 const GeoShapeShift& cylCut1 = (*cylCut0)<<rotateCylCut<<moveCylCut;
460 const GeoShapeShift& cylCut2 = (*cylCut0)<<rotateCylCut<<moveCylCut<<rotateX180;
461 const GeoShapeSubtraction * cuBox0 =
new GeoShapeSubtraction(cuBoxFull, &cylCut1);
462 const GeoShapeSubtraction * cuBox1 =
new GeoShapeSubtraction(cuBox0, &cylCut2);
463 GeoTrf::Transform3D moveCuBoxI = GeoTrf::Translate3D(TCLJawDistI+TCL_CuBlock_halfwidth, 0, 0);
464 const GeoShapeShift& cuBoxI = (*cuBox1)<<moveCuBoxI;
465 GeoTrf::Transform3D moveCuBoxO = GeoTrf::Translate3D(+TCLJawDistO+TCL_CuBlock_halfwidth, 0, 0);
466 const GeoShapeShift& cuBoxO = (*cuBox1)<<moveCuBoxO<<rotateY180;
469 const GeoBox * cuBeamFull =
new GeoBox(TCL_CuBeam_halfwidth, TCL_CuBeam_halfheight, TCL_CuBeam_halflength);
470 GeoTrf::Transform3D moveCuBeamI = GeoTrf::Translate3D(TCLJawDistI+2*TCL_CuBlock_halfwidth+TCL_Cooling_width+TCL_CuBeam_halfwidth, 0, 0);
471 const GeoShapeShift& cuBeamI = (*cuBeamFull)<<moveCuBeamI;
472 GeoTrf::Transform3D moveCuBeamO = GeoTrf::Translate3D(+TCLJawDistO+2*TCL_CuBlock_halfwidth+TCL_Cooling_width+TCL_CuBeam_halfwidth, 0, 0);
473 const GeoShapeShift& cuBeamO = (*cuBeamFull)<<moveCuBeamO<<rotateY180;
476 const GeoBox * waterBox =
new GeoBox(0.5*TCL_Cooling_width, TCL_CuBlock_halfheight, TCL_CuBlock_halflength);
477 GeoTrf::Transform3D moveWaterBoxI = GeoTrf::Translate3D(TCLJawDistI+2*TCL_CuBlock_halfwidth+0.5*TCL_Cooling_width, 0, 0);
478 const GeoShapeShift& waterBoxI = (*waterBox)<<moveWaterBoxI;
479 GeoTrf::Transform3D moveWaterBoxO = GeoTrf::Translate3D(+TCLJawDistO+2*TCL_CuBlock_halfwidth+0.5*TCL_Cooling_width, 0, 0);
480 const GeoShapeShift& waterBoxO = (*waterBox)<<moveWaterBoxO<<rotateY180;
484 const GeoLogVol *ringLog =
new GeoLogVol(
name+
"Log", outerSteel,
m_MapMaterials[std::string(
"Steel")]);
485 const GeoLogVol *ringLog2 =
new GeoLogVol(
name+
"Fill", innerVac,
m_MapMaterials[std::string(
"std::Vacuum")]);
487 GeoPhysVol *ringPhys =
new GeoPhysVol(ringLog);
488 GeoPhysVol *ringPhys2 =
new GeoPhysVol(ringLog2);
490 const GeoLogVol *cuBoxLogI =
new GeoLogVol(
name+
"CuBoxI", &cuBoxI,
m_MapMaterials[std::string(tungstenInsteadOfCopper ?
"Tungsten" :
"Copper")]);
491 GeoPhysVol *cuBoxPhysI =
new GeoPhysVol(cuBoxLogI);
492 const GeoLogVol *cuBoxLogO =
new GeoLogVol(
name+
"CuBoxO", &cuBoxO,
m_MapMaterials[std::string(tungstenInsteadOfCopper ?
"Tungsten" :
"Copper")]);
493 GeoPhysVol *cuBoxPhysO =
new GeoPhysVol(cuBoxLogO);
495 const GeoLogVol *cuBeamLogI =
new GeoLogVol(
name+
"CuBeamI", &cuBeamI,
m_MapMaterials[std::string(
"GlidCopAL15")]);
496 GeoPhysVol *cuBeamPhysI =
new GeoPhysVol(cuBeamLogI);
497 const GeoLogVol *cuBeamLogO =
new GeoLogVol(
name+
"CuBeamO", &cuBeamO,
m_MapMaterials[std::string(
"GlidCopAL15")]);
498 GeoPhysVol *cuBeamPhysO =
new GeoPhysVol(cuBeamLogO);
500 const GeoLogVol *waterBoxLogI =
new GeoLogVol(
name+
"waterBoxI", &waterBoxI,
m_MapMaterials[std::string(
"water")]);
501 GeoPhysVol *waterBoxPhysI =
new GeoPhysVol(waterBoxLogI);
502 const GeoLogVol *waterBoxLogO =
new GeoLogVol(
name+
"waterBoxO", &waterBoxO,
m_MapMaterials[std::string(
"water")]);
503 GeoPhysVol *waterBoxPhysO =
new GeoPhysVol(waterBoxLogO);
506 GeoTransform *move =
new GeoTransform(GeoTrf::Translate3D(
x,
y,
z));
509 GeoNameTag *
tag =
new GeoNameTag(
name);
512 fwrPhys->add(ringPhys);
516 tag =
new GeoNameTag(
name+
"Fill");
518 fwrPhys->add(ringPhys2);
521 ringPhys2->add(cuBoxPhysI);
522 ringPhys2->add(cuBoxPhysO);
524 ringPhys2->add(cuBeamPhysI);
525 ringPhys2->add(cuBeamPhysO);
527 ringPhys2->add(waterBoxPhysI);
528 ringPhys2->add(waterBoxPhysO);