diff --git a/DDCore/src/Shapes.cpp b/DDCore/src/Shapes.cpp
index 1fd6bb3fc18b31d006d37d47314e2cf484592317..57176cf7586e365f2cbe7188fc06bed44e93fe46 100644
--- a/DDCore/src/Shapes.cpp
+++ b/DDCore/src/Shapes.cpp
@@ -297,64 +297,64 @@ Cone& Cone::setDimensions(double z, double rmin1, double rmax1, double rmin2, do
 }
 
 /// Constructor to be used when creating a new object with attribute initialization
-void Tube::make(const string& nam, double rmin, double rmax, double z, double startPhi, double endPhi) {
-  _assign(new TGeoTubeSeg(nam.c_str(), rmin, rmax, z, startPhi/units::deg, endPhi/units::deg),nam,TUBE_TAG,true);
+void Tube::make(const string& nam, double rmin, double rmax, double z, double start_phi, double end_phi) {
+  _assign(new TGeoTubeSeg(nam.c_str(), rmin, rmax, z, start_phi/units::deg, end_phi/units::deg),nam,TUBE_TAG,true);
 }
 
 /// Set the tube dimensions
-Tube& Tube::setDimensions(double rmin, double rmax, double z, double startPhi, double endPhi) {
-  double params[] = {rmin,rmax,z,startPhi/units::deg,endPhi/units::deg};
+Tube& Tube::setDimensions(double rmin, double rmax, double z, double start_phi, double end_phi) {
+  double params[] = {rmin,rmax,z,start_phi/units::deg,end_phi/units::deg};
   _setDimensions(params);
   return *this;
 }
 
 /// Constructor to be used when creating a new object with attribute initialization
-CutTube::CutTube(double rmin, double rmax, double dz, double startPhi, double endPhi,
+CutTube::CutTube(double rmin, double rmax, double dz, double start_phi, double end_phi,
                  double lx, double ly, double lz, double tx, double ty, double tz)  {
-  make("", rmin,rmax,dz,startPhi/units::deg,endPhi/units::deg,lx,ly,lz,tx,ty,tz);
+  make("", rmin,rmax,dz,start_phi/units::deg,end_phi/units::deg,lx,ly,lz,tx,ty,tz);
 }
 
 /// Constructor to be used when creating a new object with attribute initialization
 CutTube::CutTube(const string& nam,
-                 double rmin, double rmax, double dz, double startPhi, double endPhi,
+                 double rmin, double rmax, double dz, double start_phi, double end_phi,
                  double lx, double ly, double lz, double tx, double ty, double tz)  {
-  make(nam, rmin,rmax,dz,startPhi/units::deg,endPhi/units::deg,lx,ly,lz,tx,ty,tz);
+  make(nam, rmin,rmax,dz,start_phi/units::deg,end_phi/units::deg,lx,ly,lz,tx,ty,tz);
 }
 
 /// Constructor to be used when creating a new object with attribute initialization
-void CutTube::make(const string& nam, double rmin, double rmax, double dz, double startPhi, double endPhi,
+void CutTube::make(const string& nam, double rmin, double rmax, double dz, double start_phi, double end_phi,
                    double lx, double ly, double lz, double tx, double ty, double tz)  {
-  _assign(new TGeoCtub(nam.c_str(), rmin,rmax,dz,startPhi,endPhi,lx,ly,lz,tx,ty,tz),"",CUTTUBE_TAG,true);
+  _assign(new TGeoCtub(nam.c_str(), rmin,rmax,dz,start_phi,end_phi,lx,ly,lz,tx,ty,tz),"",CUTTUBE_TAG,true);
 }
 
 /// Constructor to create a truncated tube object with attribute initialization
-TruncatedTube::TruncatedTube(double dz, double rmin, double rmax, double startPhi, double deltaPhi,
-                             double cutAtStart, double cutAtDelta, bool cutInside)
-{  make("", dz, rmin, rmax, startPhi/units::deg, deltaPhi/units::deg, cutAtStart, cutAtDelta, cutInside);    }
+TruncatedTube::TruncatedTube(double dz, double rmin, double rmax, double start_phi, double delta_phi,
+                             double cut_atStart, double cut_atDelta, bool cut_inside)
+{  make("", dz, rmin, rmax, start_phi/units::deg, delta_phi/units::deg, cut_atStart, cut_atDelta, cut_inside);    }
 
 /// Constructor to create a truncated tube object with attribute initialization
 TruncatedTube::TruncatedTube(const string& nam,
-                             double dz, double rmin, double rmax, double startPhi, double deltaPhi,
-                             double cutAtStart, double cutAtDelta, bool cutInside)
-{  make(nam, dz, rmin, rmax, startPhi/units::deg, deltaPhi/units::deg, cutAtStart, cutAtDelta, cutInside);    }
+                             double dz, double rmin, double rmax, double start_phi, double delta_phi,
+                             double cut_atStart, double cut_atDelta, bool cut_inside)
+{  make(nam, dz, rmin, rmax, start_phi/units::deg, delta_phi/units::deg, cut_atStart, cut_atDelta, cut_inside);    }
 
 /// Internal helper method to support object construction
 void TruncatedTube::make(const string& nam,
-                         double dz, double rmin, double rmax, double startPhi, double deltaPhi,
-                         double cutAtStart, double cutAtDelta, bool cutInside)   {
+                         double dz, double rmin, double rmax, double start_phi, double delta_phi,
+                         double cut_atStart, double cut_atDelta, bool cut_inside)   {
   // check the parameters
-  if( rmin <= 0 || rmax <= 0 || cutAtStart <= 0 || cutAtDelta <= 0 )
-    except(TRUNCATEDTUBE_TAG,"++ 0 <= rIn,cutAtStart,rOut,cutAtDelta,rOut violated!");
+  if( rmin <= 0 || rmax <= 0 || cut_atStart <= 0 || cut_atDelta <= 0 )
+    except(TRUNCATEDTUBE_TAG,"++ 0 <= rIn,cut_atStart,rOut,cut_atDelta,rOut violated!");
   else if( rmin >= rmax )
     except(TRUNCATEDTUBE_TAG,"++ rIn<rOut violated!");
-  else if( startPhi != 0. )
-    except(TRUNCATEDTUBE_TAG,"++ startPhi != 0 not supported!");
+  else if( start_phi != 0. )
+    except(TRUNCATEDTUBE_TAG,"++ start_phi != 0 not supported!");
 
-  double r         = cutAtStart;
-  double R         = cutAtDelta;
+  double r         = cut_atStart;
+  double R         = cut_atDelta;
   // angle of the box w.r.t. tubs
-  double cath      = r - R * std::cos( deltaPhi*units::deg );
-  double hypo      = std::sqrt( r*r + R*R - 2.*r*R * std::cos( deltaPhi*units::deg ));
+  double cath      = r - R * std::cos( delta_phi*units::deg );
+  double hypo      = std::sqrt( r*r + R*R - 2.*r*R * std::cos( delta_phi*units::deg ));
   double cos_alpha = cath / hypo;
   double alpha     = std::acos( cos_alpha );
   double sin_alpha = std::sin( std::fabs(alpha) );
@@ -367,7 +367,7 @@ void TruncatedTube::make(const string& nam,
   // width of the box > width of the tubs
   double boxZ      = 1.1 * dz;
   double xBox;      // center point of the box
-  if( cutInside )
+  if( cut_inside )
     xBox = r - boxY / sin_alpha;
   else
     xBox = r + boxY / sin_alpha;
@@ -376,20 +376,20 @@ void TruncatedTube::make(const string& nam,
   TGeoRotation rot;
   rot.RotateZ( -alpha/dd4hep::deg );
   TGeoTranslation trans(xBox, 0., 0.);  
-  TGeoBBox* box  = new TGeoBBox((nam+"Box").c_str(), boxX, boxY, boxZ);
-  TGeoTubeSeg* tubs = new TGeoTubeSeg((nam+"Tubs").c_str(), rmin, rmax, dz, startPhi, deltaPhi);
-  TGeoCombiTrans* combi = new TGeoCombiTrans(trans, rot);
-  TGeoSubtraction* sub  = new TGeoSubtraction(tubs, box, nullptr, combi);
+  TGeoBBox*        box   = new TGeoBBox((nam+"Box").c_str(), boxX, boxY, boxZ);
+  TGeoTubeSeg*     tubs  = new TGeoTubeSeg((nam+"Tubs").c_str(), rmin, rmax, dz, start_phi, delta_phi);
+  TGeoCombiTrans*  combi = new TGeoCombiTrans(trans, rot);
+  TGeoSubtraction* sub   = new TGeoSubtraction(tubs, box, nullptr, combi);
   _assign(new TGeoCompositeShape(nam.c_str(), sub),"",TRUNCATEDTUBE_TAG,true);
   stringstream params;
   params << dz                  << " " << endl
          << rmin                << " " << endl
          << rmax                << " " << endl
-         << startPhi*units::deg << " " << endl
-         << deltaPhi*units::deg << " " << endl
-         << cutAtStart          << " " << endl
-         << cutAtDelta          << " " << endl
-         << char(cutInside ? '1' : '0') << endl;
+         << start_phi*units::deg << " " << endl
+         << delta_phi*units::deg << " " << endl
+         << cut_atStart          << " " << endl
+         << cut_atDelta          << " " << endl
+         << char(cut_inside ? '1' : '0') << endl;
   combi->SetTitle(params.str().c_str());
   //cout << "Params: " << params.str() << endl;
 #if 0
@@ -397,11 +397,11 @@ void TruncatedTube::make(const string& nam,
          << "\t dz:          " << dz << " " << endl
          << "\t rmin:        " << rmin << " " << endl
          << "\t rmax:        " << rmax << " " << endl
-         << "\t startPhi:    " << startPhi << " " << endl
-         << "\t deltaPhi:    " << deltaPhi << " " << endl
-         << "\t r/cutAtStart:" << cutAtStart << " " << endl
-         << "\t R/cutAtDelta:" << cutAtDelta << " " << endl
-         << "\t cutInside:   " << char(cutInside ? '1' : '0') << endl
+         << "\t startPhi:    " << start_phi << " " << endl
+         << "\t deltaPhi:    " << delta_phi << " " << endl
+         << "\t r/cutAtStart:" << cut_atStart << " " << endl
+         << "\t R/cutAtDelta:" << cut_atDelta << " " << endl
+         << "\t cutInside:   " << char(cut_inside ? '1' : '0') << endl
          << "\t\t alpha:     " << alpha << endl
          << "\t\t sin_alpha: " << sin_alpha << endl
          << "\t\t boxY:      " << boxY << endl
@@ -415,7 +415,7 @@ void TruncatedTube::make(const string& nam,
        << " rmax:         " << rmax
        << " r/cutAtStart: " << r
        << " R/cutAtDelta: " << R
-       << " cutInside:    " << (cutInside ? "YES" : "NO ")
+       << " cutInside:    " << (cut_inside ? "YES" : "NO ")
        << endl;
   cout << " cath:      " << cath
        << " hypo:      " << hypo
@@ -429,7 +429,7 @@ void TruncatedTube::make(const string& nam,
        << endl;
   cout << "Box:" << "x:" << box->GetDX() << " y:" << box->GetDY() << " z:" << box->GetDZ() << endl;
   cout << "Tubs:" << " rmin:" << rmin << " rmax" << rmax << "dZ" << dZ
-       << " startPhi:" <<  startPhi << " deltaPhi:" << deltaPhi << endl;
+       << " startPhi:" <<  start_phi << " deltaPhi:" << delta_phi << endl;
 #endif
 }
 
diff --git a/DDDetectors/src/ReflectedDetector_geo.cpp b/DDDetectors/src/ReflectedDetector_geo.cpp
index 853c80c26e364af2f1f0e5955c4694d2590c3401..9de404db78b7fa1284fb496ef5942485fb3c5698 100644
--- a/DDDetectors/src/ReflectedDetector_geo.cpp
+++ b/DDDetectors/src/ReflectedDetector_geo.cpp
@@ -61,7 +61,8 @@ static Ref_t create_element(Detector& description, xml_h e, Ref_t sens)  {
     matrix::_decompose(ref_pv.matrix(), tr3D, rot3D);
     tr3D = tr3D * (-1.0 / dd4hep::mm);
   }
-  char refl_type = ::toupper(x_refl.attr<string>(_U(type))[0]);
+  char refl_type = 'Z';
+  if ( x_refl.hasAttr(_U(type)) ) refl_type = ::toupper(x_refl.attr<string>(_U(type))[0]);
   if (      x_refl && refl_type == 'X' )
     transform3D = Transform3D(Rotation3D(-1., 0., 0., 0.,  1., 0., 0., 0.,  1.) * rot3D, tr3D);
   else if ( x_refl && refl_type == 'Y' )
diff --git a/examples/ClientTests/compact/CaloEndcapReflection.xml b/examples/ClientTests/compact/CaloEndcapReflection.xml
index a0be06938411ef6d7563cd32b8e240e976356cf3..2ac37b678d1be4c2730ea8a73e2166589a25b5d4 100644
--- a/examples/ClientTests/compact/CaloEndcapReflection.xml
+++ b/examples/ClientTests/compact/CaloEndcapReflection.xml
@@ -49,6 +49,7 @@
     <detector id="EcalEndcap_ID+100" name="EcalEndcapB" type="DD4hep_ReflectedDetector"
               sensitive="true" sdref="EcalEndcapA"    readout="EcalEndcapBHits">
       <sensitive type="calorimeter"/>
+      <reflect type="Z"/>
     </detector>
 
   </detectors>
@@ -84,6 +85,7 @@
     <detector id="HcalEndcap_ID+100" name="HcalEndcapB" type="DD4hep_ReflectedDetector"
               sensitive="true" sdref="HcalEndcapA"    readout="HcalEndcapBHits">
       <sensitive type="calorimeter"/>
+      <reflect type="Z"/>
     </detector>
   </detectors>
 
diff --git a/examples/ClientTests/compact/CheckShape.xml b/examples/ClientTests/compact/CheckShape.xml
index 12a6d2db9d3d19df3e2ff157c2b6af99b7941db4..a4d208d5f025be7cd67c4f8c3f689ca37834058c 100644
--- a/examples/ClientTests/compact/CheckShape.xml
+++ b/examples/ClientTests/compact/CheckShape.xml
@@ -16,7 +16,7 @@
   </includes>
 
   <define>
-    <constant name="world_side" value="300*cm"/>
+    <constant name="world_side" value="3000*cm"/>
     <constant name="world_x" value="world_side"/>
     <constant name="world_y" value="world_side"/>
     <constant name="world_z" value="world_side"/>
diff --git a/examples/ClientTests/compact/Check_Shape_ExtrudedPolygon.xml b/examples/ClientTests/compact/Check_Shape_ExtrudedPolygon.xml
index cd910e142f9f37edb2cdcca0ccc2e75699fa953d..f098c1f95dbc000e9325568058a9279b3873f29d 100644
--- a/examples/ClientTests/compact/Check_Shape_ExtrudedPolygon.xml
+++ b/examples/ClientTests/compact/Check_Shape_ExtrudedPolygon.xml
@@ -15,13 +15,14 @@
           <point x=" 15*cm" y=" 15*cm"/>
           <point x="-15*cm" y=" 15*cm"/>
           <point x="-15*cm" y="-30*cm"/>
-          <section z="-60*cm" x="0*cm" y="30*cm" scale="0.8"/>
-          <section z="-15*cm" x="0*cm" y="-30*cm" scale="1."/>
-          <section z="10*cm" x="0*cm" y="0*cm" scale="0.6"/>
-          <section z="60*cm" x="0*cm" y="30*cm" scale="1.2"/>
+          <section z="-60*cm" x="0*cm" y="30*cm"  scale="0.8"/>
+          <section z="-15*cm" x="0*cm" y="-30*cm" scale="1." />
+          <section z="10*cm"  x="0*cm" y="0*cm"   scale="0.6"/>
+          <section z="60*cm"  x="0*cm" y="30*cm"  scale="1.2"/>
         </shape>
       </check>
       <test  type="DD4hep_Mesh_Verifier" ref="${DD4hepExamplesINSTALL}/examples/ClientTests/ref/Ref_ExtrudedPolygon.txt" create="CheckShape_create"/>
+      <ntest type="DD4hep_Mesh_Verifier" ref="${DD4hepExamplesINSTALL}/examples/ClientTests/ref/Ref_ExtrudedPolygon.txt" create="1"/>
     </detector>
   </detectors>
 </lccdd>
diff --git a/examples/ClientTests/compact/Check_Shape_TruncatedTube.xml b/examples/ClientTests/compact/Check_Shape_TruncatedTube.xml
index bd09097d1c779c0d69c55d3f929f68f5e8815a62..f89db3fc123a54cedbc08cd762352f845dcd7220 100644
--- a/examples/ClientTests/compact/Check_Shape_TruncatedTube.xml
+++ b/examples/ClientTests/compact/Check_Shape_TruncatedTube.xml
@@ -5,56 +5,46 @@
 
   <detectors>
     <detector id="1" name="Shape_TruncatedTube" type="DD4hep_TestShape_Creator">
+      <check vis="Shape1_vis">
+        <shape type="Box" dx="30*cm" dy="20*cm" dz="10*cm"/>
+        <position x="30"  y="30"   z="30"/>
+        <rotation x="0"   y="0"    z="0"/>
+      </check>
       <check vis="Shape1_vis">
         <shape type="TruncatedTube" dz="50*cm" rmin="20*cm" rmax="40*cm" 
-               startphi="0*deg" deltaphi="90*deg" 
-               cutAtStart="25*cm" cutAtDelta="35*cm" cutInside="true"/>
+               startphi="0*deg"   deltaphi="90*deg" 
+               cutAtStart="25*cm" cutAtDelta="35*cm"
+               cutInside="false"/>
         <position x="0*cm"  y="0*cm"   z="100*cm"/>
       </check>
       <check vis="Shape1_vis">
         <shape type="TruncatedTube" dz="50*cm" rmin="20*cm" rmax="40*cm" 
-               startphi="0*deg" deltaphi="90*deg" 
-               cutAtStart="25*cm" cutAtDelta="35*cm" cutInside="false"/>
+               startphi="0*deg"     deltaphi="90*deg" 
+               cutAtStart="25*cm"   cutAtDelta="35*cm"
+               cutInside="false"/>
         <position x="0*cm"  y="0*cm"   z="-100*cm"/>
       </check>
       <check vis="Shape2_vis">
         <shape type="TruncatedTube" dz="50*cm" rmin="20*cm" rmax="40*cm" 
-               startphi="0*deg" deltaphi="45*deg" 
-               cutAtStart="20*cm" cutAtDelta="30*cm" cutInside="true"/>
+               startphi="0*deg"     deltaphi="45*deg" 
+               cutAtStart="20*cm"   cutAtDelta="30*cm"
+               cutInside="true"/>
         <position x="0*cm"  y="150*cm"   z="-100*cm"/>
       </check>
+
 <!--  This one for one reason or another creates a slightly different mesh on MAC than on linux
       (two mesh points more, the others identical). Lets remove this test.
       <check vis="Shape3_vis">
         <shape type="TruncatedTube" dz="50*cm" rmin="20*cm" rmax="40*cm" 
-               startphi="0*deg" deltaphi="150*deg" 
-               cutAtStart="20*cm" cutAtDelta="35*cm" cutInside="true"/>
+               startphi="0*deg"     deltaphi="150*deg" 
+               cutAtStart="20*cm"   cutAtDelta="35*cm"
+               cutInside="true"/>
         <position x="90*cm"  y="150*cm"   z="100*cm"/>
       </check>
 -->
-<!--
-      <TruncTubs name="trunctubs2" rMin="6.9551*m" rMax="9*m" cutAtStart="6.9551*m" cutAtDelta="7.20045*m" cutInside="true" startPhi="0*deg" deltaPhi="15*deg" dz="6.57005*m"/>
-
-        <position z="-28.9*m" y="5.9*m" x="0."/>
--->
-<!--
-      <check vis="Shape1_vis">
-        <shape type="TruncatedTube" dz="6.57005*m" rmin="6.9551*m" rmax="9*m" 
-               startphi="0*deg" deltaphi="15*deg" 
-               cutAtStart="6.9551*m" cutAtDelta="7.20045*m" cutInside="true"/>
-      </check>
--->
-<!--
-      <check vis="Shape2_vis">
-        <shape type="TruncatedTube" dz="50*cm" rmin="20*cm" rmax="40*cm" 
-               startphi="0*rad" deltaphi="pi/2*rad" 
-               cutAtStart="25*cm" cutAtDelta="35*cm" cutInside="0"/>
-        <position x="0*cm"  y="90*cm"   z="0*cm"/>
-        <rotation x="0*cm"   y="0*cm"    z="0*cm"/>
-      </check>
--->
 
       <test  type="DD4hep_Mesh_Verifier" ref="${DD4hepExamplesINSTALL}/examples/ClientTests/ref/Ref_TruncatedTube.txt" create="CheckShape_create"/>
+      <ntest type="DD4hep_Mesh_Verifier" ref="${DD4hepExamplesINSTALL}/examples/ClientTests/ref/Ref_TruncatedTube.txt" create="1"/>
     </detector>
   </detectors>
 </lccdd>
diff --git a/examples/ClientTests/ref/Ref_Eightpoint_Reflect_Volume.txt b/examples/ClientTests/ref/Ref_Eightpoint_Reflect_Volume.txt
index c831dccf748cb41fa4d6e93785315bb22410842f..e94e42de56f3df7e6bdb0eefa373da1f53647e66 100644
--- a/examples/ClientTests/ref/Ref_Eightpoint_Reflect_Volume.txt
+++ b/examples/ClientTests/ref/Ref_Eightpoint_Reflect_Volume.txt
@@ -9,14 +9,14 @@ TGeoArb8         5   Local  ( -23.00,   27.00,   30.00) Global ( -23.00,   27.00
 TGeoArb8         6   Local  ( -23.00,   27.00,   30.00) Global ( -23.00,   27.00,  130.00)
 TGeoArb8         7   Local  (  13.00,  -27.00,   30.00) Global (  13.00,  -27.00,  130.00)
 TGeoArb8         Bounding box:  dx=  27.50 dy=  27.00 dz=  30.00 Origin: x=  -2.50 y=   0.00 z=   0.00
-ShapeCheck[1] TGeoScaledShape  8 Mesh-points:
-TGeoScaledShape  Shape_Eightpoint_vol_1_shape_refl N(mesh)=8  N(vert)=8  N(seg)=12  N(pols)=6
-TGeoScaledShape  0   Local  ( -30.00,  -25.00,   30.00) Global ( -30.00,  -25.00,  -70.00)
-TGeoScaledShape  1   Local  ( -25.00,   25.00,   30.00) Global ( -25.00,   25.00,  -70.00)
-TGeoScaledShape  2   Local  (   5.00,   25.00,   30.00) Global (   5.00,   25.00,  -70.00)
-TGeoScaledShape  3   Local  (  25.00,  -25.00,   30.00) Global (  25.00,  -25.00,  -70.00)
-TGeoScaledShape  4   Local  ( -28.00,  -23.00,  -30.00) Global ( -28.00,  -23.00, -130.00)
-TGeoScaledShape  5   Local  ( -23.00,   27.00,  -30.00) Global ( -23.00,   27.00, -130.00)
-TGeoScaledShape  6   Local  ( -23.00,   27.00,  -30.00) Global ( -23.00,   27.00, -130.00)
-TGeoScaledShape  7   Local  (  13.00,  -27.00,  -30.00) Global (  13.00,  -27.00, -130.00)
-TGeoScaledShape  Bounding box:  dx=  27.50 dy=  27.00 dz=  30.00 Origin: x=  -2.50 y=   0.00 z=  -0.00
+ShapeCheck[1] TGeoArb8         8 Mesh-points:
+TGeoArb8         EightPointSolid N(mesh)=8  N(vert)=8  N(seg)=12  N(pols)=6
+TGeoArb8         0   Local  ( -30.00,  -25.00,  -30.00) Global ( -30.00,  -25.00,  -70.00)
+TGeoArb8         1   Local  ( -25.00,   25.00,  -30.00) Global ( -25.00,   25.00,  -70.00)
+TGeoArb8         2   Local  (   5.00,   25.00,  -30.00) Global (   5.00,   25.00,  -70.00)
+TGeoArb8         3   Local  (  25.00,  -25.00,  -30.00) Global (  25.00,  -25.00,  -70.00)
+TGeoArb8         4   Local  ( -28.00,  -23.00,   30.00) Global ( -28.00,  -23.00, -130.00)
+TGeoArb8         5   Local  ( -23.00,   27.00,   30.00) Global ( -23.00,   27.00, -130.00)
+TGeoArb8         6   Local  ( -23.00,   27.00,   30.00) Global ( -23.00,   27.00, -130.00)
+TGeoArb8         7   Local  (  13.00,  -27.00,   30.00) Global (  13.00,  -27.00, -130.00)
+TGeoArb8         Bounding box:  dx=  27.50 dy=  27.00 dz=  30.00 Origin: x=  -2.50 y=   0.00 z=   0.00