diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h
index 3ff64a1908024a62bb51879948eccafbb739334c..bd13ba74f56700b62fdd74547c388a91217f335d 100644
--- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h
+++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterContainerFwd.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id$
 #ifndef XAODCALOEVENT_CALOCLUSTERCONTAINERFWD_V1_H
 #define XAODCALOEVENT_CALOCLUSTERCONTAINERFWD_V1_H
 
@@ -12,11 +11,11 @@
 #include "xAODCaloEvent/CaloClusterFwd.h"
 #include "xAODBase/IParticleContainer.h"
 
-DATAVECTOR_BASE_FWD( xAOD::CaloCluster_v1, xAOD::IParticle );
+DATAVECTOR_BASE_FWD( xAOD::CaloCluster, xAOD::IParticle );
 
 namespace xAOD {
    /// Define the cluster container as a simple DataVector
-   typedef DataVector< CaloCluster_v1 > CaloClusterContainer_v1;
+   typedef DataVector< CaloCluster > CaloClusterContainer;
 }
 
 
diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloClusterContainer_v1.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloClusterContainer_v1.h
index 6d99188d3288862ffc9320e84d42ad252f145e0c..83492d94419e5364811c0977c1803a43cf7c8c02 100644
--- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloClusterContainer_v1.h
+++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloClusterContainer_v1.h
@@ -1,29 +1,21 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: CaloClusterContainer_v1.h 783594 2016-11-11 05:03:25Z ssnyder $
 #ifndef XAODCALOEVENT_VERSIONS_CALOCLUSTERCONTAINER_V1_H
 #define XAODCALOEVENT_VERSIONS_CALOCLUSTERCONTAINER_V1_H
 
 // EDM include(s):
 #include "AthContainers/DataVector.h"
 #include "xAODBase/IParticleContainer.h"
-
 // Local include(s):
 #include "xAODCaloEvent/versions/CaloCluster_v1.h"
-#include "xAODCaloEvent/CaloClusterContainerFwd.h"
-
-// Finish declaration of IParticle as a base class of CaloCluster_v1:
-DATAVECTOR_BASE_FIN( xAOD::CaloCluster_v1, xAOD::IParticle );
 
 namespace xAOD {
    /// Define the cluster container as a simple DataVector
    typedef DataVector< CaloCluster_v1 > CaloClusterContainer_v1;
 }
 
-
-
 #endif // XAODCALOEVENT_VERSIONS_CALOCLUSTERCONTAINER_V1_H
diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloCluster_v1.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloCluster_v1.h
index 228729201e31fd695318cfa25a2a56423dcb615e..8df01154389bf733fd267b18626aa0745e4535c2 100644
--- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloCluster_v1.h
+++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/versions/CaloCluster_v1.h
@@ -32,6 +32,9 @@ extern "C" {
 // ROOT include(s):
 #include "Math/Vector4D.h"
 
+//Already include the DataVector specialization for this type
+#include "xAODCaloEvent/CaloClusterContainerFwd.h"
+
 // Declare a dummy CaloClusterCellLink definition for standalone compilation:
 #if defined(GENERATIONBASE) || defined(SIMULATIONBASE) || defined(XAOD_ANALYSIS)
 class CaloClusterCellLink {};
@@ -795,4 +798,8 @@ namespace xAOD {
 
 } // namespace xAOD
 
+// Finish declaration of IParticle as a base class of CaloCluster_v1:
+DATAVECTOR_BASE_FIN( xAOD::CaloCluster_v1, xAOD::IParticle );
+
+
 #endif // XAODCALOEVENT_VERSIONS_CALOCLUSTER_V1_H
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h
index a2fa3dc3bfe3d37a1833b07a71aafebac35a1949..78a05f6ea76d7c7cda7f6a2085b6b3118e71a308 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/EgammaContainerFwd.h
@@ -15,7 +15,7 @@
 DATAVECTOR_BASE_FWD( xAOD::Egamma, xAOD::IParticle);
 namespace xAOD {
    /// Definition of the current "egamma container version"
-  typedef DataVector<Egamma > EgammaContainer;
+  typedef DataVector<Egamma> EgammaContainer;
 }
 
 #endif // XAODEGAMMA_EGAMMACONTAINERFWD_H
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h
index f2ea470e7788adb3e36a307efeee330a5cddca43..b04a179edfa82ccc06e4d7e1a09eb3270d996f23 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/ElectronContainerFwd.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: ElectronContainerFwd.h 644948 2015-02-07 01:33:06Z christos $
 #ifndef XAODEGAMMA_ELECTRONCONTAINERFWD_H
 #define XAODEGAMMA_ELECTRONCONTAINERFWD_H
 
@@ -15,7 +14,7 @@
 DATAVECTOR_BASE_FWD( xAOD::Electron, xAOD::Egamma );
 namespace xAOD {
    /// The container is a simple typedef for now
-   typedef DataVector< xAOD::Electron > ElectronContainer;
+   typedef DataVector< xAOD::Electron> ElectronContainer;
 }
 
 
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h b/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h
index 17dfa03ced7a5876551c303c90bc04fbe16f6dad..ff0d5cfec83fd11be67a9bf6dff1f65d8ea02083 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/PhotonContainerFwd.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: PhotonContainerFwd.h 644948 2015-02-07 01:33:06Z christos $
 #ifndef XAODEGAMMA_PHOTONCONTAINERFWD_H
 #define XAODEGAMMA_PHOTONCONTAINERFWD_H
 
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/EgammaContainer_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/EgammaContainer_v1.h
index a979e2ca3a65c76aa60e629c7ebe4fe084b9550e..c32376588189f66513e15f6c7bad96def292ff2a 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/EgammaContainer_v1.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/EgammaContainer_v1.h
@@ -11,13 +11,9 @@
 // Core include(s):
 #include "AthContainers/DataVector.h"
 #include "xAODBase/IParticleContainer.h"
-
 // Local include(s):
 #include "xAODEgamma/versions/Egamma_v1.h"
-#include "xAODEgamma/EgammaContainerFwd.h"
 
-//Need that to compler the DATAVECTOR_BASE_FWD
-template struct DataVector_detail::DVLEltBaseInit< xAOD::Egamma_v1>;
 namespace xAOD {
    /// The container is a simple typedef for now
    typedef DataVector< xAOD::Egamma_v1 > EgammaContainer_v1;
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h
index 8ae0072015844e97dddba79c74ad5f2e94d174f9..f0d1f4724d0a052316c68c90ec8a0248d33f3827 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Egamma_v1.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: Egamma_v1.h 788131 2016-12-05 16:24:11Z christos $
 #ifndef XAODEGAMMA_VERSIONS_EGAMMA_V1_H
 #define XAODEGAMMA_VERSIONS_EGAMMA_V1_H
 
@@ -36,6 +35,10 @@
 // ROOT include(s):
 #include "Math/Vector4D.h"
 
+//Already include the DataVector specialization for this type
+#include "xAODEgamma/EgammaContainerFwd.h"
+
+
 namespace xAOD {
 
   /// @class xAOD::Egamma
@@ -415,5 +418,7 @@ namespace xAOD {
 
 } // namespace xAOD
 
+//Finish declaration of IParticle as a base class of Egamma
+DATAVECTOR_BASE_FIN(xAOD::Egamma_v1, xAOD::IParticle);
 
 #endif // XAODEGAMMA_VERSIONS_EGAMMA_V1_H
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/ElectronContainer_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/ElectronContainer_v1.h
index 1790d455fa4477e6652f074e7ed3a409bcaef85f..d90313240238874f10bdbed8bfbb2dd6a1b8dff9 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/ElectronContainer_v1.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/ElectronContainer_v1.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: ElectronContainer_v1.h 644948 2015-02-07 01:33:06Z christos $
 #ifndef XAODEGAMMA_VERSIONS_ELECTRONCONTAINER_V1_H
 #define XAODEGAMMA_VERSIONS_ELECTRONCONTAINER_V1_H
 
@@ -14,10 +13,7 @@
 // Local include(s):
 #include "xAODEgamma/versions/Electron_v1.h"
 #include "xAODEgamma/versions/EgammaContainer_v1.h"
-#include "xAODEgamma/ElectronContainerFwd.h"
 
-//Need that to compler the DATAVECTOR_BASE_FWD
-template struct DataVector_detail::DVLEltBaseInit< xAOD::Electron_v1>;
 
 namespace xAOD {
    /// The container is a simple typedef for now
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h
index f3a6987423f29c0d16ebe168cb8805785ecfb7a8..5a8c4afd76b796dd7c49b2d9bf1e161c89fb24bf 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Electron_v1.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: Electron_v1.h 636327 2014-12-16 16:34:24Z christos $
 #ifndef XAODEGAMMA_VERSIONS_ELECTRON_V1_H
 #define XAODEGAMMA_VERSIONS_ELECTRON_V1_H
 	
@@ -20,6 +19,9 @@
 #include "xAODTracking/TrackParticle.h"
 #include "xAODTracking/TrackParticleContainer.h"
 
+//Already include the DataVector specialization for this type
+#include "xAODEgamma/ElectronContainerFwd.h"
+
 namespace xAOD {
 
   /// @class xAOD::Electron
@@ -131,7 +133,8 @@ namespace xAOD {
   }; // Electron Class
 
 }//  xAOD namespace
-
+//Finish declaration of Egamma as a base class of Electron
+DATAVECTOR_BASE_FIN(xAOD::Electron_v1, xAOD::Egamma);
 
 #endif // XAODEGAMMA_VERSIONS_ELECTRON_V1_H
 
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/PhotonContainer_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/PhotonContainer_v1.h
index bd0ce52c3a974ccdbc5d87c30027465eda9ec7e9..eed00ac5db553cd14803eed73e8d300abebd8b92 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/PhotonContainer_v1.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/PhotonContainer_v1.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: PhotonContainer_v1.h 644948 2015-02-07 01:33:06Z christos $
 #ifndef XAODEGAMMA_VERSIONS_PHOTONCONTAINER_V1_H
 #define XAODEGAMMA_VERSIONS_PHOTONCONTAINER_V1_H
 
@@ -14,10 +13,6 @@
 // Local include(s):
 #include "xAODEgamma/versions/Photon_v1.h"
 #include "xAODEgamma/versions/EgammaContainer_v1.h"
-#include "xAODEgamma/PhotonContainerFwd.h"
-
-//Need that to compler the DATAVECTOR_BASE_FWD
-template struct DataVector_detail::DVLEltBaseInit< xAOD::Photon_v1>;
 
 namespace xAOD {
    /// The container is a simple typedef for now
diff --git a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h
index d9338c8be41df155ca12fe05e9c8b1c0c45b4ee5..54095fa979653d3bcc5aab60337482298def5259 100644
--- a/Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h
+++ b/Event/xAOD/xAODEgamma/xAODEgamma/versions/Photon_v1.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id: Photon_v1.h 667341 2015-05-15 14:39:34Z christos $
 #ifndef XAODEGAMMA_VERSIONS_PHOTON_V1_H
 #define XAODEGAMMA_VERSIONS_PHOTON_V1_H
 
@@ -20,6 +19,10 @@
 #include "xAODEgamma/versions/Egamma_v1.h"
 #include "xAODEgamma/PhotonxAODHelpers.h"
 
+//Already include the DataVector specialization for this type
+#include "xAODEgamma/PhotonContainerFwd.h"
+
+
 namespace xAOD {
 
   /// @class xAOD::Photon
@@ -119,5 +122,6 @@ namespace xAOD {
 
 }//  xAOD namespace
 
-
+//Finish declaration of Egamma as base class of Photon_v1
+DATAVECTOR_BASE_FIN(xAOD::Photon_v1, xAOD::Egamma);
 #endif // XAODEGAMMA_VERSIONS_PHOTON_V1_H
diff --git a/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h b/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h
index 0c8bef3b2f3cd99ae6f123f8e943c405ff20e8f0..f74a98a5ac46390c78ecd4ce06bf812df3cce41c 100644
--- a/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h
+++ b/Event/xAOD/xAODTracking/xAODTracking/NeutralParticleContainerFwd.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id$
 #ifndef XAODTRACKING_NEUTRALPARTICLECONTAINERFWD_H
 #define XAODTRACKING_NEUTRALPARTICLECONTAINERFWD_H
 
@@ -21,7 +20,7 @@
 DATAVECTOR_BASE_FWD( xAOD::NeutralParticle, xAOD::IParticle );
 namespace xAOD {
    /// Provide a forward declaration for NeutralParticleContainer
-   typedef DataVector< NeutralParticle > NeutralParticleContainer;
+   typedef DataVector< NeutralParticle> NeutralParticleContainer;
 }
 
 #endif // XAODTRACKING_NEUTRALPARTICLECONTAINERFWD_H
diff --git a/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h b/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h
index d50a2f106738acc962ddc8878fb2af34994460eb..cc05041629c587c8d837a667e6fd427847f23bf3 100644
--- a/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h
+++ b/Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainerFwd.h
@@ -1,10 +1,9 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
-// $Id$
 #ifndef XAODTRACKING_TRACKPARTICLECONTAINERFWD_H
 #define XAODTRACKING_TRACKPARTICLECONTAINERFWD_H
 
@@ -23,7 +22,7 @@
 DATAVECTOR_BASE_FWD( xAOD::TrackParticle, xAOD::IParticle );
 namespace xAOD {
    /// Provide a forward declaration for TrackParticleContainer
-   typedef DataVector< TrackParticle > TrackParticleContainer;
+   typedef DataVector< TrackParticle> TrackParticleContainer;
 }
 
 #endif // XAODTRACKING_TRACKPARTICLECONTAINERFWD_H
diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticleContainer_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticleContainer_v1.h
index 5cdea055abff6a4e8a676aaf8fc77042614bd302..bcb67aca4bda5c58de0c7815bb37f6c673bbdd03 100644
--- a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticleContainer_v1.h
+++ b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticleContainer_v1.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef XAODTRACKING_VERSIONS_NEUTRALPARTICLECONTAINER_V1_H
@@ -12,10 +12,6 @@
  
 // Local include(s):
 #include "xAODTracking/versions/NeutralParticle_v1.h"
-#include "xAODTracking/NeutralParticleContainerFwd.h"
-
-// To complete the DATAVECTOR_BASE macro:
-template struct DataVector_detail::DVLEltBaseInit< xAOD::NeutralParticle_v1 >;
 
 namespace xAOD {
    /// The container is a simple typedef for now
diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h
index 7f7002a8573c0c78893244a4f56c2991eb8bade5..e35519f6576b881f78ed32615e036b6800a3a29c 100644
--- a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h
+++ b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h
@@ -28,6 +28,8 @@
 // ROOT include(s):
 #include "Math/Vector4D.h"
 
+//Already include the DataVector specialization for this type
+#include "xAODTracking/NeutralParticleContainerFwd.h"
 
 namespace xAOD {
   /// Class describing a NeutralParticle.
@@ -146,5 +148,8 @@ namespace xAOD {
 
 } // namespace xAOD
 
+// Finish declaration of IParticle as a base class of NeutralParticle_v1
+DATAVECTOR_BASE_FIN( xAOD::NeutralParticle_v1, xAOD::IParticle );
+
 
 #endif // XAODTRACKING_VERSIONS_NEUTRALPARTICLE_V1_H
diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleContainer_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleContainer_v1.h
index d03a53c4c07e290a00fcc3712d37bb8c1802bd0c..b4b8543b370fd51c374417f769ccfb646777c3b8 100644
--- a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleContainer_v1.h
+++ b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticleContainer_v1.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef XAODTRACKING_VERSIONS_TRACKPARTICLECONTAINER_V1_H
@@ -12,10 +12,6 @@
  
 // Local include(s):
 #include "xAODTracking/versions/TrackParticle_v1.h"
-#include "xAODTracking/TrackParticleContainerFwd.h"
-
-// To complete the DATAVECTOR_BASE macro:
-template struct DataVector_detail::DVLEltBaseInit< xAOD::TrackParticle_v1 >;
 
 namespace xAOD {
    /// The container is a simple typedef for now
diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h
index 1332801c9be87dd3d32e47fbf544a3bc3bfa190d..b2b0a0c24c0b9afc481437347226aa5aa1b5ebe6 100644
--- a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h
+++ b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h
@@ -1,7 +1,7 @@
 // Dear emacs, this is -*- c++ -*-
 
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef XAODTRACKING_VERSIONS_TRACKPARTICLE_V1_H
@@ -31,6 +31,8 @@ extern "C" {
 // ROOT include(s):
 #include "Math/Vector4D.h"
 
+//Already include the DataVector specialization for this type
+#include "xAODTracking/TrackParticleContainerFwd.h"
 namespace xAOD {
 
   /// Class describing a TrackParticle.
@@ -348,5 +350,7 @@ private:
 
   } // namespace xAOD
 
+// Finish declaration of IParticle as a base class of TrackParticle_v1
+DATAVECTOR_BASE_FIN( xAOD::TrackParticle_v1, xAOD::IParticle );
 
 #endif // XAODTRACKING_VERSIONS_TrackParticle_v1_H