8 #include "GaudiKernel/MsgStream.h" 
    9 #include "GaudiKernel/SystemOfUnits.h" 
   10 #include "GeoModelKernel/GeoDefinitions.h" 
   11 #include "GeoModelKernel/GeoLogVol.h" 
   12 #include "GeoModelKernel/GeoMaterial.h" 
   13 #include "GeoModelKernel/GeoNameTag.h" 
   14 #include "GeoModelKernel/GeoPhysVol.h" 
   15 #include "GeoModelKernel/GeoSerialDenominator.h" 
   16 #include "GeoModelKernel/GeoSerialIdentifier.h" 
   17 #include "GeoModelKernel/GeoShapeShift.h" 
   18 #include "GeoModelKernel/GeoShapeUnion.h" 
   19 #include "GeoModelKernel/GeoTransform.h" 
   20 #include "GeoModelKernel/GeoTrd.h" 
   21 #include "GeoModelKernel/GeoTube.h" 
   22 #include "GeoModelKernel/GeoVPhysVol.h" 
   28 #include "GeoModelKernel/GeoShapeSubtraction.h" 
   30 #define skip_spacer false 
   45         return build(matManager, cutoutson);
 
   49         if (
name == 
"SPA06" || 
name == 
"SPA01") {
 
   62                 strd = &((strd->add((*upTrd) << GeoTrf::TranslateZ3D(
length / 2.))) << GeoTrf::TranslateZ3D((maxwLength - 
length) / 2.));
 
   65             const GeoMaterial *mtrd = matManager.
getMaterial(
"std::Aluminium");
 
   66             const GeoLogVol *lspa = 
new GeoLogVol(
"CSCspacer", strd, mtrd);
 
   67             GeoPhysVol *pspa = 
new GeoPhysVol(lspa);
 
   72             const GeoMaterial *mtrd = matManager.
getMaterial(
"std::Air");
 
   73             GeoLogVol *ltrd = 
new GeoLogVol(
"Spacer", strd, mtrd);
 
   74             GeoPhysVol *ptrd = 
new GeoPhysVol(ltrd);
 
   78             double dy = 3. * tckibeam;
 
   80             GeoVPhysVol *ptrdtemp = 
nullptr;
 
   82             GeoTrd *strd1 = 
new GeoTrd(
dx / 2, 
dx / 2, 
dy / 2, 
dy / 2, 
length / 2);
 
   83             const GeoMaterial *mtrd1 = matManager.
getMaterial(
"std::Aluminium");
 
   84             GeoLogVol *ltrd1 = 
new GeoLogVol(
"ibeam1", strd1, mtrd1);
 
   85             GeoPhysVol *ptrd1 = 
new GeoPhysVol(ltrd1);
 
   87             GeoTrd *strd2 = 
new GeoTrd(
dy / 2, 
dy / 2, 
dx / 2, 
dx / 2, 
length / 2);
 
   88             const GeoMaterial *mtrd2 = matManager.
getMaterial(
"std::Aluminium");
 
   89             GeoLogVol *ltrd2 = 
new GeoLogVol(
"ibeam2", strd2, mtrd2);
 
   90             GeoPhysVol *ptrd2 = 
new GeoPhysVol(ltrd2);
 
   92             GeoSerialDenominator *
sd = 
new GeoSerialDenominator(
name + 
" ibeam");
 
   95                 ptrd->add(
new GeoSerialIdentifier(0));
 
   99             double wherepos = newpos;
 
  100             double wherewidth = -
width / 2.;
 
  101             for (
int j = 0; j < 3; j++) {
 
  102                 for (
int i = 0; 
i < 3; 
i++) {
 
  108                     GeoTransform *xf = 
new GeoTransform(GeoTrf::Translate3D(wherepos + tckibeam / 2, wherewidth + 
dy / 2, 0));
 
  113                     wherepos += tckibeam;
 
  117                 wherewidth += (
width / 2. - 
dy / 2.);
 
  120             double vtubl = (
width - 5 * tckibeam) / 2.;
 
  122             GeoSerialDenominator *ntube = 
new GeoSerialDenominator(
name + 
" vbeam");
 
  125                 ptrd->add(
new GeoSerialIdentifier(0));
 
  128             for (
int k1 = 0; k1 < 2; k1++) {
 
  129                 for (
int k = 0; 
k < 2; 
k++) {
 
  130                     GeoTransform *ttube = 
new GeoTransform(GeoTrf::RotateX3D(-90 * 
Gaudi::Units::deg) *
 
  131                                                            GeoTrf::Translate3D(0., -(vtubl + tckibeam) / 2. - (
k - 1) * (vtubl + tckibeam), -
length / 4. - (k1 - 1) * 
length / 2));