From dac46db8312ab1d754cf2681dea4dbb7da6d3329 Mon Sep 17 00:00:00 2001
From: Andreas Salzburger <Andreas.Salzburger@cern.ch>
Date: Wed, 22 Feb 2017 11:55:44 +0100
Subject: [PATCH] add override final

---
 Core/include/ACTS/Surfaces/ConeBounds.hpp     | 12 +++++-----
 Core/include/ACTS/Surfaces/ConeSurface.hpp    | 14 ++++++------
 Core/include/ACTS/Surfaces/CylinderBounds.hpp | 12 +++++-----
 .../include/ACTS/Surfaces/CylinderSurface.hpp | 22 +++++++++----------
 Core/include/ACTS/Surfaces/DiamondBounds.hpp  | 16 +++++++-------
 Core/include/ACTS/Surfaces/DiscBounds.hpp     |  2 ++
 Core/include/ACTS/Surfaces/DiscSurface.hpp    | 14 ++++++------
 .../ACTS/Surfaces/DiscTrapezoidalBounds.hpp   | 12 +++++-----
 Core/include/ACTS/Surfaces/EllipseBounds.hpp  | 14 ++++++------
 Core/include/ACTS/Surfaces/InfiniteBounds.hpp | 15 +++++++------
 Core/include/ACTS/Surfaces/LineBounds.hpp     | 14 ++++++------
 Core/include/ACTS/Surfaces/LineSurface.hpp    | 16 +++++++-------
 Core/include/ACTS/Surfaces/PerigeeSurface.hpp |  8 +++----
 Core/include/ACTS/Surfaces/RadialBounds.hpp   | 12 +++++-----
 .../include/ACTS/Surfaces/RectangleBounds.hpp | 18 +++++++--------
 Core/include/ACTS/Surfaces/StrawSurface.hpp   |  6 ++---
 .../include/ACTS/Surfaces/TrapezoidBounds.hpp | 16 +++++++-------
 Core/include/ACTS/Surfaces/TriangleBounds.hpp | 16 +++++++-------
 18 files changed, 121 insertions(+), 118 deletions(-)

diff --git a/Core/include/ACTS/Surfaces/ConeBounds.hpp b/Core/include/ACTS/Surfaces/ConeBounds.hpp
index 8e14d1cde..e4231e129 100644
--- a/Core/include/ACTS/Surfaces/ConeBounds.hpp
+++ b/Core/include/ACTS/Surfaces/ConeBounds.hpp
@@ -93,7 +93,7 @@ public:
 
   /// Virtual constructor
   virtual ConeBounds*
-  clone() const override;
+  clone() const final override;
 
   /// Return the bounds type
   virtual BoundsType
@@ -109,7 +109,7 @@ public:
   ///
   /// @return is a boolean indicating if the position is inside
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck = true) const override;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck = true) const final override;
 
   /// Inside method for the first local parameter
   ///
@@ -118,7 +118,7 @@ public:
   ///
   /// @return is a boolean indicating if the position is insideLoc0
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const override;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// Inside method for the second local parameter
   ///
@@ -127,7 +127,7 @@ public:
   ///
   /// @return is a boolean indicating if the position is insideLoc1
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const override;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary ( > 0 if outside and <=0 if inside)
   ///
@@ -135,7 +135,7 @@ public:
   ///
   /// @return is a signed distance parameter
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const override;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// Return the radius at a specific z values
   ///
@@ -187,7 +187,7 @@ public:
   ///
   /// @return is the input obect
   virtual std::ostream&
-  dump(std::ostream& sl) const override;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// private helper method
diff --git a/Core/include/ACTS/Surfaces/ConeSurface.hpp b/Core/include/ACTS/Surfaces/ConeSurface.hpp
index ff4123233..343009ba5 100644
--- a/Core/include/ACTS/Surfaces/ConeSurface.hpp
+++ b/Core/include/ACTS/Surfaces/ConeSurface.hpp
@@ -90,7 +90,7 @@ public:
   ///
   /// @param shift is the optional shift applied after cloning
   virtual ConeSurface*
-  clone(const Transform3D* shift = nullptr) const override;
+  clone(const Transform3D* shift = nullptr) const final override;
 
   /// The binning position method - is overloaded for r-type binning
   ///
@@ -99,7 +99,7 @@ public:
   ///
   /// @return The return type is a vector for positioning in the global frame
   virtual const Vector3D
-  binningPosition(BinningValue bValue) const override;
+  binningPosition(BinningValue bValue) const final override;
 
   /// Return the surface type
   virtual SurfaceType
@@ -146,7 +146,7 @@ public:
 
   /// This method returns the ConeBounds by reference
   virtual const ConeBounds&
-  bounds() const override;
+  bounds() const final override;
 
   /// Local to global transformation
   ///
@@ -156,7 +156,7 @@ public:
   virtual void
   localToGlobal(const Vector2D& lpos,
                 const Vector3D& mom,
-                Vector3D&       gpos) const override;
+                Vector3D&       gpos) const final override;
 
   /// Global to local transfomration
   ///
@@ -168,7 +168,7 @@ public:
   virtual bool
   globalToLocal(const Vector3D& gpos,
                 const Vector3D& mom,
-                Vector2D&       lpos) const override;
+                Vector2D&       lpos) const final override;
 
   /// straight line intersection schema - provides closest intersection and
   /// (signed) path length
@@ -215,7 +215,7 @@ public:
   intersectionEstimate(const Vector3D&      gpos,
                        const Vector3D&      dir,
                        bool                 forceDir = false,
-                       const BoundaryCheck& bcheck   = false) const override;
+                       const BoundaryCheck& bcheck   = false) const final override;
 
   /// the pathCorrection for derived classes with thickness
   ///
@@ -224,7 +224,7 @@ public:
   ///
   /// @return is the path correction due to incident angle
   virtual double
-  pathCorrection(const Vector3D& gpos, const Vector3D& mom) const override;
+  pathCorrection(const Vector3D& gpos, const Vector3D& mom) const final override;
 
   /// Return properly formatted class name for screen output
   virtual std::string
diff --git a/Core/include/ACTS/Surfaces/CylinderBounds.hpp b/Core/include/ACTS/Surfaces/CylinderBounds.hpp
index 3134b3a71..8af5a8a81 100644
--- a/Core/include/ACTS/Surfaces/CylinderBounds.hpp
+++ b/Core/include/ACTS/Surfaces/CylinderBounds.hpp
@@ -86,7 +86,7 @@ public:
 
   /// Virtual constructor
   virtual CylinderBounds*
-  clone() const override;
+  clone() const final override;
 
   /// Return of the bounds type
   virtual BoundsType
@@ -104,7 +104,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const override;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final override;
 
   /// Specialized method for CylinderBounds that checks if a global position
   /// is within the the cylinder cover
@@ -123,7 +123,7 @@ public:
   ///
   /// @return is a boolean indicating if the position is insideLoc0
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const override;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// Inside method for the second local parameter
   ///
@@ -132,7 +132,7 @@ public:
   ///
   /// @return is a boolean indicating if the position is insideLoc1
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const override;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary ( > 0 if outside and <=0 if inside)
   ///
@@ -140,7 +140,7 @@ public:
   ///
   /// @return is a signed distance parameter
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const override;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// This method returns the radius
   virtual double
@@ -160,7 +160,7 @@ public:
 
   /// Output Method for std::ostream
   virtual std::ostream&
-  dump(std::ostream& sl) const override;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// private method for inside check
diff --git a/Core/include/ACTS/Surfaces/CylinderSurface.hpp b/Core/include/ACTS/Surfaces/CylinderSurface.hpp
index a9272102e..c9b4c21fd 100644
--- a/Core/include/ACTS/Surfaces/CylinderSurface.hpp
+++ b/Core/include/ACTS/Surfaces/CylinderSurface.hpp
@@ -93,7 +93,7 @@ public:
   ///
   /// @param shift is an optional transform for a shift applied after coping
   virtual CylinderSurface*
-  clone(const Transform3D* shift = nullptr) const override;
+  clone(const Transform3D* shift = nullptr) const final override;
 
   /// The binning position method - is overloaded for r-type binning
   ///
@@ -101,7 +101,7 @@ public:
   ///
   /// @return is the global position to be used for binning
   virtual const Vector3D
-  binningPosition(BinningValue bValue) const override;
+  binningPosition(BinningValue bValue) const final override;
 
   /// Return the measurement frame - this is needed for alignment, in particular
   /// The measurement frame of a cylinder is the tangential plane at a given
@@ -112,7 +112,7 @@ public:
   ///
   /// @return rotation matrix that defines the measurement frame
   virtual const RotationMatrix3D
-  measurementFrame(const Vector3D& gpos, const Vector3D& mom) const override;
+  measurementFrame(const Vector3D& gpos, const Vector3D& mom) const final override;
 
   /// Return the surface type
   virtual SurfaceType
@@ -129,7 +129,7 @@ public:
   ///
   /// @return normal vector at the local position
   virtual const Vector3D
-  normal(const Vector2D& lpos) const override;
+  normal(const Vector2D& lpos) const final override;
 
   /// Return method for surface normal information
   /// @note for a Cylinder a local position is always required for the normal
@@ -139,7 +139,7 @@ public:
   ///
   /// @return normal vector at the global position
   virtual const Vector3D
-  normal(const Vector3D& gpos) const override;
+  normal(const Vector3D& gpos) const final override;
 
   /// Return method for the rotational symmetry axis
   /// @return  the z-Axis of transform
@@ -148,7 +148,7 @@ public:
 
   /// This method returns the CylinderBounds by reference
   virtual const CylinderBounds&
-  bounds() const override;
+  bounds() const final override;
 
   /// Local to global transformation
   ///
@@ -158,7 +158,7 @@ public:
   virtual void
   localToGlobal(const Vector2D& lpos,
                 const Vector3D& mom,
-                Vector3D&       gpos) const override;
+                Vector3D&       gpos) const final override;
 
   /// Global to local transfomration
   ///
@@ -170,7 +170,7 @@ public:
   virtual bool
   globalToLocal(const Vector3D& gpos,
                 const Vector3D& mom,
-                Vector2D&       lpos) const override;
+                Vector2D&       lpos) const final override;
 
   /// Check for position on surface
   ///
@@ -180,7 +180,7 @@ public:
   /// @return is a boolean indicating if the position is on surface
   virtual bool
   isOnSurface(const Vector3D&      gpos,
-              const BoundaryCheck& bcheck = true) const override;
+              const BoundaryCheck& bcheck = true) const final override;
 
   /// Fast straight line intersection schema - provides closest intersection
   ///  and (signed) path length
@@ -216,7 +216,7 @@ public:
   intersectionEstimate(const Vector3D&      gpos,
                        const Vector3D&      dir,
                        bool                 forceDir = false,
-                       const BoundaryCheck& bcheck     = false) const override;
+                       const BoundaryCheck& bcheck     = false) const final override;
 
   /// Path correction due to incident of the track
   ///
@@ -225,7 +225,7 @@ public:
   ///
   /// @return is the correction factor due to incident
   virtual double
-  pathCorrection(const Vector3D& gpos, const Vector3D& mom) const override;
+  pathCorrection(const Vector3D& gpos, const Vector3D& mom) const final override;
 
   /// Return method for properly formatted output string
   virtual std::string
diff --git a/Core/include/ACTS/Surfaces/DiamondBounds.hpp b/Core/include/ACTS/Surfaces/DiamondBounds.hpp
index 40ea23108..a6f1dda12 100644
--- a/Core/include/ACTS/Surfaces/DiamondBounds.hpp
+++ b/Core/include/ACTS/Surfaces/DiamondBounds.hpp
@@ -65,7 +65,7 @@ public:
 
   /// Virtual constructor
   DiamondBounds*
-  clone() const override;
+  clone() const final override;
 
   /// Assignment operator
   ///
@@ -77,7 +77,7 @@ public:
   ///
   /// @param sbo are the source bounds for check
   virtual bool
-  operator==(const SurfaceBounds& sbo) const override;
+  operator==(const SurfaceBounds& sbo) const final override;
 
   /// Return the bounds type
   virtual BoundsType
@@ -126,7 +126,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const override;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final override;
 
   ///  This method checks inside bounds in loc0
   /// - loc0/loc1 correspond to the natural coordinates of the surface
@@ -138,7 +138,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const override;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   ///  This method checks inside bounds in loc1
   /// - loc0/loc1 correspond to the natural coordinates of the surface
@@ -150,7 +150,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const override;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary ( > 0 if outside and <=0 if inside)
   ///
@@ -158,11 +158,11 @@ public:
   ///
   /// @return is a signed distance parameter
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const override;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// Return the vertices - or, the points of the extremas
   virtual const std::vector<Vector2D>
-  vertices() const override;
+  vertices() const final override;
 
   // Bounding box representation
   virtual const RectangleBounds&
@@ -172,7 +172,7 @@ public:
   ///
   /// @param sl is the ostream in which it is dumped
   virtual std::ostream&
-  dump(std::ostream& sl) const override;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// private helper method
diff --git a/Core/include/ACTS/Surfaces/DiscBounds.hpp b/Core/include/ACTS/Surfaces/DiscBounds.hpp
index d1d3a0b55..69c338676 100644
--- a/Core/include/ACTS/Surfaces/DiscBounds.hpp
+++ b/Core/include/ACTS/Surfaces/DiscBounds.hpp
@@ -29,8 +29,10 @@ public:
   ///
   /// @param sSize is the size of the store
   DiscBounds(size_t sSize = 0) : SurfaceBounds(sSize) {}
+  
   /// Destructor
   virtual ~DiscBounds() {}
+  
   /// Virtual Constructor
   virtual DiscBounds*
   clone() const = 0;
diff --git a/Core/include/ACTS/Surfaces/DiscSurface.hpp b/Core/include/ACTS/Surfaces/DiscSurface.hpp
index 552a4f9c6..bb8c42da4 100644
--- a/Core/include/ACTS/Surfaces/DiscSurface.hpp
+++ b/Core/include/ACTS/Surfaces/DiscSurface.hpp
@@ -121,7 +121,7 @@ public:
   ///
   /// @param shift the otional transform applied after cloning
   virtual DiscSurface*
-  clone(const Transform3D* shift = nullptr) const override;
+  clone(const Transform3D* shift = nullptr) const final override;
 
   /// Return the surface type
   virtual SurfaceType
@@ -149,7 +149,7 @@ public:
 
   /// This method returns the bounds by reference
   const SurfaceBounds&
-  bounds() const override;
+  bounds() const final override;
 
   /// This method returns true if the GlobalPosition is on the Surface for both,
   /// within or without check of whether the local position is inside boundaries
@@ -161,7 +161,7 @@ public:
   /// @return bollean that indicates if the position is on surface
   virtual bool
   isOnSurface(const Vector3D&      gpos,
-              const BoundaryCheck& bcheck = true) const override;
+              const BoundaryCheck& bcheck = true) const final override;
 
   /// Local to global transformation
   /// For planar surfaces the momentum is ignroed in the local to global
@@ -176,7 +176,7 @@ public:
   virtual void
   localToGlobal(const Vector2D& lpos,
                 const Vector3D& mom,
-                Vector3D&       gpos) const override;
+                Vector3D&       gpos) const final override;
 
   /// Global to local transformation
   /// @note the momentum is ignored for Disc surfaces in this calculateion
@@ -192,7 +192,7 @@ public:
   virtual bool
   globalToLocal(const Vector3D& gpos,
                 const Vector3D& mom,
-                Vector2D&       lpos) const override;
+                Vector2D&       lpos) const final override;
 
   /// Special method for DiscSurface : local<->local transformations polar <->
   /// cartesian
@@ -246,7 +246,7 @@ public:
   ///
   /// @return is the correction factor due to incident
   double
-  pathCorrection(const Vector3D& gpos, const Vector3D& mom) const override;
+  pathCorrection(const Vector3D& gpos, const Vector3D& mom) const final override;
 
   /// fast straight line intersection schema - standard: provides closest
   /// intersection and (signed) path length
@@ -279,7 +279,7 @@ public:
   intersectionEstimate(const Vector3D&      gpos,
                        const Vector3D&      dir,
                        bool                 forceDir = false,
-                       const BoundaryCheck& bcheck     = false) const override;
+                       const BoundaryCheck& bcheck     = false) const final override;
 
   /// Return properly formatted class name for screen output
   virtual std::string
diff --git a/Core/include/ACTS/Surfaces/DiscTrapezoidalBounds.hpp b/Core/include/ACTS/Surfaces/DiscTrapezoidalBounds.hpp
index 8d468ec9b..4ce86f47c 100644
--- a/Core/include/ACTS/Surfaces/DiscTrapezoidalBounds.hpp
+++ b/Core/include/ACTS/Surfaces/DiscTrapezoidalBounds.hpp
@@ -79,7 +79,7 @@ public:
 
   /// Virtual constructor
   virtual DiscTrapezoidalBounds*
-  clone() const override;
+  clone() const final override;
 
   /// Return the type - mainly for persistency
   virtual SurfaceBounds::BoundsType
@@ -94,25 +94,25 @@ public:
   /// @param lpos is the local position to be checked (in polar coordinates)
   /// @param bcheck is the boundary check directive
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck = true) const override;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck = true) const final override;
 
   /// This method checks inside bounds in loc0
   /// @param lpos is the local position to be checked (in polar coordinates)
   /// @param tol0 is the tolerance applied
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const override;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// This method checks inside bounds in loc0
   /// @param lpos is the local position to be checked (in polar coordinates)
   /// @param tol1 is the tolerance applied
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const override;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary
   /// @param lpos is the local position to be checked (in polar coordinates)
   /// @return is the minimal distance ( > 0 if outside and <=0 if inside)
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const override;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// This method returns inner radius
   double
@@ -152,7 +152,7 @@ public:
 
   /// Output Method for std::ostream
   virtual std::ostream&
-  dump(std::ostream& sl) const override;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// private helper method
diff --git a/Core/include/ACTS/Surfaces/EllipseBounds.hpp b/Core/include/ACTS/Surfaces/EllipseBounds.hpp
index e570e139b..a23407f8a 100644
--- a/Core/include/ACTS/Surfaces/EllipseBounds.hpp
+++ b/Core/include/ACTS/Surfaces/EllipseBounds.hpp
@@ -87,7 +87,7 @@ public:
 
   /// Virtual constructor
   virtual EllipseBounds*
-  clone() const override;
+  clone() const final override;
 
   /// Return the type of the bounds for persistency
   virtual BoundsType
@@ -106,7 +106,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const override;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final override;
 
   /// Check for inside first local coordinate
   ///
@@ -115,7 +115,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const override;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// Check for inside second local coordinate
   ///
@@ -124,7 +124,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const override;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary ( > 0 if outside and <=0 if inside)
   ///
@@ -132,7 +132,7 @@ public:
   ///
   /// @return is a signed distance parameter
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const override;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// This method returns first inner radius
   double
@@ -156,7 +156,7 @@ public:
 
   /// Return the vertices - or, the points of the extremas
   virtual const std::vector<Vector2D>
-  vertices() const override;
+  vertices() const final override;
 
   // Bounding box representation
   virtual const RectangleBounds&
@@ -168,7 +168,7 @@ public:
 
   /// Output Method for std::ostream
   virtual std::ostream&
-  dump(std::ostream& sl) const override;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// private helper function
diff --git a/Core/include/ACTS/Surfaces/InfiniteBounds.hpp b/Core/include/ACTS/Surfaces/InfiniteBounds.hpp
index 74cbacf4f..763da8b34 100644
--- a/Core/include/ACTS/Surfaces/InfiniteBounds.hpp
+++ b/Core/include/ACTS/Surfaces/InfiniteBounds.hpp
@@ -34,7 +34,7 @@ public:
 
   /// Return SurfaceBounds type for persistency mainly
   virtual SurfaceBounds::BoundsType
-  type() const final
+  type() const final override
   {
     return SurfaceBounds::Boundless;
   }
@@ -45,7 +45,7 @@ public:
   ///
   /// @return always true
   virtual bool
-  inside(const Vector2D&, const BoundaryCheck&) const final
+  inside(const Vector2D&, const BoundaryCheck&) const final override
   {
     return true;
   }
@@ -56,7 +56,7 @@ public:
   ///
   /// @return always true
   virtual bool
-  insideLoc0(const Vector2D&, double tol0 = 0.) const final
+  insideLoc0(const Vector2D&, double tol0 = 0.) const final override
   {
     return true;
   }
@@ -67,7 +67,7 @@ public:
   ///
   /// @return always true
   virtual bool
-  insideLoc1(const Vector2D&, double tol1 = 0.) const final
+  insideLoc1(const Vector2D&, double tol1 = 0.) const final override
   {
     return true;
   }
@@ -76,21 +76,22 @@ public:
   /// ignores input parameter
   /// @return always 0. (should be -NaN)
   virtual double
-  distanceToBoundary(const Vector2D& pos) const final
+  distanceToBoundary(const Vector2D& pos) const final override
   {
     return 0.;
   }
 
   /// Clone method to complete inherited interface
   virtual InfiniteBounds*
-  clone() const final
+  clone() const final override
   {
     return new InfiniteBounds();
   }
 
   /// Output Method for std::ostream
   virtual std::ostream&
-  dump(std::ostream& sl) const final;
+  dump(std::ostream& sl) const final override;
+  
 };
 
 inline std::ostream&
diff --git a/Core/include/ACTS/Surfaces/LineBounds.hpp b/Core/include/ACTS/Surfaces/LineBounds.hpp
index ffb3f63dc..17f4c62a6 100644
--- a/Core/include/ACTS/Surfaces/LineBounds.hpp
+++ b/Core/include/ACTS/Surfaces/LineBounds.hpp
@@ -52,11 +52,11 @@ public:
 
   /// Virtual constructor
   virtual LineBounds*
-  clone() const override;
+  clone() const final override;
 
   /// Return of the bounds type
   virtual BoundsType
-  type() const override
+  type() const final override
   {
     return SurfaceBounds::Line;
   }
@@ -70,7 +70,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const override;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final override;
 
   /// Inside check for the bounds object with tolerance
   /// checks for first coordinate only.
@@ -80,7 +80,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const override;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// Inside check for the bounds object with tolerance
   /// checks for second coordinate only.
@@ -90,7 +90,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const override;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary ( > 0 if outside and <=0 if inside)
   ///
@@ -98,7 +98,7 @@ public:
   ///
   /// @return is a signed distance parameter
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const override;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// This method returns the radius
   virtual double
@@ -112,7 +112,7 @@ public:
   ///
   /// @param sl is the ostream to be dumped into
   virtual std::ostream&
-  dump(std::ostream& sl) const override;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// private helper method
diff --git a/Core/include/ACTS/Surfaces/LineSurface.hpp b/Core/include/ACTS/Surfaces/LineSurface.hpp
index a6ebdea82..fd8b7d363 100644
--- a/Core/include/ACTS/Surfaces/LineSurface.hpp
+++ b/Core/include/ACTS/Surfaces/LineSurface.hpp
@@ -90,7 +90,7 @@ public:
   ///
   /// return a Vector3D by value
   const Vector3D
-  normal(const Vector2D& lpos = s_origin2D) const override;
+  normal(const Vector2D& lpos = s_origin2D) const final override;
 
   /// The binning position is the position calcualted
   /// for a certain binning type
@@ -99,7 +99,7 @@ public:
   ///
   /// @return position that can beused for this binning
   virtual const Vector3D
-  binningPosition(BinningValue bValue) const final;
+  binningPosition(BinningValue bValue) const final override;
 
   /// Return the measurement frame - this is needed for alignment, in particular
   ///
@@ -112,7 +112,7 @@ public:
   ///
   /// @return is a rotation matrix that indicates the measurement frame
   virtual const RotationMatrix3D
-  measurementFrame(const Vector3D& gpos, const Vector3D& mom) const override;
+  measurementFrame(const Vector3D& gpos, const Vector3D& mom) const final override;
 
   /// Local to global transformation
   /// for line surfaces the momentum is used in order to interpret the drift
@@ -124,7 +124,7 @@ public:
   virtual void
   localToGlobal(const Vector2D& lpos,
                 const Vector3D& mom,
-                Vector3D&       gpos) const override;
+                Vector3D&       gpos) const final override;
 
   /// Specified for LineSurface: global to local method without dynamic
   /// memory allocation
@@ -164,7 +164,7 @@ public:
   virtual bool
   globalToLocal(const Vector3D& gpos,
                 const Vector3D& mom,
-                Vector2D&       lpos) const override;
+                Vector2D&       lpos) const final override;
 
   /// Special method for LineSurface
   /// provides the Line direction from cache: speedup
@@ -212,7 +212,7 @@ public:
   intersectionEstimate(const Vector3D&      gpos,
                        const Vector3D&      dir,
                        bool                 forceDir,
-                       const BoundaryCheck& bcheck = true) const override;
+                       const BoundaryCheck& bcheck = true) const final override;
 
   /// the pathCorrection for derived classes with thickness
   /// is by definition 1 for LineSurfaces
@@ -237,11 +237,11 @@ public:
   /// @return bollean that indicates if the position is on surface
   virtual bool
   isOnSurface(const Vector3D&      gpos,
-              const BoundaryCheck& bcheck = true) const override;
+              const BoundaryCheck& bcheck = true) const final override;
 
   /// This method returns the bounds of the Surface by reference */
   virtual const SurfaceBounds&
-  bounds() const final;
+  bounds() const final override;
 
   /// Return properly formatted class name for screen output */
   virtual std::string
diff --git a/Core/include/ACTS/Surfaces/PerigeeSurface.hpp b/Core/include/ACTS/Surfaces/PerigeeSurface.hpp
index e97665715..843747d5f 100644
--- a/Core/include/ACTS/Surfaces/PerigeeSurface.hpp
+++ b/Core/include/ACTS/Surfaces/PerigeeSurface.hpp
@@ -61,7 +61,7 @@ public:
   ///
   /// @param shift is the potential shift that is applied after cloning
   virtual PerigeeSurface*
-  clone(const Transform3D* shift = nullptr) const override;
+  clone(const Transform3D* shift = nullptr) const final override;
 
   /// Assignment operator
   ///
@@ -71,14 +71,14 @@ public:
 
   /// Return the surface type
   virtual SurfaceType
-  type() const override
+  type() const final override
   {
     return Surface::Perigee;
   }
 
   /// Return properly formatted class name for screen output */
   virtual std::string
-  name() const override
+  name() const final override
   {
     return "Acts::PerigeeSurface";
   }
@@ -87,7 +87,7 @@ public:
   ///
   /// @param sl is the ostream to be dumped into
   virtual std::ostream&
-  dump(std::ostream& sl) const override;
+  dump(std::ostream& sl) const final override;
 };
 
 inline PerigeeSurface*
diff --git a/Core/include/ACTS/Surfaces/RadialBounds.hpp b/Core/include/ACTS/Surfaces/RadialBounds.hpp
index 710d3bcfe..2889fd0d7 100644
--- a/Core/include/ACTS/Surfaces/RadialBounds.hpp
+++ b/Core/include/ACTS/Surfaces/RadialBounds.hpp
@@ -74,7 +74,7 @@ public:
 
   /// Implicit constructor
   virtual RadialBounds*
-  clone() const override;
+  clone() const final override;
 
   /// Return of sourface bounds
   virtual SurfaceBounds::BoundsType
@@ -90,7 +90,7 @@ public:
   ///
   /// @return is a boolean indicating the operation success
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const override;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final override;
 
   /// Inside check for the first coordinate
   ///
@@ -99,7 +99,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const override;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// Inside check for the bounds object with tolerance
   /// checks for second coordinate only.
@@ -109,7 +109,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const override;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary calculation
   ///
@@ -117,7 +117,7 @@ public:
   ///
   /// @return distance to boundary ( > 0 if outside and <=0 if inside)
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const override;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// Return method for inner Radius
   double
@@ -140,7 +140,7 @@ public:
   ///
   /// @param sl is the ostream to be dumped into
   virtual std::ostream&
-  dump(std::ostream& sl) const override;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// private helper method for inside
diff --git a/Core/include/ACTS/Surfaces/RectangleBounds.hpp b/Core/include/ACTS/Surfaces/RectangleBounds.hpp
index bae03dbfa..e33dc0711 100644
--- a/Core/include/ACTS/Surfaces/RectangleBounds.hpp
+++ b/Core/include/ACTS/Surfaces/RectangleBounds.hpp
@@ -59,11 +59,11 @@ public:
 
   /// Virtual constructor
   virtual RectangleBounds*
-  clone() const override;
+  clone() const final override;
 
   /// Return the type of the bounds for persistency
   virtual BoundsType
-  type() const override
+  type() const final override
   {
     return SurfaceBounds::Rectangle;
   }
@@ -77,7 +77,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const override;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final override;
 
   /// Inside check for the bounds object with tolerance
   /// checks for first coordinate only.
@@ -87,7 +87,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const override;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// Inside check for the bounds object with tolerance
   /// checks for second coordinate only.
@@ -97,7 +97,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const override;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary ( > 0 if outside and <=0 if inside)
   ///
@@ -105,7 +105,7 @@ public:
   ///
   /// @return is a signed distance parameter
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const override;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// Return method for the half length in X
   double
@@ -117,17 +117,17 @@ public:
 
   /// Return the vertices - or, the points of the extremas
   virtual const std::vector<Vector2D>
-  vertices() const final;
+  vertices() const final override;
 
   // Bounding box representation
   virtual const RectangleBounds&
-  boundingBox() const final;
+  boundingBox() const final override;
 
   /// Output Method for std::ostream
   ///
   /// @param sl is the ostream for the dump
   virtual std::ostream&
-  dump(std::ostream& sl) const final;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// Private helper method
diff --git a/Core/include/ACTS/Surfaces/StrawSurface.hpp b/Core/include/ACTS/Surfaces/StrawSurface.hpp
index 6204231de..783b8286e 100644
--- a/Core/include/ACTS/Surfaces/StrawSurface.hpp
+++ b/Core/include/ACTS/Surfaces/StrawSurface.hpp
@@ -90,18 +90,18 @@ public:
   ///
   /// @param shift is an optional shift to be applied
   virtual StrawSurface*
-  clone(const Transform3D* shift = nullptr) const override;
+  clone(const Transform3D* shift = nullptr) const final override;
 
   /// Return the surface type
   virtual SurfaceType
-  type() const override
+  type() const final override
   {
     return Surface::Straw;
   }
 
   /// Return properly formatted class name for screen output */
   virtual std::string
-  name() const override
+  name() const final override
   {
     return "Acts::StrawSurface";
   };
diff --git a/Core/include/ACTS/Surfaces/TrapezoidBounds.hpp b/Core/include/ACTS/Surfaces/TrapezoidBounds.hpp
index eed32a050..22d9d6455 100644
--- a/Core/include/ACTS/Surfaces/TrapezoidBounds.hpp
+++ b/Core/include/ACTS/Surfaces/TrapezoidBounds.hpp
@@ -71,7 +71,7 @@ public:
 
   /// Virtual constructor
   virtual TrapezoidBounds*
-  clone() const final;
+  clone() const final override;
 
   /// Return the type of the bounds for persistency
   virtual BoundsType
@@ -155,7 +155,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final override;
 
   /// This method checks inside bounds in loc0
   /// @note loc0/loc1 correspond to the natural coordinates of the surface
@@ -167,7 +167,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// This method checks inside bounds in loc0
   /// @note loc0/loc1 correspond to the natural coordinates of the surface
@@ -179,7 +179,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary ( > 0 if outside and <=0 if inside)
   ///
@@ -187,21 +187,21 @@ public:
   ///
   /// @return is a signed distance parameter
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const final;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// Return the vertices - or, the points of the extremas
   virtual const std::vector<Vector2D>
-  vertices() const final;
+  vertices() const final override;
 
   // Bounding box representation
   virtual const RectangleBounds&
-  boundingBox() const final;
+  boundingBox() const final override;
 
   /// Output Method for std::ostream
   ///
   /// @param sl is the ostream to be dumped into
   virtual std::ostream&
-  dump(std::ostream& sl) const final;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// private helper method for inside check
diff --git a/Core/include/ACTS/Surfaces/TriangleBounds.hpp b/Core/include/ACTS/Surfaces/TriangleBounds.hpp
index 18b24d37f..f7fdd2670 100644
--- a/Core/include/ACTS/Surfaces/TriangleBounds.hpp
+++ b/Core/include/ACTS/Surfaces/TriangleBounds.hpp
@@ -68,7 +68,7 @@ public:
 
   /// Virtual constructor
   virtual TriangleBounds*
-  clone() const final;
+  clone() const final override;
 
   /// Return the type of the bounds for persistency
   virtual BoundsType
@@ -85,7 +85,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final;
+  inside(const Vector2D& lpos, const BoundaryCheck& bcheck) const final override;
 
   /// This method checks if the provided local coordinate 1 is inside the
   /// surface bounds
@@ -95,7 +95,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final;
+  insideLoc0(const Vector2D& lpos, double tol0 = 0.) const final override;
 
   /// This method checks if the provided local coordinate 2 is inside the
   /// surface bounds
@@ -105,7 +105,7 @@ public:
   ///
   /// @return boolean indicator for the success of this operation
   virtual bool
-  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final;
+  insideLoc1(const Vector2D& lpos, double tol1 = 0.) const final override;
 
   /// Minimal distance to boundary ( > 0 if outside and <=0 if inside)
   ///
@@ -113,21 +113,21 @@ public:
   ///
   /// @return is a signed distance parameter
   virtual double
-  distanceToBoundary(const Vector2D& lpos) const final;
+  distanceToBoundary(const Vector2D& lpos) const final override;
 
   /// This method returns the coordinates of vertices
   const std::vector<Vector2D>
-  vertices() const final;
+  vertices() const final override;
 
   // Bounding box representation
   virtual const RectangleBounds&
-  boundingBox() const final;
+  boundingBox() const final override;
 
   /// Output Method for std::ostream
   ///
   /// @param sl is the ostream to be dumped into
   virtual std::ostream&
-  dump(std::ostream& sl) const final;
+  dump(std::ostream& sl) const final override;
 
 private:
   /// Private helper method
-- 
GitLab