From 104594775330c7c61783370a35a0d261d2953829 Mon Sep 17 00:00:00 2001
From: christos <christos@cern.ch>
Date: Sun, 13 Sep 2020 21:54:27 +0200
Subject: [PATCH] VxVertex clean up CMakeList and move large methods to .cxx

---
 Tracking/TrkEvent/VxVertex/CMakeLists.txt     |  21 +---
 .../VxVertex/VxVertex/VxTrackAtVertex.h       |   8 ++
 .../VxVertex/VxVertex/VxTrackAtVertex.icc     | 108 ------------------
 .../TrkEvent/VxVertex/src/VxTrackAtVertex.cxx | 107 ++++++++++++++++-
 4 files changed, 117 insertions(+), 127 deletions(-)

diff --git a/Tracking/TrkEvent/VxVertex/CMakeLists.txt b/Tracking/TrkEvent/VxVertex/CMakeLists.txt
index b4fde8054338..633d5dc2af04 100644
--- a/Tracking/TrkEvent/VxVertex/CMakeLists.txt
+++ b/Tracking/TrkEvent/VxVertex/CMakeLists.txt
@@ -5,20 +5,6 @@
 # Declare the package name:
 atlas_subdir( VxVertex )
 
-# Declare the package's dependencies:
-atlas_depends_on_subdirs( PUBLIC
-                          Control/AthenaKernel
-                          Control/AthLinks
-                          Control/AthContainers
-                          DetectorDescription/GeoPrimitives
-                          Event/EventPrimitives
-                          Tracking/TrkEvent/TrkEventPrimitives
-                          Tracking/TrkEvent/TrkNeutralParameters
-                          Tracking/TrkEvent/TrkTrackLink
-                          PRIVATE
-                          GaudiKernel
-                          Tracking/TrkEvent/TrkParameters )
-
 # External dependencies:
 find_package( Eigen )
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
@@ -29,13 +15,16 @@ atlas_add_library( VxVertex
                    PUBLIC_HEADERS VxVertex
                    INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS}
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${EIGEN_LIBRARIES} AthLinks AthContainers GeoPrimitives EventPrimitives TrkEventPrimitives TrkNeutralParameters TrkTrackLink TrkParameters 
+                   LINK_LIBRARIES ${EIGEN_LIBRARIES} AthLinks AthContainers GeoPrimitives 
+                   EventPrimitives TrkEventPrimitives  TrkNeutralParameters 
+                   TrkTrackLink TrkParameters 
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} GaudiKernel )
 
 atlas_add_dictionary( VxVertexDict
                       VxVertex/VxVertexDict.h
                       VxVertex/selection.xml
                       INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}
-                      LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthLinks AthContainers GeoPrimitives EventPrimitives TrkEventPrimitives TrkNeutralParameters GaudiKernel TrkParameters VxVertex
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthLinks AthContainers GeoPrimitives 
+                      EventPrimitives TrkEventPrimitives TrkNeutralParameters GaudiKernel TrkParameters VxVertex
                       ELEMENT_LINKS VxContainer )
 
diff --git a/Tracking/TrkEvent/VxVertex/VxVertex/VxTrackAtVertex.h b/Tracking/TrkEvent/VxVertex/VxVertex/VxTrackAtVertex.h
index 6b9c5731ac19..985cdb6429db 100755
--- a/Tracking/TrkEvent/VxVertex/VxVertex/VxTrackAtVertex.h
+++ b/Tracking/TrkEvent/VxVertex/VxVertex/VxTrackAtVertex.h
@@ -382,6 +382,14 @@ private:
 
 }; // end of class definitions
 
+/**Overload of << operator for both, MsgStream and std::ostream for debug
+output; only needed in base class? */
+MsgStream&
+operator<<(MsgStream& sl, const VxTrackAtVertex& sf);
+std::ostream&
+operator<<(std::ostream& sl, const VxTrackAtVertex& sf);
+
+
 } // end of namespace definitions
 
 #include "VxVertex/VxTrackAtVertex.icc"
diff --git a/Tracking/TrkEvent/VxVertex/VxVertex/VxTrackAtVertex.icc b/Tracking/TrkEvent/VxVertex/VxVertex/VxTrackAtVertex.icc
index ac313d2e5cf7..cfd348cc4d93 100644
--- a/Tracking/TrkEvent/VxVertex/VxVertex/VxTrackAtVertex.icc
+++ b/Tracking/TrkEvent/VxVertex/VxVertex/VxTrackAtVertex.icc
@@ -15,57 +15,12 @@ VxTrackAtVertex::trackOrParticleLink(void)
   return m_trackOrParticleLink;
 }
 
-inline const TrackParameters*
-VxTrackAtVertex::initialPerigee(void) const
-{
-  if (m_initialPerigee != nullptr)
-    return m_initialPerigee; // as default always return the proper object (be
-                             // consistent!)
-  if (m_trackOrParticleLink != nullptr)
-    return m_trackOrParticleLink->parameters();
-  return nullptr;
-}
-
-inline const NeutralParameters*
-VxTrackAtVertex::initialNeutralPerigee(void) const
-{
-  if (m_initialNeutralPerigee != nullptr)
-    return m_initialNeutralPerigee; // as default always return the proper
-                                    // object (be consistent!)
-  if (m_trackOrParticleLink != nullptr)
-    return m_trackOrParticleLink->neutralParameters();
-  return nullptr;
-}
-
-inline VxTrackAtVertex*
-VxTrackAtVertex::clone() const
-{
-  return new VxTrackAtVertex(*this);
-}
-
-inline void
-VxTrackAtVertex::setImpactPoint3dAtaPlane(const AtaPlane* myIP3dAtaPlane)
-{
-  if (m_ImpactPoint3dAtaPlane != nullptr)
-    delete m_ImpactPoint3dAtaPlane;
-  m_ImpactPoint3dAtaPlane = myIP3dAtaPlane;
-}
-
 inline const AtaPlane*
 VxTrackAtVertex::ImpactPoint3dAtaPlane(void) const
 {
   return m_ImpactPoint3dAtaPlane;
 }
 
-inline void
-VxTrackAtVertex::setImpactPoint3dNeutralAtaPlane(
-  const NeutralAtaPlane* myIP3dNeutralAtaPlane)
-{
-  if (m_ImpactPoint3dNeutralAtaPlane != nullptr)
-    delete m_ImpactPoint3dNeutralAtaPlane;
-  m_ImpactPoint3dNeutralAtaPlane = myIP3dNeutralAtaPlane;
-}
-
 inline const NeutralAtaPlane*
 VxTrackAtVertex::ImpactPoint3dNeutralAtaPlane(void) const
 {
@@ -132,62 +87,6 @@ VxTrackAtVertex::setTrackQuality(const FitQuality& trkQuality)
   m_fitQuality = trkQuality;
 }
 
-inline void
-VxTrackAtVertex::setPerigeeAtVertex(TrackParameters* perigee)
-{
-  if (m_perigeeAtVertex != nullptr)
-    delete m_perigeeAtVertex;
-  m_perigeeAtVertex = perigee;
-}
-
-inline void
-VxTrackAtVertex::setPerigeeAtVertex(NeutralParameters* perigee)
-{
-  if (m_neutralPerigeeAtVertex != nullptr)
-    delete m_neutralPerigeeAtVertex;
-  m_neutralPerigeeAtVertex = perigee;
-}
-
-inline void
-VxTrackAtVertex::setLinTrack(LinearizedTrack* myLinTrack)
-{
-  if (m_linState != nullptr)
-    delete m_linState;
-  m_linState = myLinTrack;
-}
-
-inline void
-VxTrackAtVertex::setOrigTrack(ITrackLink* trk)
-{
-  delete m_trackOrParticleLink;
-  // setting first the actual pointer:
-  m_trackOrParticleLink = trk;
-
-  // setting the initial perigee to be consistent with this
-  // new track
-  if (trk != nullptr) {
-    // delete initialPerigee before, otherwise memleak!!
-    //      if (m_initialPerigee!=0) { delete m_initialPerigee;
-    //      m_initialPerigee=0; } const TrackParameters * tmpInPer =
-    //      trk->parameters();
-    m_initialPerigee = trk->parameters();
-    m_initialNeutralPerigee = trk->neutralParameters();
-  } else {
-    m_initialPerigee = nullptr;
-    m_initialNeutralPerigee = nullptr;
-  }
-} // end of setOrigTrack method
-
-inline void
-VxTrackAtVertex::setOrigTrackNoCache(ITrackLink* trk)
-{
-  delete m_trackOrParticleLink;
-  m_trackOrParticleLink = trk;
-
-  m_initialPerigee = nullptr;
-  m_initialNeutralPerigee = nullptr;
-} // end of setOrigTrackNocache method
-
 inline void
 VxTrackAtVertex::setInitialPerigee(const TrackParameters* perigee)
 {
@@ -202,12 +101,5 @@ VxTrackAtVertex::setInitialPerigee(const NeutralParameters* perigee)
     m_initialNeutralPerigee = perigee;
 }
 
-/**Overload of << operator for both, MsgStream and std::ostream for debug
-output; only needed in base class? */
-MsgStream&
-operator<<(MsgStream& sl, const VxTrackAtVertex& sf);
-std::ostream&
-operator<<(std::ostream& sl, const VxTrackAtVertex& sf);
-
 }
 
diff --git a/Tracking/TrkEvent/VxVertex/src/VxTrackAtVertex.cxx b/Tracking/TrkEvent/VxVertex/src/VxTrackAtVertex.cxx
index d0b7f7bbaa71..6c72fc5950f3 100755
--- a/Tracking/TrkEvent/VxVertex/src/VxTrackAtVertex.cxx
+++ b/Tracking/TrkEvent/VxVertex/src/VxTrackAtVertex.cxx
@@ -14,7 +14,6 @@
  ***************************************************************************/
 
 #include "VxVertex/VxTrackAtVertex.h"
-//#include "TrkParametersBase/ParametersBase.h"
 #include "GaudiKernel/MsgStream.h"
 
 namespace Trk {
@@ -314,8 +313,8 @@ VxTrackAtVertex::operator=(const VxTrackAtVertex& rhs)
 }
 
 VxTrackAtVertex::VxTrackAtVertex(VxTrackAtVertex&& rhs) noexcept
-  : m_fitQuality (rhs.m_fitQuality),
-    m_trkWeight (rhs.m_trkWeight)
+  : m_fitQuality(rhs.m_fitQuality)
+  , m_trkWeight(rhs.m_trkWeight)
 {
   m_perigeeAtVertex = rhs.m_perigeeAtVertex;
   rhs.m_perigeeAtVertex = nullptr;
@@ -389,6 +388,108 @@ VxTrackAtVertex::operator==(const VxTrackAtVertex& data) const
   //             data.initialPerigee()->momentum()).mag()<1e-8    ) ;
 }
 
+const TrackParameters*
+VxTrackAtVertex::initialPerigee(void) const
+{
+  if (m_initialPerigee != nullptr)
+    return m_initialPerigee; // as default always return the proper object (be
+                             // consistent!)
+  if (m_trackOrParticleLink != nullptr)
+    return m_trackOrParticleLink->parameters();
+  return nullptr;
+}
+
+const NeutralParameters*
+VxTrackAtVertex::initialNeutralPerigee(void) const
+{
+  if (m_initialNeutralPerigee != nullptr)
+    return m_initialNeutralPerigee; // as default always return the proper
+                                    // object (be consistent!)
+  if (m_trackOrParticleLink != nullptr)
+    return m_trackOrParticleLink->neutralParameters();
+  return nullptr;
+}
+
+VxTrackAtVertex*
+VxTrackAtVertex::clone() const
+{
+  return new VxTrackAtVertex(*this);
+}
+
+void
+VxTrackAtVertex::setImpactPoint3dAtaPlane(const AtaPlane* myIP3dAtaPlane)
+{
+  if (m_ImpactPoint3dAtaPlane != nullptr)
+    delete m_ImpactPoint3dAtaPlane;
+  m_ImpactPoint3dAtaPlane = myIP3dAtaPlane;
+}
+
+void
+VxTrackAtVertex::setImpactPoint3dNeutralAtaPlane(
+  const NeutralAtaPlane* myIP3dNeutralAtaPlane)
+{
+  if (m_ImpactPoint3dNeutralAtaPlane != nullptr)
+    delete m_ImpactPoint3dNeutralAtaPlane;
+  m_ImpactPoint3dNeutralAtaPlane = myIP3dNeutralAtaPlane;
+}
+
+  void
+VxTrackAtVertex::setPerigeeAtVertex(TrackParameters* perigee)
+{
+  if (m_perigeeAtVertex != nullptr)
+    delete m_perigeeAtVertex;
+  m_perigeeAtVertex = perigee;
+}
+
+void
+VxTrackAtVertex::setPerigeeAtVertex(NeutralParameters* perigee)
+{
+  if (m_neutralPerigeeAtVertex != nullptr)
+    delete m_neutralPerigeeAtVertex;
+  m_neutralPerigeeAtVertex = perigee;
+}
+
+void
+VxTrackAtVertex::setLinTrack(LinearizedTrack* myLinTrack)
+{
+  if (m_linState != nullptr)
+    delete m_linState;
+  m_linState = myLinTrack;
+}
+
+void
+VxTrackAtVertex::setOrigTrack(ITrackLink* trk)
+{
+  delete m_trackOrParticleLink;
+  // setting first the actual pointer:
+  m_trackOrParticleLink = trk;
+
+  // setting the initial perigee to be consistent with this
+  // new track
+  if (trk != nullptr) {
+    // delete initialPerigee before, otherwise memleak!!
+    //      if (m_initialPerigee!=0) { delete m_initialPerigee;
+    //      m_initialPerigee=0; } const TrackParameters * tmpInPer =
+    //      trk->parameters();
+    m_initialPerigee = trk->parameters();
+    m_initialNeutralPerigee = trk->neutralParameters();
+  } else {
+    m_initialPerigee = nullptr;
+    m_initialNeutralPerigee = nullptr;
+  }
+} // end of setOrigTrack method
+
+void
+VxTrackAtVertex::setOrigTrackNoCache(ITrackLink* trk)
+{
+  delete m_trackOrParticleLink;
+  m_trackOrParticleLink = trk;
+
+  m_initialPerigee = nullptr;
+  m_initialNeutralPerigee = nullptr;
+} // end of setOrigTrackNocache method
+
+
 MsgStream&
 VxTrackAtVertex::dump(MsgStream& sl) const
 {
-- 
GitLab