diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx
index 2e884a193a867e949c62efc3671766b2ffe17113..76149d365272a8e89d368e2ae3af0bc5e5fc37c1 100644
--- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx
+++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx
@@ -18,11 +18,10 @@
 #include "GeoModelKernel/GeoTransform.h"
 #include "GeoModelKernel/GeoAlignableTransform.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
 #include "GeoGenericFunctions/AbsFunction.h"
 #include "GeoGenericFunctions/Sin.h"
 #include "GeoGenericFunctions/Cos.h"
-
+#include "GaudiKernel/SystemOfUnits.h"
 
 GeoPhysVol* ForwardRegionGeoModelFactory::insertMagnetEnvelope(std::string name, double x, double y, double z, double rotationAngle, double diameter, double halfL, double dL, GeoPhysVol* fwrPhys)
 {
@@ -30,7 +29,7 @@ GeoPhysVol* ForwardRegionGeoModelFactory::insertMagnetEnvelope(std::string name,
 
     GeoTrf::Transform3D shift = GeoTrf::Translate3D(x,y,z);
     GeoTrf::Transform3D rotate = GeoTrf::RotateY3D(rotationAngle);
-//    Transform3D rotateX180 = GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg);
+//    Transform3D rotateX180 = GeoTrf::RotateX3D(180*Gaudi::Units::deg);
 
     const GeoShapeShift& magTube0 = (*tube)<<rotate<<shift;
 //    const GeoShapeUnion& magTube = magTube0.add((*tube)<<rotate<<shift<<rotateX180);
@@ -49,7 +48,7 @@ GeoPhysVol* ForwardRegionGeoModelFactory::insertMagnetEnvelope(std::string name,
 
 void ForwardRegionGeoModelFactory::insertCircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys)
 {
-    double r0 = std::max(xAperture,yAperture)*GeoModelKernelUnits::mm/2;
+    double r0 = std::max(xAperture,yAperture)*Gaudi::Units::mm/2;
 
     const GeoTube     *ringTube  = new GeoTube(r0, r0+tubeThickness, halfL-dL);
 
@@ -69,7 +68,7 @@ void ForwardRegionGeoModelFactory::insertCircularElement(std::string name, doubl
     fwrPhys->add(ringPhys);
 
 //    // The other side of the forward region may be obtained by rotation
-//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg));
+//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg));
 
 //    // the other side
 //    fwrPhys->add(rotateX180);
@@ -87,12 +86,12 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou
 
     // GeoEllipticalTube causes VP1 to fall, so for visualization GeoBox is used
     if(!m_Config.vp1Compatibility) {
-        ringTube0  = new GeoEllipticalTube(xAperture*GeoModelKernelUnits::mm/2+tubeThickness, yAperture*GeoModelKernelUnits::mm/2+tubeThickness, halfL-dL);
-        ringTube2  = new GeoEllipticalTube(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL);
+        ringTube0  = new GeoEllipticalTube(xAperture*Gaudi::Units::mm/2+tubeThickness, yAperture*Gaudi::Units::mm/2+tubeThickness, halfL-dL);
+        ringTube2  = new GeoEllipticalTube(xAperture*Gaudi::Units::mm/2, yAperture*Gaudi::Units::mm/2, halfL-dL);
     }
     else {
-        ringTube0  = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+tubeThickness, yAperture*GeoModelKernelUnits::mm/2+tubeThickness, halfL-dL);
-        ringTube2  = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL);
+        ringTube0  = new GeoBox(xAperture*Gaudi::Units::mm/2+tubeThickness, yAperture*Gaudi::Units::mm/2+tubeThickness, halfL-dL);
+        ringTube2  = new GeoBox(xAperture*Gaudi::Units::mm/2, yAperture*Gaudi::Units::mm/2, halfL-dL);
     }
     GeoShapeSubtraction * ringTube = new GeoShapeSubtraction(ringTube0, ringTube2);
 
@@ -112,7 +111,7 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou
     fwrPhys->add(ringPhys);
 
 //    // The other side of the forward region may be obtained by rotation
-//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg));
+//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg));
 
 //    // the other side
 //    fwrPhys->add(rotateX180);
@@ -125,22 +124,22 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou
 
 void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys)
 {
-    double beamScreenSeparation = 1.5*GeoModelKernelUnits::mm;
-    double beamScreenCuThick = 0.05*GeoModelKernelUnits::mm;
-    double beamScreenSteelThick = 1*GeoModelKernelUnits::mm;
+    double beamScreenSeparation = 1.5*Gaudi::Units::mm;
+    double beamScreenCuThick = 0.05*Gaudi::Units::mm;
+    double beamScreenSteelThick = 1*Gaudi::Units::mm;
 
-    const GeoTube     *ringTube  = new GeoTube(yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL);
-    const GeoTube     *circ  = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2, halfL-dL);
-    const GeoBox      *rect  = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL);
+    const GeoTube     *ringTube  = new GeoTube(yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL);
+    const GeoTube     *circ  = new GeoTube(0, yAperture*Gaudi::Units::mm/2, halfL-dL);
+    const GeoBox      *rect  = new GeoBox(xAperture*Gaudi::Units::mm/2, yAperture*Gaudi::Units::mm/2, halfL-dL);
     GeoShapeIntersection *innerVac = new GeoShapeIntersection(rect,circ);
 
-    const GeoTube     *circ2  = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL);
-    const GeoBox      *rect2  = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL);
+    const GeoTube     *circ2  = new GeoTube(0, yAperture*Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL);
+    const GeoBox      *rect2  = new GeoBox(xAperture*Gaudi::Units::mm/2+beamScreenCuThick, yAperture*Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL);
     GeoShapeIntersection *beamScreenCu0 = new GeoShapeIntersection(rect2,circ2);
     GeoShapeSubtraction *beamScreenCu = new GeoShapeSubtraction(beamScreenCu0, innerVac);
 
-    const GeoTube     *circ3  = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
-    const GeoBox      *rect3  = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
+    const GeoTube     *circ3  = new GeoTube(0, yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
+    const GeoBox      *rect3  = new GeoBox(xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
     GeoShapeIntersection *beamScreenSteel01 = new GeoShapeIntersection(rect3,circ3);
     GeoShapeSubtraction *beamScreenSteel02 = new GeoShapeSubtraction(beamScreenSteel01, innerVac);
     GeoShapeSubtraction *beamScreenSteel = new GeoShapeSubtraction(beamScreenSteel02, beamScreenCu);
@@ -179,7 +178,7 @@ void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name,
 
 
 //    // The other side of the forward region may be obtain by rotation
-//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg));
+//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg));
 
 //    // the other side
 //    fwrPhys->add(rotateX180);
@@ -206,22 +205,22 @@ void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name,
 
 void ForwardRegionGeoModelFactory::insertYRecticircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys)
 {
-    double beamScreenSeparation = 1.5*GeoModelKernelUnits::mm;
-    double beamScreenCuThick = 0.05*GeoModelKernelUnits::mm;
-    double beamScreenSteelThick = 1*GeoModelKernelUnits::mm;
+    double beamScreenSeparation = 1.5*Gaudi::Units::mm;
+    double beamScreenCuThick = 0.05*Gaudi::Units::mm;
+    double beamScreenSteelThick = 1*Gaudi::Units::mm;
 
-    const GeoTube     *ringTube  = new GeoTube(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL);
-    const GeoTube     *circ  = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2, halfL-dL);
-    const GeoBox      *rect  = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL);
+    const GeoTube     *ringTube  = new GeoTube(xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL);
+    const GeoTube     *circ  = new GeoTube(0, xAperture*Gaudi::Units::mm/2, halfL-dL);
+    const GeoBox      *rect  = new GeoBox(xAperture*Gaudi::Units::mm/2, yAperture*Gaudi::Units::mm/2, halfL-dL);
     GeoShapeIntersection *innerVac = new GeoShapeIntersection(rect,circ);
 
-    const GeoTube     *circ2  = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL);
-    const GeoBox      *rect2  = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL);
+    const GeoTube     *circ2  = new GeoTube(0, xAperture*Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL);
+    const GeoBox      *rect2  = new GeoBox(xAperture*Gaudi::Units::mm/2+beamScreenCuThick, yAperture*Gaudi::Units::mm/2+beamScreenCuThick, halfL-dL);
     GeoShapeIntersection *beamScreenCu0 = new GeoShapeIntersection(rect2,circ2);
     GeoShapeSubtraction *beamScreenCu = new GeoShapeSubtraction(beamScreenCu0, innerVac);
 
-    const GeoTube     *circ3  = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
-    const GeoBox      *rect3  = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
+    const GeoTube     *circ3  = new GeoTube(0, xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
+    const GeoBox      *rect3  = new GeoBox(xAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*Gaudi::Units::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL);
     GeoShapeIntersection *beamScreenSteel01 = new GeoShapeIntersection(rect3,circ3);
     GeoShapeSubtraction *beamScreenSteel02 = new GeoShapeSubtraction(beamScreenSteel01, innerVac);
     GeoShapeSubtraction *beamScreenSteel = new GeoShapeSubtraction(beamScreenSteel02, beamScreenCu);
@@ -258,7 +257,7 @@ void ForwardRegionGeoModelFactory::insertYRecticircularElement(std::string name,
     fwrPhys->add(ringPhysSteel);
 
 //    // The other side of the forward region may be obtain by rotation
-//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg));
+//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg));
 
 //    // the other side
 //    fwrPhys->add(rotateX180);
@@ -290,13 +289,13 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl
 
     // CONSTANTS
     double TAN_A, TAN_B, TAN_C, TAN_Dsmall, TAN_Dbig, TAN_thick1, TAN_xseparation;
-    TAN_A = 700*GeoModelKernelUnits::mm;
-    TAN_B = 500*GeoModelKernelUnits::mm;
-    TAN_C = 3700*GeoModelKernelUnits::mm;
-    TAN_Dsmall = 52*GeoModelKernelUnits::mm;
-    TAN_Dbig = 212*GeoModelKernelUnits::mm;
-    TAN_thick1 = 4.5*GeoModelKernelUnits::mm;
-    TAN_xseparation = 80*GeoModelKernelUnits::mm;
+    TAN_A = 700*Gaudi::Units::mm;
+    TAN_B = 500*Gaudi::Units::mm;
+    TAN_C = 3700*Gaudi::Units::mm;
+    TAN_Dsmall = 52*Gaudi::Units::mm;
+    TAN_Dbig = 212*Gaudi::Units::mm;
+    TAN_thick1 = 4.5*Gaudi::Units::mm;
+    TAN_xseparation = 80*Gaudi::Units::mm;
 
     // Derived constants
     double TAN_Rsmall, TAN_Rbig, TAN_coneZh, TAN_coneR, TAN_coneXh;//, TAN_halflength;
@@ -310,12 +309,12 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl
     // volume construction
 
     // inner part
-    GeoPcon *TANi_cone0 = new GeoPcon(0,360*GeoModelKernelUnits::deg);
+    GeoPcon *TANi_cone0 = new GeoPcon(0,360*Gaudi::Units::deg);
     TANi_cone0->addPlane(2*TAN_coneZh, TAN_Rsmall, 2*TAN_Rbig);
     TANi_cone0->addPlane(TAN_coneZh, TAN_Rsmall, 2*TAN_Rbig);
     TANi_cone0->addPlane(-TAN_coneZh, TAN_coneR, 2*TAN_Rbig);
     GeoTrf::Transform3D TAN_moveCone = GeoTrf::Translate3D(TAN_coneXh,0,0.5*(TAN_A-TAN_B));
-    GeoTrf::Transform3D TAN_rotateCone = GeoTrf::RotateY3D(5*GeoModelKernelUnits::deg);
+    GeoTrf::Transform3D TAN_rotateCone = GeoTrf::RotateY3D(5*Gaudi::Units::deg);
     const GeoShapeShift& TANi_cone = (*TANi_cone0)<<TAN_rotateCone<<TAN_moveCone;
 
     const GeoBox *TAN_box0 = new GeoBox(2*TAN_Rbig,2*TAN_Rbig,TAN_A+TAN_B);
@@ -328,13 +327,13 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl
 
     GeoShapeSubtraction *TANi_h = new GeoShapeSubtraction(TANi_hcyl, &TANi_cone);
     GeoTrf::Transform3D TAN_moveH = GeoTrf::Translate3D(0,0,-0.5*TAN_C);
-    GeoTrf::Transform3D TAN_rotateH = GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg);
+    GeoTrf::Transform3D TAN_rotateH = GeoTrf::RotateZ3D(180*Gaudi::Units::deg);
 
     GeoTrf::Transform3D TAN_moveTube1 = GeoTrf::Translate3D(TAN_xseparation,0,0.5*(TAN_A+TAN_B));
     GeoTrf::Transform3D TAN_moveTube2 = GeoTrf::Translate3D(-TAN_xseparation,0,0.5*(TAN_A+TAN_B));
 
     // outer part
-    GeoPcon *TANo_cone0 = new GeoPcon(0,360*GeoModelKernelUnits::deg);
+    GeoPcon *TANo_cone0 = new GeoPcon(0,360*Gaudi::Units::deg);
     TANo_cone0->addPlane(2*TAN_coneZh, TAN_Rsmall+TAN_thick1, 2*TAN_Rbig);
     TANo_cone0->addPlane(TAN_coneZh, TAN_Rsmall+TAN_thick1, 2*TAN_Rbig);
     TANo_cone0->addPlane(-TAN_coneZh, TAN_coneR+TAN_thick1, 2*TAN_Rbig);
@@ -355,7 +354,7 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl
     const GeoShapeShift& TAN_shape1 = (*TAN_shape)<<TAN_moveH;
     const GeoShapeShift& TAN_shape2 = (*TAN_shape)<<TAN_moveH<<TAN_rotateH;
 
-    const GeoTube *TANo_ftube = new GeoTube(TAN_Rsmall,TAN_Rsmall+TAN_thick1,0.5*TAN_C-0.1*GeoModelKernelUnits::mm);
+    const GeoTube *TANo_ftube = new GeoTube(TAN_Rsmall,TAN_Rsmall+TAN_thick1,0.5*TAN_C-0.1*Gaudi::Units::mm);
     const GeoShapeShift& TANo_ftube1 = (*TANo_ftube)<<TAN_moveTube1;
     const GeoShapeShift& TANo_ftube2 = (*TANo_ftube)<<TAN_moveTube2;
 
@@ -380,7 +379,7 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl
     fwrPhys->add(ringPhys);
 
 //    // The other side of the forward region may be obtained by rotation
-//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg));
+//    GeoTransform *rotateX180  = new GeoTransform(GeoTrf::RotateX3D(180*Gaudi::Units::deg));
 
 //    // the other side
 //    fwrPhys->add(rotateX180);
@@ -395,43 +394,43 @@ void ForwardRegionGeoModelFactory::insertTCLElement(std::string name, double x,
 {
     // Constants
     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;
-    TCL_BOX_sideThickness = 6*GeoModelKernelUnits::mm;
-    TCL_BOX_topBottomThickness = 18*GeoModelKernelUnits::mm;
-    TCL_BOX_endThickness = 18*GeoModelKernelUnits::mm;
+    TCL_BOX_sideThickness = 6*Gaudi::Units::mm;
+    TCL_BOX_topBottomThickness = 18*Gaudi::Units::mm;
+    TCL_BOX_endThickness = 18*Gaudi::Units::mm;
 
-    TCL_BOX_halflength = 621*GeoModelKernelUnits::mm;
-    TCL_BOX_halfwidth = 132*GeoModelKernelUnits::mm;
+    TCL_BOX_halflength = 621*Gaudi::Units::mm;
+    TCL_BOX_halfwidth = 132*Gaudi::Units::mm;
     TCL_BOX_halfheight = 60+TCL_BOX_topBottomThickness;
 
-    TCL_TUBE_halflength = 59.5*GeoModelKernelUnits::mm;
-    TCL_TUBE_halfapperture = 53*GeoModelKernelUnits::mm;
-    TCL_TUBE_thickness = 2*GeoModelKernelUnits::mm;
+    TCL_TUBE_halflength = 59.5*Gaudi::Units::mm;
+    TCL_TUBE_halfapperture = 53*Gaudi::Units::mm;
+    TCL_TUBE_thickness = 2*Gaudi::Units::mm;
 
     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;
-    TCL_CuBlock_halflength = 597*GeoModelKernelUnits::mm;
-    TCL_CuBlock_halfwidth = 14.5*GeoModelKernelUnits::mm;
-    TCL_CuBlock_halfheight = 40*GeoModelKernelUnits::mm;
+    TCL_CuBlock_halflength = 597*Gaudi::Units::mm;
+    TCL_CuBlock_halfwidth = 14.5*Gaudi::Units::mm;
+    TCL_CuBlock_halfheight = 40*Gaudi::Units::mm;
 
-    TCL_CuBlockCylCut_zDepth = 90*GeoModelKernelUnits::mm;
-    TCL_CuBlockCylCut_angle = 12*GeoModelKernelUnits::deg;
-    TCL_CuBlockCylCut_cylR = 40*GeoModelKernelUnits::mm;
+    TCL_CuBlockCylCut_zDepth = 90*Gaudi::Units::mm;
+    TCL_CuBlockCylCut_angle = 12*Gaudi::Units::deg;
+    TCL_CuBlockCylCut_cylR = 40*Gaudi::Units::mm;
 
     TCL_CuBlockCylCut_cylHalflength = TCL_CuBlockCylCut_zDepth/cos(TCL_CuBlockCylCut_angle);
     TCL_CuBlockCylCut_xDepth = TCL_CuBlockCylCut_zDepth*tan(TCL_CuBlockCylCut_angle);
     TCL_CuBlockCylCut_xShift = -TCL_CuBlock_halfwidth-TCL_CuBlockCylCut_cylR/cos(TCL_CuBlockCylCut_angle)+TCL_CuBlockCylCut_xDepth;
 
     double TCL_CuBeam_halflength, TCL_CuBeam_halfwidth, TCL_CuBeam_halfheight, TCL_Cooling_width;
-    TCL_CuBeam_halflength = 530*GeoModelKernelUnits::mm;
-    TCL_CuBeam_halfwidth = 15*GeoModelKernelUnits::mm;
-    TCL_CuBeam_halfheight = 40*GeoModelKernelUnits::mm;
+    TCL_CuBeam_halflength = 530*Gaudi::Units::mm;
+    TCL_CuBeam_halfwidth = 15*Gaudi::Units::mm;
+    TCL_CuBeam_halfheight = 40*Gaudi::Units::mm;
 
-    TCL_Cooling_width = 9*GeoModelKernelUnits::mm;
+    TCL_Cooling_width = 9*Gaudi::Units::mm;
 
 
 
     // rotate by 180 deg around X and Y
-    GeoTrf::Transform3D rotateX180 = GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg);
-    GeoTrf::Transform3D rotateY180 = GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg);
+    GeoTrf::Transform3D rotateX180 = GeoTrf::RotateX3D(180*Gaudi::Units::deg);
+    GeoTrf::Transform3D rotateY180 = GeoTrf::RotateY3D(180*Gaudi::Units::deg);
 
     // inner vacuum volume solid
     const GeoBox * boxIn = new GeoBox(TCL_BOX_halfwidth-TCL_BOX_sideThickness, TCL_BOX_halfheight-TCL_BOX_topBottomThickness, TCL_BOX_halflength-TCL_BOX_endThickness);
diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx
index 8108bb3b019bc050fff09e535d62979735f69f34..f15e5106eb89c2181086c778bc792b6f1c1c05c9 100755
--- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx
+++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx
@@ -24,7 +24,7 @@
 #include "GeoGenericFunctions/Cos.h"
 #include "CLHEP/Geometry/Point3D.h"
 #include "StoreGate/StoreGateSvc.h"
-#include "CLHEP/Units/SystemOfUnits.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include "GeoModelInterfaces/StoredMaterialManager.h"
 
@@ -46,28 +46,28 @@
 
 void FWD_CONFIGURATION::clear()
 {
-    TCL4JawDistB1I = 57*GeoModelKernelUnits::mm;
-    TCL5JawDistB1I = 57*GeoModelKernelUnits::mm;
-    TCL6JawDistB1I = 57*GeoModelKernelUnits::mm;
-    TCL4JawDistB2I = 57*GeoModelKernelUnits::mm;
-    TCL5JawDistB2I = 57*GeoModelKernelUnits::mm;
-    TCL6JawDistB2I = 57*GeoModelKernelUnits::mm;
-    TCL4JawDistB1O = 57*GeoModelKernelUnits::mm;
-    TCL5JawDistB1O = 57*GeoModelKernelUnits::mm;
-    TCL6JawDistB1O = 57*GeoModelKernelUnits::mm;
-    TCL4JawDistB2O = 57*GeoModelKernelUnits::mm;
-    TCL5JawDistB2O = 57*GeoModelKernelUnits::mm;
-    TCL6JawDistB2O = 57*GeoModelKernelUnits::mm;
+    TCL4JawDistB1I = 57*Gaudi::Units::mm;
+    TCL5JawDistB1I = 57*Gaudi::Units::mm;
+    TCL6JawDistB1I = 57*Gaudi::Units::mm;
+    TCL4JawDistB2I = 57*Gaudi::Units::mm;
+    TCL5JawDistB2I = 57*Gaudi::Units::mm;
+    TCL6JawDistB2I = 57*Gaudi::Units::mm;
+    TCL4JawDistB1O = 57*Gaudi::Units::mm;
+    TCL5JawDistB1O = 57*Gaudi::Units::mm;
+    TCL6JawDistB1O = 57*Gaudi::Units::mm;
+    TCL4JawDistB2O = 57*Gaudi::Units::mm;
+    TCL5JawDistB2O = 57*Gaudi::Units::mm;
+    TCL6JawDistB2O = 57*Gaudi::Units::mm;
     vp1Compatibility = false;
     buildTCL4 = false;
     buildTCL6 = false;
     ALFAInNewPosition = false;
-    newPosB7L1 = 245656.77*GeoModelKernelUnits::mm;
-    newPosB7R1 = -245656.11*GeoModelKernelUnits::mm;
-    posAFPL1 = 204500*GeoModelKernelUnits::mm;
-    posAFPL2 = 212675*GeoModelKernelUnits::mm;
-    posAFPR1 = -204500*GeoModelKernelUnits::mm;
-    posAFPL2 = -212675*GeoModelKernelUnits::mm;
+    newPosB7L1 = 245656.77*Gaudi::Units::mm;
+    newPosB7R1 = -245656.11*Gaudi::Units::mm;
+    posAFPL1 = 204500*Gaudi::Units::mm;
+    posAFPL2 = 212675*Gaudi::Units::mm;
+    posAFPR1 = -204500*Gaudi::Units::mm;
+    posAFPL2 = -212675*Gaudi::Units::mm;
 }
 
 
@@ -116,7 +116,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials()
 
     // water
     matName = "water";
-    GeoMaterial *water = new GeoMaterial("H20", 1.0*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3);
+    GeoMaterial *water = new GeoMaterial("H20", 1.0*GeoModelKernelUnits::gram/Gaudi::Units::cm3);
     GeoElement *hydrogen = new GeoElement("Hydrogen","H",1.0, 1.010);
     GeoElement *oxygen   = new GeoElement("Oxygen",  "O", 8.0, 16.0);
     water->add(hydrogen,0.11);
@@ -144,7 +144,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials()
 
     // Copper for beam screens
     matName = "Copper";
-    GeoMaterial *copper = new GeoMaterial("Copper", 8.94*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3);
+    GeoMaterial *copper = new GeoMaterial("Copper", 8.94*GeoModelKernelUnits::g/Gaudi::Units::cm3);
     copper->add(const_cast<GeoElement*> (Cu),1.0);
     copper->lock();
     m_MapMaterials.insert(std::pair<std::string,GeoMaterial*>(matName,copper));
@@ -152,7 +152,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials()
     // Tungsten for TCL6
     matName = "Tungsten";
     const GeoElement* W = materialManager->getElement("Wolfram");
-    GeoMaterial *tungsten = new GeoMaterial("Tungsten", 19.25*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3);
+    GeoMaterial *tungsten = new GeoMaterial("Tungsten", 19.25*GeoModelKernelUnits::g/Gaudi::Units::cm3);
     tungsten->add(const_cast<GeoElement*> (W),1.0);
     tungsten->lock();
     m_MapMaterials.insert(std::pair<std::string,GeoMaterial*>(matName,tungsten));
@@ -160,14 +160,14 @@ void ForwardRegionGeoModelFactory::DefineMaterials()
     // GlidCop AL15 copper -- aproximate composition (trace impurities (< 0.01 wt. %) not included)
     // source: http://www-ferp.ucsd.edu/LIB/PROPS/compcu15.html
     matName = "GlidCopAL15";
-    GeoMaterial *glidcop=new GeoMaterial("GlidCopAL15", 8.90*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3);
+    GeoMaterial *glidcop=new GeoMaterial("GlidCopAL15", 8.90*GeoModelKernelUnits::g/Gaudi::Units::cm3);
 
     double aCu, aAl, aO, aB, aTot;
 
-    aCu=99.7*Cu->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aAl=0.15*Al->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aO=0.13*O->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aB=0.02*B->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
+    aCu=99.7*Cu->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aAl=0.15*Al->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aO=0.13*O->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aB=0.02*B->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
     aTot=aCu+aAl+aO+aB;
 
     glidcop->add(const_cast<GeoElement*> (Cu), aCu/aTot);
@@ -179,20 +179,20 @@ void ForwardRegionGeoModelFactory::DefineMaterials()
 
     // Steel Grade 316L (Roman Pot)
     matName = "Steel";
-    GeoMaterial *steel=new GeoMaterial("Steel", 8*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3);
+    GeoMaterial *steel=new GeoMaterial("Steel", 8*GeoModelKernelUnits::g/Gaudi::Units::cm3);
 
     double aC,aN,aSi,aP,aS,aCr,aMn,aFe,aNi,aMo,Atot;
 
-    aFe=62.045*Fe->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aC =0.03*C ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aMn=2.0*Mn ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aSi=0.75*Si->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aP =0.045*P->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aS =0.03*S ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aCr=18.0*Cr->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aMo=3.0*Mo ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aNi=14.0*Ni->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-    aN =0.10*N ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
+    aFe=62.045*Fe->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aC =0.03*C ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aMn=2.0*Mn ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aSi=0.75*Si->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aP =0.045*P->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aS =0.03*S ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aCr=18.0*Cr->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aMo=3.0*Mo ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aNi=14.0*Ni->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
+    aN =0.10*N ->getA()/(GeoModelKernelUnits::g/Gaudi::Units::mole);
     Atot=aFe+aC+aMn+aSi+aP+aS+aCr+aMo+aNi+aN;
 
     steel->add(const_cast<GeoElement*> (Fe),aFe/Atot);
@@ -262,8 +262,8 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve
             double startX = pointMagStart[0];
             double endX   = pointMagEnd[0];
             double rotationAngle = atan2(endX - startX,endZ - startZ);
-            double r = atof(loadedDataFile[i][xAperture].c_str())*GeoModelKernelUnits::mm/2;
-            double dL = abs(r*tan(rotationAngle))+0.2*GeoModelKernelUnits::mm;
+            double r = atof(loadedDataFile[i][xAperture].c_str())*Gaudi::Units::mm/2;
+            double dL = abs(r*tan(rotationAngle))+0.2*Gaudi::Units::mm;
 
 
             // move start and end points of the magnet element and neighbour elemens accordingly
@@ -288,12 +288,12 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve
     // --------------- elements cycle -----------------
     for(int i=0; i < lDFSize; i++)
     {
-        startZ = atof(loadedDataFile[i][zStart].c_str())*GeoModelKernelUnits::m;
-        endZ   = atof(loadedDataFile[i][zEnd].c_str())*GeoModelKernelUnits::m;
-        startX = atof(loadedDataFile[i][xStart].c_str())*GeoModelKernelUnits::m;
-        endX   = atof(loadedDataFile[i][xEnd].c_str())*GeoModelKernelUnits::m;
-        startY = atof(loadedDataFile[i][yStart].c_str())*GeoModelKernelUnits::m;
-        endY   = atof(loadedDataFile[i][yEnd].c_str())*GeoModelKernelUnits::m;
+        startZ = atof(loadedDataFile[i][zStart].c_str())*Gaudi::Units::m;
+        endZ   = atof(loadedDataFile[i][zEnd].c_str())*Gaudi::Units::m;
+        startX = atof(loadedDataFile[i][xStart].c_str())*Gaudi::Units::m;
+        endX   = atof(loadedDataFile[i][xEnd].c_str())*Gaudi::Units::m;
+        startY = atof(loadedDataFile[i][yStart].c_str())*Gaudi::Units::m;
+        endY   = atof(loadedDataFile[i][yEnd].c_str())*Gaudi::Units::m;
 
         // translation of element
         x = (startX + endX)/2;
@@ -307,10 +307,10 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve
         // half-length of element
         halfL = sqrt((endX - startX)*(endX - startX) + (endZ - startZ)*(endZ - startZ))/2;
 
-        r = atof(loadedDataFile[i][xAperture].c_str())*GeoModelKernelUnits::mm/2;
+        r = atof(loadedDataFile[i][xAperture].c_str())*Gaudi::Units::mm/2;
 
         // overlap correction
-        dL = abs(r*tan(rotationAngle))+0.2*GeoModelKernelUnits::mm;
+        dL = abs(r*tan(rotationAngle))+0.2*Gaudi::Units::mm;
 
         // do not shorten magnetic volumes
         if(loadedDataFile[i][name].find("Mag") != std::string::npos)
@@ -322,7 +322,7 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve
         if(atoi(loadedDataFile[i][type].c_str()) == 0){
             // envelope to allow tracking with G4TrackAction
             if(loadedDataFile[i][name] == "VCDBP.7R1.B"){
-                GeoPhysVol* trackEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 100*GeoModelKernelUnits::mm, halfL, dL, fwrPhys);
+                GeoPhysVol* trackEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 100*Gaudi::Units::mm, halfL, dL, fwrPhys);
                 insertCircularElement(loadedDataFile[i][name], x, y, z, rotationAngle, atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()), halfL, dL, atof(loadedDataFile[i][tubeThickness].c_str()), trackEnv);
             }
             else
@@ -349,20 +349,20 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve
 
         // elliptical aperture
         if(atoi(loadedDataFile[i][type].c_str()) == 1) {
-            magEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 20*GeoModelKernelUnits::cm, halfL, dL, fwrPhys);
+            magEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 20*Gaudi::Units::cm, halfL, dL, fwrPhys);
             insertEllipticalElement(loadedDataFile[i][name], x, y, z, rotationAngle, atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()), halfL, dL, atof(loadedDataFile[i][tubeThickness].c_str()), magEnv);
         }
 
 
-        double magDiam = 19.4*GeoModelKernelUnits::cm;
+        double magDiam = 19.4*Gaudi::Units::cm;
         if(loadedDataFile[i][name].find("Mag") != std::string::npos)
-            magDiam= 19.4*GeoModelKernelUnits::cm;
+            magDiam= 19.4*Gaudi::Units::cm;
         if(loadedDataFile[i][name] == "LQXAA.1R1MagQ1" || loadedDataFile[i][name] == "LQXAG.3R1MagQ3")
-            magDiam = 48*GeoModelKernelUnits::cm;
+            magDiam = 48*Gaudi::Units::cm;
         if(loadedDataFile[i][name] == "LQXBA.2R1MagQ2a" || loadedDataFile[i][name] == "LQXBA.2R1MagQ2b")
-            magDiam = 52*GeoModelKernelUnits::cm;
+            magDiam = 52*Gaudi::Units::cm;
         //else magDiam = std::max(atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()))+2*atof(loadedDataFile[i][tubeThickness].c_str());
-        //else magDiam = 19.4*GeoModelKernelUnits::cm;
+        //else magDiam = 19.4*Gaudi::Units::cm;
 
         // rectcircular aperture with flats in x
         if(atoi(loadedDataFile[i][type].c_str()) == 2) {
@@ -396,16 +396,16 @@ void ForwardRegionGeoModelFactory::create(GeoPhysVol *world)
 
   double startZ,endZ;
 
-  if(m_Config.vp1Compatibility) startZ = 19.0*GeoModelKernelUnits::m;
-  else startZ = 22.0*GeoModelKernelUnits::m;
-  endZ = 268.904*GeoModelKernelUnits::m;
+  if(m_Config.vp1Compatibility) startZ = 19.0*Gaudi::Units::m;
+  else startZ = 22.0*Gaudi::Units::m;
+  endZ = 268.904*Gaudi::Units::m;
 
   //rotationAngle_old = 0;
 
   // mother volume -- union of tubes, one for each side
-  //const GeoBox      *fwrBox    = new GeoBox(2*GeoModelKernelUnits::m,0.5*GeoModelKernelUnits::m,(endZ-startZ)/2);
-  const GeoTube     *fwrTubeL    = new GeoTube(0,2*GeoModelKernelUnits::m,(endZ-startZ)/2);
-  GeoTube     *fwrTubeR    = new GeoTube(0,2*GeoModelKernelUnits::m,(endZ-startZ)/2);
+  //const GeoBox      *fwrBox    = new GeoBox(2*Gaudi::Units::m,0.5*Gaudi::Units::m,(endZ-startZ)/2);
+  const GeoTube     *fwrTubeL    = new GeoTube(0,2*Gaudi::Units::m,(endZ-startZ)/2);
+  GeoTube     *fwrTubeR    = new GeoTube(0,2*Gaudi::Units::m,(endZ-startZ)/2);
   GeoTrf::Transform3D shiftL = GeoTrf::Translate3D(0,0,(endZ+startZ)/2);
   GeoTrf::Transform3D shiftR = GeoTrf::Translate3D(0,0,-(endZ+startZ)/2);
 
@@ -413,16 +413,16 @@ void ForwardRegionGeoModelFactory::create(GeoPhysVol *world)
   const GeoShapeUnion& fwrTube1 = fwrTube0.add((*fwrTubeR)<<shiftR);
 
   // cut out slots for ALFA
-  const GeoTube     *alfa    = new GeoTube(0, 2*GeoModelKernelUnits::m, 500*GeoModelKernelUnits::mm);
-  GeoTrf::Transform3D shiftAlfaL1 = GeoTrf::Translate3D(0,0,237388*GeoModelKernelUnits::mm);
-  GeoTrf::Transform3D shiftAlfaR1 = GeoTrf::Translate3D(0,0,-237408*GeoModelKernelUnits::mm);
-  GeoTrf::Transform3D shiftAlfaL2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7L1 : 241528*GeoModelKernelUnits::mm));
-  GeoTrf::Transform3D shiftAlfaR2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7R1 :-241548*GeoModelKernelUnits::mm));
+  const GeoTube     *alfa    = new GeoTube(0, 2*Gaudi::Units::m, 500*Gaudi::Units::mm);
+  GeoTrf::Transform3D shiftAlfaL1 = GeoTrf::Translate3D(0,0,237388*Gaudi::Units::mm);
+  GeoTrf::Transform3D shiftAlfaR1 = GeoTrf::Translate3D(0,0,-237408*Gaudi::Units::mm);
+  GeoTrf::Transform3D shiftAlfaL2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7L1 : 241528*Gaudi::Units::mm));
+  GeoTrf::Transform3D shiftAlfaR2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7R1 :-241548*Gaudi::Units::mm));
   const GeoShapeSubtraction& fwrTube2 = fwrTube1.subtract((*alfa)<<shiftAlfaL1).subtract((*alfa)<<shiftAlfaL2).subtract((*alfa)<<shiftAlfaR1).subtract((*alfa)<<shiftAlfaR2);
 
   // cut out slots for AFP
-  const GeoTube     *afp    = new GeoTube(0, 2.5*GeoModelKernelUnits::m, 280*GeoModelKernelUnits::mm);
-  const GeoTube     *afp2    = new GeoTube(0, 2.5*GeoModelKernelUnits::m, 580*GeoModelKernelUnits::mm);
+  const GeoTube     *afp    = new GeoTube(0, 2.5*Gaudi::Units::m, 280*Gaudi::Units::mm);
+  const GeoTube     *afp2    = new GeoTube(0, 2.5*Gaudi::Units::m, 580*Gaudi::Units::mm);
   GeoTrf::Transform3D shiftAfpL1 = GeoTrf::Translate3D(0,0,m_Config.posAFPL1);
   GeoTrf::Transform3D shiftAfpR1 = GeoTrf::Translate3D(0,0,m_Config.posAFPR1);
   GeoTrf::Transform3D shiftAfpL2 = GeoTrf::Translate3D(0,0,m_Config.posAFPL2);
diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx
index b30c4f3aa758abf683be95410ac2d00329e623a0..3817b0114a79f43b848a612600ef322b58d0422d 100755
--- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx
+++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx
@@ -9,8 +9,8 @@
 #include "GaudiKernel/IService.h"
 #include "GaudiKernel/ISvcLocator.h"
 #include "GaudiKernel/MsgStream.h"
+#include "GaudiKernel/SystemOfUnits.h"
 #include "StoreGate/StoreGateSvc.h"
-#include "GeoModelKernel/Units.h"
 
 /**
  ** Constructor(s)
@@ -19,28 +19,28 @@ ForwardRegionGeoModelTool::ForwardRegionGeoModelTool( const std::string& type, c
 : GeoModelTool( type, name, parent )
 {
     m_Config.clear();
-    declareProperty("TCL4JawDistB1I",m_Config.TCL4JawDistB1I=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL4JawDistB2I",m_Config.TCL4JawDistB2I=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL5JawDistB1I",m_Config.TCL5JawDistB1I=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL5JawDistB2I",m_Config.TCL5JawDistB2I=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL6JawDistB1I",m_Config.TCL6JawDistB1I=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL6JawDistB2I",m_Config.TCL6JawDistB2I=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL4JawDistB1O",m_Config.TCL4JawDistB1O=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL4JawDistB2O",m_Config.TCL4JawDistB2O=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL5JawDistB1O",m_Config.TCL5JawDistB1O=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL5JawDistB2O",m_Config.TCL5JawDistB2O=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL6JawDistB1O",m_Config.TCL6JawDistB1O=57*GeoModelKernelUnits::mm);
-    declareProperty("TCL6JawDistB2O",m_Config.TCL6JawDistB2O=57*GeoModelKernelUnits::mm);
+    declareProperty("TCL4JawDistB1I",m_Config.TCL4JawDistB1I=57*Gaudi::Units::mm);
+    declareProperty("TCL4JawDistB2I",m_Config.TCL4JawDistB2I=57*Gaudi::Units::mm);
+    declareProperty("TCL5JawDistB1I",m_Config.TCL5JawDistB1I=57*Gaudi::Units::mm);
+    declareProperty("TCL5JawDistB2I",m_Config.TCL5JawDistB2I=57*Gaudi::Units::mm);
+    declareProperty("TCL6JawDistB1I",m_Config.TCL6JawDistB1I=57*Gaudi::Units::mm);
+    declareProperty("TCL6JawDistB2I",m_Config.TCL6JawDistB2I=57*Gaudi::Units::mm);
+    declareProperty("TCL4JawDistB1O",m_Config.TCL4JawDistB1O=57*Gaudi::Units::mm);
+    declareProperty("TCL4JawDistB2O",m_Config.TCL4JawDistB2O=57*Gaudi::Units::mm);
+    declareProperty("TCL5JawDistB1O",m_Config.TCL5JawDistB1O=57*Gaudi::Units::mm);
+    declareProperty("TCL5JawDistB2O",m_Config.TCL5JawDistB2O=57*Gaudi::Units::mm);
+    declareProperty("TCL6JawDistB1O",m_Config.TCL6JawDistB1O=57*Gaudi::Units::mm);
+    declareProperty("TCL6JawDistB2O",m_Config.TCL6JawDistB2O=57*Gaudi::Units::mm);
     declareProperty("vp1Compatibility", m_Config.vp1Compatibility=false);
     declareProperty("buildTCL4",m_Config.buildTCL4=false);
     declareProperty("buildTCL6",m_Config.buildTCL6=false);
     declareProperty("ALFAInNewPosition",m_Config.ALFAInNewPosition=false);
-    declareProperty("newPosB7L1",m_Config.newPosB7L1=245656.77*GeoModelKernelUnits::mm);
-    declareProperty("newPosB7R1",m_Config.newPosB7R1=-245656.11*GeoModelKernelUnits::mm);
-    declareProperty("posAFPL1",m_Config.posAFPL1=204500*GeoModelKernelUnits::mm);
-    declareProperty("posAFPR1",m_Config.posAFPR1=-204500*GeoModelKernelUnits::mm);
-    declareProperty("posAFPL2",m_Config.posAFPL2=212675*GeoModelKernelUnits::mm);
-    declareProperty("posAFPR2",m_Config.posAFPR2=-212675*GeoModelKernelUnits::mm);
+    declareProperty("newPosB7L1",m_Config.newPosB7L1=245656.77*Gaudi::Units::mm);
+    declareProperty("newPosB7R1",m_Config.newPosB7R1=-245656.11*Gaudi::Units::mm);
+    declareProperty("posAFPL1",m_Config.posAFPL1=204500*Gaudi::Units::mm);
+    declareProperty("posAFPR1",m_Config.posAFPR1=-204500*Gaudi::Units::mm);
+    declareProperty("posAFPL2",m_Config.posAFPL2=212675*Gaudi::Units::mm);
+    declareProperty("posAFPR2",m_Config.posAFPR2=-212675*Gaudi::Units::mm);
 }
 
 /**
diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx
index 518c44509c22c2582198e089bd5bf5d17fdb1e67..632835ea871e12bf94831d7514c701b99f789d70 100644
--- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx
+++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx
@@ -7,16 +7,13 @@
 #include <iomanip>
 #include <math.h>
 
-//#include "CLHEP/Units/PhysicalConstants.h"
-//#include "CLHEP/Units/SystemOfUnits.h"
-
 #include "LUCID_DetectorFactory.h"
 #include "GetRefIndex.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/PhysicalConstants.h"
 
 double GetRefIndexGas(double lambda, double pressure, double temperature) {
     
-  double e  = 2.*M_PI*GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm)/lambda;
+  double e  = 2.*M_PI*Gaudi::Units::hbarc/(Gaudi::Units::eV*Gaudi::Units::nm)/lambda;
   double e0 = 17;
   double k  = 0.25938;
   double x  = k*pressure/temperature/(1 - pow(e/e0, 2));
@@ -29,7 +26,7 @@ double GetRefIndexQuartz(double lambda) {
   double const SellCoeu[] = {46.41,  228.71, 0.014};
   double const SellCoed[] = {10.666, 18.125, 0.125};
   
-  double e = 2.*M_PI*GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm)/lambda;
+  double e = 2.*M_PI*Gaudi::Units::hbarc/(Gaudi::Units::eV*Gaudi::Units::nm)/lambda;
   double r = 1.;
   
   for(int i=0; i<3; i++) r += SellCoeu[i]/(SellCoed[i]*SellCoed[i] - e*e);
diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx
index eaae2ee41532ee4af5d0838273a99618fa8263c8..45ce8be3bb3e728a971b3570ac289d07c8173b97 100755
--- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx
+++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx
@@ -25,6 +25,7 @@
 
 #include "StoreGate/StoreGateSvc.h"
 #include "GaudiKernel/MsgStream.h"
+#include "GaudiKernel/SystemOfUnits.h"
 #include "AthenaKernel/getMessageSvc.h"
 #include "RDBAccessSvc/IRDBAccessSvc.h"
 
@@ -80,7 +81,7 @@ void LUCID_DetectorFactory::create(GeoPhysVol* world) {
   
   log << MSG::DEBUG << " Build LUCID side A " << endmsg;
 
-  GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); 
+  GeoPcon* aShape = new GeoPcon(0, 360*Gaudi::Units::deg); 
   
   aShape->addPlane(                 0, m_lp->coolingRadius, m_lp->VJconeRadiusFront);
   aShape->addPlane(m_lp->VJconelength, m_lp->coolingRadius, m_lp->VJconeRadiusBack);
@@ -102,7 +103,7 @@ void LUCID_DetectorFactory::create(GeoPhysVol* world) {
   
   GeoFullPhysVol* phyVolC = phyVolA->clone();
     
-  world->add(new GeoAlignableTransform(GeoTrf::Translate3D(0, 0, -m_lp->VJdistanceToIP )*GeoTrf::RotateY3D(180*GeoModelKernelUnits::degree)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::degree)));
+  world->add(new GeoAlignableTransform(GeoTrf::Translate3D(0, 0, -m_lp->VJdistanceToIP )*GeoTrf::RotateY3D(180*Gaudi::Units::degree)*GeoTrf::RotateZ3D(180*Gaudi::Units::degree)));
   world->add(new GeoNameTag("LucidSideC"));
   world->add(phyVolC);
   
@@ -123,7 +124,7 @@ void LUCID_DetectorFactory::buildMaterials()  {
 
   m_alu = m_materialManager->getMaterial("std::Aluminium");
   
-  log << MSG::DEBUG << " Aluminium density[g/cm3]: " << m_alu->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg;
+  log << MSG::DEBUG << " Aluminium density[g/cm3]: " << m_alu->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg;
 
   log << MSG::DEBUG << " Build Cherenkov Gas " << endmsg;
   
@@ -136,9 +137,9 @@ void LUCID_DetectorFactory::buildMaterials()  {
   m_gas->add(const_cast<GeoElement*>(fluorine), 10*fluorine->getA()/(4*carbon->getA() + 10*fluorine->getA()));
   
   log << MSG::DEBUG << " gasState              : " << m_gas->getState()              << endmsg;
-  log << MSG::DEBUG << " gasTemperature[kelvin]: " << m_gas->getTemperature()/GeoModelKernelUnits::kelvin << endmsg;
-  log << MSG::DEBUG << " gasPressure      [bar]: " << m_gas->getPressure()/GeoModelKernelUnits::bar       << endmsg;
-  log << MSG::DEBUG << " gasDensity     [g/cm3]: " << m_gas->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3)    << endmsg;
+  log << MSG::DEBUG << " gasTemperature[kelvin]: " << m_gas->getTemperature()/Gaudi::Units::kelvin << endmsg;
+  log << MSG::DEBUG << " gasPressure      [bar]: " << m_gas->getPressure()/Gaudi::Units::bar       << endmsg;
+  log << MSG::DEBUG << " gasDensity     [g/cm3]: " << m_gas->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3)    << endmsg;
 
   log << MSG::DEBUG << " Wavelength dependent properties " << endmsg;
   
@@ -151,16 +152,16 @@ void LUCID_DetectorFactory::buildMaterials()  {
   double* gasAbsLength     = new double[waveLengthNum];
   double* tubeReflectivity = new double[waveLengthNum];
   
-  double absLengthScale = (m_lp->gasPressure) ? (m_lp->gasPressure/GeoModelKernelUnits::bar) : 1;
+  double absLengthScale = (m_lp->gasPressure) ? (m_lp->gasPressure/Gaudi::Units::bar) : 1;
   
   for(int i=0; i<waveLengthNum; i++) {
     
-    photonWaveLength[i] = (m_lp->waveLengthMin + i*m_lp->waveLengthStep)*GeoModelKernelUnits::nm;
-    photonEnergy    [i] = 2.*M_PI*(GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm))/(photonWaveLength[i]/GeoModelKernelUnits::nm)*GeoModelKernelUnits::eV;
-    quartzRefIndex  [i] = GetRefIndexQuartz (photonWaveLength[i]/GeoModelKernelUnits::nm);
-    gasRefIndex     [i] = GetRefIndexGas    (photonWaveLength[i]/GeoModelKernelUnits::nm, m_lp->gasPressure/GeoModelKernelUnits::bar, m_lp->gasTemperature/GeoModelKernelUnits::kelvin);
-    gasAbsLength    [i] = GetAbsLengthGas   (photonWaveLength[i]/GeoModelKernelUnits::nm)*GeoModelKernelUnits::m/absLengthScale;
-    tubeReflectivity[i] = GetReflectivity   (photonWaveLength[i]/GeoModelKernelUnits::nm);
+    photonWaveLength[i] = (m_lp->waveLengthMin + i*m_lp->waveLengthStep)*Gaudi::Units::nm;
+    photonEnergy    [i] = 2.*M_PI*(Gaudi::Units::hbarc/(Gaudi::Units::eV*Gaudi::Units::nm))/(photonWaveLength[i]/Gaudi::Units::nm)*Gaudi::Units::eV;
+    quartzRefIndex  [i] = GetRefIndexQuartz (photonWaveLength[i]/Gaudi::Units::nm);
+    gasRefIndex     [i] = GetRefIndexGas    (photonWaveLength[i]/Gaudi::Units::nm, m_lp->gasPressure/Gaudi::Units::bar, m_lp->gasTemperature/Gaudi::Units::kelvin);
+    gasAbsLength    [i] = GetAbsLengthGas   (photonWaveLength[i]/Gaudi::Units::nm)*Gaudi::Units::m/absLengthScale;
+    tubeReflectivity[i] = GetReflectivity   (photonWaveLength[i]/Gaudi::Units::nm);
   }
   
   log << MSG::DEBUG << " **************************************************************************************************** " << endmsg;
@@ -169,11 +170,11 @@ void LUCID_DetectorFactory::buildMaterials()  {
   for(int i=0; i<waveLengthNum; i++) {
     
     log << MSG::DEBUG 
-	<< std::setw(11) << photonWaveLength[i]/GeoModelKernelUnits::nm
-	<< std::setw(11) << photonEnergy    [i]/GeoModelKernelUnits::eV
+	<< std::setw(11) << photonWaveLength[i]/Gaudi::Units::nm
+	<< std::setw(11) << photonEnergy    [i]/Gaudi::Units::eV
 	<< std::setw(13) << quartzRefIndex  [i]
 	<< std::setw(10) << gasRefIndex     [i]
-	<< std::setw(16) << gasAbsLength    [i]/GeoModelKernelUnits::m
+	<< std::setw(16) << gasAbsLength    [i]/Gaudi::Units::m
 	<< std::setw(17) << tubeReflectivity[i]
 	<< endmsg;
   }
@@ -192,7 +193,7 @@ void LUCID_DetectorFactory::buildMaterials()  {
   
   log << MSG::DEBUG << " Build Quartz for PMT windows" << endmsg; 
   
-  m_quartz = new GeoExtendedMaterial("SiO2", m_lp->quartzDensity, stateSolid, GeoModelKernelUnits::STP_Temperature);
+  m_quartz = new GeoExtendedMaterial("SiO2", m_lp->quartzDensity, stateSolid, Gaudi::Units::STP_Temperature);
   
   const GeoElement* oxygen  = m_materialManager->getElement("Oxygen");
   const GeoElement* silicon = m_materialManager->getElement("Silicon");
@@ -213,7 +214,7 @@ void LUCID_DetectorFactory::buildMaterials()  {
   
   m_cop = m_materialManager->getMaterial("std::Copper");
   
-  log << MSG::DEBUG << " Copper density[g/cm3]: " << m_cop->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg;
+  log << MSG::DEBUG << " Copper density[g/cm3]: " << m_cop->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3) << endmsg;
     
   log << MSG::DEBUG << " Build Reflective Tube Optical Surfaces " << endmsg; 
   
@@ -251,17 +252,17 @@ void LUCID_DetectorFactory::calcTubeParams() {
   
   for (int i=0; i<nLayers; i++) {
     
-    m_tubeTheta  [i] = atan(layerRadius[i]/m_lp->distanceToIP)*GeoModelKernelUnits::rad;
-    tubePhiOffset[i] = (i==0)*M_PI/8*GeoModelKernelUnits::rad;
+    m_tubeTheta  [i] = atan(layerRadius[i]/m_lp->distanceToIP)*Gaudi::Units::rad;
+    tubePhiOffset[i] = (i==0)*M_PI/8*Gaudi::Units::rad;
     
     for (int j=0; j<nPmtTubesPerLayer; j++) {
       
-      tubePhiAngle[i][j] = 2*M_PI*j/nPmtTubesPerLayer*GeoModelKernelUnits::rad + tubePhiOffset[i];
+      tubePhiAngle[i][j] = 2*M_PI*j/nPmtTubesPerLayer*Gaudi::Units::rad + tubePhiOffset[i];
       
-      double tubeDistance = layerRadius[i] + m_lp->tubeLength/2*sin(m_tubeTheta[i]/GeoModelKernelUnits::rad);
+      double tubeDistance = layerRadius[i] + m_lp->tubeLength/2*sin(m_tubeTheta[i]/Gaudi::Units::rad);
       
-      m_tubePosition[i][j][0] = tubeDistance*cos(tubePhiAngle[i][j]/GeoModelKernelUnits::rad); if (fabs(m_tubePosition[i][j][0]) < 1e-10) m_tubePosition[i][j][0] = 0;
-      m_tubePosition[i][j][1] = tubeDistance*sin(tubePhiAngle[i][j]/GeoModelKernelUnits::rad); if (fabs(m_tubePosition[i][j][1]) < 1e-10) m_tubePosition[i][j][1] = 0;
+      m_tubePosition[i][j][0] = tubeDistance*cos(tubePhiAngle[i][j]/Gaudi::Units::rad); if (fabs(m_tubePosition[i][j][0]) < 1e-10) m_tubePosition[i][j][0] = 0;
+      m_tubePosition[i][j][1] = tubeDistance*sin(tubePhiAngle[i][j]/Gaudi::Units::rad); if (fabs(m_tubePosition[i][j][1]) < 1e-10) m_tubePosition[i][j][1] = 0;
     }
   }
   
@@ -276,13 +277,13 @@ void LUCID_DetectorFactory::calcTubeParams() {
       log << MSG::DEBUG << setiosflags(std::ios::right)
 	  << std::setw( 6) << lay
 	  << std::setw( 5) << tub
-	  << std::setw(11) << m_lp->tubeRadius/GeoModelKernelUnits::mm
-	  << std::setw(16) << layerRadius   [lay]/GeoModelKernelUnits::mm
-	  << std::setw(14) << m_tubeTheta   [lay]/GeoModelKernelUnits::degree
-	  << std::setw(19) << tubePhiOffset [lay]/GeoModelKernelUnits::degree
-	  << std::setw(18) << tubePhiAngle  [lay][tub]/GeoModelKernelUnits::degree
-	  << std::setw(19) << m_tubePosition[lay][tub][0]/GeoModelKernelUnits::mm
-	  << std::setw(18) << m_tubePosition[lay][tub][1]/GeoModelKernelUnits::mm
+	  << std::setw(11) << m_lp->tubeRadius/Gaudi::Units::mm
+	  << std::setw(16) << layerRadius   [lay]/Gaudi::Units::mm
+	  << std::setw(14) << m_tubeTheta   [lay]/Gaudi::Units::degree
+	  << std::setw(19) << tubePhiOffset [lay]/Gaudi::Units::degree
+	  << std::setw(18) << tubePhiAngle  [lay][tub]/Gaudi::Units::degree
+	  << std::setw(19) << m_tubePosition[lay][tub][0]/Gaudi::Units::mm
+	  << std::setw(18) << m_tubePosition[lay][tub][1]/Gaudi::Units::mm
 	  << endmsg;
   
   log << MSG::DEBUG << " ********************************************************************************************************************************* " << endmsg;
@@ -298,7 +299,7 @@ void LUCID_DetectorFactory::addVJcone(GeoFullPhysVol* parent) {
 				     m_lp->VJconeRadiusBack  - m_lp->VJconeThickness,
 				     m_lp->VJconeRadiusFront, 
 				     m_lp->VJconeRadiusBack, 
-				     (m_lp->VJconelength - (m_lp->VJconeFrontRingLength - m_lp->VJconeFrontRingOverlap))/2, 0*GeoModelKernelUnits::deg,360*GeoModelKernelUnits::deg);
+				     (m_lp->VJconelength - (m_lp->VJconeFrontRingLength - m_lp->VJconeFrontRingOverlap))/2, 0*Gaudi::Units::deg,360*Gaudi::Units::deg);
   
   GeoLogVol*  logVol0 = new GeoLogVol("lvVJcone", aShape0, m_alu);
   GeoPhysVol* phyVol0 = new GeoPhysVol(logVol0); 
@@ -338,7 +339,7 @@ void LUCID_DetectorFactory::addVessel(GeoFullPhysVol* parent) {
   MsgStream log(Athena::getMessageSvc(), "LUCID_DetectorFactory::addVessel");
   log << MSG::INFO << " LUCID_DetectorFactory::addVessel " << endmsg;
   
-  GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); 
+  GeoPcon* aShape = new GeoPcon(0, 360*Gaudi::Units::deg); 
   aShape->addPlane(                 0, m_lp->vesselInnerRadius, m_lp->vesselOuterRadMin + m_lp->vesselOuterThickness);
   aShape->addPlane(m_lp->vesselLength, m_lp->vesselInnerRadius, m_lp->vesselOuterRadMax + m_lp->vesselOuterThickness);
   
@@ -360,7 +361,7 @@ void LUCID_DetectorFactory::addVesselGas(GeoPhysVol* parent) {
 
   log << MSG::INFO << " LUCID_DetectorFactory::addVesselGas " << endmsg;
   
-  GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); 
+  GeoPcon* aShape = new GeoPcon(0, 360*Gaudi::Units::deg); 
   aShape->addPlane(                 0, m_lp->vesselInnerRadius + m_lp->vesselInnerThickness, m_lp->vesselOuterRadMin);
   aShape->addPlane(m_lp->vesselLength, m_lp->vesselInnerRadius + m_lp->vesselInnerThickness, m_lp->vesselOuterRadMax);
 
diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx
index f301f728917299e459d18fb1f494a54d1e88e4ad..77eb30005aa8ce733c9f417e9094950fdf12e87f 100755
--- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx
+++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx
@@ -4,7 +4,6 @@
 
 #include "LUCID_RDBAaccess.h"
 
-//#include "CLHEP/Units/SystemOfUnits.h"
 #include "GeoModelKernel/Units.h"
 
 #include "GeoModelUtilities/DecodeVersionKey.h"
@@ -15,6 +14,7 @@
 #include "GaudiKernel/MsgStream.h"
 #include "GaudiKernel/GaudiException.h"
 #include "GaudiKernel/Bootstrap.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include "AthenaKernel/getMessageSvc.h"
 
@@ -73,34 +73,34 @@ void LUCID_RDBAccess::SetParameters() {
   
   for(AccessSvc_iter = m_lucidParams->begin(); AccessSvc_iter != m_lucidParams->end(); AccessSvc_iter++) {
     
-    distanceToIP                  = (*AccessSvc_iter)->getDouble("DISTANCETOIP")*GeoModelKernelUnits::mm;
-    VJdistanceToIP                = (*AccessSvc_iter)->getDouble("VJDISTANCETOIP")*GeoModelKernelUnits::mm;
-    VJconelength                  = (*AccessSvc_iter)->getDouble("VJCONELENGTH")*GeoModelKernelUnits::mm;
-    VJconeRadiusFront             = (*AccessSvc_iter)->getDouble("VJCONERADIUSFRONT")*GeoModelKernelUnits::mm;
-    VJconeRadiusBack              = (*AccessSvc_iter)->getDouble("VJCONERADIUSBACK")*GeoModelKernelUnits::mm;
-    VJconeThickness               = (*AccessSvc_iter)->getDouble("VJCONETHICKNESS")*GeoModelKernelUnits::mm;
-    VJconeFrontRingThickness      = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGTHICKNESS")*GeoModelKernelUnits::mm;
-    VJconeFrontRingLength         = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGLENGTH")*GeoModelKernelUnits::mm;
-    VJconeFrontRingOverlap        = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGOVERLAP")*GeoModelKernelUnits::mm;
-    vesselInnerRadius             = (*AccessSvc_iter)->getDouble("VESSELINNERRADIUS")*GeoModelKernelUnits::mm;
-    vesselInnerThickness          = (*AccessSvc_iter)->getDouble("VESSELINNERTHICKNESS")*GeoModelKernelUnits::mm;
-    vesselOuterRadMin             = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMIN")*GeoModelKernelUnits::mm + 3*GeoModelKernelUnits::mm;
-    vesselOuterRadMax             = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMAX")*GeoModelKernelUnits::mm + 3*GeoModelKernelUnits::mm;
-    vesselOuterThickness          = (*AccessSvc_iter)->getDouble("VESSELOUTERTHICKNESS")*GeoModelKernelUnits::mm;
-    vesselLength                  = (*AccessSvc_iter)->getDouble("VESSELLENGTH")*GeoModelKernelUnits::mm;
-    bulkheadThickness             = (*AccessSvc_iter)->getDouble("BULKHEADTHICKNESS")*GeoModelKernelUnits::mm;
-    coolingRadius                 = (*AccessSvc_iter)->getDouble("COOLINGRADIUS")*GeoModelKernelUnits::mm;
-    coolingThickness              = (*AccessSvc_iter)->getDouble("COOLINGTHICKNESS")*GeoModelKernelUnits::mm;
-    layerRadius1                  = (*AccessSvc_iter)->getDouble("LAYERRADIUS1")*GeoModelKernelUnits::mm;
-    layerRadius2                  = (*AccessSvc_iter)->getDouble("LAYERRADIUS2")*GeoModelKernelUnits::mm;
-    tubeRadius                    = (*AccessSvc_iter)->getDouble("TUBERADIUS")*GeoModelKernelUnits::mm;
-    tubeThickness                 = (*AccessSvc_iter)->getDouble("TUBETHICKNESS")*GeoModelKernelUnits::mm;
-    tubeLength                    = (*AccessSvc_iter)->getDouble("TUBELENGTH")*GeoModelKernelUnits::mm;
-    pmtThickness                  = (*AccessSvc_iter)->getDouble("PMTTHICKNESS")*GeoModelKernelUnits::mm;
-    gasPressure                   = (*AccessSvc_iter)->getDouble("GASPRESSURE")*GeoModelKernelUnits::bar;
-    gasDensity                    = (*AccessSvc_iter)->getDouble("GASDENSITY")*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3;
-    gasTemperature                = (*AccessSvc_iter)->getDouble("GASTEMPERATURE")*GeoModelKernelUnits::kelvin;
-    quartzDensity                 = (*AccessSvc_iter)->getDouble("QUARTZDENSITY")*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3;
+    distanceToIP                  = (*AccessSvc_iter)->getDouble("DISTANCETOIP")*Gaudi::Units::mm;
+    VJdistanceToIP                = (*AccessSvc_iter)->getDouble("VJDISTANCETOIP")*Gaudi::Units::mm;
+    VJconelength                  = (*AccessSvc_iter)->getDouble("VJCONELENGTH")*Gaudi::Units::mm;
+    VJconeRadiusFront             = (*AccessSvc_iter)->getDouble("VJCONERADIUSFRONT")*Gaudi::Units::mm;
+    VJconeRadiusBack              = (*AccessSvc_iter)->getDouble("VJCONERADIUSBACK")*Gaudi::Units::mm;
+    VJconeThickness               = (*AccessSvc_iter)->getDouble("VJCONETHICKNESS")*Gaudi::Units::mm;
+    VJconeFrontRingThickness      = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGTHICKNESS")*Gaudi::Units::mm;
+    VJconeFrontRingLength         = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGLENGTH")*Gaudi::Units::mm;
+    VJconeFrontRingOverlap        = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGOVERLAP")*Gaudi::Units::mm;
+    vesselInnerRadius             = (*AccessSvc_iter)->getDouble("VESSELINNERRADIUS")*Gaudi::Units::mm;
+    vesselInnerThickness          = (*AccessSvc_iter)->getDouble("VESSELINNERTHICKNESS")*Gaudi::Units::mm;
+    vesselOuterRadMin             = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMIN")*Gaudi::Units::mm + 3*Gaudi::Units::mm;
+    vesselOuterRadMax             = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMAX")*Gaudi::Units::mm + 3*Gaudi::Units::mm;
+    vesselOuterThickness          = (*AccessSvc_iter)->getDouble("VESSELOUTERTHICKNESS")*Gaudi::Units::mm;
+    vesselLength                  = (*AccessSvc_iter)->getDouble("VESSELLENGTH")*Gaudi::Units::mm;
+    bulkheadThickness             = (*AccessSvc_iter)->getDouble("BULKHEADTHICKNESS")*Gaudi::Units::mm;
+    coolingRadius                 = (*AccessSvc_iter)->getDouble("COOLINGRADIUS")*Gaudi::Units::mm;
+    coolingThickness              = (*AccessSvc_iter)->getDouble("COOLINGTHICKNESS")*Gaudi::Units::mm;
+    layerRadius1                  = (*AccessSvc_iter)->getDouble("LAYERRADIUS1")*Gaudi::Units::mm;
+    layerRadius2                  = (*AccessSvc_iter)->getDouble("LAYERRADIUS2")*Gaudi::Units::mm;
+    tubeRadius                    = (*AccessSvc_iter)->getDouble("TUBERADIUS")*Gaudi::Units::mm;
+    tubeThickness                 = (*AccessSvc_iter)->getDouble("TUBETHICKNESS")*Gaudi::Units::mm;
+    tubeLength                    = (*AccessSvc_iter)->getDouble("TUBELENGTH")*Gaudi::Units::mm;
+    pmtThickness                  = (*AccessSvc_iter)->getDouble("PMTTHICKNESS")*Gaudi::Units::mm;
+    gasPressure                   = (*AccessSvc_iter)->getDouble("GASPRESSURE")*Gaudi::Units::bar;
+    gasDensity                    = (*AccessSvc_iter)->getDouble("GASDENSITY")*GeoModelKernelUnits::gram/Gaudi::Units::cm3;
+    gasTemperature                = (*AccessSvc_iter)->getDouble("GASTEMPERATURE")*Gaudi::Units::kelvin;
+    quartzDensity                 = (*AccessSvc_iter)->getDouble("QUARTZDENSITY")*GeoModelKernelUnits::gram/Gaudi::Units::cm3;
     tubePolish                    = (*AccessSvc_iter)->getDouble("TUBEPOLISH");
     waveLengthStep                = (*AccessSvc_iter)->getDouble("WAVELENGTHSTEP");
     waveLengthMin                 = (*AccessSvc_iter)->getDouble("WAVELENGTHMIN");
@@ -112,26 +112,26 @@ void LUCID_RDBAccess::Print() {
   
   MsgStream log(Athena::getMessageSvc(), "LUCID_GeoModel::LUCID_RDBAaccess");
 
-  log << MSG::DEBUG << " distanceToIP         [mm]: " << distanceToIP/GeoModelKernelUnits::mm           << endmsg;
-  log << MSG::DEBUG << " vesselInnerRadius    [mm]: " << vesselInnerRadius/GeoModelKernelUnits::mm      << endmsg;
-  log << MSG::DEBUG << " vesselInnerThickness [mm]: " << vesselInnerThickness/GeoModelKernelUnits::mm   << endmsg;
-  log << MSG::DEBUG << " vesselOuterRadMin    [mm]: " << vesselOuterRadMin /GeoModelKernelUnits::mm     << endmsg;
-  log << MSG::DEBUG << " vesselOuterRadMax    [mm]: " << vesselOuterRadMax/GeoModelKernelUnits::mm      << endmsg;
-  log << MSG::DEBUG << " vesselOuterThickness [mm]: " << vesselOuterThickness/GeoModelKernelUnits::mm   << endmsg;
-  log << MSG::DEBUG << " vesselLength         [mm]: " << vesselLength /GeoModelKernelUnits::mm          << endmsg;
-  log << MSG::DEBUG << " bulkheadThickness    [mm]: " << bulkheadThickness/GeoModelKernelUnits::mm      << endmsg;
-  log << MSG::DEBUG << " coolingRadius        [mm]: " << coolingRadius/GeoModelKernelUnits::mm          << endmsg;
-  log << MSG::DEBUG << " coolingThickness     [mm]: " << coolingThickness/GeoModelKernelUnits::mm       << endmsg;
-  log << MSG::DEBUG << " layerRadius1         [mm]: " << layerRadius1/GeoModelKernelUnits::mm           << endmsg;
-  log << MSG::DEBUG << " layerRadius2         [mm]: " << layerRadius2/GeoModelKernelUnits::mm           << endmsg;
-  log << MSG::DEBUG << " tubeRadius           [mm]: " << tubeRadius/GeoModelKernelUnits::mm             << endmsg;
-  log << MSG::DEBUG << " tubeThickness        [mm]: " << tubeThickness/GeoModelKernelUnits::mm          << endmsg;
-  log << MSG::DEBUG << " tubeLength           [mm]: " << tubeLength/GeoModelKernelUnits::mm             << endmsg;
-  log << MSG::DEBUG << " pmtThickness         [mm]: " << pmtThickness/GeoModelKernelUnits::mm           << endmsg;
-  log << MSG::DEBUG << " gasPressure         [bar]: " << gasPressure/GeoModelKernelUnits::bar           << endmsg;
-  log << MSG::DEBUG << " gasDensity        [g/cm3]: " << gasDensity/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)     << endmsg;
-  log << MSG::DEBUG << " gasTempearture   [kelvin]: " << gasTemperature/GeoModelKernelUnits::kelvin     << endmsg;
-  log << MSG::DEBUG << " quartzDensity     [g/cm3]: " << quartzDensity/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)  << endmsg;  
+  log << MSG::DEBUG << " distanceToIP         [mm]: " << distanceToIP/Gaudi::Units::mm           << endmsg;
+  log << MSG::DEBUG << " vesselInnerRadius    [mm]: " << vesselInnerRadius/Gaudi::Units::mm      << endmsg;
+  log << MSG::DEBUG << " vesselInnerThickness [mm]: " << vesselInnerThickness/Gaudi::Units::mm   << endmsg;
+  log << MSG::DEBUG << " vesselOuterRadMin    [mm]: " << vesselOuterRadMin /Gaudi::Units::mm     << endmsg;
+  log << MSG::DEBUG << " vesselOuterRadMax    [mm]: " << vesselOuterRadMax/Gaudi::Units::mm      << endmsg;
+  log << MSG::DEBUG << " vesselOuterThickness [mm]: " << vesselOuterThickness/Gaudi::Units::mm   << endmsg;
+  log << MSG::DEBUG << " vesselLength         [mm]: " << vesselLength /Gaudi::Units::mm          << endmsg;
+  log << MSG::DEBUG << " bulkheadThickness    [mm]: " << bulkheadThickness/Gaudi::Units::mm      << endmsg;
+  log << MSG::DEBUG << " coolingRadius        [mm]: " << coolingRadius/Gaudi::Units::mm          << endmsg;
+  log << MSG::DEBUG << " coolingThickness     [mm]: " << coolingThickness/Gaudi::Units::mm       << endmsg;
+  log << MSG::DEBUG << " layerRadius1         [mm]: " << layerRadius1/Gaudi::Units::mm           << endmsg;
+  log << MSG::DEBUG << " layerRadius2         [mm]: " << layerRadius2/Gaudi::Units::mm           << endmsg;
+  log << MSG::DEBUG << " tubeRadius           [mm]: " << tubeRadius/Gaudi::Units::mm             << endmsg;
+  log << MSG::DEBUG << " tubeThickness        [mm]: " << tubeThickness/Gaudi::Units::mm          << endmsg;
+  log << MSG::DEBUG << " tubeLength           [mm]: " << tubeLength/Gaudi::Units::mm             << endmsg;
+  log << MSG::DEBUG << " pmtThickness         [mm]: " << pmtThickness/Gaudi::Units::mm           << endmsg;
+  log << MSG::DEBUG << " gasPressure         [bar]: " << gasPressure/Gaudi::Units::bar           << endmsg;
+  log << MSG::DEBUG << " gasDensity        [g/cm3]: " << gasDensity/(GeoModelKernelUnits::gram/Gaudi::Units::cm3)     << endmsg;
+  log << MSG::DEBUG << " gasTempearture   [kelvin]: " << gasTemperature/Gaudi::Units::kelvin     << endmsg;
+  log << MSG::DEBUG << " quartzDensity     [g/cm3]: " << quartzDensity/(GeoModelKernelUnits::gram/Gaudi::Units::cm3)  << endmsg;  
   log << MSG::DEBUG << " tubePolish               : " << tubePolish                << endmsg;
   log << MSG::DEBUG << " waveLengthStep           : " << waveLengthStep            << endmsg;
   log << MSG::DEBUG << " waveLengthMin            : " << waveLengthMin             << endmsg;
diff --git a/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx b/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx
index 89a9a75de05c2371e2503ee76198ebc0c441e128..ad61d075284779fcc25a2659591cc2f35a0351a3 100644
--- a/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx
+++ b/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx
@@ -21,6 +21,7 @@
 #include "GeoModelKernel/GeoDefinitions.h"
 #include "GeoModelKernel/Units.h"
 #include "StoreGate/StoreGateSvc.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include "GeoModelInterfaces/StoredMaterialManager.h"
 
@@ -55,27 +56,27 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
 
   const GeoMaterial* air = materialManager->getMaterial("std::Air");
 
-  GeoElement*  Oxygen   = new GeoElement ("Oxygen"  ,"O"  ,  8.0 ,  16.0*GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-  GeoElement*  Sillicon = new GeoElement ("Sillicon","Si" , 14.0 ,  28.085*GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-  GeoElement*  Tung     = new GeoElement ("Tungsten","W"  , 74.0 , 183.84*GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-  GeoElement*  Iron     = new GeoElement ("Iron"    ,"Fe" , 26.0 ,  55.845 *GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-  GeoElement*  Carbon   = new GeoElement ("Carbon"  ,"C"  ,  6.0 ,  12.0107*GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
-  GeoElement*  Nickel   = new GeoElement ("Nickel"  ,"Ni" , 28.0 ,  58.6934*GeoModelKernelUnits::g/GeoModelKernelUnits::mole);
+  GeoElement*  Oxygen   = new GeoElement ("Oxygen"  ,"O"  ,  8.0 ,  16.0*GeoModelKernelUnits::g/Gaudi::Units::mole);
+  GeoElement*  Sillicon = new GeoElement ("Sillicon","Si" , 14.0 ,  28.085*GeoModelKernelUnits::g/Gaudi::Units::mole);
+  GeoElement*  Tung     = new GeoElement ("Tungsten","W"  , 74.0 , 183.84*GeoModelKernelUnits::g/Gaudi::Units::mole);
+  GeoElement*  Iron     = new GeoElement ("Iron"    ,"Fe" , 26.0 ,  55.845 *GeoModelKernelUnits::g/Gaudi::Units::mole);
+  GeoElement*  Carbon   = new GeoElement ("Carbon"  ,"C"  ,  6.0 ,  12.0107*GeoModelKernelUnits::g/Gaudi::Units::mole);
+  GeoElement*  Nickel   = new GeoElement ("Nickel"  ,"Ni" , 28.0 ,  58.6934*GeoModelKernelUnits::g/Gaudi::Units::mole);
 
 
-  GeoMaterial* Quartz   = new GeoMaterial("Quartz",2.20*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3);
+  GeoMaterial* Quartz   = new GeoMaterial("Quartz",2.20*GeoModelKernelUnits::gram/Gaudi::Units::cm3);
   Quartz->add(Sillicon,0.467);
   Quartz->add(Oxygen,0.533);
   Quartz->lock();
   
   // Absorber composition:  savannah.cern.ch/task/download.php?file_id=22925
-  GeoMaterial* Tungsten = new GeoMaterial("Tungsten",18.155*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3);
+  GeoMaterial* Tungsten = new GeoMaterial("Tungsten",18.155*GeoModelKernelUnits::g/Gaudi::Units::cm3);
   Tungsten->add(Tung,   0.948);
   Tungsten->add(Nickel, 0.037);
   Tungsten->add(Iron,   0.015);
   Tungsten->lock();
 
-  GeoMaterial* Steel  = new GeoMaterial("Steel", 7.9*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3);
+  GeoMaterial* Steel  = new GeoMaterial("Steel", 7.9*GeoModelKernelUnits::gram/Gaudi::Units::cm3);
   Steel->add(Iron  , 0.98);
   Steel->add(Carbon, 0.02);
   Steel->lock();
@@ -84,11 +85,11 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
   //List of shapes and logical volumes
   //https://atlasop.cern.ch/atlas-point1/twiki/pub/Main/ZDCOperationManualShifter/zdc_layout.png
 
-  GeoBox*  Envelope_Box    = new GeoBox (10.0*GeoModelKernelUnits::cm/2.0 ,20.0*GeoModelKernelUnits::cm/2.0  ,100.0*GeoModelKernelUnits::cm/2.0);
-  GeoBox*  Module_Box      = new GeoBox ( 9.0*GeoModelKernelUnits::cm/2.0 ,18.0*GeoModelKernelUnits::cm/2.0  , 13.4*GeoModelKernelUnits::cm/2.0);
-  GeoBox*  Steel_Plate_Box = new GeoBox ( 9.0*GeoModelKernelUnits::cm/2.0 ,18.0*GeoModelKernelUnits::cm/2.0  ,  1.0*GeoModelKernelUnits::cm/2.0); 
-  GeoTube* Pixel_Tube      = new GeoTube( 0.0*GeoModelKernelUnits::mm     , 1.0*GeoModelKernelUnits::mm/2.0  , 13.4*GeoModelKernelUnits::cm/2.0);
-  GeoTube* Strip_Tube      = new GeoTube( 0.0*GeoModelKernelUnits::mm     , 1.5*GeoModelKernelUnits::mm/2.0  , 18.0*GeoModelKernelUnits::cm/2.0);
+  GeoBox*  Envelope_Box    = new GeoBox (10.0*Gaudi::Units::cm/2.0 ,20.0*Gaudi::Units::cm/2.0  ,100.0*Gaudi::Units::cm/2.0);
+  GeoBox*  Module_Box      = new GeoBox ( 9.0*Gaudi::Units::cm/2.0 ,18.0*Gaudi::Units::cm/2.0  , 13.4*Gaudi::Units::cm/2.0);
+  GeoBox*  Steel_Plate_Box = new GeoBox ( 9.0*Gaudi::Units::cm/2.0 ,18.0*Gaudi::Units::cm/2.0  ,  1.0*Gaudi::Units::cm/2.0); 
+  GeoTube* Pixel_Tube      = new GeoTube( 0.0*Gaudi::Units::mm     , 1.0*Gaudi::Units::mm/2.0  , 13.4*Gaudi::Units::cm/2.0);
+  GeoTube* Strip_Tube      = new GeoTube( 0.0*Gaudi::Units::mm     , 1.5*Gaudi::Units::mm/2.0  , 18.0*Gaudi::Units::cm/2.0);
 
   GeoLogVol* Envelope_Logical    = new GeoLogVol("Envelope_Logical"   ,Envelope_Box    ,air);
   GeoLogVol* Steel_Plate_Logical = new GeoLogVol("Steel_Plate_Logical",Steel_Plate_Box ,Steel);
@@ -124,8 +125,8 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
     GeoIdentifierTag* Pixel_ID       = new GeoIdentifierTag( 11000+L1*8+K1);  
     GeoFullPhysVol*   Pixel_Physical = new GeoFullPhysVol(Pixel_Logical);
 
-    ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((4.5-K)*GeoModelKernelUnits::cm));
-    ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D((4.5-L)*GeoModelKernelUnits::cm));
+    ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((4.5-K)*Gaudi::Units::cm));
+    ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D((4.5-L)*Gaudi::Units::cm));
 	
     Module_Physical[0][0]->add(Pixel_ID);
     Module_Physical[0][0]->add(ShiftX);
@@ -151,8 +152,8 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
 	GeoIdentifierTag* Pixel_ID       = new GeoIdentifierTag( I*10000+2000+ Pix_id);
 	GeoFullPhysVol*   Pixel_Physical = new GeoFullPhysVol(Pixel_Logical);
 
-	ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D( (4.5-K)*GeoModelKernelUnits::cm ));
-	ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D( (5.5-L)*GeoModelKernelUnits::cm ));
+	ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D( (4.5-K)*Gaudi::Units::cm ));
+	ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D( (5.5-L)*Gaudi::Units::cm ));
 	
 	Module_Physical[I-1][1]->add(Pixel_ID);
 	Module_Physical[I-1][1]->add(ShiftX);
@@ -171,9 +172,9 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
 	    GeoFullPhysVol*   Strip_Physical = new GeoFullPhysVol  (Strip_Logical);
 	    GeoIdentifierTag* Strip_ID       = new GeoIdentifierTag(I*10000+J*1000+K*12+L*10+M);
 	    
-	    RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D   (90*GeoModelKernelUnits::deg));
-	    ShiftX  = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*GeoModelKernelUnits::cm + (M-0.75)*1.5*GeoModelKernelUnits::mm +0.75*GeoModelKernelUnits::mm));
-	    ShiftZ  = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2 - 7.8)*GeoModelKernelUnits::cm));
+	    RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D   (90*Gaudi::Units::deg));
+	    ShiftX  = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*Gaudi::Units::cm + (M-0.75)*1.5*Gaudi::Units::mm +0.75*Gaudi::Units::mm));
+	    ShiftZ  = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2 - 7.8)*Gaudi::Units::cm));
 	
 	    Module_Physical[I-1][J-1]->add(Strip_ID);
 	    Module_Physical[I-1][J-1]->add(ShiftZ);
@@ -196,9 +197,9 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
 	    GeoFullPhysVol*   Strip_Physical = new GeoFullPhysVol(Strip_Logical);
 	    GeoIdentifierTag* Strip_ID       = new GeoIdentifierTag(I*10000 + J*1000 + K*12 + L*10 + M);
 
-	    RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D   (90*GeoModelKernelUnits::deg));
-	    ShiftX  = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*GeoModelKernelUnits::cm + (M-0.75)*1.5*GeoModelKernelUnits::mm + 0.75*GeoModelKernelUnits::mm));
-	    ShiftZ  = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2-7.8)*GeoModelKernelUnits::cm ));
+	    RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D   (90*Gaudi::Units::deg));
+	    ShiftX  = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*Gaudi::Units::cm + (M-0.75)*1.5*Gaudi::Units::mm + 0.75*Gaudi::Units::mm));
+	    ShiftZ  = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2-7.8)*Gaudi::Units::cm ));
 	
 	    Module_Physical[I-1][J-1]->add(Strip_ID);
 	    Module_Physical[I-1][J-1]->add(ShiftZ);
@@ -228,13 +229,13 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
     Envelope_Physical[I] = new GeoFullPhysVol(Envelope_Logical);
     Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical);
 
-    ShiftZ  = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 0.5)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ  = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 0.5)*Gaudi::Units::cm*sgn));
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Steel_Plate_Physical);
 
     Vol_Name = "EM_XY"; Vol_Name = Vol_Name + Vol_Name_append;
 
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D ((-47.2 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D ((-47.2 + 1 + 6.7)*Gaudi::Units::cm*sgn));
 
     tag = new GeoNameTag(Vol_Name.c_str());
     Envelope_Physical[I]->add(tag);
@@ -242,58 +243,58 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
     Envelope_Physical[I]->add(Module_Physical[I][0]);
 
     Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical);
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 +.5)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 +.5)*Gaudi::Units::cm*sgn));
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Steel_Plate_Physical);
   
     Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical);
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + .5)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + .5)*Gaudi::Units::cm*sgn));
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Steel_Plate_Physical);
 
     Vol_Name = "HM_XY"; Vol_Name = Vol_Name + Vol_Name_append;
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 6.7)*Gaudi::Units::cm*sgn));
     tag = new GeoNameTag(Vol_Name.c_str());
     Envelope_Physical[I]->add(tag);
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Module_Physical[I][1]);
   
     Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical);
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + .5)*Gaudi::Units::cm*sgn));
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Steel_Plate_Physical);
  
     Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical);
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 +.5)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 +.5)*Gaudi::Units::cm*sgn));
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Steel_Plate_Physical);
 
     Vol_Name = "HM_01"; Vol_Name = Vol_Name + Vol_Name_append;
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn ));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 6.7)*Gaudi::Units::cm*sgn ));
     tag = new GeoNameTag(Vol_Name.c_str());
     Envelope_Physical[I]->add(tag);
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Module_Physical[I][2]);
   
     Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical);
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + .5)*Gaudi::Units::cm*sgn));
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Steel_Plate_Physical);
 
     Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical);
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + .5)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + .5)*Gaudi::Units::cm*sgn));
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Steel_Plate_Physical);
 
     Vol_Name = "HM_02"; Vol_Name = Vol_Name + Vol_Name_append;
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn ));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 6.7)*Gaudi::Units::cm*sgn ));
     tag = new GeoNameTag(Vol_Name.c_str());
     Envelope_Physical[I]->add(tag);
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Module_Physical[I][3]);
   
     Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical);
-    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn));
+    ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 13.4 + .5)*Gaudi::Units::cm*sgn));
     Envelope_Physical[I]->add(ShiftZ);
     Envelope_Physical[I]->add(Steel_Plate_Physical);
   }
@@ -305,7 +306,7 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
 
   world->add(tag);
 
-  ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(-141.580*GeoModelKernelUnits::m));
+  ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(-141.580*Gaudi::Units::m));
 
   world->add(ShiftZ);
   world->add(Envelope_Physical[0]);
@@ -320,7 +321,7 @@ void ZDC_DetFactory::create(GeoPhysVol* world)
   
   world->add(tag);
   
-  ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(141.580 *GeoModelKernelUnits::m));
+  ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(141.580 *Gaudi::Units::m));
 
   world->add(ShiftZ);
   world->add(Envelope_Physical[1]);
diff --git a/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx b/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx
index 56e829944baa733865b184a5fdf99b8feedc5180..23633d5762eaaa4b41732c63936f978b80b6190c 100644
--- a/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx
+++ b/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx
@@ -6,7 +6,7 @@
 #include "GaudiKernel/IJobOptionsSvc.h"
 #include "GaudiKernel/MsgStream.h"
 #include "GaudiKernel/StatusCode.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/PhysicalConstants.h"
 
 #include "StoreGate/StoreGateSvc.h"
 #include "InDetDiMuonMonitoring/DiMuMon.h"
@@ -103,10 +103,10 @@ StatusCode DiMuMon::initialize(){
 
   //resonance independent
   // for eta these are filled as the histograms are declared due to the dependence between region and eta
-  m_varRanges["phi"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi);
-  m_varRanges["phiAll"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi);
-  m_varRanges["phiPos"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi);
-  m_varRanges["phiNeg"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi);
+  m_varRanges["phi"] = std::make_pair(-Gaudi::Units::pi,Gaudi::Units::pi);
+  m_varRanges["phiAll"] = std::make_pair(-Gaudi::Units::pi,Gaudi::Units::pi);
+  m_varRanges["phiPos"] = std::make_pair(-Gaudi::Units::pi,Gaudi::Units::pi);
+  m_varRanges["phiNeg"] = std::make_pair(-Gaudi::Units::pi,Gaudi::Units::pi);
   m_varRanges["etaSumm"] = std::make_pair(-5.,5.);
 
   //resonance dependent
@@ -121,7 +121,7 @@ StatusCode DiMuMon::initialize(){
     ptMax = 18.;
   } else if (m_resonName=="Zmumu") {
     m_varRanges["eta"] = std::make_pair(-5.,5.);
-    m_varRanges["phiDiff"] = std::make_pair(0.,GeoModelKernelUnits::pi);
+    m_varRanges["phiDiff"] = std::make_pair(0.,Gaudi::Units::pi);
     m_varRanges["etaDiff"] = std::make_pair(-3.,3.);
     m_varRanges["crtDiff"] = std::make_pair(-0.03,0.03);
     m_varRanges["phiSumm"] = std::make_pair(-3.5,3.5);
@@ -262,7 +262,7 @@ StatusCode DiMuMon::fillHistograms()
 
   //  if (m_lumiBlockNum<402 || m_lumiBlockNum>1330) return StatusCode::SUCCESS;
 
-  double muonMass = 105.66*GeoModelKernelUnits::MeV;
+  double muonMass = 105.66*Gaudi::Units::MeV;
   //retrieve all muons
   const xAOD::MuonContainer* muons(0);
   StatusCode sc = evtStore()->retrieve(muons, m_muonCollection);
@@ -357,15 +357,15 @@ StatusCode DiMuMon::fillHistograms()
 	double phiNeg = idNeg->phi();
 	m_varValues["phiNeg"] = phiNeg;
 	m_varValues["pt"] = getPt(idPos,idNeg);
-	double ptPos = idPos->pt()/GeoModelKernelUnits::GeV;
+	double ptPos = idPos->pt()/Gaudi::Units::GeV;
 	m_varValues["ptPos"] = ptPos;
-	double ptNeg = idNeg->pt()/GeoModelKernelUnits::GeV;
+	double ptNeg = idNeg->pt()/Gaudi::Units::GeV;
 	m_varValues["ptNeg"] = ptNeg;
 
 	m_varValues["crtDiff"] = getCrtDiff(idPos,idNeg);
 	m_varValues["etaDiff"] = etaPos - etaNeg;
 	double phiDiff = fabs(phiPos - phiNeg);
-	if (phiDiff>GeoModelKernelUnits::pi) phiDiff = 2*(GeoModelKernelUnits::pi) - phiDiff;
+	if (phiDiff>Gaudi::Units::pi) phiDiff = 2*(Gaudi::Units::pi) - phiDiff;
 	m_varValues["phiDiff"] = phiDiff;
 	m_varValues["etaSumm"] = etaPos + etaNeg;
 	m_varValues["phiSumm"] = phiPos + phiNeg;
@@ -662,7 +662,7 @@ double DiMuMon::getInvmass(const xAOD::TrackParticle* id1, const xAOD::TrackPart
   particle1.SetPtEtaPhiE(id1->pt(),id1->eta(),id1->phi(),sqrt(pow(Mass,2)+pow(id1->p4().Px(),2)+pow(id1->p4().Py(),2)+pow(id1->p4().Pz(),2)));
   particle2.SetPtEtaPhiE(id2->pt(),id2->eta(),id2->phi(),sqrt(pow(Mass,2)+pow(id2->p4().Px(),2)+pow(id2->p4().Py(),2)+pow(id2->p4().Pz(),2)));
   v=particle1+particle2;
-  double invmass = v.Mag()/GeoModelKernelUnits::GeV;
+  double invmass = v.Mag()/Gaudi::Units::GeV;
   return invmass;
 }
 
@@ -671,7 +671,7 @@ double DiMuMon::getPt(const xAOD::TrackParticle* id1, const xAOD::TrackParticle*
   double px = id1->p4().Px()+id2->p4().Px();
   double py = id1->p4().Py()+id2->p4().Py();
   transmom=sqrt(px*px+py*py);
-  return transmom/GeoModelKernelUnits::GeV;  //Gev
+  return transmom/Gaudi::Units::GeV;  //Gev
 }
 
 double DiMuMon::getEta(const xAOD::TrackParticle* id1, const xAOD::TrackParticle* id2 ) const {
diff --git a/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx b/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx
index b2df85629c45e7e3d76d345566cc564ada65ec7b..c983e296b92ed2d627023accf7c47177fd1476c5 100755
--- a/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx
+++ b/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx
@@ -23,7 +23,7 @@
 #include "LArDetDescr/LArCellVolumes.h"
 #include "GeoModelInterfaces/IGeoModelSvc.h"
 #include "GeoModelUtilities/DecodeVersionKey.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 LArNumberHelper::LArNumberHelper(const std::string geometry) :
   m_geometry(geometry),
@@ -495,49 +495,49 @@ LArNumberHelper::db_nb_em()
   //std::cout << " ----- in db_nb_em tags are : " << m_tag << " " << m_node << std::endl;
 
   // PS
-  // m_emb_psin = 141.23*GeoModelKernelUnits::cm;    // this is the TDR number 1385 mm + 27.3 mm   
+  // m_emb_psin = 141.23*Gaudi::Units::cm;    // this is the TDR number 1385 mm + 27.3 mm   
   //  ----> overwritten
 
   m_lar = m_iAccessSvc->getRecordsetPtr("PresamplerGeometry","ATLAS-00","ATLAS");
 
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];
-    m_emb_psin = m_rec->getDouble("RACTIVE")*GeoModelKernelUnits::cm;
+    m_emb_psin = m_rec->getDouble("RACTIVE")*Gaudi::Units::cm;
   }
 
   // ACCG :
-  // m_accg_rin_ac = 144.73*GeoModelKernelUnits::cm; // 1385mm + 27.3mm + 35mm
-  // m_accg_rout_ac = 200.35*GeoModelKernelUnits::cm; // end of active material
+  // m_accg_rin_ac = 144.73*Gaudi::Units::cm; // 1385mm + 27.3mm + 35mm
+  // m_accg_rout_ac = 200.35*Gaudi::Units::cm; // end of active material
   //  ----> overwritten
   m_lar = m_iAccessSvc->getRecordsetPtr("BarrelGeometry",m_tag,m_node);
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];  
-    m_accg_rin_ac = m_rec->getDouble("RMIN") *GeoModelKernelUnits::cm;
-    m_accg_rout_ac = m_rec->getDouble("RMAX") *GeoModelKernelUnits::cm;
+    m_accg_rin_ac = m_rec->getDouble("RMIN") *Gaudi::Units::cm;
+    m_accg_rout_ac = m_rec->getDouble("RMAX") *Gaudi::Units::cm;
   }
 
   // ACCO :
   m_acco_rmx12.resize (8,(double) 0.); 
-  // m_acco_rmx12[0] = 158.6*GeoModelKernelUnits::cm;
-  // m_acco_rmx12[1] = 158.6*GeoModelKernelUnits::cm;
-  // m_acco_rmx12[2] = 157.07*GeoModelKernelUnits::cm;
-  // m_acco_rmx12[3] = 157.07*GeoModelKernelUnits::cm;
-  // m_acco_rmx12[4] = 154.83*GeoModelKernelUnits::cm;
-  // m_acco_rmx12[5] = 154.83*GeoModelKernelUnits::cm;
-  // m_acco_rmx12[6] = 153.23*GeoModelKernelUnits::cm;
-  // m_acco_rmx12[7] = 153.23*GeoModelKernelUnits::cm;
+  // m_acco_rmx12[0] = 158.6*Gaudi::Units::cm;
+  // m_acco_rmx12[1] = 158.6*Gaudi::Units::cm;
+  // m_acco_rmx12[2] = 157.07*Gaudi::Units::cm;
+  // m_acco_rmx12[3] = 157.07*Gaudi::Units::cm;
+  // m_acco_rmx12[4] = 154.83*Gaudi::Units::cm;
+  // m_acco_rmx12[5] = 154.83*Gaudi::Units::cm;
+  // m_acco_rmx12[6] = 153.23*Gaudi::Units::cm;
+  // m_acco_rmx12[7] = 153.23*Gaudi::Units::cm;
   //  ----> overwritten
   m_lar = m_iAccessSvc->getRecordsetPtr("BarrelLongDiv",m_tag,m_node);
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];  
-    m_acco_rmx12[0] = m_rec->getDouble("RMX12_0")*GeoModelKernelUnits::cm;
-    m_acco_rmx12[1] = m_rec->getDouble("RMX12_1")*GeoModelKernelUnits::cm;
-    m_acco_rmx12[2] = m_rec->getDouble("RMX12_2")*GeoModelKernelUnits::cm;
-    m_acco_rmx12[3] = m_rec->getDouble("RMX12_3")*GeoModelKernelUnits::cm;
-    m_acco_rmx12[4] = m_rec->getDouble("RMX12_4")*GeoModelKernelUnits::cm;
-    m_acco_rmx12[5] = m_rec->getDouble("RMX12_5")*GeoModelKernelUnits::cm;
-    m_acco_rmx12[6] = m_rec->getDouble("RMX12_6")*GeoModelKernelUnits::cm;
-    m_acco_rmx12[7] = m_rec->getDouble("RMX12_7")*GeoModelKernelUnits::cm;
+    m_acco_rmx12[0] = m_rec->getDouble("RMX12_0")*Gaudi::Units::cm;
+    m_acco_rmx12[1] = m_rec->getDouble("RMX12_1")*Gaudi::Units::cm;
+    m_acco_rmx12[2] = m_rec->getDouble("RMX12_2")*Gaudi::Units::cm;
+    m_acco_rmx12[3] = m_rec->getDouble("RMX12_3")*Gaudi::Units::cm;
+    m_acco_rmx12[4] = m_rec->getDouble("RMX12_4")*Gaudi::Units::cm;
+    m_acco_rmx12[5] = m_rec->getDouble("RMX12_5")*Gaudi::Units::cm;
+    m_acco_rmx12[6] = m_rec->getDouble("RMX12_6")*Gaudi::Units::cm;
+    m_acco_rmx12[7] = m_rec->getDouble("RMX12_7")*Gaudi::Units::cm;
   }
 
   m_acco_ee12.resize (8,(double) 0.); 
@@ -565,84 +565,84 @@ LArNumberHelper::db_nb_em()
 
   m_acco_rmx23.resize (53,(double) 0.); 
   /*
-    m_acco_rmx23[0] = 192.83*GeoModelKernelUnits::cm;  ... up to :
-    m_acco_rmx23[52] = 178.89*GeoModelKernelUnits::cm;
+    m_acco_rmx23[0] = 192.83*Gaudi::Units::cm;  ... up to :
+    m_acco_rmx23[52] = 178.89*Gaudi::Units::cm;
   */
   //  ----> overwritten
   m_lar = m_iAccessSvc->getRecordsetPtr("BarrelLongDiv",m_tag,m_node);
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];  
-    m_acco_rmx23[0] = m_rec->getDouble("RMX23_0")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[1] = m_rec->getDouble("RMX23_1")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[2] = m_rec->getDouble("RMX23_2")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[3] = m_rec->getDouble("RMX23_3")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[4] = m_rec->getDouble("RMX23_4")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[5] = m_rec->getDouble("RMX23_5")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[6] = m_rec->getDouble("RMX23_6")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[7] = m_rec->getDouble("RMX23_7")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[8] = m_rec->getDouble("RMX23_8")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[9] = m_rec->getDouble("RMX23_9")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[10] = m_rec->getDouble("RMX23_10")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[11] = m_rec->getDouble("RMX23_11")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[12] = m_rec->getDouble("RMX23_12")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[13] = m_rec->getDouble("RMX23_13")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[14] = m_rec->getDouble("RMX23_14")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[15] = m_rec->getDouble("RMX23_15")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[16] = m_rec->getDouble("RMX23_16")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[17] = m_rec->getDouble("RMX23_17")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[18] = m_rec->getDouble("RMX23_18")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[19] = m_rec->getDouble("RMX23_19")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[20] = m_rec->getDouble("RMX23_20")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[21] = m_rec->getDouble("RMX23_21")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[22] = m_rec->getDouble("RMX23_22")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[23] = m_rec->getDouble("RMX23_23")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[24] = m_rec->getDouble("RMX23_24")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[25] = m_rec->getDouble("RMX23_25")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[26] = m_rec->getDouble("RMX23_26")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[27] = m_rec->getDouble("RMX23_27")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[28] = m_rec->getDouble("RMX23_28")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[29] = m_rec->getDouble("RMX23_29")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[30] = m_rec->getDouble("RMX23_30")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[31] = m_rec->getDouble("RMX23_31")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[32] = m_rec->getDouble("RMX23_32")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[33] = m_rec->getDouble("RMX23_33")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[34] = m_rec->getDouble("RMX23_34")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[35] = m_rec->getDouble("RMX23_35")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[36] = m_rec->getDouble("RMX23_36")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[37] = m_rec->getDouble("RMX23_37")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[38] = m_rec->getDouble("RMX23_38")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[39] = m_rec->getDouble("RMX23_39")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[40] = m_rec->getDouble("RMX23_40")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[41] = m_rec->getDouble("RMX23_41")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[42] = m_rec->getDouble("RMX23_42")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[43] = m_rec->getDouble("RMX23_43")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[44] = m_rec->getDouble("RMX23_44")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[45] = m_rec->getDouble("RMX23_45")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[46] = m_rec->getDouble("RMX23_46")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[47] = m_rec->getDouble("RMX23_47")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[48] = m_rec->getDouble("RMX23_48")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[49] = m_rec->getDouble("RMX23_49")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[50] = m_rec->getDouble("RMX23_50")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[51] = m_rec->getDouble("RMX23_51")*GeoModelKernelUnits::cm;
-    m_acco_rmx23[52] = m_rec->getDouble("RMX23_52")*GeoModelKernelUnits::cm;
+    m_acco_rmx23[0] = m_rec->getDouble("RMX23_0")*Gaudi::Units::cm;
+    m_acco_rmx23[1] = m_rec->getDouble("RMX23_1")*Gaudi::Units::cm;
+    m_acco_rmx23[2] = m_rec->getDouble("RMX23_2")*Gaudi::Units::cm;
+    m_acco_rmx23[3] = m_rec->getDouble("RMX23_3")*Gaudi::Units::cm;
+    m_acco_rmx23[4] = m_rec->getDouble("RMX23_4")*Gaudi::Units::cm;
+    m_acco_rmx23[5] = m_rec->getDouble("RMX23_5")*Gaudi::Units::cm;
+    m_acco_rmx23[6] = m_rec->getDouble("RMX23_6")*Gaudi::Units::cm;
+    m_acco_rmx23[7] = m_rec->getDouble("RMX23_7")*Gaudi::Units::cm;
+    m_acco_rmx23[8] = m_rec->getDouble("RMX23_8")*Gaudi::Units::cm;
+    m_acco_rmx23[9] = m_rec->getDouble("RMX23_9")*Gaudi::Units::cm;
+    m_acco_rmx23[10] = m_rec->getDouble("RMX23_10")*Gaudi::Units::cm;
+    m_acco_rmx23[11] = m_rec->getDouble("RMX23_11")*Gaudi::Units::cm;
+    m_acco_rmx23[12] = m_rec->getDouble("RMX23_12")*Gaudi::Units::cm;
+    m_acco_rmx23[13] = m_rec->getDouble("RMX23_13")*Gaudi::Units::cm;
+    m_acco_rmx23[14] = m_rec->getDouble("RMX23_14")*Gaudi::Units::cm;
+    m_acco_rmx23[15] = m_rec->getDouble("RMX23_15")*Gaudi::Units::cm;
+    m_acco_rmx23[16] = m_rec->getDouble("RMX23_16")*Gaudi::Units::cm;
+    m_acco_rmx23[17] = m_rec->getDouble("RMX23_17")*Gaudi::Units::cm;
+    m_acco_rmx23[18] = m_rec->getDouble("RMX23_18")*Gaudi::Units::cm;
+    m_acco_rmx23[19] = m_rec->getDouble("RMX23_19")*Gaudi::Units::cm;
+    m_acco_rmx23[20] = m_rec->getDouble("RMX23_20")*Gaudi::Units::cm;
+    m_acco_rmx23[21] = m_rec->getDouble("RMX23_21")*Gaudi::Units::cm;
+    m_acco_rmx23[22] = m_rec->getDouble("RMX23_22")*Gaudi::Units::cm;
+    m_acco_rmx23[23] = m_rec->getDouble("RMX23_23")*Gaudi::Units::cm;
+    m_acco_rmx23[24] = m_rec->getDouble("RMX23_24")*Gaudi::Units::cm;
+    m_acco_rmx23[25] = m_rec->getDouble("RMX23_25")*Gaudi::Units::cm;
+    m_acco_rmx23[26] = m_rec->getDouble("RMX23_26")*Gaudi::Units::cm;
+    m_acco_rmx23[27] = m_rec->getDouble("RMX23_27")*Gaudi::Units::cm;
+    m_acco_rmx23[28] = m_rec->getDouble("RMX23_28")*Gaudi::Units::cm;
+    m_acco_rmx23[29] = m_rec->getDouble("RMX23_29")*Gaudi::Units::cm;
+    m_acco_rmx23[30] = m_rec->getDouble("RMX23_30")*Gaudi::Units::cm;
+    m_acco_rmx23[31] = m_rec->getDouble("RMX23_31")*Gaudi::Units::cm;
+    m_acco_rmx23[32] = m_rec->getDouble("RMX23_32")*Gaudi::Units::cm;
+    m_acco_rmx23[33] = m_rec->getDouble("RMX23_33")*Gaudi::Units::cm;
+    m_acco_rmx23[34] = m_rec->getDouble("RMX23_34")*Gaudi::Units::cm;
+    m_acco_rmx23[35] = m_rec->getDouble("RMX23_35")*Gaudi::Units::cm;
+    m_acco_rmx23[36] = m_rec->getDouble("RMX23_36")*Gaudi::Units::cm;
+    m_acco_rmx23[37] = m_rec->getDouble("RMX23_37")*Gaudi::Units::cm;
+    m_acco_rmx23[38] = m_rec->getDouble("RMX23_38")*Gaudi::Units::cm;
+    m_acco_rmx23[39] = m_rec->getDouble("RMX23_39")*Gaudi::Units::cm;
+    m_acco_rmx23[40] = m_rec->getDouble("RMX23_40")*Gaudi::Units::cm;
+    m_acco_rmx23[41] = m_rec->getDouble("RMX23_41")*Gaudi::Units::cm;
+    m_acco_rmx23[42] = m_rec->getDouble("RMX23_42")*Gaudi::Units::cm;
+    m_acco_rmx23[43] = m_rec->getDouble("RMX23_43")*Gaudi::Units::cm;
+    m_acco_rmx23[44] = m_rec->getDouble("RMX23_44")*Gaudi::Units::cm;
+    m_acco_rmx23[45] = m_rec->getDouble("RMX23_45")*Gaudi::Units::cm;
+    m_acco_rmx23[46] = m_rec->getDouble("RMX23_46")*Gaudi::Units::cm;
+    m_acco_rmx23[47] = m_rec->getDouble("RMX23_47")*Gaudi::Units::cm;
+    m_acco_rmx23[48] = m_rec->getDouble("RMX23_48")*Gaudi::Units::cm;
+    m_acco_rmx23[49] = m_rec->getDouble("RMX23_49")*Gaudi::Units::cm;
+    m_acco_rmx23[50] = m_rec->getDouble("RMX23_50")*Gaudi::Units::cm;
+    m_acco_rmx23[51] = m_rec->getDouble("RMX23_51")*Gaudi::Units::cm;
+    m_acco_rmx23[52] = m_rec->getDouble("RMX23_52")*Gaudi::Units::cm;
   }
 
   // ENDG
-  // m_endg_zorig = 369.1*GeoModelKernelUnits::cm; // this is the NOVA/Oracle number
-  // m_emb_iwout = 422.7*GeoModelKernelUnits::cm;  // 369.1*GeoModelKernelUnits::cm + 53.6*GeoModelKernelUnits::cm is the end of the active part
-  // m_emec_out = 422.7*GeoModelKernelUnits::cm;  // 369.1*GeoModelKernelUnits::cm + 53.6*GeoModelKernelUnits::cm is the end of the active part
+  // m_endg_zorig = 369.1*Gaudi::Units::cm; // this is the NOVA/Oracle number
+  // m_emb_iwout = 422.7*Gaudi::Units::cm;  // 369.1*Gaudi::Units::cm + 53.6*Gaudi::Units::cm is the end of the active part
+  // m_emec_out = 422.7*Gaudi::Units::cm;  // 369.1*Gaudi::Units::cm + 53.6*Gaudi::Units::cm is the end of the active part
   m_lar = m_iAccessSvc->getRecordsetPtr("EmecGeometry",m_tag,m_node);
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];
-    m_endg_zorig = m_rec->getDouble("Z1")*GeoModelKernelUnits::cm;
-    double epaisseurTotale =  m_rec->getDouble("ETOT")*GeoModelKernelUnits::cm;
+    m_endg_zorig = m_rec->getDouble("Z1")*Gaudi::Units::cm;
+    double epaisseurTotale =  m_rec->getDouble("ETOT")*Gaudi::Units::cm;
     m_emb_iwout = m_endg_zorig + epaisseurTotale;
     m_emec_out  = m_endg_zorig + epaisseurTotale;
 
   } 
 
   // Cryostat
-  // m_emec_psin = 362.5*GeoModelKernelUnits::cm; // notch in cold wall of cryostat
+  // m_emec_psin = 362.5*Gaudi::Units::cm; // notch in cold wall of cryostat
   if ( m_geometry == "Atlas" ) {
     DecodeVersionKey detectorKeyAtl = DecodeVersionKey(m_geoModelSvc, "ATLAS");
     m_lar = m_iAccessSvc->getRecordsetPtr("PresamplerPosition",detectorKeyAtl.tag(),detectorKeyAtl.node());
@@ -652,74 +652,74 @@ LArNumberHelper::db_nb_em()
   }
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];
-    m_emec_psin = m_rec->getDouble("ZPOS")*GeoModelKernelUnits::cm;
+    m_emec_psin = m_rec->getDouble("ZPOS")*Gaudi::Units::cm;
   } 
 
   // ESEP
   m_esep_iw23.resize(7, (double) 0.); 
-  // m_esep_iw23[0] = 413.934*GeoModelKernelUnits::cm;
-  // m_esep_iw23[1] = 412.518*GeoModelKernelUnits::cm;
-  // m_esep_iw23[2] = 411.792*GeoModelKernelUnits::cm;
-  // m_esep_iw23[3] = 409.545*GeoModelKernelUnits::cm;
-  // m_esep_iw23[4] = 407.987*GeoModelKernelUnits::cm;
-  // m_esep_iw23[5] = 407.510*GeoModelKernelUnits::cm;
-  // m_esep_iw23[6] = 404.730*GeoModelKernelUnits::cm;
+  // m_esep_iw23[0] = 413.934*Gaudi::Units::cm;
+  // m_esep_iw23[1] = 412.518*Gaudi::Units::cm;
+  // m_esep_iw23[2] = 411.792*Gaudi::Units::cm;
+  // m_esep_iw23[3] = 409.545*Gaudi::Units::cm;
+  // m_esep_iw23[4] = 407.987*Gaudi::Units::cm;
+  // m_esep_iw23[5] = 407.510*Gaudi::Units::cm;
+  // m_esep_iw23[6] = 404.730*Gaudi::Units::cm;
   //  ----> overwritten
   m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node);
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];  
-    m_esep_iw23[0] = m_rec->getDouble("ZIW_0")*GeoModelKernelUnits::cm;
-    m_esep_iw23[1] = m_rec->getDouble("ZIW_1")*GeoModelKernelUnits::cm;
-    m_esep_iw23[2] = m_rec->getDouble("ZIW_2")*GeoModelKernelUnits::cm;
-    m_esep_iw23[3] = m_rec->getDouble("ZIW_3")*GeoModelKernelUnits::cm;
-    m_esep_iw23[4] = m_rec->getDouble("ZIW_4")*GeoModelKernelUnits::cm;
-    m_esep_iw23[5] = m_rec->getDouble("ZIW_5")*GeoModelKernelUnits::cm;
-    m_esep_iw23[6] = m_rec->getDouble("ZIW_6")*GeoModelKernelUnits::cm;
+    m_esep_iw23[0] = m_rec->getDouble("ZIW_0")*Gaudi::Units::cm;
+    m_esep_iw23[1] = m_rec->getDouble("ZIW_1")*Gaudi::Units::cm;
+    m_esep_iw23[2] = m_rec->getDouble("ZIW_2")*Gaudi::Units::cm;
+    m_esep_iw23[3] = m_rec->getDouble("ZIW_3")*Gaudi::Units::cm;
+    m_esep_iw23[4] = m_rec->getDouble("ZIW_4")*Gaudi::Units::cm;
+    m_esep_iw23[5] = m_rec->getDouble("ZIW_5")*Gaudi::Units::cm;
+    m_esep_iw23[6] = m_rec->getDouble("ZIW_6")*Gaudi::Units::cm;
 }
 
-  // m_esep_zsep12 = 378.398*GeoModelKernelUnits::cm;   
+  // m_esep_zsep12 = 378.398*Gaudi::Units::cm;   
   // Note that in the gometryDB this is an array, but
   // of very similar numbers -> Zebra was using 1rst value only
   //  ----> overwritten
   m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node);
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];  
-    m_esep_zsep12 = m_rec->getDouble("ZSEP12_0")*GeoModelKernelUnits::cm;
+    m_esep_zsep12 = m_rec->getDouble("ZSEP12_0")*Gaudi::Units::cm;
   }
 
   m_esep_zsep23.resize(22, (double) 0.); 
   /*
-  m_esep_zsep23 [0] = 999.999*GeoModelKernelUnits::cm;       // inheritance from Zebra.
-  m_esep_zsep23 [1] = 999.999*GeoModelKernelUnits::cm;       // will be skipped in hard_em
-  m_esep_zsep23 [2] = 413.205*GeoModelKernelUnits::cm;   ... up to :
-  m_esep_zsep23 [21] = 401.153*GeoModelKernelUnits::cm;
+  m_esep_zsep23 [0] = 999.999*Gaudi::Units::cm;       // inheritance from Zebra.
+  m_esep_zsep23 [1] = 999.999*Gaudi::Units::cm;       // will be skipped in hard_em
+  m_esep_zsep23 [2] = 413.205*Gaudi::Units::cm;   ... up to :
+  m_esep_zsep23 [21] = 401.153*Gaudi::Units::cm;
   */
   //  ----> overwritten
   m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node);
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];  
-    m_esep_zsep23 [0] = m_rec->getDouble("ZSEP23_0")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [1] = m_rec->getDouble("ZSEP23_1")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [2] = m_rec->getDouble("ZSEP23_2")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [3] = m_rec->getDouble("ZSEP23_3")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [4] = m_rec->getDouble("ZSEP23_4")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [5] = m_rec->getDouble("ZSEP23_5")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [6] = m_rec->getDouble("ZSEP23_6")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [7] = m_rec->getDouble("ZSEP23_7")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [8] = m_rec->getDouble("ZSEP23_8")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [9] = m_rec->getDouble("ZSEP23_9")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [10] = m_rec->getDouble("ZSEP23_10")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [11] = m_rec->getDouble("ZSEP23_11")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [12] = m_rec->getDouble("ZSEP23_12")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [13] = m_rec->getDouble("ZSEP23_13")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [14] = m_rec->getDouble("ZSEP23_14")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [15] = m_rec->getDouble("ZSEP23_15")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [16] = m_rec->getDouble("ZSEP23_16")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [17] = m_rec->getDouble("ZSEP23_17")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [18] = m_rec->getDouble("ZSEP23_18")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [19] = m_rec->getDouble("ZSEP23_19")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [20] = m_rec->getDouble("ZSEP23_20")*GeoModelKernelUnits::cm;
-    m_esep_zsep23 [21] = m_rec->getDouble("ZSEP23_21")*GeoModelKernelUnits::cm;
+    m_esep_zsep23 [0] = m_rec->getDouble("ZSEP23_0")*Gaudi::Units::cm;
+    m_esep_zsep23 [1] = m_rec->getDouble("ZSEP23_1")*Gaudi::Units::cm;
+    m_esep_zsep23 [2] = m_rec->getDouble("ZSEP23_2")*Gaudi::Units::cm;
+    m_esep_zsep23 [3] = m_rec->getDouble("ZSEP23_3")*Gaudi::Units::cm;
+    m_esep_zsep23 [4] = m_rec->getDouble("ZSEP23_4")*Gaudi::Units::cm;
+    m_esep_zsep23 [5] = m_rec->getDouble("ZSEP23_5")*Gaudi::Units::cm;
+    m_esep_zsep23 [6] = m_rec->getDouble("ZSEP23_6")*Gaudi::Units::cm;
+    m_esep_zsep23 [7] = m_rec->getDouble("ZSEP23_7")*Gaudi::Units::cm;
+    m_esep_zsep23 [8] = m_rec->getDouble("ZSEP23_8")*Gaudi::Units::cm;
+    m_esep_zsep23 [9] = m_rec->getDouble("ZSEP23_9")*Gaudi::Units::cm;
+    m_esep_zsep23 [10] = m_rec->getDouble("ZSEP23_10")*Gaudi::Units::cm;
+    m_esep_zsep23 [11] = m_rec->getDouble("ZSEP23_11")*Gaudi::Units::cm;
+    m_esep_zsep23 [12] = m_rec->getDouble("ZSEP23_12")*Gaudi::Units::cm;
+    m_esep_zsep23 [13] = m_rec->getDouble("ZSEP23_13")*Gaudi::Units::cm;
+    m_esep_zsep23 [14] = m_rec->getDouble("ZSEP23_14")*Gaudi::Units::cm;
+    m_esep_zsep23 [15] = m_rec->getDouble("ZSEP23_15")*Gaudi::Units::cm;
+    m_esep_zsep23 [16] = m_rec->getDouble("ZSEP23_16")*Gaudi::Units::cm;
+    m_esep_zsep23 [17] = m_rec->getDouble("ZSEP23_17")*Gaudi::Units::cm;
+    m_esep_zsep23 [18] = m_rec->getDouble("ZSEP23_18")*Gaudi::Units::cm;
+    m_esep_zsep23 [19] = m_rec->getDouble("ZSEP23_19")*Gaudi::Units::cm;
+    m_esep_zsep23 [20] = m_rec->getDouble("ZSEP23_20")*Gaudi::Units::cm;
+    m_esep_zsep23 [21] = m_rec->getDouble("ZSEP23_21")*Gaudi::Units::cm;
   }
 
 }
@@ -730,17 +730,17 @@ LArNumberHelper::db_nb_hec()
   
   // ---- Set default :
   /*  
-  m_hec_in0 = 427.70*GeoModelKernelUnits::cm;  // z_start
-  m_hec_in1 = 455.75*GeoModelKernelUnits::cm;  // z_start+ 28.05*GeoModelKernelUnits::cm
-  m_hec_in2 = 513.40*GeoModelKernelUnits::cm;  // z_start + 28.05*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 4.05*GeoModelKernelUnits::cm
-  m_hec_in3 = 562.70*GeoModelKernelUnits::cm;  // z_start + 28.05*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 4.05*GeoModelKernelUnits::cm 
-                          //        + 25.9*GeoModelKernelUnits::cm + 23.4*GeoModelKernelUnits::cm
-  m_hec_gap = 4.05*GeoModelKernelUnits::cm;    // gap between the two HEC wheels  
+  m_hec_in0 = 427.70*Gaudi::Units::cm;  // z_start
+  m_hec_in1 = 455.75*Gaudi::Units::cm;  // z_start+ 28.05*Gaudi::Units::cm
+  m_hec_in2 = 513.40*Gaudi::Units::cm;  // z_start + 28.05*Gaudi::Units::cm + 26.8*Gaudi::Units::cm + 26.8*Gaudi::Units::cm + 4.05*Gaudi::Units::cm
+  m_hec_in3 = 562.70*Gaudi::Units::cm;  // z_start + 28.05*Gaudi::Units::cm + 26.8*Gaudi::Units::cm + 26.8*Gaudi::Units::cm + 4.05*Gaudi::Units::cm 
+                          //        + 25.9*Gaudi::Units::cm + 23.4*Gaudi::Units::cm
+  m_hec_gap = 4.05*Gaudi::Units::cm;    // gap between the two HEC wheels  
   
   // Comment from Sven Menke :
   // I don't know why the the Nova Z_end is 2.5cm more, but the active
   // volume must be the sum of all blocks plus the gap - thus it's 609.5*cm
-  m_hec_out = 609.5*GeoModelKernelUnits::cm;  // z_end - 2.5*GeoModelKernelUnits::cm (or z_orig + all blocks)
+  m_hec_out = 609.5*Gaudi::Units::cm;  // z_end - 2.5*Gaudi::Units::cm (or z_orig + all blocks)
   */
 
   //std::cout << " ----- in db_nb_hec tags are : " << m_tag << " " << m_node << std::endl;
@@ -757,31 +757,31 @@ LArNumberHelper::db_nb_hec()
     // Block0 = 1.25 cm Front Plate + 
     //          8 times (0.85 cm LAr gap + 2.50 cm Plate) = 28.05 cm 
     double Block0 = ( m_rec->getDouble("PLATE_0")/2. 
-		      + 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0")))*GeoModelKernelUnits::cm;
+		      + 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0")))*Gaudi::Units::cm;
     
     // HEC1 is Block1 + Block2
     // Block1 = 8 times (0.85 cm LAr gap + 2.50 cm Plate) 
     //         = 26.80 cm
-    double Block1 = 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0"))*GeoModelKernelUnits::cm;
+    double Block1 = 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0"))*Gaudi::Units::cm;
     double Block2 = Block1 ;
 
     // Gap     = 4.05 cm
-    m_hec_gap = m_rec->getDouble("GAPWHL") *GeoModelKernelUnits::cm;
+    m_hec_gap = m_rec->getDouble("GAPWHL") *Gaudi::Units::cm;
     
     // HEC2 is  Block 3 + Block 4
     // Block3 = 2.5 cm Front Plate + 
     //      4 times (0.85 cm LAr gap + 5.00 cm Plate) = 25.90 cm 
     double Block3 =  ( m_rec->getDouble("PLATE_1")/2. 
-		       + 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1")))*GeoModelKernelUnits::cm;
+		       + 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1")))*Gaudi::Units::cm;
     
     // Block4 = 4 times (0.85 cm LAr gap + 5.00 cm Plate) = 23.40 cm 
-    double Block4 = 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1"))*GeoModelKernelUnits::cm;
+    double Block4 = 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1"))*Gaudi::Units::cm;
     
     // HEC3 is  Block 5 + Block 6
     double Block5 = Block4 ;
     double Block6 = Block4;
     
-    double zstart =  m_rec->getDouble("ZSTART") *GeoModelKernelUnits::cm;
+    double zstart =  m_rec->getDouble("ZSTART") *Gaudi::Units::cm;
     
     m_hec_in0 = zstart;
     m_hec_in1 = m_hec_in0 + Block0  ;
@@ -1056,10 +1056,10 @@ LArNumberHelper::hard_fcal()
 
   // x and y are taken from drawings in the TDR
   for ( unsigned int i=0; i < m_fcal_id->module_hash_max(); i++ ) {
-    m_x_min_fcal [i] = 8.6*GeoModelKernelUnits::cm;
-    m_x_max_fcal [i] = 47.5*GeoModelKernelUnits::cm;
+    m_x_min_fcal [i] = 8.6*Gaudi::Units::cm;
+    m_x_max_fcal [i] = 47.5*Gaudi::Units::cm;
     m_y_min_fcal [i] = 8.6;
-    m_y_max_fcal [i] = 47.5*GeoModelKernelUnits::cm;
+    m_y_max_fcal [i] = 47.5*Gaudi::Units::cm;
     m_phi_min_fcal[i] = 0.;
     m_phi_max_fcal[i] = 6.28;   // when too close to 2pi pb
 
@@ -1069,35 +1069,35 @@ LArNumberHelper::hard_fcal()
     //int pos_neg = m_fcal_id->pos_neg (m_region_id_fcal[i]);
     
     if ( mod == 1 ) {
-      m_dx_fcal [i] = 3.*GeoModelKernelUnits::cm;
-      m_dy_fcal [i] = 2.598*GeoModelKernelUnits::cm;
-      z_loc_in [0] = 466.85*GeoModelKernelUnits::cm;
-      z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm;
+      m_dx_fcal [i] = 3.*Gaudi::Units::cm;
+      m_dy_fcal [i] = 2.598*Gaudi::Units::cm;
+      z_loc_in [0] = 466.85*Gaudi::Units::cm;
+      z_loc_out [0] = z_loc_in [0]+45.*Gaudi::Units::cm;
 
     }
     else if ( mod == 2 ) {
-      m_dx_fcal [i] = 3.272*GeoModelKernelUnits::cm;
-      m_dy_fcal [i] = 4.25*GeoModelKernelUnits::cm;
-      z_loc_in [0] = 512.3*GeoModelKernelUnits::cm;
-      z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm;
+      m_dx_fcal [i] = 3.272*Gaudi::Units::cm;
+      m_dy_fcal [i] = 4.25*Gaudi::Units::cm;
+      z_loc_in [0] = 512.3*Gaudi::Units::cm;
+      z_loc_out [0] = z_loc_in [0]+45.*Gaudi::Units::cm;
 
     }
     else if ( mod == 3 ) {
-      m_dx_fcal [i] = 5.4*GeoModelKernelUnits::cm;
-      m_dy_fcal [i] = 4.677*GeoModelKernelUnits::cm;
-      z_loc_in [0] = 559.75*GeoModelKernelUnits::cm;
-      z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm;
+      m_dx_fcal [i] = 5.4*Gaudi::Units::cm;
+      m_dy_fcal [i] = 4.677*Gaudi::Units::cm;
+      z_loc_in [0] = 559.75*Gaudi::Units::cm;
+      z_loc_out [0] = z_loc_in [0]+45.*Gaudi::Units::cm;
 
     }
     else  {
       m_dx_fcal [i] = 0.;
       m_dy_fcal [i] = 0.;
       z_loc_in [0] = 0.;
-      z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm;
+      z_loc_out [0] = z_loc_in [0]+45.*Gaudi::Units::cm;
     }
 
     m_z_min_fcal [i] = z_loc_in [0];
-    m_z_max_fcal [i] = m_z_min_fcal [i] + 45.*GeoModelKernelUnits::cm ;
+    m_z_max_fcal [i] = m_z_min_fcal [i] + 45.*Gaudi::Units::cm ;
 
     double z = m_z_min_fcal [i];
     double r = m_x_max_fcal [i];
@@ -1124,21 +1124,21 @@ LArNumberHelper::sagging_param( std::vector<double>& Rhocen, std::vector<double>
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];
 
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_0")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_1")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_2")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_3")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_4")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_5")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_6")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_7")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_8")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_9")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_10")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_11")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_12")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_13")*GeoModelKernelUnits::cm);
-    Rhocen.push_back(m_rec->getDouble("RHOCEN_14")*GeoModelKernelUnits::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_0")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_1")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_2")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_3")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_4")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_5")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_6")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_7")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_8")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_9")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_10")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_11")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_12")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_13")*Gaudi::Units::cm);
+    Rhocen.push_back(m_rec->getDouble("RHOCEN_14")*Gaudi::Units::cm);
   }
  
   m_lar = m_iAccessSvc->getRecordsetPtr("BarrelSagging",m_tag,m_node);
@@ -1146,21 +1146,21 @@ LArNumberHelper::sagging_param( std::vector<double>& Rhocen, std::vector<double>
   if (m_lar->size()) {
     m_rec = (*m_lar)[0];
 
-    Sag.push_back(m_rec->getDouble("SAG_0")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_1")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_2")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_3")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_4")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_5")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_6")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_7")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_8")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_9")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_10")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_11")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_12")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_13")*GeoModelKernelUnits::cm);
-    Sag.push_back(m_rec->getDouble("SAG_14")*GeoModelKernelUnits::cm);
+    Sag.push_back(m_rec->getDouble("SAG_0")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_1")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_2")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_3")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_4")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_5")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_6")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_7")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_8")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_9")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_10")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_11")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_12")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_13")*Gaudi::Units::cm);
+    Sag.push_back(m_rec->getDouble("SAG_14")*Gaudi::Units::cm);
 
   }
 
diff --git a/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx b/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx
index c2ce91bbfa0186359e50e138e096c90d80d2e852..94b6277869a7f5a098cd9d2179de8cd110afd784 100755
--- a/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx
+++ b/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx
@@ -20,6 +20,7 @@
 #include "GeoModelUtilities/StoredPhysVol.h"
 #include "GeoModelKernel/GeoFullPhysVol.h"
 #include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include "CaloIdentifier/CaloIdManager.h"
 #include "CaloIdentifier/CaloCell_ID.h"
diff --git a/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx b/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx
index 7019b56fcf54085ca14c9febdc5e2fa79fe2c89a..7fd73c48e248926d1256a6a139620b3d5a40d9da 100755
--- a/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx
+++ b/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx
@@ -28,7 +28,7 @@
 #include "GeoModelUtilities/StoredPhysVol.h"
 #include "GeoModelKernel/GeoFullPhysVol.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include "GeoPrimitives/CLHEPtoEigenConverter.h"
 
@@ -170,17 +170,17 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol,
     if (lar->size()<14) return false;
 
     const IRDBRecord* rec = (*lar)[11];
-    rad =  rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    len =  rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.;
-    dep =  rec->getDouble("DR")*GeoModelKernelUnits::cm;
+    rad =  rec->getDouble("RMIN")*Gaudi::Units::cm;
+    len =  rec->getDouble("DZ")*Gaudi::Units::cm /2.;
+    dep =  rec->getDouble("DR")*Gaudi::Units::cm;
     rec = (*lar)[12];
-    dep =  dep +rec->getDouble("DR")*GeoModelKernelUnits::cm;
+    dep =  dep +rec->getDouble("DR")*Gaudi::Units::cm;
     rec = (*lar)[13];
-    dep =  dep +rec->getDouble("DR")*GeoModelKernelUnits::cm;
+    dep =  dep +rec->getDouble("DR")*Gaudi::Units::cm;
 
-    //rad = 124.18*GeoModelKernelUnits::cm;
-    //dep = (.305 + 1.38 + .47 )*GeoModelKernelUnits::cm;
-    //len = 270.*GeoModelKernelUnits::cm;
+    //rad = 124.18*Gaudi::Units::cm;
+    //dep = (.305 + 1.38 + .47 )*Gaudi::Units::cm;
+    //len = 270.*Gaudi::Units::cm;
     
     radius.push_back( rad + dep/2.);
     depth.push_back( dep/2. );
@@ -197,13 +197,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     //  CryoMother nb 10
     const IRDBRecord* rec = (*lar)[10];
-    rad =  rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    len =  rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.;
-    dep =  rec->getDouble("DR")*GeoModelKernelUnits::cm;
+    rad =  rec->getDouble("RMIN")*Gaudi::Units::cm;
+    len =  rec->getDouble("DZ")*Gaudi::Units::cm /2.;
+    dep =  rec->getDouble("DR")*Gaudi::Units::cm;
 
-    //rad = 122.9*GeoModelKernelUnits::cm;
-    //dep = 1.28*GeoModelKernelUnits::cm;
-    //len = 270.*GeoModelKernelUnits::cm;
+    //rad = 122.9*Gaudi::Units::cm;
+    //dep = 1.28*Gaudi::Units::cm;
+    //len = 270.*Gaudi::Units::cm;
 
     radius.push_back( rad + dep/2. );
     depth.push_back( dep /2.);
@@ -211,13 +211,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     //  CryoMother nb 14
     rec = (*lar)[14];
-    rad =  rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    len =  rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.;
-    dep =  rec->getDouble("DR")*GeoModelKernelUnits::cm;
+    rad =  rec->getDouble("RMIN")*Gaudi::Units::cm;
+    len =  rec->getDouble("DZ")*Gaudi::Units::cm /2.;
+    dep =  rec->getDouble("DR")*Gaudi::Units::cm;
 
-    //rad = 126.335*GeoModelKernelUnits::cm;
-    //dep = 1.2*GeoModelKernelUnits::cm;
-    //len = 284.*GeoModelKernelUnits::cm;
+    //rad = 126.335*Gaudi::Units::cm;
+    //dep = 1.2*Gaudi::Units::cm;
+    //len = 284.*Gaudi::Units::cm;
 
     radius.push_back( rad  + dep/2.);
     depth.push_back( dep /2.);
@@ -225,13 +225,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     // CryoMother nb 0
     rec = (*lar)[0];
-    rad =  rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    len =  rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.;
-    dep =  rec->getDouble("DR")*GeoModelKernelUnits::cm;
+    rad =  rec->getDouble("RMIN")*Gaudi::Units::cm;
+    len =  rec->getDouble("DZ")*Gaudi::Units::cm /2.;
+    dep =  rec->getDouble("DR")*Gaudi::Units::cm;
 
     //rad = 2140*mm;
     //dep = 30*mm;
-    //len = 299.6*GeoModelKernelUnits::cm;
+    //len = 299.6*Gaudi::Units::cm;
 
     radius.push_back( rad + dep/2. );
     depth.push_back( dep /2.);
@@ -239,13 +239,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     //  CryoMother nb 5
     rec = (*lar)[5];
-    rad =  rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    len =  rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.;
-    dep =  rec->getDouble("DR")*GeoModelKernelUnits::cm;
+    rad =  rec->getDouble("RMIN")*Gaudi::Units::cm;
+    len =  rec->getDouble("DZ")*Gaudi::Units::cm /2.;
+    dep =  rec->getDouble("DR")*Gaudi::Units::cm;
 
     //rad = 2220*mm;
     //dep = 30*mm;
-    //len = 285*GeoModelKernelUnits::cm;
+    //len = 285*Gaudi::Units::cm;
 
     radius.push_back( rad + dep/2. );
     depth.push_back( dep /2.);
@@ -262,18 +262,18 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol,
     if (lar->size()==0) return false;
     
     const IRDBRecord* rec = (*lar)[0];
-    rad =  rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    dep =  rec->getDouble("RMAX")*GeoModelKernelUnits::cm - rad;
+    rad =  rec->getDouble("RMIN")*Gaudi::Units::cm;
+    dep =  rec->getDouble("RMAX")*Gaudi::Units::cm - rad;
 	
     lar = m_recBarrGeo;
     if ( !lar || lar->size()==0) return false;
 
     rec = (*lar)[0];
-    len =  rec->getDouble("ZMAX")*GeoModelKernelUnits::cm;
+    len =  rec->getDouble("ZMAX")*Gaudi::Units::cm;
 
-    //rad = 138.5*GeoModelKernelUnits::cm;
-    //dep = (144.7 - 138.5)*GeoModelKernelUnits::cm;
-    //len = 316.5*GeoModelKernelUnits::cm;
+    //rad = 138.5*Gaudi::Units::cm;
+    //dep = (144.7 - 138.5)*Gaudi::Units::cm;
+    //len = 316.5*Gaudi::Units::cm;
 
     radius.push_back( rad  + dep/2.);
     depth.push_back( dep /2.);
@@ -290,13 +290,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol,
     if (lar->size()==0) return false;
 
     const IRDBRecord* rec = (*lar)[0];
-    rad =  rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    dep =  rec->getDouble("RMAX")*GeoModelKernelUnits::cm - rad;
-    len =  rec->getDouble("ZMAX")*GeoModelKernelUnits::cm;
+    rad =  rec->getDouble("RMIN")*Gaudi::Units::cm;
+    dep =  rec->getDouble("RMAX")*Gaudi::Units::cm - rad;
+    len =  rec->getDouble("ZMAX")*Gaudi::Units::cm;
 
-    //rad = 1447.3*GeoModelKernelUnits::cm;
-    //dep = (2003.35 - 1447.3)*GeoModelKernelUnits::cm;
-    //len = 316.5*GeoModelKernelUnits::cm;
+    //rad = 1447.3*Gaudi::Units::cm;
+    //dep = (2003.35 - 1447.3)*Gaudi::Units::cm;
+    //len = 316.5*Gaudi::Units::cm;
 
     radius.push_back( rad  + dep/2.);
     depth.push_back( dep /2.);
@@ -353,16 +353,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     const IRDBRecord* rec = (*lar)[49];
 
-    ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    ra = ri + rec->getDouble("DR")*GeoModelKernelUnits::cm;
-    dep = rec->getDouble("DZ")*GeoModelKernelUnits::cm;
-    zcent = rec->getDouble("ZMIN")*GeoModelKernelUnits::cm + dep/2.;
+    ri = rec->getDouble("RMIN")*Gaudi::Units::cm;
+    ra = ri + rec->getDouble("DR")*Gaudi::Units::cm;
+    dep = rec->getDouble("DZ")*Gaudi::Units::cm;
+    zcent = rec->getDouble("ZMIN")*Gaudi::Units::cm + dep/2.;
     if (alvol == CaloSubdetNames::LARCRYO_EC_NEG) zcent = -1. * zcent;
 
-    //ri = 22.1*GeoModelKernelUnits::cm;
-    //ra = (22.1 + 194.4)*GeoModelKernelUnits::cm;
-    //dep = 6.5*GeoModelKernelUnits::cm;
-    //zcent = (356.1 + dep/2.)*GeoModelKernelUnits::cm;
+    //ri = 22.1*Gaudi::Units::cm;
+    //ra = (22.1 + 194.4)*Gaudi::Units::cm;
+    //dep = 6.5*Gaudi::Units::cm;
+    //zcent = (356.1 + dep/2.)*Gaudi::Units::cm;
 
     rmin.push_back( ri );
     rmax.push_back( ra );
@@ -372,16 +372,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
     // DDDb : LAr / CryoCylinders / Endcap nb 6
     rec = (*lar)[44];
 
-    ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    ra = ri + rec->getDouble("DR")*GeoModelKernelUnits::cm;
-    dep = rec->getDouble("DZ")*GeoModelKernelUnits::cm;
-    zcent = rec->getDouble("ZMIN")*GeoModelKernelUnits::cm + dep/2.;
+    ri = rec->getDouble("RMIN")*Gaudi::Units::cm;
+    ra = ri + rec->getDouble("DR")*Gaudi::Units::cm;
+    dep = rec->getDouble("DZ")*Gaudi::Units::cm;
+    zcent = rec->getDouble("ZMIN")*Gaudi::Units::cm + dep/2.;
     if (alvol == CaloSubdetNames::LARCRYO_EC_NEG) zcent = -1. * zcent;
 
-    //ri = 79.*GeoModelKernelUnits::cm;
-    //ra = (ri + 173.)*GeoModelKernelUnits::cm;
-    //dep = 6.*GeoModelKernelUnits::cm;
-    //zcent = (660.5 + dep/2.)*GeoModelKernelUnits::cm;
+    //ri = 79.*Gaudi::Units::cm;
+    //ra = (ri + 173.)*Gaudi::Units::cm;
+    //dep = 6.*Gaudi::Units::cm;
+    //zcent = (660.5 + dep/2.)*Gaudi::Units::cm;
 
     rmin.push_back( ri );
     rmax.push_back( ra );
@@ -399,16 +399,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     const IRDBRecord* rec = (*lar)[0];
 
-    ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    ra = rec->getDouble("RMAX")*GeoModelKernelUnits::cm;
-    dep = rec->getDouble("TCK")*GeoModelKernelUnits::cm;
-    zcent = rec->getDouble("ZPOS")*GeoModelKernelUnits::cm + dep/2.;
+    ri = rec->getDouble("RMIN")*Gaudi::Units::cm;
+    ra = rec->getDouble("RMAX")*Gaudi::Units::cm;
+    dep = rec->getDouble("TCK")*Gaudi::Units::cm;
+    zcent = rec->getDouble("ZPOS")*Gaudi::Units::cm + dep/2.;
     if (alvol == CaloSubdetNames::PRESAMPLER_EC_NEG) zcent = -1. * zcent;
 
-    //ri = 123.174*GeoModelKernelUnits::cm;
-    //ra = 170.2*GeoModelKernelUnits::cm;
-    //dep = 0.4*GeoModelKernelUnits::cm;
-    //zcent = (362.4 + dep/2.)*GeoModelKernelUnits::cm;
+    //ri = 123.174*Gaudi::Units::cm;
+    //ra = 170.2*Gaudi::Units::cm;
+    //dep = 0.4*Gaudi::Units::cm;
+    //zcent = (362.4 + dep/2.)*Gaudi::Units::cm;
 
     rmin.push_back( ri );
     rmax.push_back( ra );
@@ -426,16 +426,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     const IRDBRecord* rec = (*lar)[0];
 
-    ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm;
-    ra = rec->getDouble("RMAX")*GeoModelKernelUnits::cm;
-    dep = rec->getDouble("ETOT")*GeoModelKernelUnits::cm;
-    zcent = rec->getDouble("Z1")*GeoModelKernelUnits::cm + dep/2.;
+    ri = rec->getDouble("RMIN")*Gaudi::Units::cm;
+    ra = rec->getDouble("RMAX")*Gaudi::Units::cm;
+    dep = rec->getDouble("ETOT")*Gaudi::Units::cm;
+    zcent = rec->getDouble("Z1")*Gaudi::Units::cm + dep/2.;
     if (alvol == CaloSubdetNames::EMEC_NEG) zcent = -1. * zcent;
 
-    //ri = 29.*GeoModelKernelUnits::cm;
-    //ra = 210.*GeoModelKernelUnits::cm;
-    //dep = 53.6*GeoModelKernelUnits::cm;
-    //zcent = (369.1 + dep/2.)*GeoModelKernelUnits::cm;
+    //ri = 29.*Gaudi::Units::cm;
+    //ra = 210.*Gaudi::Units::cm;
+    //dep = 53.6*Gaudi::Units::cm;
+    //zcent = (369.1 + dep/2.)*Gaudi::Units::cm;
 
     rmin.push_back( ri );
     rmax.push_back( ra );
@@ -454,19 +454,19 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     const IRDBRecord* rec = (*lar)[0];
 
-    ri = rec->getDouble("ROORIG")*GeoModelKernelUnits::cm;
-    ra = rec->getDouble("REND")*GeoModelKernelUnits::cm;
+    ri = rec->getDouble("ROORIG")*Gaudi::Units::cm;
+    ra = rec->getDouble("REND")*Gaudi::Units::cm;
     // Block0+Block1+Block2
     dep = rec->getDouble("PLATE_0")/2. 
       + 3*8*(rec->getDouble("LARG") + rec->getDouble("PLATE_0"));
-    dep = dep*GeoModelKernelUnits::cm;
-    zcent = rec->getDouble("ZSTART")*GeoModelKernelUnits::cm + dep/2.;
+    dep = dep*Gaudi::Units::cm;
+    zcent = rec->getDouble("ZSTART")*Gaudi::Units::cm + dep/2.;
     if (alvol == CaloSubdetNames::HEC1_NEG) zcent = -1. * zcent;
 
-    //ri = 37.2*GeoModelKernelUnits::cm;
-    //ra = 213.0*GeoModelKernelUnits::cm;
-    //dep = (513.4 - 4.05 - 427.7)*GeoModelKernelUnits::cm;
-    //zcent = 427.7*GeoModelKernelUnits::cm;
+    //ri = 37.2*Gaudi::Units::cm;
+    //ra = 213.0*Gaudi::Units::cm;
+    //dep = (513.4 - 4.05 - 427.7)*Gaudi::Units::cm;
+    //zcent = 427.7*Gaudi::Units::cm;
 
     rmin.push_back( ri );
     rmax.push_back( ra );
@@ -486,24 +486,24 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
 
     const IRDBRecord* rec = (*lar)[0];
 
-    ri = rec->getDouble("ROORIG")*GeoModelKernelUnits::cm;
-    ra = rec->getDouble("REND")*GeoModelKernelUnits::cm;
+    ri = rec->getDouble("ROORIG")*Gaudi::Units::cm;
+    ra = rec->getDouble("REND")*Gaudi::Units::cm;
     // Block 3 + Block 4 + Block 5 + Block 6
     dep =  rec->getDouble("PLATE_1")/2. 
       + 4*4*(rec->getDouble("LARG") + rec->getDouble("PLATE_1"));
-    dep = dep*GeoModelKernelUnits::cm;
+    dep = dep*Gaudi::Units::cm;
     // start+depth of HEC1 + gap
     zcent =  rec->getDouble("ZSTART") 
       + rec->getDouble("PLATE_0")/2. 
       + 3*8*(rec->getDouble("LARG") + rec->getDouble("PLATE_0"))
       +  rec->getDouble("GAPWHL") ;
-    zcent = zcent*GeoModelKernelUnits::cm + dep/2.;
+    zcent = zcent*Gaudi::Units::cm + dep/2.;
     if (alvol == CaloSubdetNames::HEC2_NEG) zcent = -1. * zcent;
 
-    //ri = 37.2*GeoModelKernelUnits::cm;
-    //ra = 213.0*GeoModelKernelUnits::cm;
-    //dep = (609.5 - 513.4)*GeoModelKernelUnits::cm;
-    //zcent = (513.4 + dep/2.)*GeoModelKernelUnits::cm;
+    //ri = 37.2*Gaudi::Units::cm;
+    //ra = 213.0*Gaudi::Units::cm;
+    //dep = (609.5 - 513.4)*Gaudi::Units::cm;
+    //zcent = (513.4 + dep/2.)*Gaudi::Units::cm;
 
     rmin.push_back( ri );
     rmax.push_back( ra );
@@ -517,15 +517,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
     
     // see LArNumberHelper
 
-    nb = 8.6*GeoModelKernelUnits::cm;
+    nb = 8.6*Gaudi::Units::cm;
     rmin.push_back( nb );
-    nb = 47.5*GeoModelKernelUnits::cm;
+    nb = 47.5*Gaudi::Units::cm;
     rmax.push_back( nb );
 
-    nb = 45.*GeoModelKernelUnits::cm;
+    nb = 45.*Gaudi::Units::cm;
     depth.push_back( nb/2. );
 
-    nb = (466.85 + nb/2. )*GeoModelKernelUnits::cm;
+    nb = (466.85 + nb/2. )*Gaudi::Units::cm;
     if (alvol == CaloSubdetNames::FCAL1_NEG) nb = -1. * nb;
     z.push_back( nb );
 
@@ -536,15 +536,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
     
     // see LArNumberHelper
 
-    nb = 8.6*GeoModelKernelUnits::cm;
+    nb = 8.6*Gaudi::Units::cm;
     rmin.push_back( nb );
-    nb = 47.5*GeoModelKernelUnits::cm;
+    nb = 47.5*Gaudi::Units::cm;
     rmax.push_back( nb );
 
-    nb = 45.*GeoModelKernelUnits::cm;
+    nb = 45.*Gaudi::Units::cm;
     depth.push_back( nb/2. );
 
-    nb = (512.3 + nb/2. )*GeoModelKernelUnits::cm;
+    nb = (512.3 + nb/2. )*Gaudi::Units::cm;
     if (alvol == CaloSubdetNames::FCAL2_NEG) nb = -1. * nb;
     z.push_back( nb );
 
@@ -555,15 +555,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol,
     
     // see LArNumberHelper
 
-    nb = 8.6*GeoModelKernelUnits::cm;
+    nb = 8.6*Gaudi::Units::cm;
     rmin.push_back( nb );
-    nb = 47.5*GeoModelKernelUnits::cm;
+    nb = 47.5*Gaudi::Units::cm;
     rmax.push_back( nb );
 
-    nb = 45.*GeoModelKernelUnits::cm;
+    nb = 45.*Gaudi::Units::cm;
     depth.push_back( nb/2. );
 
-    nb = (559.75 + nb/2. )*GeoModelKernelUnits::cm;
+    nb = (559.75 + nb/2. )*Gaudi::Units::cm;
     if (alvol == CaloSubdetNames::FCAL3_NEG) nb = -1. * nb;
     z.push_back( nb );
 
diff --git a/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx b/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx
index 89cb49713f733b69cc48d84ad112224a896b98f4..4dec62b4abea44acb078d554d0ef2c27790b0166 100755
--- a/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx
+++ b/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx
@@ -22,7 +22,6 @@
 #include "GeoModelKernel/GeoTrd.h"
 #include "GeoModelKernel/GeoMaterial.h"
 #include "GeoModelKernel/GeoPVConstLink.h"
-#include "GeoModelKernel/Units.h"
 #include "GeoModelUtilities/StoredPhysVol.h"
 // Trk
 #include "TrkDetDescrInterfaces/ITrackingVolumeHelper.h"
@@ -49,8 +48,9 @@
 #include "TrkGeometrySurfaces/SlidingDiscSurface.h"
 // StoreGate
 #include "StoreGate/StoreGateSvc.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
-using GeoModelKernelUnits::mm;
+using Gaudi::Units::mm;
 
 // constructor
 LAr::LArVolumeBuilder::LArVolumeBuilder(const std::string& t, const std::string& n, const IInterface* p) :
diff --git a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx
index 3ca351d08f0b26dd77f5234bdb4d2030878b7b70..c324beb236a639a1efbc92ee77799ea2f5ebf2a5 100644
--- a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx
+++ b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx
@@ -14,7 +14,7 @@
 // Amg
 #include "GeoPrimitives/GeoPrimitives.h"
 // Units
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 // Trk
 #include "TrkDetDescrInterfaces/ITrackingVolumeArrayCreator.h"
 #include "TrkDetDescrInterfaces/ITrackingVolumeHelper.h"
@@ -222,7 +222,7 @@ const Trk::TrackingGeometry* Muon::MuonTrackingGeometryBuilder::trackingGeometry
   }
   
   // find object's span with tolerance for the alignment 
-  if (!m_stationSpan) m_stationSpan = findVolumesSpan(m_stations, 100.*m_alignTolerance, m_alignTolerance*GeoModelKernelUnits::deg);
+  if (!m_stationSpan) m_stationSpan = findVolumesSpan(m_stations, 100.*m_alignTolerance, m_alignTolerance*Gaudi::Units::deg);
   if (!m_inertSpan)   m_inertSpan = findVolumesSpan(m_inertObjs,0.,0.);
  
   // 0) Preparation //////////////////////////////////////////////////////////////////////////////////////
diff --git a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h
index fa27ec620feb32f4898351840768366701e0b8b9..0c0fee583a1da2590260dd08f4ef7a16c2533d87 100755
--- a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h
+++ b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h
@@ -15,7 +15,7 @@
 
 //<<<<<< INCLUDES                                                       >>>>>>
 #include "StoreGate/StoreGateSvc.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 #include "AthenaKernel/getMessageSvc.h"
 #include <string>
 #include <iostream>
@@ -176,19 +176,19 @@ namespace MuonGM {
                 //std::cout<<" ProcessMDT "<<s<<" index "<<i<<" jsta ="<<wmdt[i].iw<<std::endl;
                 
                 mdt->numOfLayers=wmdt[i].laymdt;
-                mdt->innerRadius=wmdt[i].tubrad*GeoModelKernelUnits::cm;
-                mdt->totalThickness=wmdt[i].tubsta*GeoModelKernelUnits::cm;
-                mdt->pitch=wmdt[i].tubpit*GeoModelKernelUnits::cm;
+                mdt->innerRadius=wmdt[i].tubrad*Gaudi::Units::cm;
+                mdt->totalThickness=wmdt[i].tubsta*Gaudi::Units::cm;
+                mdt->pitch=wmdt[i].tubpit*Gaudi::Units::cm;
                 mdt->thickness=mdt->totalThickness;
                 mdt->tubeDeadLength = 0; // cannot be defined here (it depends on chamber size)
                 //mdt->endPlugLength  is not OK in p03
-                //mdt->endPlugLength = wmdt[i].tubdea*GeoModelKernelUnits::cm;
-                mdt->tubeEndPlugLength = wmdt[i].tubdea*GeoModelKernelUnits::cm;
+                //mdt->endPlugLength = wmdt[i].tubdea*Gaudi::Units::cm;
+                mdt->tubeEndPlugLength = wmdt[i].tubdea*Gaudi::Units::cm;
                                 
-                mdt->tubeWallThickness = wmdt[i].tubwal*GeoModelKernelUnits::cm;
+                mdt->tubeWallThickness = wmdt[i].tubwal*Gaudi::Units::cm;
                 
-                for(unsigned int k=0; k<4;k++) mdt->y[k]=wmdt[i].tubyco[k]*GeoModelKernelUnits::cm;
-                for(unsigned int j=0; j<4;j++) mdt->x[j]=wmdt[i].tubxco[j]*GeoModelKernelUnits::cm;
+                for(unsigned int k=0; k<4;k++) mdt->y[k]=wmdt[i].tubyco[k]*Gaudi::Units::cm;
+                for(unsigned int j=0; j<4;j++) mdt->x[j]=wmdt[i].tubxco[j]*Gaudi::Units::cm;
                 //std::cout << mdt->numOfLayers << std::endl;
             }
             //std::cout<<" nstruct in processMDT "<< nStruct<<" at iter "<<i<<std::endl;
@@ -214,17 +214,17 @@ namespace MuonGM {
         //std::cout << " TECH. A new RPC named " <<s<<" nrpc = "<<nrpc<<std::endl;
         //std::cout<<" Creating a RPC at "<<rpc<<" named "<<s<<std::endl;
     
-        rpc->centralSupPanelThickness          = (wrpcall->tckfsp)*GeoModelKernelUnits::cm;
-        rpc->centralAlSupPanelThickness        = (wrpcall->ackfsp)*GeoModelKernelUnits::cm;
+        rpc->centralSupPanelThickness          = (wrpcall->tckfsp)*Gaudi::Units::cm;
+        rpc->centralAlSupPanelThickness        = (wrpcall->ackfsp)*Gaudi::Units::cm;
         if (RPCprint)
             std::cout<<"ProcessRPC:: RPC central sup panel: tot & Al "<<rpc->centralSupPanelThickness<<" "
                      <<rpc->centralAlSupPanelThickness<<std::endl;
 
-        rpc->bakeliteThickness                  =(wrpcall->tckbak)*GeoModelKernelUnits::cm;
-        rpc->bakeliteframesize                  =0.5*(wrpcall->sdedmi)*GeoModelKernelUnits::cm;
-        rpc->gasThickness                       =(wrpcall->tckgas)*GeoModelKernelUnits::cm;
-        rpc->bakelitePetThickness               =0.190*GeoModelKernelUnits::mm; // TBM same as Amdb, why hardwired? Not in DblQ00Wrpc!
-        rpc->totalAirThickness = 0.52*GeoModelKernelUnits::mm;                  // TBM added
+        rpc->bakeliteThickness                  =(wrpcall->tckbak)*Gaudi::Units::cm;
+        rpc->bakeliteframesize                  =0.5*(wrpcall->sdedmi)*Gaudi::Units::cm;
+        rpc->gasThickness                       =(wrpcall->tckgas)*Gaudi::Units::cm;
+        rpc->bakelitePetThickness               =0.190*Gaudi::Units::mm; // TBM same as Amdb, why hardwired? Not in DblQ00Wrpc!
+        rpc->totalAirThickness = 0.52*Gaudi::Units::mm;                  // TBM added
         rpc->GasGapThickness=2.*rpc->bakeliteThickness+
                              rpc->gasThickness        +
                              2.*rpc->bakelitePetThickness +
@@ -242,26 +242,26 @@ namespace MuonGM {
         if (RPCprint)
             std::cout<<"ProcessRPC::WARNING redefining RPC::bakeliteThickness to include pet "
                      <<rpc->bakeliteThickness<<std::endl;    
-        rpc->spacerDiameter                     =(wrpcall->spdiam)*GeoModelKernelUnits::cm;
-        rpc->spacerPitch                        =(wrpcall->sppitc)*GeoModelKernelUnits::cm;
+        rpc->spacerDiameter                     =(wrpcall->spdiam)*Gaudi::Units::cm;
+        rpc->spacerPitch                        =(wrpcall->sppitc)*Gaudi::Units::cm;
         rpc->MidChamberDeadRegion_in_s          =2.*rpc->bakeliteframesize;
-        rpc->MidChamberDeadRegion_in_z          =(wrpcall->zdedmi)*GeoModelKernelUnits::cm;
+        rpc->MidChamberDeadRegion_in_z          =(wrpcall->zdedmi)*Gaudi::Units::cm;
         if (RPCprint)
             std::cout<<" ProcessRPC:: spacerDiam, pitch, MidChamberDeadRegion_in_s, MidChamberDeadRegion_in_z "
                      <<rpc->spacerDiameter<<" "<<rpc->spacerPitch<<" "
                      <<rpc->MidChamberDeadRegion_in_s<<" "<<rpc->MidChamberDeadRegion_in_z<<std::endl;
 
-        rpc->petFoilThickness    =0.190*GeoModelKernelUnits::mm; //TBM this is the same as bakelite PET thickness?
+        rpc->petFoilThickness    =0.190*Gaudi::Units::mm; //TBM this is the same as bakelite PET thickness?
         if (RPCprint) std::cout
             <<"ProcessRPC:: defining RPC::petfoilThickness = "<<rpc->petFoilThickness
             <<std::endl;    
     
-        rpc->stripPanelFoamThickness            =(wrpcall->tckssu)*GeoModelKernelUnits::cm;
-        rpc->stripPanelCopperSkinThickness      =(wrpcall->tckstr)*GeoModelKernelUnits::cm;
-        rpc->stripPanelStripSidePetThickness    =0.25*GeoModelKernelUnits::mm; //missing in AmdbNova
-        rpc->stripPanelGroundSidePetThickness   =0.07*GeoModelKernelUnits::mm; //missing in AmdbNova
-        rpc->frontendBoardWidth = 36.*GeoModelKernelUnits::mm;
-        rpc->backendBoardWidth  = 21.*GeoModelKernelUnits::mm;
+        rpc->stripPanelFoamThickness            =(wrpcall->tckssu)*Gaudi::Units::cm;
+        rpc->stripPanelCopperSkinThickness      =(wrpcall->tckstr)*Gaudi::Units::cm;
+        rpc->stripPanelStripSidePetThickness    =0.25*Gaudi::Units::mm; //missing in AmdbNova
+        rpc->stripPanelGroundSidePetThickness   =0.07*Gaudi::Units::mm; //missing in AmdbNova
+        rpc->frontendBoardWidth = 36.*Gaudi::Units::mm;
+        rpc->backendBoardWidth  = 21.*Gaudi::Units::mm;
         if (RPCprint) std::cout
             <<"ProcessRPC:: stp panel: foam, 2*copper, petg, pets, fe, be "
             <<rpc->stripPanelFoamThickness<<" "
@@ -283,7 +283,7 @@ namespace MuonGM {
             <<"ProcessRPC::WARNING redefining RPC::stripPanelFoamThickness to include pet on both sides "
             <<rpc->stripPanelFoamThickness <<std::endl;    
         
-        rpc->rpcLayerThickness                  =(wrpcall->tckrla)*GeoModelKernelUnits::cm;
+        rpc->rpcLayerThickness                  =(wrpcall->tckrla)*Gaudi::Units::cm;
         double rpcLayerComputedTck = rpc->GasGapThickness +
                                      2*rpc->stripPanelThickness + rpc->petFoilThickness;    
         if (RPCprint) std::cout<<"ProcessRPC:: rpcLayerComputedTck =  "<<rpcLayerComputedTck
@@ -308,8 +308,8 @@ namespace MuonGM {
                 done = true;
                 //std::cout<<" done for jtech, wrpc[i].jsta = "<<jtech<<" "<<wrpc[i].jsta<<std::endl;
             
-                rpc->externalSupPanelThickness           =(wrpcall->tlohcb)*GeoModelKernelUnits::cm; //TBM
-                rpc->externalAlSupPanelThickness         =(wrpcall->alohcb)*GeoModelKernelUnits::cm; //TBM
+                rpc->externalSupPanelThickness           =(wrpcall->tlohcb)*Gaudi::Units::cm; //TBM
+                rpc->externalAlSupPanelThickness         =(wrpcall->alohcb)*Gaudi::Units::cm; //TBM
                 if (RPCprint) std::cout<<"ProcessRPC:: RPC external sup panel: tot & Al "
                                        <<rpc->centralSupPanelThickness<<" "
                                        <<rpc->centralAlSupPanelThickness<<std::endl;
@@ -323,13 +323,13 @@ namespace MuonGM {
                                                           rpc->externalSupPanelThickness;
                 if (RPCprint) std::cout<<"ProcessRPC:: (computed) Total RPC thickness = "
                                        <<rpc->TotalThickness<<std::endl;
-                rpc->maxThickness = 46.*GeoModelKernelUnits::mm;  // TBM same as (wrpcall->tottck)*GeoModelKernelUnits::cm;
+                rpc->maxThickness = 46.*Gaudi::Units::mm;  // TBM same as (wrpcall->tottck)*Gaudi::Units::cm;
                 rpc->thickness = rpc->maxThickness;
                 if (RPCprint) std::cout<<"ProcessRPC:: RPC max thickness "<<rpc->maxThickness <<std::endl;
                         
-                rpc->stripPitchS                        =(wrpc[i].spitch)*GeoModelKernelUnits::cm;
-                rpc->stripPitchZ                        =(wrpc[i].zpitch)*GeoModelKernelUnits::cm;
-                rpc->stripSeparation                    =(wrpc[i].dedstr)*GeoModelKernelUnits::cm;
+                rpc->stripPitchS                        =(wrpc[i].spitch)*Gaudi::Units::cm;
+                rpc->stripPitchZ                        =(wrpc[i].zpitch)*Gaudi::Units::cm;
+                rpc->stripSeparation                    =(wrpc[i].dedstr)*Gaudi::Units::cm;
                 if (RPCprint) std::cout<<"ProcessRPC:: s_pitch, z_pitch "
                                        <<rpc->stripPitchS <<" "<<rpc->stripPitchZ<<std::endl;
             
@@ -375,11 +375,11 @@ namespace MuonGM {
             if( s.substr(3,s.size()-3) == MuonGM::buildString(wtgcall[i].jsta,2) )
             {
                 tgc->nlayers  =wtgcall[i].nbevol;
-                tgc->thickness=wtgcall[i].widchb*GeoModelKernelUnits::cm;
+                tgc->thickness=wtgcall[i].widchb*Gaudi::Units::cm;
                 //std::cout<<" ProcessTGC accepted "<<s<<" index "<<i<<" jsta ="<<wtgcall[i].jsta
                 //         <<" internal struct has "<<tgc->nlayers<<" layers; thickness is "<<tgc->thickness<<std::endl;
-                tgc->frame_h  =wtgcall[i].fwirch*GeoModelKernelUnits::cm;
-                tgc->frame_ab =wtgcall[i].fwixch*GeoModelKernelUnits::cm;
+                tgc->frame_h  =wtgcall[i].fwirch*Gaudi::Units::cm;
+                tgc->frame_ab =wtgcall[i].fwixch*Gaudi::Units::cm;
                 //int subtype = wtgcall[i].jsta;
                 //             std::cout<<" thick, frame_h, frame_ab "<< tgc->thickness
                 //                      <<" "<<tgc->frame_h<<" "<<tgc->frame_ab<<std::endl;
@@ -394,8 +394,8 @@ namespace MuonGM {
                     n++;
                     //std::cout<<" select this by jsta = "<<wtgc[j].jsta<<" until now "<<n<<" selected"<<std::endl;
                     mat=(int)wtgc[j].icovol;
-                    p=wtgc[j].zpovol*GeoModelKernelUnits::cm;
-                    t=wtgc[j].widvol*GeoModelKernelUnits::cm;
+                    p=wtgc[j].zpovol*Gaudi::Units::cm;
+                    t=wtgc[j].widvol*Gaudi::Units::cm;
                     tgc->materials.push_back(v[mat-1]);
                     //std::cerr<<" Processing TGC iw = "<<s<<" mat = "<<mat<<" v[mat-1] "<<v[mat-1]<<std::endl;
                     tgc->positions.push_back(p);
@@ -454,25 +454,25 @@ namespace MuonGM {
                     //                    std::cout<<" ProcessCSC "<<s<<" index "<<i<<" jsta ="<<wcsc[i].jsta<<std::endl;
                     
                     csc->numOfLayers=wcsc[i].laycsc;
-                    csc->totalThickness=wcsc[i].ttotal*GeoModelKernelUnits::cm;
+                    csc->totalThickness=wcsc[i].ttotal*Gaudi::Units::cm;
                     csc->thickness=csc->totalThickness;
-                    csc->honeycombthick=wcsc[i].tnomex*GeoModelKernelUnits::cm;
+                    csc->honeycombthick=wcsc[i].tnomex*Gaudi::Units::cm;
                     
-                    csc->g10thick=wcsc[i].tlag10*GeoModelKernelUnits::cm;  //csc->g10thick=0.0820*GeoModelKernelUnits::cm;
+                    csc->g10thick=wcsc[i].tlag10*Gaudi::Units::cm;  //csc->g10thick=0.0820*Gaudi::Units::cm;
 
                     // wire spacing 
-                    csc->wirespacing =wcsc[i].wispa*GeoModelKernelUnits::cm;
+                    csc->wirespacing =wcsc[i].wispa*Gaudi::Units::cm;
                     // anode-cathode distance
-                    csc->anocathodist=wcsc[i].dancat*GeoModelKernelUnits::cm;
+                    csc->anocathodist=wcsc[i].dancat*Gaudi::Units::cm;
                     // gapbetwcathstrips
-                    csc->gapbetwcathstrips=wcsc[i].gstrip*GeoModelKernelUnits::cm;
+                    csc->gapbetwcathstrips=wcsc[i].gstrip*Gaudi::Units::cm;
 
                     // precision (Radial) strip pitch
-                    csc->cathreadoutpitch=wcsc[i].pcatre*GeoModelKernelUnits::cm; // it was not used before but set by hand in CscReadoutEl.
+                    csc->cathreadoutpitch=wcsc[i].pcatre*Gaudi::Units::cm; // it was not used before but set by hand in CscReadoutEl.
                     // Azimuthal strip pitch
 
-                    //csc->phireadoutpitch = wcsc[i].psndco*GeoModelKernelUnits::cm;
-                    csc->phireadoutpitch = wcsc[i].azcat*GeoModelKernelUnits::cm;
+                    //csc->phireadoutpitch = wcsc[i].psndco*Gaudi::Units::cm;
+                    csc->phireadoutpitch = wcsc[i].azcat*Gaudi::Units::cm;
                     //std::cerr<<" do we come here ??? csc->phireadoutpitch = "<<csc->phireadoutpitch<<std::endl;
 
                     //std::cerr<<" csc->phireadoutpitch = "<<csc->phireadoutpitch<<"  csc->cathreadoutpitch "<< csc->cathreadoutpitch<<std::endl;
@@ -485,20 +485,20 @@ namespace MuonGM {
                     csc->nPhistrips = 48;
 
                     // precision (Radial) strip width
-                    csc->readoutstripswidth=wcsc[i].wrestr*GeoModelKernelUnits::cm;
+                    csc->readoutstripswidth=wcsc[i].wrestr*Gaudi::Units::cm;
                     // Azimuthal strip width
                     csc->floatingstripswidth =0.;
-                    csc->phistripwidth      = wcsc[i].wflstr*GeoModelKernelUnits::cm; // CTB and layout Q interpretation
+                    csc->phistripwidth      = wcsc[i].wflstr*Gaudi::Units::cm; // CTB and layout Q interpretation
 
                     // dead materials 
-                    csc->rectwasherthick=wcsc[i].trrwas*GeoModelKernelUnits::cm;
-                    csc->roxacellwith = 54.96*GeoModelKernelUnits::mm; //  CTB, layout Q, R, etc: must be computed
-                    csc->roxwirebargap=wcsc[i].groxwi*GeoModelKernelUnits::cm;
-                    csc->fullgasgapwirewidth=wcsc[i].wgasba*GeoModelKernelUnits::cm;
-                    csc->fullwirefixbarwidth=wcsc[i].wfixwi*GeoModelKernelUnits::cm;
-                    csc->wirebarposx=wcsc[i].pba1wi*GeoModelKernelUnits::cm;
-                    csc->wirebarposy=wcsc[i].pba2wi*GeoModelKernelUnits::cm;
-                    csc->wirebarposz=wcsc[i].pba3wi*GeoModelKernelUnits::cm;
+                    csc->rectwasherthick=wcsc[i].trrwas*Gaudi::Units::cm;
+                    csc->roxacellwith = 54.96*Gaudi::Units::mm; //  CTB, layout Q, R, etc: must be computed
+                    csc->roxwirebargap=wcsc[i].groxwi*Gaudi::Units::cm;
+                    csc->fullgasgapwirewidth=wcsc[i].wgasba*Gaudi::Units::cm;
+                    csc->fullwirefixbarwidth=wcsc[i].wfixwi*Gaudi::Units::cm;
+                    csc->wirebarposx=wcsc[i].pba1wi*Gaudi::Units::cm;
+                    csc->wirebarposy=wcsc[i].pba2wi*Gaudi::Units::cm;
+                    csc->wirebarposz=wcsc[i].pba3wi*Gaudi::Units::cm;
 //                    std::cerr<<"A) tname, s, csc->numOfLayers "<<tname<<" "<<s<<" "<<csc->numOfLayers<<std::endl;
                     if (tname == s) return;
                     
@@ -524,14 +524,14 @@ namespace MuonGM {
                 log<<MSG::WARNING<<" update by hand a few numbers for the current technology sub-type "<<s
                    <<" // Layout = "<<mysql->getGeometryVersion()<<" OK if layout is Q02, Q02_initial"<<endmsg;
                 // precision (Radial) strip pitch
-                csc->cathreadoutpitch  =5.31*GeoModelKernelUnits::mm;
+                csc->cathreadoutpitch  =5.31*Gaudi::Units::mm;
                 // Azimuthal strip pitch
-                csc->phireadoutpitch   =21.0*GeoModelKernelUnits::mm;
+                csc->phireadoutpitch   =21.0*Gaudi::Units::mm;
                 // precision (Radial) strip width
-                csc->readoutstripswidth=1.52*GeoModelKernelUnits::mm;
+                csc->readoutstripswidth=1.52*Gaudi::Units::mm;
                 // Azimuthal strip width
                 csc->floatingstripswidth = 0; // layout P interpretation
-                csc->phistripwidth    =20.60*GeoModelKernelUnits::mm;
+                csc->phistripwidth    =20.60*Gaudi::Units::mm;
                 return;
             }
         }
@@ -552,9 +552,9 @@ namespace MuonGM {
         //std::cerr << " TECH. A new SPA named " <<s<<" nspa = "<<nspa<<std::endl;
         for (unsigned int i=0; i<dhwspa->size(); i++) {
             //        sprintf(ind,"%i",wspa[i].type);
-            //if(s[3]==ind[0]) spa->thickness=wspa[i].tckspa*GeoModelKernelUnits::cm;
+            //if(s[3]==ind[0]) spa->thickness=wspa[i].tckspa*Gaudi::Units::cm;
             if( s.substr(3,s.size()-3) == MuonGM::buildString(wspa[i].jsta,2) )
-                spa->thickness=wspa[i].tckspa*GeoModelKernelUnits::cm;
+                spa->thickness=wspa[i].tckspa*Gaudi::Units::cm;
         }
     } // end of ProcessSPA
     
@@ -576,17 +576,17 @@ namespace MuonGM {
             //        sprintf(ind,"%i",wsup[i].type);
             if( s.substr(3,s.size()-3) == MuonGM::buildString(wsup[i].jsta,2) )
             {
-                sup->alFlangeThickness=wsup[i].xxsup[0]*GeoModelKernelUnits::cm;
+                sup->alFlangeThickness=wsup[i].xxsup[0]*Gaudi::Units::cm;
                 //if (s[3]=='3') //SUP3
                 if( s.substr(3,s.size()-3) == "03" )
                 {
-                    sup->alHorFlangeLength=(fabs)(wsup[i].zzsup[1])*GeoModelKernelUnits::cm;
-                    sup->alVerFlangeLength=wsup[i].xxsup[1]*GeoModelKernelUnits::cm - wsup[i].xxsup[0]*GeoModelKernelUnits::cm;
-                    sup->alVerProfileThickness=wsup[i].zzsup[3]*GeoModelKernelUnits::cm;
-                    sup->alHorProfileThickness=wsup[i].xxsup[3]*GeoModelKernelUnits::cm - wsup[i].xxsup[2]*GeoModelKernelUnits::cm;
-                    sup->largeVerClearance=wsup[i].xxsup[3]*GeoModelKernelUnits::cm;
-                    sup->smallVerClearance=wsup[i].xxsup[2]*GeoModelKernelUnits::cm;
-                    sup->HorClearance=wsup[i].zzsup[2]*GeoModelKernelUnits::cm;
+                    sup->alHorFlangeLength=(fabs)(wsup[i].zzsup[1])*Gaudi::Units::cm;
+                    sup->alVerFlangeLength=wsup[i].xxsup[1]*Gaudi::Units::cm - wsup[i].xxsup[0]*Gaudi::Units::cm;
+                    sup->alVerProfileThickness=wsup[i].zzsup[3]*Gaudi::Units::cm;
+                    sup->alHorProfileThickness=wsup[i].xxsup[3]*Gaudi::Units::cm - wsup[i].xxsup[2]*Gaudi::Units::cm;
+                    sup->largeVerClearance=wsup[i].xxsup[3]*Gaudi::Units::cm;
+                    sup->smallVerClearance=wsup[i].xxsup[2]*Gaudi::Units::cm;
+                    sup->HorClearance=wsup[i].zzsup[2]*Gaudi::Units::cm;
                     sup->xAMDB0 = -sup->largeVerClearance -sup->alHorProfileThickness/2.;
                     sup->yAMDB0 = 0.;
                     sup->zAMDB0 = - sup->alVerProfileThickness
@@ -596,11 +596,11 @@ namespace MuonGM {
                 }
                 else //SUP1 and SUP2
                 {
-                    sup->alHorFlangeLength=wsup[i].zzsup[0]*GeoModelKernelUnits::cm;
+                    sup->alHorFlangeLength=wsup[i].zzsup[0]*Gaudi::Units::cm;
                     sup->alVerFlangeLength=0.;
-                    sup->alVerProfileThickness=wsup[i].xxsup[0]*GeoModelKernelUnits::cm;
+                    sup->alVerProfileThickness=wsup[i].xxsup[0]*Gaudi::Units::cm;
                     sup->alHorProfileThickness=0.;
-                    sup->largeVerClearance=wsup[i].xxsup[1]*GeoModelKernelUnits::cm;
+                    sup->largeVerClearance=wsup[i].xxsup[1]*Gaudi::Units::cm;
                     sup->smallVerClearance=0.;
                     sup->HorClearance=0.;
                     double totzgm = 2.*sup->alHorFlangeLength+sup->alVerProfileThickness+sup->HorClearance;
@@ -643,11 +643,11 @@ namespace MuonGM {
         for (unsigned int i=0; i<dhwded->size(); i++) {
             if( s.substr(3,s.size()-3) == MuonGM::buildString(wded[i].jsta,2) )
             {
-//                 ded->AlThickness=(wded[i].tckded)*GeoModelKernelUnits::cm;
-//                 ded->AlThickness = ded->AlThickness * GeoModelKernelUnits::cm;
+//                 ded->AlThickness=(wded[i].tckded)*Gaudi::Units::cm;
+//                 ded->AlThickness = ded->AlThickness * Gaudi::Units::cm;
 // a lot of confusion in the various versions of the geometry in nova
-                ded->AlThickness=0.3*GeoModelKernelUnits::mm;
-                ded->thickness=(wded[i].auphcb)*GeoModelKernelUnits::cm;
+                ded->AlThickness=0.3*Gaudi::Units::mm;
+                ded->thickness=(wded[i].auphcb)*Gaudi::Units::cm;
                 ded->HoneyCombThickness=ded->thickness-2.*ded->AlThickness;
                 break;
             }
@@ -670,9 +670,9 @@ namespace MuonGM {
         for (int i=0; i<nStruct; i++) {
             if( s.substr(3,s.size()-3) == MuonGM::buildString(wchv[i].jsta,2) )
             {
-                chv->thickness=wchv[i].thickness*GeoModelKernelUnits::cm;
-                chv->largeness=wchv[i].largeness*GeoModelKernelUnits::cm;
-                chv->height=wchv[i].heightness*GeoModelKernelUnits::cm;
+                chv->thickness=wchv[i].thickness*Gaudi::Units::cm;
+                chv->largeness=wchv[i].largeness*Gaudi::Units::cm;
+                chv->height=wchv[i].heightness*Gaudi::Units::cm;
             }
         }
     }// end of ProcessCHV
@@ -694,9 +694,9 @@ namespace MuonGM {
         for (int i=0; i<nStruct; i++) {
             if( s.substr(3,s.size()-3) == MuonGM::buildString(wcro[i].jsta,2) )
             {
-                cro->thickness=wcro[i].thickness*GeoModelKernelUnits::cm;
-                cro->largeness=wcro[i].largeness*GeoModelKernelUnits::cm;
-                cro->height=wcro[i].heightness*GeoModelKernelUnits::cm;
+                cro->thickness=wcro[i].thickness*Gaudi::Units::cm;
+                cro->largeness=wcro[i].largeness*Gaudi::Units::cm;
+                cro->height=wcro[i].heightness*Gaudi::Units::cm;
                 //std::cerr<<" thick, width, height "<<cro->thickness<<" "<<cro->largeness<<" "<<cro->height<<std::endl;
             }
         }
@@ -719,9 +719,9 @@ namespace MuonGM {
         for (int i=0; i<nStruct; i++) {
             if( s.substr(3,s.size()-3) == MuonGM::buildString(wcmi[i].jsta,2) )
             {
-                cmi->thickness=wcmi[i].thickness*GeoModelKernelUnits::cm;
-                cmi->largeness=wcmi[i].largeness*GeoModelKernelUnits::cm;
-                cmi->height=wcmi[i].heightness*GeoModelKernelUnits::cm;
+                cmi->thickness=wcmi[i].thickness*Gaudi::Units::cm;
+                cmi->largeness=wcmi[i].largeness*Gaudi::Units::cm;
+                cmi->height=wcmi[i].heightness*Gaudi::Units::cm;
             }
         }
     }// end of ProcessCMI
@@ -743,10 +743,10 @@ namespace MuonGM {
         for (int i=0; i<nStruct; i++) {
             if( s.substr(2,s.size()-2) == MuonGM::buildString(wlbi[i].jsta,2) )
             {
-                lbi->thickness=wlbi[i].thickness*GeoModelKernelUnits::cm;
-                lbi->height=wlbi[i].height*GeoModelKernelUnits::cm;
-                lbi->lowerThickness=wlbi[i].lowerThickness*GeoModelKernelUnits::cm;
-                lbi->yShift=wlbi[i].yShift*GeoModelKernelUnits::cm;
+                lbi->thickness=wlbi[i].thickness*Gaudi::Units::cm;
+                lbi->height=wlbi[i].height*Gaudi::Units::cm;
+                lbi->lowerThickness=wlbi[i].lowerThickness*Gaudi::Units::cm;
+                lbi->yShift=wlbi[i].yShift*Gaudi::Units::cm;
             }
         }
     } // end of ProcessLBI
@@ -860,13 +860,13 @@ namespace MuonGM {
                 //std::cout<<" ---- iz,fi  "<<p.zindex<<", "<<p.phiindex;
                 p.phi      = aptp[ipos].dphi+double(phiindex)*45.;
                 //std::cout<<" phi is "<<p.phi;
-                p.radius   = aptp[ipos].r*GeoModelKernelUnits::cm;
+                p.radius   = aptp[ipos].r*Gaudi::Units::cm;
                 //std::cout<<"  r  is "<<p.radius<<std::endl;
-                p.z        = aptp[ipos].z*GeoModelKernelUnits::cm;
+                p.z        = aptp[ipos].z*Gaudi::Units::cm;
                 if (p.zindex<0 && name.substr(0,1) == "B" && hasMdts) p.z = p.z-halfpitch;
             
                 //std::cout<<"  z  is "<<p.z<<std::endl;
-                p.shift    = aptp[ipos].s*GeoModelKernelUnits::cm;
+                p.shift    = aptp[ipos].s*Gaudi::Units::cm;
                 if (verbose_posmap) std::cout<<"p.zindex,p.phi "<<p.zindex<<" "<<p.phiindex<<" shift is "<<p.shift<<std::endl;
                 // amdb seems to follow the opposite convention about the sign
                 // of rotation around the azimuthal axis (foro them it is a rotation
@@ -1045,9 +1045,9 @@ namespace MuonGM {
                             //                       std::cout << "FindPosition found the match for " << stname
                             //                                 << std::endl;
                             AlignPos ap;
-                            ap.tras=0.*GeoModelKernelUnits::cm; // in cm from NOVA...
-                            ap.traz=0.*GeoModelKernelUnits::cm; // in cm
-                            ap.trat=0.*GeoModelKernelUnits::cm; // in cm
+                            ap.tras=0.*Gaudi::Units::cm; // in cm from NOVA...
+                            ap.traz=0.*Gaudi::Units::cm; // in cm
+                            ap.trat=0.*Gaudi::Units::cm; // in cm
                             ap.rots=0.; // in radians
                             ap.rotz=0.; // in radians
                             ap.rott=0.; // in radians             
@@ -1055,9 +1055,9 @@ namespace MuonGM {
 			    
                             if (controlAlines >= 111111) 
                             {
-                                ap.tras=aszt[ipos].tras*GeoModelKernelUnits::cm; // in cm from NOVA...
-                                ap.traz=aszt[ipos].traz*GeoModelKernelUnits::cm; // in cm
-                                ap.trat=aszt[ipos].trat*GeoModelKernelUnits::cm; // in cm
+                                ap.tras=aszt[ipos].tras*Gaudi::Units::cm; // in cm from NOVA...
+                                ap.traz=aszt[ipos].traz*Gaudi::Units::cm; // in cm
+                                ap.trat=aszt[ipos].trat*Gaudi::Units::cm; // in cm
                                 ap.rots=aszt[ipos].rots; // in radians
                                 ap.rotz=aszt[ipos].rotz; // in radians
                                 ap.rott=aszt[ipos].rott; // in radians
@@ -1083,17 +1083,17 @@ namespace MuonGM {
                                 }
                                 if  (int(controlAlines/1000)%10 != 0)
                                 {
-                                    ap.trat=aszt[ipos].trat*GeoModelKernelUnits::cm;
+                                    ap.trat=aszt[ipos].trat*Gaudi::Units::cm;
                                     //std::cout<<" setting up t-translation "<<ap.trat<<endl;
                                 }
                                 if  (int(controlAlines/10000)%10 != 0)
                                 {
-                                    ap.traz=aszt[ipos].traz*GeoModelKernelUnits::cm;
+                                    ap.traz=aszt[ipos].traz*Gaudi::Units::cm;
                                     //std::cout<<" setting up z-translation "<<ap.traz<<endl;
                                 }
                                 if  (int(controlAlines/100000)%10 != 0)
                                 {
-                                    ap.tras=aszt[ipos].tras*GeoModelKernelUnits::cm;
+                                    ap.tras=aszt[ipos].tras*Gaudi::Units::cm;
                                     //std::cout<<" setting up s-translation "<<ap.tras<<endl;
                                 }
                             }
@@ -1153,7 +1153,7 @@ namespace MuonGM {
 
         // that doesn't seem right for BME/BMG chambers - no idea if has an impact at the end
         // in any case it was wrong since every and would have been wrong also in previous code
-        double default_halfpitch = 15.0175*GeoModelKernelUnits::mm;
+        double default_halfpitch = 15.0175*Gaudi::Units::mm;
 	double halfpitch = default_halfpitch;
 	
         // loop over the banks of station components: ALMN
@@ -1220,7 +1220,7 @@ namespace MuonGM {
 			<< " for " << name << std::endl;
 		      continue;
 		    }
-		    halfpitch = 0.5*wmdt[jtech-1].tubpit*GeoModelKernelUnits::cm;
+		    halfpitch = 0.5*wmdt[jtech-1].tubpit*Gaudi::Units::cm;
 		    log << MSG::DEBUG
 		      << "Found new halfpitch: " << halfpitch
 		      << " for " << name << std::endl;
@@ -1268,19 +1268,19 @@ namespace MuonGM {
             }
 
             // define here common properties
-            c->posx=almn[icomp].dx*GeoModelKernelUnits::cm;
-            c->posy=almn[icomp].dy*GeoModelKernelUnits::cm;
-            c->posz=almn[icomp].dz*GeoModelKernelUnits::cm;
+            c->posx=almn[icomp].dx*Gaudi::Units::cm;
+            c->posy=almn[icomp].dy*Gaudi::Units::cm;
+            c->posz=almn[icomp].dz*Gaudi::Units::cm;
             c->index=almn[icomp].job;
             c->name=cartec+MuonGM::buildString(almn[icomp].iw, 2);
             c->iswap=almn[icomp].ishape;
-            c->dx1=almn[icomp].width_xs*GeoModelKernelUnits::cm;
-            c->dx2=almn[icomp].width_xl*GeoModelKernelUnits::cm;
-            c->dy=almn[icomp].length_y*GeoModelKernelUnits::cm;
-            c->excent=almn[icomp].excent*GeoModelKernelUnits::cm;
-            c->deadx=almn[icomp].dead1*GeoModelKernelUnits::cm;
-            c->deady=almn[icomp].dead2*GeoModelKernelUnits::cm;
-            c->dead3=almn[icomp].dead3*GeoModelKernelUnits::cm;
+            c->dx1=almn[icomp].width_xs*Gaudi::Units::cm;
+            c->dx2=almn[icomp].width_xl*Gaudi::Units::cm;
+            c->dy=almn[icomp].length_y*Gaudi::Units::cm;
+            c->excent=almn[icomp].excent*Gaudi::Units::cm;
+            c->deadx=almn[icomp].dead1*Gaudi::Units::cm;
+            c->deady=almn[icomp].dead2*Gaudi::Units::cm;
+            c->dead3=almn[icomp].dead3*Gaudi::Units::cm;
 
             //std::cout<<" This component of station "<<name<<" is a "<<c->name<<std::endl;
             if (cartec == "CSC")
@@ -1289,10 +1289,10 @@ namespace MuonGM {
                 if (derc == NULL) std::cout<<" There is a problem"<<std::endl;
                 if (name[2] == 'L'){
                     //std::cout<<" here is a CSL ..."<<std::endl;
-                    derc->dy = 1129.20*GeoModelKernelUnits::mm;  // AMDB-Q and CTB
+                    derc->dy = 1129.20*Gaudi::Units::mm;  // AMDB-Q and CTB
                     // DHW: fix values from AMDB
-                    //else derc->dy = 1111.5*GeoModelKernelUnits::mm;
-                    derc->maxwdy = almn[icomp].length_y*GeoModelKernelUnits::cm;
+                    //else derc->dy = 1111.5*Gaudi::Units::mm;
+                    derc->maxwdy = almn[icomp].length_y*Gaudi::Units::cm;
                 }
                 else  derc->maxwdy = c->dy;
                 //ProcessCSC(derc->name);
@@ -1302,7 +1302,7 @@ namespace MuonGM {
                 derc->maxwdy = derc->dy;
                 if (jtech == 6 && name.substr(0,3) == "CSL") 
                 {
-                    derc->dy     = 1129.20*GeoModelKernelUnits::mm; // AMDB-Q and CTB
+                    derc->dy     = 1129.20*Gaudi::Units::mm; // AMDB-Q and CTB
                 }
                 //ProcessSPA(derc->name);
             }
@@ -1409,10 +1409,10 @@ template <class TYPEdnacut, class TYPEacut, class TYPEdnalin, class TYPEalin,
 		     << " component with subcut i="<<alin[ialin].i
 		     << endmsg;
 		  Cutout *c = new Cutout();
-		  c->dx = alin[ialin].dx*GeoModelKernelUnits::cm;
-		  c->dy = alin[ialin].dy*GeoModelKernelUnits::cm;
-		  c->widthXs = alin[ialin].width_xs*GeoModelKernelUnits::cm;
-		  c->widthXl = alin[ialin].width_xl*GeoModelKernelUnits::cm;
+		  c->dx = alin[ialin].dx*Gaudi::Units::cm;
+		  c->dy = alin[ialin].dy*Gaudi::Units::cm;
+		  c->widthXs = alin[ialin].width_xs*Gaudi::Units::cm;
+		  c->widthXl = alin[ialin].width_xl*Gaudi::Units::cm;
                   //std::string::size_type locmystr = mysql->get_DBMuonVersion().find("Egg");
                   //if ( locmystr != std::string::npos )
                   //{                      
@@ -1425,19 +1425,19 @@ template <class TYPEdnacut, class TYPEacut, class TYPEdnalin, class TYPEalin,
                   //    if (alin[ialin].jtyp == 11 && c->dy>0.1)
                   //    {
                   //        std::cout<<"DBREADER redefining dy of the cutout from "<<c->dy;
-                  //        c->dy = 1021.2000*GeoModelKernelUnits::mm;
+                  //        c->dy = 1021.2000*Gaudi::Units::mm;
                   //        std::cout<<" to "<<c->dy<<std::endl;
                   //    }
                   //    else if (alin[ialin].jtyp == 11 && c->dy>0.0001)
                   if (alin[ialin].jtyp == 11 && (c->dy>0.0001 && c->dy<1.))
                   {
                     std::cout<<"DBREADER redefining dy of the cutout from "<<c->dy;
-                    c->dy = 0.000*GeoModelKernelUnits::mm;
+                    c->dy = 0.000*Gaudi::Units::mm;
                     std::cout<<" to "<<c->dy<<std::endl;
                   }
                   //}
-		  c->lengthY = alin[ialin].length_y*GeoModelKernelUnits::cm;
-		  c->excent = alin[ialin].excent*GeoModelKernelUnits::cm;
+		  c->lengthY = alin[ialin].length_y*Gaudi::Units::cm;
+		  c->excent = alin[ialin].excent*Gaudi::Units::cm;
                   c->dead1 = alin[ialin].dead1;
 		  // temporary fix for bug in Nova/Oracle: 18/05/2006 I don't think this is needed anymore 
 		  // c->dead1 = 10.*alin[ialin].dead1;
diff --git a/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx b/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx
index cc232c57233652e79481a4ada9befaabff349162..7844e3848879ea336c0db3461d0888037f0ee2da 100755
--- a/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx
@@ -10,7 +10,7 @@
 #include "GeoModelKernel/GeoTransform.h"
 #include "GeoModelKernel/GeoShapeShift.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 namespace MuonGM {
 
@@ -79,15 +79,15 @@ const GeoShape* Cutout::build()
       double alpha = atan(2.*excent/lengthY);
       // polar and azimuthal angles of vector describing offset of
       //   cutout planes:
-      double theta = -dead1*GeoModelKernelUnits::degree;
-      double phi = -90.*GeoModelKernelUnits::degree;
+      double theta = -dead1*Gaudi::Units::degree;
+      double phi = -90.*Gaudi::Units::degree;
       // GeoPara requires the +/- z faces be parallel to the x-y plane,
       //   so choose x = width, y=length, z=thickness:
       GeoPara *cutoutpara = new GeoPara(widthXs/2.,lengthY/2.,thickness/2.,
 					alpha,theta,phi);
       // now rotate it so thickness is x-axis, width is y-axis, length z-axis:
-      GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*GeoModelKernelUnits::degree)*
-	GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::degree);
+      GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*Gaudi::Units::degree)*
+	GeoTrf::RotateY3D(-90.*Gaudi::Units::degree);
       xfTemp = xfTemp * xRot;
       sCutout = & ( (*cutoutpara) <<xfTemp);
       cutoutpara->ref();
@@ -95,7 +95,7 @@ const GeoShape* Cutout::build()
     }
   else  
     {
-      GeoTrap *cutouttrap = new GeoTrap(thickness/2.,dead1*GeoModelKernelUnits::degree,90.*GeoModelKernelUnits::degree,
+      GeoTrap *cutouttrap = new GeoTrap(thickness/2.,dead1*Gaudi::Units::degree,90.*Gaudi::Units::degree,
 					excent,widthXs/2.,widthXl/2.,
 					atan((2.*excent+(widthXl-widthXs)/2.)/
 					     lengthY),
@@ -104,8 +104,8 @@ const GeoShape* Cutout::build()
 					     lengthY)
 					);
       // now rotate it so thickness is x-axis, width is y-axis, length z-axis:
-      GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*GeoModelKernelUnits::degree)*
-	GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::degree);
+      GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*Gaudi::Units::degree)*
+	GeoTrf::RotateY3D(-90.*Gaudi::Units::degree);
       xfTemp = xfTemp * xRot;
       sCutout = & ( (*cutouttrap) <<xfTemp);
       cutouttrap->ref();
diff --git a/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx b/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx
index f891c49739454e3b7f6e45c4b1033062d798734e..8372afc9b2cb93fd4f4fe557e6fdc67034ca6a46 100755
--- a/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx
@@ -18,70 +18,63 @@
 
 namespace MuonGM {
 
-DriftTube::DriftTube(std::string n): DetectorElement(n),
-  length(0.) // length is set in MultiLayer.cxx
+DriftTube::DriftTube(std::string n)
+  : DetectorElement(n)
+  , length(0.) // length is set in MultiLayer.cxx
 {
-    //    std::cout<<" drift tube is in "<<name<<" "<<n<<std::endl;
-    gasMaterial="muo::ArCO2";
-    tubeMaterial="std::Aluminium";
-    plugMaterial="std::Bakelite";
-    wireMaterial="std::Aluminium";
-    MYSQL *amdb=MYSQL::GetPointer();	
-    MDT *md=(MDT *)amdb->GetTechnology(name.substr(0,5));
-    gasRadius   = md->innerRadius;
-    outerRadius = gasRadius+md->tubeWallThickness;
-    plugLength  = md->tubeEndPlugLength;
-    
-//    std::cout<<" drift tube gasR, outerR, plugL "<<gasRadius<<" "<<outerRadius<<" "<<plugLength<<std::endl;
-// 	outerRadius=1.5*GeoModelKernelUnits::cm;
-// 	gasRadius=1.46*GeoModelKernelUnits::cm;
-// 	plugLength=7*GeoModelKernelUnits::cm;
+  gasMaterial="muo::ArCO2";
+  tubeMaterial="std::Aluminium";
+  plugMaterial="std::Bakelite";
+  wireMaterial="std::Aluminium";
+  MYSQL *amdb=MYSQL::GetPointer();	
+  MDT *md=(MDT *)amdb->GetTechnology(name.substr(0,5));
+  gasRadius   = md->innerRadius;
+  outerRadius = gasRadius+md->tubeWallThickness;
+  plugLength  = md->tubeEndPlugLength;    
 }
-
+  
 GeoVPhysVol *DriftTube::build()
 {
-    const GeoTube     *stube   = new GeoTube(0.0, outerRadius, length/2.0);
-	const GeoMaterial *mtube   = matManager->getMaterial(tubeMaterial);
-	const GeoLogVol   *ltube   = new GeoLogVol("MDTDriftWall", stube, mtube);
-          GeoPhysVol  *ptube   = new GeoPhysVol(ltube);
-
-	const GeoTube     *splug   = new GeoTube(0.0, outerRadius, plugLength/2.0);
-	const GeoMaterial *mplug   = matManager->getMaterial(plugMaterial);
-	const GeoLogVol   *lplug   = new GeoLogVol("Endplug",splug, mplug);
-          GeoPhysVol  *pplug   = new GeoPhysVol(lplug);
-
-	const GeoTube     *sgas    = new GeoTube(0, gasRadius, length/2.0-plugLength);
-	const GeoMaterial *mgas    = matManager->getMaterial(gasMaterial);
-	const GeoLogVol   *lgas    = new GeoLogVol("SensitiveGas",sgas,mgas);
-	      GeoPhysVol  *pgas    = new GeoPhysVol(lgas);
-
-    GeoSerialDenominator *plugDenominator= new GeoSerialDenominator("Tube Endplug");
-	GeoTransform *ec0X = new GeoTransform(GeoTrf::TranslateZ3D(+(length-plugLength)/2));
-	GeoTransform *ec1X = new GeoTransform(GeoTrf::TranslateZ3D(-(length-plugLength)/2));
-        std::string sGasName = "SensitiveGas";
-	GeoNameTag           *gasDenominator = new GeoNameTag(sGasName);
-
-	ptube->add(plugDenominator);
-        ptube->add(ec0X);
-	ptube->add(pplug);
-	ptube->add(ec1X);
-	ptube->add(pplug);
-	ptube->add(gasDenominator);
-	ptube->add(pgas);
-
-    return ptube;
-
-
+  const GeoTube     *stube   = new GeoTube(0.0, outerRadius, length/2.0);
+  const GeoMaterial *mtube   = matManager->getMaterial(tubeMaterial);
+  const GeoLogVol   *ltube   = new GeoLogVol("MDTDriftWall", stube, mtube);
+  GeoPhysVol  *ptube   = new GeoPhysVol(ltube);
+  
+  const GeoTube     *splug   = new GeoTube(0.0, outerRadius, plugLength/2.0);
+  const GeoMaterial *mplug   = matManager->getMaterial(plugMaterial);
+  const GeoLogVol   *lplug   = new GeoLogVol("Endplug",splug, mplug);
+  GeoPhysVol  *pplug   = new GeoPhysVol(lplug);
+  
+  const GeoTube     *sgas    = new GeoTube(0, gasRadius, length/2.0-plugLength);
+  const GeoMaterial *mgas    = matManager->getMaterial(gasMaterial);
+  const GeoLogVol   *lgas    = new GeoLogVol("SensitiveGas",sgas,mgas);
+  GeoPhysVol  *pgas    = new GeoPhysVol(lgas);
+  
+  GeoSerialDenominator *plugDenominator= new GeoSerialDenominator("Tube Endplug");
+  GeoTransform *ec0X = new GeoTransform(GeoTrf::TranslateZ3D(+(length-plugLength)/2));
+  GeoTransform *ec1X = new GeoTransform(GeoTrf::TranslateZ3D(-(length-plugLength)/2));
+  std::string sGasName = "SensitiveGas";
+  GeoNameTag           *gasDenominator = new GeoNameTag(sGasName);
+  
+  ptube->add(plugDenominator);
+  ptube->add(ec0X);
+  ptube->add(pplug);
+  ptube->add(ec1X);
+  ptube->add(pplug);
+  ptube->add(gasDenominator);
+  ptube->add(pgas);
+  
+  return ptube;
 }
 
 void DriftTube::print()
 {
-	std::cout << "Drift tube " << name.c_str() << " :" << std::endl;
-	std::cout << "		Tube material 	: " << tubeMaterial.c_str() << std::endl;
-	std::cout << "		Radius		: " << outerRadius << std::endl;
-	std::cout << "		Length		: " << length;
-	std::cout << "		Thickness	: " << outerRadius-gasRadius << " mm" << std::endl;
-	std::cout << "		Gas material	: " << gasMaterial.c_str() << std::endl;
-	std::cout << "		EP length	: " << plugLength << std::endl;
+  std::cout << "Drift tube " << name.c_str() << " :" << std::endl;
+  std::cout << "		Tube material 	: " << tubeMaterial.c_str() << std::endl;
+  std::cout << "		Radius		: " << outerRadius << std::endl;
+  std::cout << "		Length		: " << length;
+  std::cout << "		Thickness	: " << outerRadius-gasRadius << " mm" << std::endl;
+  std::cout << "		Gas material	: " << gasMaterial.c_str() << std::endl;
+  std::cout << "		EP length	: " << plugLength << std::endl;
 }
 } // namespace MuonGM
diff --git a/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx b/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx
index d928e6b937babb54671a015c44b9dde4e65ff904..f627916c10901c5aa92f7b1db79108388cc7785a 100755
--- a/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx
@@ -20,7 +20,6 @@
 #include "GeoModelKernel/GeoIdentifierTag.h"
 #include "GeoModelKernel/GeoSerialIdentifier.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
 #include "GeoGenericFunctions/Variable.h"
 // for cutouts
 #include "GeoModelKernel/GeoShape.h"
@@ -28,6 +27,7 @@
 #include "GeoModelKernel/GeoShapeUnion.h"
 #include "GeoModelKernel/GeoShapeSubtraction.h"
 #include "GeoModelKernel/GeoTube.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include <vector>
 #include <cassert>
@@ -88,11 +88,11 @@ GeoFullPhysVol* MultiLayer::build()
 
     if (foamthicknessup > foamthicknesslow) {
       foamthicknesslow = 0.;
-      if (fabs(foamthicknessup - 15*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 15*GeoModelKernelUnits::mm;
-      else if (fabs(foamthicknessup - 30.75*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 30.75*GeoModelKernelUnits::mm;
-      else if (fabs(foamthicknessup - 30.00*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 30.00*GeoModelKernelUnits::mm;
-      else if (fabs(foamthicknessup - 10.00*GeoModelKernelUnits::mm) < 0.1
-               && logVolName.find("BMG") != std::string::npos ) foamthicknessup = 10.00*GeoModelKernelUnits::mm;
+      if (fabs(foamthicknessup - 15*Gaudi::Units::mm) < 0.1) foamthicknessup = 15*Gaudi::Units::mm;
+      else if (fabs(foamthicknessup - 30.75*Gaudi::Units::mm) < 0.1) foamthicknessup = 30.75*Gaudi::Units::mm;
+      else if (fabs(foamthicknessup - 30.00*Gaudi::Units::mm) < 0.1) foamthicknessup = 30.00*Gaudi::Units::mm;
+      else if (fabs(foamthicknessup - 10.00*Gaudi::Units::mm) < 0.1
+               && logVolName.find("BMG") != std::string::npos ) foamthicknessup = 10.00*Gaudi::Units::mm;
       else if ( logVolName == "BME1MDT09" || logVolName == "BME2MDT09" ) { //@@
 	foamthicknesslow = 0.;
 	foamthicknessup  = 0.;
@@ -103,11 +103,11 @@ GeoFullPhysVol* MultiLayer::build()
 
     } else {
       foamthicknessup = 0.;
-      if (fabs(foamthicknesslow - 15*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 15*GeoModelKernelUnits::mm;
-      else if (fabs(foamthicknesslow - 30.75*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 30.75*GeoModelKernelUnits::mm;
-      else if (fabs(foamthicknesslow - 30.00*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 30.00*GeoModelKernelUnits::mm;
-      else if (fabs(foamthicknesslow - 10.00*GeoModelKernelUnits::mm) < 0.1
-               && logVolName.find("BMG") != std::string::npos ) foamthicknesslow = 10.00*GeoModelKernelUnits::mm;
+      if (fabs(foamthicknesslow - 15*Gaudi::Units::mm) < 0.1) foamthicknesslow = 15*Gaudi::Units::mm;
+      else if (fabs(foamthicknesslow - 30.75*Gaudi::Units::mm) < 0.1) foamthicknesslow = 30.75*Gaudi::Units::mm;
+      else if (fabs(foamthicknesslow - 30.00*Gaudi::Units::mm) < 0.1) foamthicknesslow = 30.00*Gaudi::Units::mm;
+      else if (fabs(foamthicknesslow - 10.00*Gaudi::Units::mm) < 0.1
+               && logVolName.find("BMG") != std::string::npos ) foamthicknesslow = 10.00*Gaudi::Units::mm;
       else if ( logVolName == "BME1MDT09" || logVolName == "BME2MDT09" ) { //@@
 	foamthicknesslow = 0.;
 	foamthicknessup  = 0.;
@@ -239,23 +239,23 @@ GeoFullPhysVol* MultiLayer::build()
     const GeoShape* stube = NULL;
     double tL = longWidth/2.0 - (tubePitch/2.)*TrdDwoverL;
     stube = new GeoTube(0.0, tubePitch/2., tL);
-    stube = & ( (*stube) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) );
+    stube = & ( (*stube) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) );
     const GeoShape* stubewithcut = NULL;
     if (cutoutNsteps > 1) {
       double toptubelength = cutoutTubeLength[cutoutNsteps-1];
       if (cutoutFullLength[cutoutNsteps-1]) toptubelength = longWidth;
       stubewithcut = new GeoTube(0.0, tubePitch/2., toptubelength/2.0);
-      stubewithcut = & ( (*stubewithcut) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) );
+      stubewithcut = & ( (*stubewithcut) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) );
     }
 
     GeoShape* sbox = new GeoTrd(mdtthickness, mdtthickness, longWidth, 
                                 longWidth, tubePitch/2.);
     GeoShape* sboxf = new GeoTrd(mdtthickness, mdtthickness, longWidth, 
-                                 longWidth, tubePitch/4.+1*GeoModelKernelUnits::mm);
+                                 longWidth, tubePitch/4.+1*Gaudi::Units::mm);
     slay = &(slay->subtract( (*sbox)<<GeoTrf::Translate3D(0.,0.,length/2.)));
 
     for (int i = 0; i < nrOfLayers; i++) {
-      if (xx[i] > tubePitch/2. + 10.*GeoModelKernelUnits::mm) {
+      if (xx[i] > tubePitch/2. + 10.*Gaudi::Units::mm) {
         // subtract tube at the start
         if (verbose_multilayer) std::cout << " Cutting tube at xx = " << yy[i]
                                           << " z = " << -length/2. << std::endl;
@@ -533,7 +533,7 @@ GeoFullPhysVol* MultiLayer::build()
             lstart = loffset - length/2. + xx[i];
             GeoGenfun::Variable K;
             GeoGenfun::GENFUNCTION f = tubePitch*K + lstart;
-            TRANSFUNCTION t = GeoTrf::TranslateY3D(0.)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)*
+            TRANSFUNCTION t = GeoTrf::TranslateY3D(0.)*GeoTrf::RotateX3D(90*Gaudi::Units::deg)*
                               GeoTrf::TranslateX3D(tstart)*Pow(GeoTrf::TranslateY3D(1.0),f);
             GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nt);
             play->add(new GeoSerialIdentifier(100*(i+1)+nttot + 1));
@@ -595,7 +595,7 @@ GeoFullPhysVol* MultiLayer::build()
             lstart = loffset - length/2. + xx[i];
             GeoGenfun::Variable K;
             GeoGenfun::GENFUNCTION f = tubePitch*K + lstart;
-            TRANSFUNCTION t = GeoTrf::TranslateY3D(dy)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)*
+            TRANSFUNCTION t = GeoTrf::TranslateY3D(dy)*GeoTrf::RotateX3D(90*Gaudi::Units::deg)*
                               GeoTrf::TranslateX3D(tstart)*Pow(GeoTrf::TranslateY3D(1.0),f);
             GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nt);
             play->add(new GeoSerialIdentifier(100*(i+1)+nttot + 1));
@@ -620,7 +620,7 @@ GeoFullPhysVol* MultiLayer::build()
 //                  << std::endl;
         GeoGenfun::Variable K;
         GeoGenfun::GENFUNCTION f = tubePitch*K + lstart;
-        TRANSFUNCTION t = GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)*GeoTrf::TranslateX3D(tstart)*
+        TRANSFUNCTION t = GeoTrf::RotateX3D(90*Gaudi::Units::deg)*GeoTrf::TranslateX3D(tstart)*
                           Pow(GeoTrf::TranslateY3D(1.0),f);
         GeoVPhysVol* tV = tubeVector[0];	
         GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nrOfTubes);
@@ -639,7 +639,7 @@ GeoFullPhysVol* MultiLayer::build()
           lstart = loffset - length/2. + xx[i]; 
           GeoGenfun::Variable K;
           GeoGenfun::GENFUNCTION f = tubePitch*K + lstart;
-          TRANSFUNCTION t = GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)*GeoTrf::TranslateX3D(tstart)*
+          TRANSFUNCTION t = GeoTrf::RotateX3D(90*Gaudi::Units::deg)*GeoTrf::TranslateX3D(tstart)*
                             Pow(GeoTrf::TranslateY3D(1.0),f);
           GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nrTubesPerStep);
           play->add(new GeoSerialIdentifier(100*(i+1)+j*nrTubesPerStep + 1));
diff --git a/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx b/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx
index 9b7ed80bb2653846b597370e4879f3cff92efa32..76c7bfe10c2f4855fd41d3727f48996842e0f645 100755
--- a/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx
@@ -64,7 +64,7 @@
 #include "GeoModelKernel/GeoShapeIntersection.h"   
 #include "GeoModelKernel/GeoIdentifierTag.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 #include <vector>
 #include <fstream>
 #include <iomanip>
@@ -227,10 +227,10 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
       GeoShape* box = new GeoBox((totthick+2.)/2., (longWidth+2.)/2., halfpitch);
       box->ref();
       const GeoShape* frontcyl = new GeoTube(0.0, halfpitch+0.001, longWidth/2.);
-      frontcyl = &( (*frontcyl) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) );
+      frontcyl = &( (*frontcyl) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) );
       frontcyl->ref();
       const GeoShape* backcyl = new GeoTube(0.0, halfpitch-0.001, (longWidth+2.)/2.);
-      backcyl = &( (*backcyl) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) );
+      backcyl = &( (*backcyl) << GeoTrf::RotateX3D(90.*Gaudi::Units::deg) );
       backcyl->ref();
 
       if (index > 0) {
@@ -256,7 +256,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
         }
       }
       if (stname != "EIL") {
-        if (zi < 0 && !is_mirrored) strd = &( (*strd) << GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg) );
+        if (zi < 0 && !is_mirrored) strd = &( (*strd) << GeoTrf::RotateX3D(180.*Gaudi::Units::deg) );
       }
 
       box->unref();
@@ -319,21 +319,21 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
             //  of the cutouts wrt mother volume:
             if ( fabs(cut->dx-600.7)<0.1 )
             {
-                cut->dx      = cut->dx + 10.*GeoModelKernelUnits::mm;
-                cut->widthXs = cut->widthXs + 20.*GeoModelKernelUnits::mm;
-                cut->widthXl = cut->widthXl + 20.*GeoModelKernelUnits::mm;
+                cut->dx      = cut->dx + 10.*Gaudi::Units::mm;
+                cut->widthXs = cut->widthXs + 20.*Gaudi::Units::mm;
+                cut->widthXl = cut->widthXl + 20.*Gaudi::Units::mm;
                 //std::cout<<" redefining par.s for BOG1 cutouts "
                 //<<std::endl;
             }
             if ( fabs(cut->dx+600.7)<0.1 )
             {
-                cut->dx      = cut->dx - 10.*GeoModelKernelUnits::mm;
-                cut->widthXs = cut->widthXs + 20.*GeoModelKernelUnits::mm;
-                cut->widthXl = cut->widthXl + 20.*GeoModelKernelUnits::mm;
+                cut->dx      = cut->dx - 10.*Gaudi::Units::mm;
+                cut->widthXs = cut->widthXs + 20.*Gaudi::Units::mm;
+                cut->widthXl = cut->widthXl + 20.*Gaudi::Units::mm;
             }
             if (fabs(cut->lengthY-180.2)<0.001)
             {
-                cut->lengthY = cut->lengthY+(0.010)*GeoModelKernelUnits::mm;
+                cut->lengthY = cut->lengthY+(0.010)*Gaudi::Units::mm;
                 //imt	    std::cout<<"Redefining "<<stName<<" cut lengthY to "
                 //imt		     <<cut->lengthY
                 //imt		     <<std::endl;
@@ -559,7 +559,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
         cut->dx = tempdx;
         cut->dy = tempdy;
 
-	if (fabs(cut->dead1) > 1. && techname=="MDT03") cut->dy = cut->dy+15.0*cos(cut->dead1*GeoModelKernelUnits::deg);
+	if (fabs(cut->dead1) > 1. && techname=="MDT03") cut->dy = cut->dy+15.0*cos(cut->dead1*Gaudi::Units::deg);
 	// should compensate for the dy position defined in amdb at the bottom of the foam in ML 1 of EMS1,3 and BOS 6
 	// can be applied only for layout >=r.04.04 in rel 15.6.X.Y due to the frozen Tier0 policy
 
@@ -609,7 +609,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
         if (stName.substr(0,3) == "BOS" && zi == -6 && type == "MDT") {
           cut->dy = c->dy - cut->dy - cut->lengthY - halfpitch;
 	  cut->dead1 = 30.; // why this is not 30. or -30. already ?????
-	  if (techname=="MDT03") cut->dy = cut->dy + 30.0; // *cos(cut->dead1*GeoModelKernelUnits::deg);
+	  if (techname=="MDT03") cut->dy = cut->dy + 30.0; // *cos(cut->dead1*Gaudi::Units::deg);
 	  if (verbose) log <<MSG::VERBOSE <<"Cut dead1 for BOS 6 on C side is "<< cut->dead1<<endmsg;
         }
 
@@ -623,7 +623,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
           // reverse the position (x amdb) of the cutout if the m_station is mirrored
           Cutout* cutmirr = new Cutout(*cut);
           cutmirr->dx = - cutmirr->dx;
-          // this way, after the rotation by 180 GeoModelKernelUnits::deg, the cut will be at the same global phi
+          // this way, after the rotation by 180 Gaudi::Units::deg, the cut will be at the same global phi
           // it has for the m_station at z>0
           vcutdef.push_back(cutmirr);
           vcutdef_todel.push_back(cutmirr);
@@ -689,19 +689,19 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
       htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateZ3D(zpos)*GeoTrf::TranslateY3D(xpos);
       if (zi < 0 && !is_mirrored && stName[0] == 'B') { 
         // this (rotation +  shift of halfpitch) will mirror the tube structure w.r.t. the chamber at z>0
-         htcomponent = htcomponent*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg);
+         htcomponent = htcomponent*GeoTrf::RotateX3D(180.*Gaudi::Units::deg);
          htcomponent = htcomponent*GeoTrf::TranslateZ3D(halfpitch);
       }
           
       // ss - 24-05-2006 I don't really understand if this is needed at all
       //      it was introduced by Isabel T.
       if (zi < 0 && stName.substr(0,3) == "BOG" && is_mirrored) {
-        //	      htcomponent = htcomponent*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg);
+        //	      htcomponent = htcomponent*GeoTrf::RotateX3D(180.*Gaudi::Units::deg);
         //      tubes OK but chambers wrong
-        //	      htcomponent = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg)*htcomponent;
+        //	      htcomponent = GeoTrf::RotateX3D(180.*Gaudi::Units::deg)*htcomponent;
         //      chambers OK but tubes wrong
-        htcomponent = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg)*htcomponent*
-                      GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg);  // turn chambers but go back for tubes
+        htcomponent = GeoTrf::RotateX3D(180.*Gaudi::Units::deg)*htcomponent*
+                      GeoTrf::RotateX3D(180.*Gaudi::Units::deg);  // turn chambers but go back for tubes
       } // ss - 24-05-2006 I don't really understand if this is needed at all
           
       xfaligncomponent = new GeoAlignableTransform(htcomponent);
@@ -926,7 +926,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
                       GeoTrf::TranslateY3D(xpos)*GeoTrf::TranslateZ3D(zpos);
         if (rp->iswap == -1) // this is like amdb iswap 
         {
-          htcomponent = htcomponent*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg);
+          htcomponent = htcomponent*GeoTrf::RotateY3D(180*Gaudi::Units::deg);
         }
         xfaligncomponent = new GeoAlignableTransform(htcomponent);
         //xfrpccomponent.push_back(xfcomponent);
@@ -986,7 +986,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
       if (is_mirrored) xpos = -xpos;
       htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateY3D(xpos)*GeoTrf::TranslateZ3D(zpos);
       //if (stname == "BMS" && (zi == -2 || zi == -4) && c->name == "DED03") 
-      //   htcomponent = htcomponent*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg);
+      //   htcomponent = htcomponent*GeoTrf::RotateY3D(180*Gaudi::Units::deg);
       xfcomponent = new GeoTransform(htcomponent);
 
       bool dedCutoutFlag = (stname == "BOS" && std::abs(zi) == 6) ||
@@ -1450,25 +1450,25 @@ MuonChamber::build(MuonDetectorManager* manager, int zi,
           if    (zi <= 0 && !is_mirrored) {
             // the special cases 
             doubletZ = 1;
-            if (zpos<-zdivision*GeoModelKernelUnits::mm)    doubletZ=2;
-            if (fabs(xpos) > 100.*GeoModelKernelUnits::mm && ndbz[doubletR-1] > 2) {
+            if (zpos<-zdivision*Gaudi::Units::mm)    doubletZ=2;
+            if (fabs(xpos) > 100.*Gaudi::Units::mm && ndbz[doubletR-1] > 2) {
               doubletZ = 3;
               nfields++;
             }
-            if (fabs(xpos) > 100.*GeoModelKernelUnits::mm ) ndbz[doubletR-1]--;
+            if (fabs(xpos) > 100.*Gaudi::Units::mm ) ndbz[doubletR-1]--;
           } else {
             doubletZ = 1;
-            if (zpos > zdivision*GeoModelKernelUnits::mm) doubletZ=2;
-            if (fabs(xpos) > 100.*GeoModelKernelUnits::mm && ndbz[doubletR-1] > 2) {
+            if (zpos > zdivision*Gaudi::Units::mm) doubletZ=2;
+            if (fabs(xpos) > 100.*Gaudi::Units::mm && ndbz[doubletR-1] > 2) {
               doubletZ = 3;
               nfields++;
             }
-            if (fabs(xpos) > 100.*GeoModelKernelUnits::mm ) ndbz[doubletR-1]--;
+            if (fabs(xpos) > 100.*Gaudi::Units::mm ) ndbz[doubletR-1]--;
           }
 
           int dbphi = 1;
 	  //std::cout<<stName<<" ----------------------------------- dbphi = "<<dbphi<<std::endl;
-          if (xpos > 400.*GeoModelKernelUnits::mm) dbphi = 2; // this special patch is needed for BMS in the ribs where xpos is ~950mm; the theshold to 100mm (too low) caused a bug
+          if (xpos > 400.*Gaudi::Units::mm) dbphi = 2; // this special patch is needed for BMS in the ribs where xpos is ~950mm; the theshold to 100mm (too low) caused a bug
 	  // in BOG at eta +/-4 and stationEta 7 (not 6) ==>> 28 Jan 2016 raising the threshold to 400.mm 
           // doublet phi not aware of pos. in space !!!
 	  //std::cout<<" dbphi reset to  "<<dbphi<<" due to xpos "<< xpos <<" >10cm "<<std::endl;
diff --git a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx
index 5748ed1644d96640f6d5e82a90ea0e33b60697c0..1831ad3eb060b7c1615865d9f578698d2a902963 100755
--- a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx
@@ -52,11 +52,11 @@
 #include "GeoModelKernel/GeoIdentifierTag.h"
 #include "GeoModelKernel/GeoPerfUtils.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
 #include "GeoPrimitives/CLHEPtoEigenConverter.h"
 #include "GeoModelInterfaces/StoredMaterialManager.h"
 
 #include "StoreGate/StoreGateSvc.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include "GeoGenericFunctions/Variable.h"
 
@@ -95,15 +95,15 @@ namespace MuonGM {
   {
     MsgStream log(Athena::getMessageSvc(), "MuonGeoModel");
     m_muon = new MuonSystemDescription( "MuonSystem" );
-    m_muon->barrelInnerRadius =  4.30*GeoModelKernelUnits::m;
-    m_muon->innerRadius       =  0.07*GeoModelKernelUnits::m;
-    m_muon->outerRadius       = 13.00*GeoModelKernelUnits::m;
-    m_muon->endcapFrontFace   =  6.74*GeoModelKernelUnits::m;
-    m_muon->length            = 22.03*GeoModelKernelUnits::m;
-    m_muon->barreLength       =  6.53*GeoModelKernelUnits::m; 
-    m_muon->barrelInterRadius =  3.83*GeoModelKernelUnits::m;
-    m_muon->extraZ = 12.9*GeoModelKernelUnits::m;
-    m_muon->extraR = 12.5*GeoModelKernelUnits::m;
+    m_muon->barrelInnerRadius =  4.30*Gaudi::Units::m;
+    m_muon->innerRadius       =  0.07*Gaudi::Units::m;
+    m_muon->outerRadius       = 13.00*Gaudi::Units::m;
+    m_muon->endcapFrontFace   =  6.74*Gaudi::Units::m;
+    m_muon->length            = 22.03*Gaudi::Units::m;
+    m_muon->barreLength       =  6.53*Gaudi::Units::m; 
+    m_muon->barrelInterRadius =  3.83*Gaudi::Units::m;
+    m_muon->extraZ = 12.9*Gaudi::Units::m;
+    m_muon->extraR = 12.5*Gaudi::Units::m;
 
     m_selectedStations = std::vector<std::string>(0);
     m_selectedStEta    = std::vector<int>(0);
@@ -470,7 +470,7 @@ namespace MuonGM {
   
     const GeoMaterial* m4 = theMaterialManager->getMaterial( "std::Air" );
     GeoLogVol*  l4;
-    GeoPcon* c4 = new GeoPcon( 0, 360*GeoModelKernelUnits::deg );
+    GeoPcon* c4 = new GeoPcon( 0, 360*Gaudi::Units::deg );
     //--- --- --- CREATE ENVELOPE --- --- ---
     // First try to get data from the GeomDB
     IRDBRecordset_ptr muonSysRec = m_pRDBAccess->getRecordsetPtr("MuonSystem",OracleTag,OracleNode);
@@ -552,7 +552,7 @@ namespace MuonGM {
   
     // Cannot (yet) cope with this:
     // G4UserLimits *ul=new G4UserLimits;
-    // ul->SetMaxAllowedStep(5*GeoModelKernelUnits::cm);
+    // ul->SetMaxAllowedStep(5*Gaudi::Units::cm);
     // lv->GetLogicalVolume()->SetUserLimits(ul);
   
     m_manager->addTreeTop(p4); // This is the top!
diff --git a/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx b/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx
index 4597fc40b033ac35db5485e8337f1eb7dfd80560..cf2325b57b1628ece2e3e6bcb3a2a8192a840162 100755
--- a/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx
@@ -13,8 +13,7 @@
 #include "RDBAccessSvc/IRDBRecordset.h"
 #include "RDBAccessSvc/IRDBQuery.h"
 #include "MuonReadoutGeometry/TgcReadoutParams.h"
-#include "GeoModelKernel/Units.h"
-
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include "MuonGeoModel/TGC_Technology.h"
 
@@ -421,7 +420,7 @@ void RDBReaderAtlas::ProcessTGCreadout () {
 
     
         int version = (int) (*ggsd)[0]->getDouble("VERS");
-        float wirespacing = (*ggsd)[0]->getDouble("WIRESP")*GeoModelKernelUnits::cm;
+        float wirespacing = (*ggsd)[0]->getDouble("WIRESP")*Gaudi::Units::cm;
         log<<MSG::INFO
            <<" ProcessTGCreadout - version "<<version<<" wirespacing "<<wirespacing<<endmsg;
     
@@ -519,7 +518,7 @@ void RDBReaderAtlas::ProcessTGCreadout () {
         IRDBRecordset_ptr ggln = m_pRDBAccess->getRecordsetPtr("GGLN",m_geoTag,m_geoNode);
 
         int version = (int) (*ggln)[0]->getInt("VERS");
-        float wirespacing = (*ggln)[0]->getFloat("WIRESP")*GeoModelKernelUnits::mm;
+        float wirespacing = (*ggln)[0]->getFloat("WIRESP")*Gaudi::Units::mm;
         log<<MSG::INFO
            <<" ProcessTGCreadout - version "<<version<<" wirespacing "<<wirespacing<<endmsg;
 
@@ -618,11 +617,11 @@ void RDBReaderAtlas::ProcessTGCreadout () {
 	    tgc->offsetWireSupport[0] = (*ggln)[ich]->getFloat("SP1WI");
 	    tgc->offsetWireSupport[1] = (*ggln)[ich]->getFloat("SP2WI");
 	    tgc->offsetWireSupport[2] = (*ggln)[ich]->getFloat("SP3WI");
-	    tgc->angleTilt            = (*ggln)[ich]->getFloat("TILT")*GeoModelKernelUnits::deg;
+	    tgc->angleTilt            = (*ggln)[ich]->getFloat("TILT")*Gaudi::Units::deg;
 	    tgc->radiusButton         = (*ggln)[ich]->getFloat("SP1BU");
 	    tgc->pitchButton[0]       = (*ggln)[ich]->getFloat("SP2BU");
 	    tgc->pitchButton[1]       = (*ggln)[ich]->getFloat("SP3BU");
-	    tgc->angleButton          = (*ggln)[ich]->getFloat("SP4BU")*GeoModelKernelUnits::deg;
+	    tgc->angleButton          = (*ggln)[ich]->getFloat("SP4BU")*Gaudi::Units::deg;
 
         }
     }
diff --git a/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx b/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx
index d447b0c9037697ebabaa095760eba02aa8bcf71b..050fe4aa697dd69f7a7d4be18f72b284fba55646 100755
--- a/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx
@@ -20,7 +20,7 @@
 #include "GeoModelKernel/GeoShapeSubtraction.h"
 #include "GeoModelKernel/GeoShapeIntersection.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include <iomanip>
 #include <cassert>
@@ -281,7 +281,7 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson,
      GeoTransform* tugg = new GeoTransform(GeoTrf::TranslateX3D(newpos) );
      if (RPCprint) std::cout<< " Rpc:: put upper RPC layer at " << newpos
                             << " from centre " << std::endl;
-     GeoTransform* rugg = new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) );
+     GeoTransform* rugg = new GeoTransform(GeoTrf::RotateY3D(180*Gaudi::Units::deg) );
      if (!skip_rpc) {
        prpc->add(new GeoIdentifierTag(2));
        prpc->add(tugg);
diff --git a/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx b/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx
index df585ef779642a22971f88b84a4eafcff547227e..7de91280b119321d332713005d88a242e48c35ba 100755
--- a/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx
@@ -20,7 +20,7 @@
 #include "GeoModelKernel/GeoShapeShift.h"
 #include "GeoModelKernel/GeoSerialIdentifier.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 // for cutouts:
 #include "GeoModelKernel/GeoShapeSubtraction.h"
 
@@ -135,7 +135,7 @@ GeoVPhysVol * Spacer::build(int /*cutoutson*/)
 
     for (int k1 = 0; k1 < 2; k1++){
       for (int k = 0; k < 2; k++){
-        GeoTransform* ttube = new GeoTransform(GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg)* GeoTrf::Translate3D(
+        GeoTransform* ttube = new GeoTransform(GeoTrf::RotateX3D(-90*Gaudi::Units::deg)* GeoTrf::Translate3D(
                                                0.,
                                                -(vtubl+tckibeam)/2.-(k-1)*(vtubl+tckibeam),
                                                -length/4.-(k1-1)*length/2));
diff --git a/MuonSpectrometer/MuonGeoModel/src/Station.cxx b/MuonSpectrometer/MuonGeoModel/src/Station.cxx
index d15abe2472823c54b4afa8bf71b019e42d705be9..309c8e8bd25ee0d299c48d33f1c1d326aaf7c766 100755
--- a/MuonSpectrometer/MuonGeoModel/src/Station.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/Station.cxx
@@ -8,8 +8,8 @@
 #include "MuonGeoModel/StandardComponent.h"
 #include "MuonGeoModel/SupComponent.h"
 #include "MuonGeoModel/TgcComponent.h"
-#include "GeoModelKernel/Units.h"
 #include "GaudiKernel/MsgStream.h"
+#include "GaudiKernel/SystemOfUnits.h"
 #include "AthenaKernel/getMessageSvc.h"
 #include <iostream>
 #include <algorithm>
@@ -687,7 +687,7 @@ GeoTrf::Transform3D Station::native_to_tsz_frame( const Position & p ) const {
     {
         if (m_name[0]=='B' )
         {
-            mirrsym = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg);
+            mirrsym = GeoTrf::RotateX3D(180.*Gaudi::Units::deg);
         }
     }
 
@@ -732,10 +732,10 @@ GeoTrf::Transform3D Station::native_to_tsz_frame( const Position & p ) const {
     }
 
     // // define the rotations by alpha, beta, gamma
-    // GeoTrf::Rotate3D ralpha = GeoTrf::RotateX3D(p.alpha*GeoModelKernelUnits::deg);
-    // GeoTrf::Rotate3D rbeta  = GeoTrf::RotateZ3D(p.beta*GeoModelKernelUnits::deg);
+    // GeoTrf::Rotate3D ralpha = GeoTrf::RotateX3D(p.alpha*Gaudi::Units::deg);
+    // GeoTrf::Rotate3D rbeta  = GeoTrf::RotateZ3D(p.beta*Gaudi::Units::deg);
     // GeoTrf::Rotate3D rgamma;
-    // rgamma = GeoTrf::RotateY3D(p.gamma*GeoModelKernelUnits::deg);
+    // rgamma = GeoTrf::RotateY3D(p.gamma*Gaudi::Units::deg);
     // log<<MSG::VERBOSE<<" gamma is not changing sign - original "<<p.gamma<<" new one "<<p.gamma<<endmsg;
     // log<<MSG::VERBOSE<<" alpha / beta "<<p.alpha<<" "<<p.beta<<endmsg;
 
@@ -768,10 +768,10 @@ GeoTrf::Transform3D Station::tsz_to_global_frame( const Position & p ) const {
       }
     else
         RAD=p.radius;
-    vec.x() = RAD*cos(p.phi*GeoModelKernelUnits::deg);
-    vec.x() = vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg);
-    vec.y() = RAD*sin(p.phi*GeoModelKernelUnits::deg);
-    vec.y() = vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg);
+    vec.x() = RAD*cos(p.phi*Gaudi::Units::deg);
+    vec.x() = vec.x()-p.shift*sin((p.phi)*Gaudi::Units::deg);
+    vec.y() = RAD*sin(p.phi*Gaudi::Units::deg);
+    vec.y() = vec.y()+p.shift*cos((p.phi)*Gaudi::Units::deg);
     // 
     if (p.isMirrored)
         if ( (p.isBarrelLike) || (m_name[0]=='B') )
@@ -805,9 +805,9 @@ GeoTrf::Transform3D Station::tsz_to_global_frame( const Position & p ) const {
 
     /////// NEWEWEWWEWEWEWEWEWEWEWEWEW
     // // define the rotations by alpha, beta, gamma
-    GeoTrf::RotateX3D ralpha(p.alpha*GeoModelKernelUnits::deg);
-    GeoTrf::RotateZ3D rbeta(p.beta*GeoModelKernelUnits::deg);
-    GeoTrf::RotateY3D rgamma(p.gamma*GeoModelKernelUnits::deg);
+    GeoTrf::RotateX3D ralpha(p.alpha*Gaudi::Units::deg);
+    GeoTrf::RotateZ3D rbeta(p.beta*Gaudi::Units::deg);
+    GeoTrf::RotateY3D rgamma(p.gamma*Gaudi::Units::deg);
     if (pLvl) {
       log<<MSG::VERBOSE<<" gamma is not changing sign - original "<<p.gamma<<" new one "<<p.gamma<<endmsg;
       log<<MSG::VERBOSE<<" alpha / beta "<<p.alpha<<" "<<p.beta<<endmsg;
@@ -824,29 +824,29 @@ GeoTrf::Transform3D Station::tsz_to_global_frame( const Position & p ) const {
     if ( m_name[0]=='B' || p.isBarrelLike )
     {    
         // here all Barrel chambers 
-        nominalTransf =  GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg);
+        nominalTransf =  GeoTrf::RotateZ3D(p.phi*Gaudi::Units::deg);
     }
     else
     {
 // replace this with the folowing lines 8/06/2006 SS because, EC not mirrored chambers have anyway to be rotated
 // by 180deg around z to mov ecoherently their local reference frame and the tube-layer numbering
 //         if ( p.z>=0 || ( p.z<0 && !(p.isMirrored) ) ){
-//             nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*
-// 					    GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg));
+//             nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*
+// 					    GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg));
 //         }
 //         else if (p.z<0 && p.isMirrored){
-//             nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*
-//                                             GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)*
-//                                             GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg));
+//             nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*
+//                                             GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)*
+//                                             GeoTrf::RotateZ3D(180*Gaudi::Units::deg));
 //         }
         if ( p.z>=0 ){
-            nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*
-					    GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg));
+            nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*
+					    GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg));
         }
         else if ( p.z<0 ){
-            nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*
-                                            GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)*
-                                            GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg));
+            nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*
+                                            GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)*
+                                            GeoTrf::RotateZ3D(180*Gaudi::Units::deg));
         }
 	else log << MSG::WARNING<<" AAAAAA problem here p.z, mirrored "
 		    <<p.z<<" "<<p.isMirrored<<endmsg;
@@ -1038,13 +1038,13 @@ double Station::getAmdbOrigine_along_thickness() const
 //     if (m_name[0]=='B') {
 //         // defining the position of the centre of any station
 //         // here using the stations in DBSC (described in amdb + the ones at z<0)
-//         vec.setX((p.radius+GetThickness()/2.)*cos(p.phi*GeoModelKernelUnits::deg));
-//         vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg));
-//         vec.setY((p.radius+GetThickness()/2.)*sin(p.phi*GeoModelKernelUnits::deg));
-//         vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg));
+//         vec.setX((p.radius+GetThickness()/2.)*cos(p.phi*Gaudi::Units::deg));
+//         vec.setX(vec.x()-p.shift*sin((p.phi)*Gaudi::Units::deg));
+//         vec.setY((p.radius+GetThickness()/2.)*sin(p.phi*Gaudi::Units::deg));
+//         vec.setY(vec.y()+p.shift*cos((p.phi)*Gaudi::Units::deg));
 //         vec.setZ(p.z+GetLength()/2.);
-//         AMDBorgTranslation = GeoTrf::Translate3D(GetThickness()*cos(p.phi*GeoModelKernelUnits::deg)/2.,
-//                                             GetThickness()*sin(p.phi*GeoModelKernelUnits::deg)/2.,
+//         AMDBorgTranslation = GeoTrf::Translate3D(GetThickness()*cos(p.phi*Gaudi::Units::deg)/2.,
+//                                             GetThickness()*sin(p.phi*Gaudi::Units::deg)/2.,
 //                                             GetLength()/2.);
 //     }
 //     else {      // if (m_name[0]=='T')
@@ -1057,18 +1057,18 @@ double Station::getAmdbOrigine_along_thickness() const
 //             RAD=p.radius;
 //         if (m_name[0]!='C')
 //         {
-//             vec.setX((RAD+GetLength()/2.)*cos(p.phi*GeoModelKernelUnits::deg));
-//             vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg));
-//             vec.setY((RAD+GetLength()/2.)*sin(p.phi*GeoModelKernelUnits::deg));
-//             vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg));
+//             vec.setX((RAD+GetLength()/2.)*cos(p.phi*Gaudi::Units::deg));
+//             vec.setX(vec.x()-p.shift*sin((p.phi)*Gaudi::Units::deg));
+//             vec.setY((RAD+GetLength()/2.)*sin(p.phi*Gaudi::Units::deg));
+//             vec.setY(vec.y()+p.shift*cos((p.phi)*Gaudi::Units::deg));
 //             vec.setZ(p.z+GetThickness()/2.);
 //         }
 //         else
 //         {
-//             vec.setX(RAD*cos(p.phi*GeoModelKernelUnits::deg));
-//             vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg));
-//             vec.setY(RAD*sin(p.phi*GeoModelKernelUnits::deg));
-//             vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg));
+//             vec.setX(RAD*cos(p.phi*Gaudi::Units::deg));
+//             vec.setX(vec.x()-p.shift*sin((p.phi)*Gaudi::Units::deg));
+//             vec.setY(RAD*sin(p.phi*Gaudi::Units::deg));
+//             vec.setY(vec.y()+p.shift*cos((p.phi)*Gaudi::Units::deg));
 //             if (p.z>0) vec.setZ(p.z);
 //             else vec.setZ(p.z+GetThickness());
 //         }
@@ -1082,31 +1082,31 @@ double Station::getAmdbOrigine_along_thickness() const
 //     const HepVector3D phiaxis = HepVector3D(-raxis.y(), raxis.x(), 0.); // phi = z cross r
 //     // order of extra rotations is alpha(r), then beta(z), then gamma(phi)
 //     GeoTrf::Rotate3D ralpha, rbeta, rgamma;
-//     ralpha = GeoTrf::Rotate3D(p.alpha*GeoModelKernelUnits::deg, raxis);
-//     rbeta  = GeoTrf::Rotate3D(p.beta*GeoModelKernelUnits::deg,  zaxis);
+//     ralpha = GeoTrf::Rotate3D(p.alpha*Gaudi::Units::deg, raxis);
+//     rbeta  = GeoTrf::Rotate3D(p.beta*Gaudi::Units::deg,  zaxis);
 //     if ( p.zindex<0 && !(m_name[0] == 'B') ) {
-//         rgamma = GeoTrf::Rotate3D(p.gamma*GeoModelKernelUnits::deg, phiaxis);
+//         rgamma = GeoTrf::Rotate3D(p.gamma*Gaudi::Units::deg, phiaxis);
 //         //            if (m_name[0]=='C') log << MSG::DEBUG <<"zi,fi  gamma applied "<<m_name<<" "<<p.zindex<<" "<<p.phiindex<<" "<<p.gamma<<endmsg;
 //     }
 //     else {
-//         rgamma = GeoTrf::Rotate3D(-p.gamma*GeoModelKernelUnits::deg, phiaxis);
+//         rgamma = GeoTrf::Rotate3D(-p.gamma*Gaudi::Units::deg, phiaxis);
 //         //            if (m_name[0]=='C') log << MSG::DEBUG<<"zi,fi  gamma applied "<<m_name<<" "<<p.zindex<<" "<<p.phiindex<<" "<<-p.gamma<<endmsg;
 //     }
 //     if (m_name[0]=='B' || p.isBarrelLike)
 //     {
 //         // here all Barrel chambers
-//         if (p.isMirrored) nominalTransf = GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg);
-//         else nominalTransf =  GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg);
+//         if (p.isMirrored) nominalTransf = GeoTrf::RotateZ3D(p.phi*Gaudi::Units::deg)*GeoTrf::RotateX3D(180.*Gaudi::Units::deg);
+//         else nominalTransf =  GeoTrf::RotateZ3D(p.phi*Gaudi::Units::deg);
 //     }
 //     else
 //     {
 //         if ( p.z>=0 || ( p.z<0 && !(p.isMirrored) ) ){
-//             nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg));
+//             nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg));
 //         }
 //         else if (p.z<0 && p.isMirrored){
-//             nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*
-//                                             GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)*
-//                                             GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg));
+//             nominalTransf =  GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*Gaudi::Units::deg)*
+//                                             GeoTrf::RotateX3D(p.phi*Gaudi::Units::deg-180*Gaudi::Units::deg)*
+//                                             GeoTrf::RotateZ3D(180*Gaudi::Units::deg));
 //         }
 //         else log << MSG::WARNING<<" AAAAAA problem here p.z, mirrored "
 // 	        <<p.z<<" "<<p.isMirrored<<endmsg;
@@ -1114,7 +1114,7 @@ double Station::getAmdbOrigine_along_thickness() const
 //     GeoTrf::Transform3D transf;
 //     if (m_name[0]!='C') transf = GeoTrf::Translate3D(vec)*rgamma*rbeta*ralpha*nominalTransf;
 //     else transf = GeoTrf::Translate3D(vec)*nominalTransf*
-//                   GeoTrf::RotateY3D(p.gamma*GeoModelKernelUnits::deg)*
+//                   GeoTrf::RotateY3D(p.gamma*Gaudi::Units::deg)*
 //                   GeoTrf::Translate3D(GetThickness()/2.,0.,GetLength()/2.);
 //     return transf;
 // }
diff --git a/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx b/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx
index 3abfde6a635ad8a3a4969d568f6f3db88b0c424d..e8871b0443011b2e92066f4e19f4fc0917c1ffe2 100755
--- a/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx
+++ b/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx
@@ -24,6 +24,7 @@
 #include "GeoModelKernel/GeoShapeSubtraction.h"
 #include "GeoModelKernel/GeoShapeIntersection.h"
 #include "GeoModelKernel/GeoShapeShift.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #define skip_tgc false
 
@@ -119,11 +120,11 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef)
 
 	// wire supports
 	GeoTrd* strdsup = new GeoTrd(t->tck[i]/2, t->tck[i]/2, t->widthWireSupport/2,
-                                     t->widthWireSupport/2, lengthActive/2-0.1*GeoModelKernelUnits::mm);
+                                     t->widthWireSupport/2, lengthActive/2-0.1*Gaudi::Units::mm);
 	// button supports
 	GeoTube* stubesup = new GeoTube(0., t->radiusButton,
-					    t->tck[i]/2.+0.005*GeoModelKernelUnits::mm);
-	GeoTrf::RotateY3D rotY(3.14159264/2.*GeoModelKernelUnits::rad);
+					    t->tck[i]/2.+0.005*Gaudi::Units::mm);
+	GeoTrf::RotateY3D rotY(3.14159264/2.*Gaudi::Units::rad);
 	  
 	int iymin = int( -(widthActive/2. + lengthActive*tan(t->angleTilt) - t->widthWireSupport/2.
 			  + t->offsetWireSupport[iSenLyr])/t->distanceWireSupport );
@@ -188,7 +189,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef)
                 GeoTrd* strdsupex = new GeoTrd(t->tck[i]/2, t->tck[i]/2,
                                                t->widthWireSupport/2,
                                                t->widthWireSupport/2,
-                                               lengthWireSupportEx/2-0.1*GeoModelKernelUnits::mm);
+                                               lengthWireSupportEx/2-0.1*Gaudi::Units::mm);
                 GeoTrf::Translate3D vtrans(0.,
 					   t->offsetWireSupport[iSenLyr]+t->distanceWireSupport*isupy + lengthActive/2.*tan(sign*t->angleTilt),
 					   (lengthActive-lengthWireSupportEx)/2.);
@@ -202,7 +203,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef)
 	  			 + t->offsetWireSupport[iSenLyr]
 				       +lengthActive*tan( t->angleTilt))
 		                      -(-widthActive/2.);
-            if (widthLeftTrd > 8.*GeoModelKernelUnits::cm) {
+            if (widthLeftTrd > 8.*Gaudi::Units::cm) {
               double yLongBase;
               if ((name == "TGC01" || name == "TGC06" || name == "TGC12") &&
 	   	      t->distanceWireSupport*(iymin-1)+t->offsetWireSupport[iSenLyr]
@@ -230,7 +231,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef)
 					+t->offsetWireSupport[iSenLyr]
 					+lengthActive*tan(-t->angleTilt));
 	      
-            if (widthRightTrd > 8.*GeoModelKernelUnits::cm) {
+            if (widthRightTrd > 8.*Gaudi::Units::cm) {
               double yLongBase;
               if ((name == "TGC01" || name == "TGC06" || name == "TGC12") &&
 		      t->distanceWireSupport*(iymax+1)+t->offsetWireSupport[iSenLyr]
diff --git a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx
index 0533d79f2ecba4977cc7ce9fba521d5a5f10ab91..e62ddccfe22e7d82346aff251d29f4795c03d2ef 100755
--- a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx
+++ b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx
@@ -36,7 +36,7 @@
 #include "GeoModelKernel/GeoPara.h"
 #include "GeoModelKernel/GeoVolumeCursor.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 // #define DEBUG
 #ifdef DEBUG
@@ -50,7 +50,7 @@ namespace {
 	//commonly used axes
 	const Amg::Vector3D gXAxis(1.0, 0.0, 0.0), gYAxis(0.0, 1.0, 0.0), gZAxis(0.0, 0.0, 1.0);
 	//commonly used angles, ±90°, 180°
-	const double p90deg(90.0 * GeoModelKernelUnits::deg), m90deg(-90.0 * GeoModelKernelUnits::deg), p180deg(180.0 * GeoModelKernelUnits::deg);
+	const double p90deg(90.0 * Gaudi::Units::deg), m90deg(-90.0 * Gaudi::Units::deg), p180deg(180.0 * Gaudi::Units::deg);
 }
 
 
diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h
index b61bbc46678f624d04de2cffc721c09471dc3c53..14de776de45eaa3e356c2a640589146953075ea3 100644
--- a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h
+++ b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h
@@ -7,7 +7,7 @@
 
 #include "VP1Base/VP1Controller.h"
 #include "VP1CaloSystems/VP1CaloCells.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 #include <QByteArray>
 #include <QString>
 #include <map>
@@ -114,7 +114,7 @@ class VP1CaloCellController : public VP1Controller
   //For verbose output:
   template <class T> static QString toString( const T& t ) { return VP1Controller::toString(t); }//unhide base methods
   static QString toString(const VP1CCIntervalMap& m) { return "VP1CCIntervalMap of size "+QString::number(m.count()); }
-  static QString toString(const QPair<bool,double>& par) { return "<"+QString(par.first?"log":"linear")+", "+QString::number(par.second/(GeoModelKernelUnits::cm/GeoModelKernelUnits::GeV))+" cm/GeV>"; }
+  static QString toString(const QPair<bool,double>& par) { return "<"+QString(par.first?"log":"linear")+", "+QString::number(par.second/(Gaudi::Units::cm/Gaudi::Units::GeV))+" cm/GeV>"; }
   static QString toString(const VP1CC_GlobalCuts& cuts) { return "VP1CC global cuts: sideA=" + QString(cuts.sideA?"True":"False") + ", sideC=" + QString(cuts.sideC?"True":"False") + ", allowedEta=" + VP1Controller::toString(cuts.allowedEta) + ", allowedPhi="  + VP1Controller::toString(cuts.allowedEta); }
 
 //  // FIXME:You have to compile Qwt with Qt5. LCG's Qwt is compiled with Qt4 only...
diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h
index 7b00191e1d9506191e1d7b35f47178a5bba97630..b6afc456c7bfd95911badf9e4c871aa2a559dbff 100644
--- a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h
+++ b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h
@@ -12,7 +12,7 @@
 
 #include "GeoPrimitives/GeoPrimitives.h"
 #include "GeoModelKernel/GeoDefinitions.h"
-#include "GeoModelKernel/Units.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 #include <map>
 #include <set>
@@ -187,7 +187,7 @@ class VP1CaloCell
             const VP1CC_GlobalCuts& ) = 0;
 
   double cellDepth(const QPair<bool,double>& scale, const double& energy)
-  { return std::max(1.0*GeoModelKernelUnits::mm,scale.second*(scale.first?log(1+fabs(energy)):fabs(energy))); }
+  { return std::max(1.0*Gaudi::Units::mm,scale.second*(scale.first?log(1+fabs(energy)):fabs(energy))); }
 
   virtual bool isInsideClipVolume(const VP1CC_GlobalCuts&  globalCuts) ; // by default uses radius to determine this
   
diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx
index c275a81ab16e0ea0874aa6a04389880bb24e526d..52655ba56dfde8c76749a194be0a5abdea5a8501 100644
--- a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx
+++ b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx
@@ -39,9 +39,7 @@
 */
 
 #include <QVector>
-
-#include "CLHEP/Units/SystemOfUnits.h"
-
+#include "GaudiKernel/SystemOfUnits.h"
 #include <map>
 
 // -------------------- Imp -------------------------------
@@ -1137,7 +1135,7 @@ VP1CCIntervalMap VP1CaloCellController::selectionIntervals() const
 
 QPair<bool,double> VP1CaloCellController::scale() const
 {
-	double scl = m_d->ui_visopts.chbxLogscale->isChecked() ? m_d->ui_visopts.dspbxScale->value()*GeoModelKernelUnits::m/log(1+10*GeoModelKernelUnits::GeV) : m_d->ui_visopts.dspbxScale->value()*GeoModelKernelUnits::m/(10*GeoModelKernelUnits::GeV);
+	double scl = m_d->ui_visopts.chbxLogscale->isChecked() ? m_d->ui_visopts.dspbxScale->value()*Gaudi::Units::m/log(1+10*Gaudi::Units::GeV) : m_d->ui_visopts.dspbxScale->value()*Gaudi::Units::m/(10*Gaudi::Units::GeV);
 	return QPair<bool,double>(m_d->ui_visopts.chbxLogscale->isChecked(),scl);
 }
 
diff --git a/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx b/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx
index dec8091d1fe4688b73a66fefa83cef202ea222d7..7a1985019af76488602901d270d67e08de7936cc 100644
--- a/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx
+++ b/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx
@@ -14,7 +14,6 @@
 #include "GeoModelKernel/GeoTessellatedSolid.h"
 #include "GeoModelKernel/GeoFacet.h"
 #include "GeoModelKernel/GeoGenericTrap.h"
-#include "GeoModelKernel/Units.h"
 #include "GeoSpecialShapes/LArCustomShape.h"
 #include "GeoSpecialShapes/LArWheelCalculator.h"
 #include "VP1HEPVis/nodes/SoTubs.h"
@@ -27,6 +26,7 @@
 #include "VP1HEPVis/nodes/SoPolyhedron.h"
 #include "VP1HEPVis/VP1HEPVisUtils.h"
 #include "VP1Utils/SbPolyhedrizeAction.h"
+#include "GaudiKernel/SystemOfUnits.h"
 
 SoVisualizeAction::SoVisualizeAction()
   : m_shape(0)
@@ -155,11 +155,11 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom)
   static const double eta_low = 1.375;
 
 
-  //  static const double zWheelRefPoint       = 3689.5*GeoModelKernelUnits::mm;  //=endg_z0
-  static const double dMechFocaltoWRP      = 3691. *GeoModelKernelUnits::mm;  //=endg_z1
-  //  static const double dElecFocaltoWRP      = 3689. *GeoModelKernelUnits::mm;  //=endg_dcf
-  static const double dWRPtoFrontFace      =   11. *GeoModelKernelUnits::mm;
-  static const double rOuterCutoff         = 2034. *GeoModelKernelUnits::mm;  //=endg_rlimit
+  //  static const double zWheelRefPoint       = 3689.5*Gaudi::Units::mm;  //=endg_z0
+  static const double dMechFocaltoWRP      = 3691. *Gaudi::Units::mm;  //=endg_z1
+  //  static const double dElecFocaltoWRP      = 3689. *Gaudi::Units::mm;  //=endg_dcf
+  static const double dWRPtoFrontFace      =   11. *Gaudi::Units::mm;
+  static const double rOuterCutoff         = 2034. *Gaudi::Units::mm;  //=endg_rlimit
 
 
   SoLAr::initClass();
@@ -182,7 +182,7 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom)
     rInner[1] = zWheelBackFace  * tanThetaInner;
     // Note that there is a 3mm gap between the outer surface of the
     // inner wheel and the inner surface of the outer wheel.
-    double HalfGapBetweenWheels = 0.15*GeoModelKernelUnits::cm;  // In DB EMECGEOMETRY.DCRACK
+    double HalfGapBetweenWheels = 0.15*Gaudi::Units::cm;  // In DB EMECGEOMETRY.DCRACK
     rOuter[0] = zWheelFrontFace * tanThetaMid - HalfGapBetweenWheels;
     rOuter[1] = zWheelBackFace  * tanThetaMid - HalfGapBetweenWheels;
     solar->fRmin.setValues(0,2,rInner);
@@ -202,7 +202,7 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom)
     double zWheelBackFace = zWheelFrontFace + calc->GetWheelThickness();
     // Note that there is a 3mm gap between the outer surface of the
     // inner wheel and the inner surface of the outer wheel.
-    double HalfGapBetweenWheels = 0.15*GeoModelKernelUnits::cm;  // In DB! (EMECGEOMETRY.DCRACK);
+    double HalfGapBetweenWheels = 0.15*Gaudi::Units::cm;  // In DB! (EMECGEOMETRY.DCRACK);
     rInner[0] = zWheelFrontFace * tanThetaMid + HalfGapBetweenWheels;
     rInner[2] = zWheelBackFace  * tanThetaMid + HalfGapBetweenWheels;
     rOuter[0] = zWheelFrontFace * tanThetaOuter;