diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/ConeLayer.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/ConeLayer.h
index 6cb89d455ccae1d1f7bed1ee902874a0458042ee..cca967afd68ad6c722bcf6a55f529acd4123d643 100644
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/ConeLayer.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/ConeLayer.h
@@ -95,27 +95,35 @@ namespace Trk {
     
       /** getting the MaterialProperties back - for post-update*/ 
       virtual double  postUpdateMaterialFactor(const Trk::TrackParameters& par, Trk::PropDirection dir) const override;
-   
+
       /** move the Layer */
-      virtual void moveLayer(Amg::Transform3D& shift) override;
+      virtual void moveLayer(Amg::Transform3D& shift) override final;
 
       /** move the Layer */
-      virtual void moveLayer ATLAS_NOT_THREAD_SAFE (Amg::Transform3D& shift) const override{
-       const_cast<ConeLayer*>(this)->moveLayer(shift); 
+      virtual void moveLayer
+      ATLAS_NOT_THREAD_SAFE(Amg::Transform3D& shift) const override final
+      {
+        const_cast<ConeLayer*>(this)->moveLayer(shift);
       };
 
     private:
       /** Resize the layer to the tracking volume - not (yet) supported for ConeLayer */ 
      void resize(const VolumeBounds&, double) const {}
- 
-     /** Resize the layer to the tracking volume - not supported since this an entry layer method*/ 
-    virtual void resizeAndRepositionLayer(const VolumeBounds&, const Amg::Vector3D&, double)  override {}       
 
-      
-    /** Resize the layer to the tracking volume - not supported since this an entry layer method*/ 
-    virtual void resizeAndRepositionLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
-                                                                const Amg::Vector3D&, double) const override {}       
-      
+     /** Resize the layer to the tracking volume - not supported since this an
+      * entry layer method*/
+     virtual void resizeAndRepositionLayer(const VolumeBounds&,
+                                           const Amg::Vector3D&,
+                                           double) override final
+     {}
+
+     /** Resize the layer to the tracking volume - not supported since this an
+      * entry layer method*/
+     virtual void resizeAndRepositionLayer
+     ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
+                           const Amg::Vector3D&,
+                           double) const override final
+     {}
   };
  
 } // end of namespace
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/CylinderLayer.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/CylinderLayer.h
index e755a68cd7d8942603888ed9fba9529af5329259..05a102ecdf92fecdd1275ed71622dbb108853c9b 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/CylinderLayer.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/CylinderLayer.h
@@ -135,47 +135,57 @@ class OverlapDescriptor;
                                                  const BoundaryCheck& bcheck,
                                                  bool resolveSubSurfaces = 0,
                                                  const ICompatibilityEstimator* ice = nullptr) const override;
-        
-       /** move the Layer */
-       virtual void moveLayer ( Amg::Transform3D& shift ) override;
- 
-       /** move the Layer */
-       virtual void moveLayer ATLAS_NOT_THREAD_SAFE ( Amg::Transform3D& shift ) const override{
-           const_cast<CylinderLayer*>(this)->moveLayer(shift);
-       }
-     
-     private:   
-       /** Resize the layer to the tracking volume - only works for CylinderVolumeBouns */ 
-       virtual void resizeLayer(const VolumeBounds& vBounds, double envelope) override;        
-   
-       /** Resize the layer to the tracking volume - only works for CylinderVolumeBouns */
-       virtual void resizeLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds& vBounds,
-                                                      double envelope) const override
+
+        /** move the Layer */
+        virtual void moveLayer(Amg::Transform3D& shift) override final;
+
+        /** move the Layer */
+        virtual void moveLayer
+        ATLAS_NOT_THREAD_SAFE(Amg::Transform3D& shift) const override final
+        {
+          const_cast<CylinderLayer*>(this)->moveLayer(shift);
+        }
+
+     private:
+       /** Resize the layer to the tracking volume - only works for
+        * CylinderVolumeBouns */
+       virtual void resizeLayer(const VolumeBounds& vBounds,
+                                double envelope) override final;
+
+       /** Resize the layer to the tracking volume - only works for
+        * CylinderVolumeBouns */
+       virtual void resizeLayer
+       ATLAS_NOT_THREAD_SAFE(const VolumeBounds& vBounds,
+                             double envelope) const override final
        {
-         const_cast<CylinderLayer*>(this)->resizeLayer(vBounds,envelope);
+         const_cast<CylinderLayer*>(this)->resizeLayer(vBounds, envelope);
        }
 
        /** Resize the layer to the tracking volume */
        virtual void resizeAndRepositionLayer(const VolumeBounds& vBounds,
                                              const Amg::Vector3D& cCenter,
-                                             double envelope) override;
+                                             double envelope) override final;
 
        /** Resize the layer to the tracking volume */
        virtual void resizeAndRepositionLayer
        ATLAS_NOT_THREAD_SAFE(const VolumeBounds& vBounds,
                              const Amg::Vector3D& cCenter,
-                             double envelope) const override
+                             double envelope) const override final
        {
-         const_cast<CylinderLayer*>(this)->resizeAndRepositionLayer(vBounds,cCenter,envelope);
+         const_cast<CylinderLayer*>(this)->resizeAndRepositionLayer(
+           vBounds, cCenter, envelope);
        }
 
+       /** Surface seen on approach - if not defined differently, it is the
+        * surfaceRepresentation() */
+       const Surface& approachSurface(
+         const Amg::Vector3D& pos,
+         const Amg::Vector3D& dir,
+         const BoundaryCheck& bcheck) const;
+
        /** build approach surfaces */
        void buildApproachDescriptor();
-       
-       /** Surface seen on approach - if not defined differently, it is the surfaceRepresentation() */
-       const Surface& approachSurface(const Amg::Vector3D& pos,
-                                      const Amg::Vector3D& dir,
-                                      const BoundaryCheck& bcheck) const;
+
 
      protected:
        /** surfaces on approach to the layer */
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/DiscLayer.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/DiscLayer.h
index 8bb2b812e1db5720357635ef86ec80e4fb5e1f50..960a8a38270b8b52576aec80af108386d1de9f56 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/DiscLayer.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/DiscLayer.h
@@ -112,38 +112,46 @@ namespace Trk {
         virtual double  postUpdateMaterialFactor(const Trk::TrackParameters& par,
                                                  Trk::PropDirection dir) const override;
 
-       /** move the Layer non-const*/
-       virtual void moveLayer( Amg::Transform3D& shift ) override;
-     
-       /** move the Layer const , performas const_cast */
-       virtual void moveLayer ATLAS_NOT_THREAD_SAFE ( Amg::Transform3D& shift ) const override{
-         const_cast<DiscLayer*> (this)->moveLayer(shift);
-       }
- 
-     private:   
-       /** Resize the layer to the tracking volume - only works for CylinderVolumeBouns */ 
-       virtual void resizeLayer(const VolumeBounds& vBounds, double envelope) override;
+        /** move the Layer non-const*/
+        virtual void moveLayer(Amg::Transform3D& shift) override final;
+
+        /** move the Layer const , performas const_cast */
+        virtual void moveLayer
+        ATLAS_NOT_THREAD_SAFE(Amg::Transform3D& shift) const override final
+        {
+          const_cast<DiscLayer*>(this)->moveLayer(shift);
+        }
+
+     private:
+       /** Resize the layer to the tracking volume - only works for
+        * CylinderVolumeBouns */
+       virtual void resizeLayer(const VolumeBounds& vBounds,
+                                double envelope) override final;
        /** Resize the layer to the tracking volume - only works for
         * CylinderVolumeBouns . performs const cast */
-       virtual void resizeLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds& vBounds,
-                                                      double envelope) const override
+       virtual void resizeLayer
+       ATLAS_NOT_THREAD_SAFE(const VolumeBounds& vBounds,
+                             double envelope) const override final
        {
-         const_cast<DiscLayer*> (this)->resizeLayer(vBounds,envelope);
+         const_cast<DiscLayer*>(this)->resizeLayer(vBounds, envelope);
        }
 
        /** Resize the layer to the tracking volume - not implemented.*/
        virtual void resizeAndRepositionLayer(const VolumeBounds& vBounds,
                                              const Amg::Vector3D& cCenter,
-                                             double envelop) override;
-
-       /** Resize the layer to the tracking volume - not implemented . Performs const cast*/ 
-       virtual void resizeAndRepositionLayer ATLAS_NOT_THREAD_SAFE (const VolumeBounds& vBounds, 
-                                                                    const Amg::Vector3D& cCenter, 
-                                                                    double envelop) const override{
-         const_cast<DiscLayer*> (this)->resizeAndRepositionLayer(vBounds,cCenter,envelop);
+                                             double envelop) override final;
+
+       /** Resize the layer to the tracking volume - not implemented . Performs
+        * const cast*/
+       virtual void resizeAndRepositionLayer
+       ATLAS_NOT_THREAD_SAFE(const VolumeBounds& vBounds,
+                             const Amg::Vector3D& cCenter,
+                             double envelop) const override final
+       {
+         const_cast<DiscLayer*>(this)->resizeAndRepositionLayer(
+           vBounds, cCenter, envelop);
        }
 
-
        /** build approach surfaces */
        void buildApproachDescriptor();
     
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/Layer.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/Layer.h
index 39654a46a8b060b7d86f8c79d7c9541e761246e1..d5f41425c6c02cd7883f9148270ec4a887c970dd 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/Layer.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/Layer.h
@@ -181,24 +181,26 @@ namespace Trk {
                                              const ICompatibilityEstimator* ice = nullptr) const;
 
     /** get compatible surfaces starting from charged parameters */
-    virtual size_t compatibleSurfaces(std::vector<SurfaceIntersection>& cSurfaces,
-			                          const TrackParameters& pars,
-			                          PropDirection pdir,
-			                          const BoundaryCheck& bcheck,
-                                      bool materialSurfacesOnly = true,
-			                          const Surface* startSurface = nullptr,
-			                          const Surface* endSurface = nullptr,
-			                          const ICompatibilityEstimator* ice = nullptr) const;
+    size_t compatibleSurfaces(
+      std::vector<SurfaceIntersection>& cSurfaces,
+      const TrackParameters& pars,
+      PropDirection pdir,
+      const BoundaryCheck& bcheck,
+      bool materialSurfacesOnly = true,
+      const Surface* startSurface = nullptr,
+      const Surface* endSurface = nullptr,
+      const ICompatibilityEstimator* ice = nullptr) const;
 
     /** get compatible surfaces starting from neutral parameters */
-    virtual size_t compatibleSurfaces(std::vector<SurfaceIntersection>& cSurfaces,
-    			                      const NeutralParameters& pars,
-    			                      PropDirection pdir,
-    			                      const BoundaryCheck& bcheck,
-                                      bool materialSurfacesOnly = true,
-    			                      const Surface* startSurface = nullptr,
-    			                      const Surface* endSurface = nullptr,
-    			                      const ICompatibilityEstimator* ice = nullptr) const;
+    size_t compatibleSurfaces(
+      std::vector<SurfaceIntersection>& cSurfaces,
+      const NeutralParameters& pars,
+      PropDirection pdir,
+      const BoundaryCheck& bcheck,
+      bool materialSurfacesOnly = true,
+      const Surface* startSurface = nullptr,
+      const Surface* endSurface = nullptr,
+      const ICompatibilityEstimator* ice = nullptr) const;
 
     /** Has sub-structure method: 
         - sub-structure depending on : 
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/NavigationLayer.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/NavigationLayer.h
index f534f1cfd85ce591a4362500c564cbcc674b88e0..08350ca8c1bc2d0279513b8292d5a85dfdc79e92 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/NavigationLayer.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/NavigationLayer.h
@@ -78,36 +78,39 @@ namespace Trk {
                                                                       
         /** getting the next/overlapping Surface */
         const Surface* overlapSurface(const TrackParameters& tp, const Surface* sf = nullptr) const;
-        
+
         /** move the Layer */
-        virtual void moveLayer( Amg::Transform3D&  )  override;
+        virtual void moveLayer(Amg::Transform3D&) override final;
         /** move the Layer */
-        virtual void moveLayer ATLAS_NOT_THREAD_SAFE ( Amg::Transform3D&  ) const override;
-    protected:
-      /** Resize the layer to the tracking volume - not implemented */
-      virtual void resizeLayer(const VolumeBounds&, double) override {}
-      /** Resize the layer to the tracking volume - not implemented */
-      virtual void resizeLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
-                                                     double) const override
-      {}
-
-      /** Resize the layer to the tracking volume - not implemented */
-      virtual void resizeAndRepositionLayer(const VolumeBounds&,
-                                            const Amg::Vector3D&,
-                                            double) override
-      {}
-      /** Resize the layer to the tracking volume - not implemented */
-      virtual void resizeAndRepositionLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
-                                                                  const Amg::Vector3D&,
-                                                                  double) const override
-      {}
-
-      Surface*
-        m_surfaceRepresentation; //!< for the navigation Volume the surface is a private member */
-
-    private:
-      /**Default Constructor*/
-      NavigationLayer() {}
+        virtual void moveLayer
+        ATLAS_NOT_THREAD_SAFE(Amg::Transform3D&) const override final;
+
+      protected:
+        /** Resize the layer to the tracking volume - not implemented */
+        virtual void resizeLayer(const VolumeBounds&, double) override final {}
+        /** Resize the layer to the tracking volume - not implemented */
+        virtual void resizeLayer
+        ATLAS_NOT_THREAD_SAFE(const VolumeBounds&, double) const override final
+        {}
+
+        /** Resize the layer to the tracking volume - not implemented */
+        virtual void resizeAndRepositionLayer(const VolumeBounds&,
+                                              const Amg::Vector3D&,
+                                              double) override final
+        {}
+        /** Resize the layer to the tracking volume - not implemented */
+        virtual void resizeAndRepositionLayer
+        ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
+                              const Amg::Vector3D&,
+                              double) const override final
+        {}
+
+        Surface* m_surfaceRepresentation; //!< for the navigation Volume the
+                                          //!< surface is a private member */
+
+      private:
+        /**Default Constructor*/
+        NavigationLayer() {}
             
   };
 
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/PlaneLayer.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/PlaneLayer.h
index e4f1fde8daff78a15505faea72d35efca2b4b2de..f5edceef58633a547cf4cb1a6b805f3dc0d9f755 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/PlaneLayer.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/PlaneLayer.h
@@ -187,28 +187,33 @@ class LayerMaterialProperties;
         virtual double  postUpdateMaterialFactor(const Trk::TrackParameters& par,
                                                  Trk::PropDirection dir) const override;
 
-       /** move the Layer */
-        virtual void moveLayer( Amg::Transform3D& shift ) override;
         /** move the Layer */
-        virtual void moveLayer ATLAS_NOT_THREAD_SAFE(Amg::Transform3D& shift) const override
+        virtual void moveLayer(Amg::Transform3D& shift) override final;
+        /** move the Layer */
+        virtual void moveLayer
+        ATLAS_NOT_THREAD_SAFE(Amg::Transform3D& shift) const override final
         {
           const_cast<PlaneLayer*>(this)->moveLayer(shift);
         }
 
      private:
-       /** Resize the layer to the tracking volume - not implemented */ 
-       virtual void resizeLayer(const VolumeBounds&, double) override{}      
        /** Resize the layer to the tracking volume - not implemented */
-       virtual void resizeLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
-                                                      double) const override
+       virtual void resizeLayer(const VolumeBounds&, double) override final {}
+       /** Resize the layer to the tracking volume - not implemented */
+       virtual void resizeLayer
+       ATLAS_NOT_THREAD_SAFE(const VolumeBounds&, double) const override final
        {}
 
-       /** Resize the layer to the tracking volume - not implemented */ 
-       virtual void resizeAndRepositionLayer(const VolumeBounds&, const Amg::Vector3D&, double) override {}
        /** Resize the layer to the tracking volume - not implemented */
-       virtual void resizeAndRepositionLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
-                                                                   const Amg::Vector3D&,
-                                                                   double) const override
+       virtual void resizeAndRepositionLayer(const VolumeBounds&,
+                                             const Amg::Vector3D&,
+                                             double) override final
+       {}
+       /** Resize the layer to the tracking volume - not implemented */
+       virtual void resizeAndRepositionLayer
+       ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
+                             const Amg::Vector3D&,
+                             double) const override final
        {}
   };
 
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/SubtractedCylinderLayer.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/SubtractedCylinderLayer.h
index d59530b839362c54716f95eca9d7f981d7129bf3..285951de520ff720296a8be690c524a0f2e959d6 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/SubtractedCylinderLayer.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/SubtractedCylinderLayer.h
@@ -71,30 +71,37 @@ class OverlapDescriptor;
         using CylinderSurface::insideBounds;
 
         /** move the Layer */
-        virtual void moveLayer( Amg::Transform3D& shift ) override;
+        virtual void moveLayer(Amg::Transform3D& shift) override final;
 
         /** move the Layer */
-        virtual void moveLayer ATLAS_NOT_THREAD_SAFE ( Amg::Transform3D& shift ) const override{
-         const_cast<SubtractedCylinderLayer*> (this)->moveLayer(shift);
+        virtual void moveLayer
+        ATLAS_NOT_THREAD_SAFE(Amg::Transform3D& shift) const override final
+        {
+          const_cast<SubtractedCylinderLayer*>(this)->moveLayer(shift);
         }
 
-
       private:
-       /** Resize the layer to the tracking volume - not implemented*/  
-       virtual void resizeLayer(const VolumeBounds&, double) override {}
-      /** Resize the layer to the tracking volume - not implemented*/  
-       virtual void resizeLayer ATLAS_NOT_THREAD_SAFE (const VolumeBounds&, double) const  override {}
-
-       /** Resize the layer to the tracking volume - not implemented */ 
-       virtual void resizeAndRepositionLayer(const VolumeBounds&, const Amg::Vector3D&, double)   override {}
-
-       /** Resize the layer to the tracking volume - not implemented */
-       virtual void resizeAndRepositionLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
-                                                                   const Amg::Vector3D&,
-                                                                   double) const override
-       {}
+        /** Resize the layer to the tracking volume - not implemented*/
+        virtual void resizeLayer(const VolumeBounds&, double) override final {}
+        /** Resize the layer to the tracking volume - not implemented*/
+        virtual void resizeLayer
+        ATLAS_NOT_THREAD_SAFE(const VolumeBounds&, double) const override final
+        {}
+
+        /** Resize the layer to the tracking volume - not implemented */
+        virtual void resizeAndRepositionLayer(const VolumeBounds&,
+                                              const Amg::Vector3D&,
+                                              double) override final
+        {}
+
+        /** Resize the layer to the tracking volume - not implemented */
+        virtual void resizeAndRepositionLayer
+        ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
+                              const Amg::Vector3D&,
+                              double) const override final
+        {}
   };
- 
+
 } // end of namespace
 
 #endif // TRKGEOMETRY_SUBTRACTEDCYLINDERLAYER_H
diff --git a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/SubtractedPlaneLayer.h b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/SubtractedPlaneLayer.h
index 209def46bd5e97f201e9e42e16b7901e4e82299e..cf6db7f656a9421490d2b9f1610d036b97b21527 100755
--- a/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/SubtractedPlaneLayer.h
+++ b/Tracking/TrkDetDescr/TrkGeometry/TrkGeometry/SubtractedPlaneLayer.h
@@ -66,31 +66,34 @@ namespace Trk {
         double  postUpdateMaterialFactor(const Trk::TrackParameters& par,
                                          Trk::PropDirection dir) const override;
         /** move the Layer */
-        void moveLayer( Amg::Transform3D& shift ) override;
+        virtual void moveLayer(Amg::Transform3D& shift) override final;
 
         /** move the Layer */
-        void moveLayer ATLAS_NOT_THREAD_SAFE ( Amg::Transform3D& shift ) const override{
-         const_cast<SubtractedPlaneLayer*> (this)->moveLayer(shift);
+        virtual void moveLayer
+        ATLAS_NOT_THREAD_SAFE(Amg::Transform3D& shift) const override final
+        {
+          const_cast<SubtractedPlaneLayer*>(this)->moveLayer(shift);
         }
-        
+
     private:
       /** Resize the layer to the tracking volume - not implemented*/
-      void resizeLayer(const VolumeBounds&, double) override {}
+      virtual void resizeLayer(const VolumeBounds&, double) override final {}
       /** Resize the layer to the tracking volume - not implemented*/
-      void resizeLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
-                                                           double) const override
+      virtual void resizeLayer
+      ATLAS_NOT_THREAD_SAFE(const VolumeBounds&, double) const override final
       {}
 
       /** Resize the layer to the tracking volume - not implemented */
-      void resizeAndRepositionLayer(const VolumeBounds&,
+      virtual void resizeAndRepositionLayer(const VolumeBounds&,
                                             const Amg::Vector3D&,
-                                            double) override
+                                            double) override final
       {}
 
       /** Resize the layer to the tracking volume - not implemented */
-      void resizeAndRepositionLayer ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
-                                                                        const Amg::Vector3D&,
-                                                                        double) const override
+      virtual void resizeAndRepositionLayer
+      ATLAS_NOT_THREAD_SAFE(const VolumeBounds&,
+                            const Amg::Vector3D&,
+                            double) const override final
       {}
   };