diff --git a/Reconstruction/egamma/egammaEventTPCnv/cmt/requirements b/Reconstruction/egamma/egammaEventTPCnv/cmt/requirements
new file mode 100755
index 0000000000000000000000000000000000000000..1bdab879aa4dda0173d7bb41a01694e5b8d7e7fe
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/cmt/requirements
@@ -0,0 +1,42 @@
+package egammaEventTPCnv
+
+author David Rousseau  <rousseau@lal.in2p3.fr>
+author Sebastien Binet <binet@cern.ch>
+
+use AtlasPolicy		 AtlasPolicy-*
+
+# use StoreGate		 StoreGate-*		    Control	
+
+# use AthenaPoolUtilities  AthenaPoolUtilities-*	    Database/AthenaPOOL
+use AthenaPoolCnvSvc	 AthenaPoolCnvSvc-*	    Database/AthenaPOOL
+# use DataModel		 DataModel-*		    Control
+use DataModelAthenaPool	 DataModelAthenaPool-*      Control
+use EventCommonTPCnv     EventCommonTPCnv-*         Event
+
+use egammaEvent          egammaEvent-*              Reconstruction/egamma
+use ParticleEventTPCnv   ParticleEventTPCnv-*       PhysicsAnalysis/AnalysisCommon
+# use RootConversions      RootConversions-*          Database/AthenaPOOL
+# use TrkEventTPCnv        TrkEventTPCnv-*            Tracking/TrkEventCnv
+
+
+private
+use AtlasReflex		 AtlasReflex-*		    External
+use GaudiInterface	 GaudiInterface-*	    External
+use AthenaKernel	 AthenaKernel-*             Control
+end_private
+
+
+branches egammaEventTPCnv src
+
+library egammaEventTPCnv *.cxx
+apply_pattern tpcnv_library
+
+# 
+# Create a dictionary for the persistent representation 
+# of transient classes
+private
+apply_pattern lcgdict dict=egammaEventTPCnv selectionfile=selection.xml headerfiles="../egammaEventTPCnv/egammaEventTPCnvDict.h"
+apply_pattern lcgdict dict=ARA_egammaEventTPCnv selectionfile=ARA_selection.xml headerfiles="../egammaEventTPCnv/egammaEventTPCnvDict.h"
+apply_pattern lcgdict dict=OLD_egammaEventTPCnv selectionfile=OLD_selection.xml headerfiles="../egammaEventTPCnv/egammaEventTPCnvDict.h"
+end_private
+
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ARA_selection.xml b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ARA_selection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cb1c89f5210f4412f5db586c0429787b167a9852
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ARA_selection.xml
@@ -0,0 +1,124 @@
+<!--  This file contains the various classes needed ATM for the ARA side of -->
+<!--  things all the other dicts needed for plain Athena should be put      -->
+<!--  elsewhere -->
+
+
+<lcgdict>
+
+  <class name="ITPConverterFor<ElectronContainer>"/>
+
+  <class name="T_TPCnv<ElectronContainer,ElectronContainer_p5>"/>
+  <class name="T_AthenaPoolTPCnvVector<ElectronContainer,ElectronContainer_p5,ElectronCnv_p5>"/>
+  <class name="T_AthenaPoolTPCnvBase<ElectronContainer,ElectronContainer_p5>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p5>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p5>"/>
+
+  <class name="T_TPCnv<ElectronContainer,ElectronContainer_p4>"/>
+  <class name="T_AthenaPoolTPCnvVector<ElectronContainer,ElectronContainer_p4,ElectronCnv_p4>"/>
+  <class name="T_AthenaPoolTPCnvBase<ElectronContainer,ElectronContainer_p4>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p4>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p4>"/>
+
+  <class name="T_TPCnv<ElectronContainer,ElectronContainer_p3>"/>
+  <class name="T_AthenaPoolTPCnvVector<ElectronContainer,ElectronContainer_p3,ElectronCnv_p3>"/>
+  <class name="T_AthenaPoolTPCnvBase<ElectronContainer,ElectronContainer_p3>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p3>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p3>"/>
+
+  <class name="T_TPCnv<ElectronContainer,ElectronContainer_p2>"/>
+  <class name="T_AthenaPoolTPCnvVector<ElectronContainer,ElectronContainer_p2,ElectronCnv_p2>"/>
+  <class name="T_AthenaPoolTPCnvBase<ElectronContainer,ElectronContainer_p2>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p2>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p2>"/>
+
+  <class name="T_TPCnv<ElectronContainer,ElectronContainer_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<ElectronContainer,ElectronContainer_p1,ElectronCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<ElectronContainer,ElectronContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<ElectronContainer,ElectronContainer,ElectronContainer_p1>"/>
+
+  <class name="ITPConverterFor<PhotonContainer>"/>
+
+  <class name="T_TPCnv<PhotonContainer,PhotonContainer_p5>"/>
+  <class name="T_AthenaPoolTPCnvVector<PhotonContainer,PhotonContainer_p5,PhotonCnv_p5>"/>
+  <class name="T_AthenaPoolTPCnvBase<PhotonContainer,PhotonContainer_p5>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p5>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p5>"/>
+
+  <class name="T_TPCnv<PhotonContainer,PhotonContainer_p4>"/>
+  <class name="T_AthenaPoolTPCnvVector<PhotonContainer,PhotonContainer_p4,PhotonCnv_p4>"/>
+  <class name="T_AthenaPoolTPCnvBase<PhotonContainer,PhotonContainer_p4>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p4>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p4>"/>
+
+  <class name="T_TPCnv<PhotonContainer,PhotonContainer_p3>"/>
+  <class name="T_AthenaPoolTPCnvVector<PhotonContainer,PhotonContainer_p3,PhotonCnv_p3>"/>
+  <class name="T_AthenaPoolTPCnvBase<PhotonContainer,PhotonContainer_p3>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p3>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p3>"/>
+
+  <class name="T_TPCnv<PhotonContainer,PhotonContainer_p2>"/>
+  <class name="T_AthenaPoolTPCnvVector<PhotonContainer,PhotonContainer_p2,PhotonCnv_p2>"/>
+  <class name="T_AthenaPoolTPCnvBase<PhotonContainer,PhotonContainer_p2>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p2>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p2>"/>
+
+  <class name="T_TPCnv<PhotonContainer,PhotonContainer_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<PhotonContainer,PhotonContainer_p1,PhotonCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<PhotonContainer,PhotonContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<PhotonContainer,PhotonContainer,PhotonContainer_p1>"/>
+
+  <class name="ITPConverterFor<egammaContainer>"/>
+
+  <class name="T_TPCnv<egammaContainer,egammaContainer_p5>"/>
+  <class name="T_AthenaPoolTPCnvVector<egammaContainer,egammaContainer_p5,egammaCnv_p5>"/>
+  <class name="T_AthenaPoolTPCnvBase<egammaContainer,egammaContainer_p5>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p5>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p5>"/>
+
+  <class name="T_TPCnv<egammaContainer,egammaContainer_p4>"/>
+  <class name="T_AthenaPoolTPCnvVector<egammaContainer,egammaContainer_p4,egammaCnv_p4>"/>
+  <class name="T_AthenaPoolTPCnvBase<egammaContainer,egammaContainer_p4>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p4>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p4>"/>
+
+  <class name="T_TPCnv<egammaContainer,egammaContainer_p3>"/>
+  <class name="T_AthenaPoolTPCnvVector<egammaContainer,egammaContainer_p3,egammaCnv_p3>"/>
+  <class name="T_AthenaPoolTPCnvBase<egammaContainer,egammaContainer_p3>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p3>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p3>"/>
+
+  <class name="T_TPCnv<egammaContainer,egammaContainer_p2>"/>
+  <class name="T_AthenaPoolTPCnvVector<egammaContainer,egammaContainer_p2,egammaCnv_p2>"/>
+  <class name="T_AthenaPoolTPCnvBase<egammaContainer,egammaContainer_p2>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p2>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p2>"/>
+
+  <class name="T_TPCnv<egammaContainer,egammaContainer_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<egammaContainer,egammaContainer_p1,egammaCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<egammaContainer,egammaContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<egammaContainer,egammaContainer,egammaContainer_p1>"/>
+
+  <class name="T_TPCnv<egDetailContainer, egDetailContainer_p2>" />
+  <class name="egDetailContainerCnv_p2"/>
+  <class name="T_AthenaPoolTPCnvBase<egDetailContainer, egDetailContainer_p2>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<egDetailContainer, egDetailContainer, egDetailContainer_p2>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<egDetailContainer, egDetailContainer, egDetailContainer_p2>"/>
+  <class name="ITPConverterFor<egDetailContainer>"/>
+
+  <class name="T_TPCnv<egDetailContainer, egDetailContainer_p1>" />
+  <class name="egDetailContainerCnv_p1"/>
+  <class name="T_AthenaPoolTPCnvBase<egDetailContainer, egDetailContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<egDetailContainer, egDetailContainer, egDetailContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<egDetailContainer, egDetailContainer, egDetailContainer_p1>"/>
+
+  <class name="T_TPCnv<CaloRingsContainer, CaloRingsContainer_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<CaloRingsContainer, CaloRingsContainer_p1, CaloRingsCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<CaloRingsContainer, CaloRingsContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<CaloRingsContainer, CaloRingsContainer, CaloRingsContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<CaloRingsContainer, CaloRingsContainer, CaloRingsContainer_p1>"/>
+  <class name="ITPConverterFor<CaloRingsContainer>"/>
+
+</lcgdict>
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsCnv_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..ed64a575f38c0bd8fa7583ba81b850c974981e81
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsCnv_p1.h
@@ -0,0 +1,70 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// CaloRingsCnv_p1.h 
+// Header file for class CaloRingsCnv_p1
+// Author: D.E.Ferreira de Lima<dferreir@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef RECTPCNV_CALORINGSCNV_P1_H 
+#define RECTPCNV_CALORINGSCNV_P1_H 
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// RecTPCnv includes
+#include "egammaEventTPCnv/CaloRings_p1.h"
+
+// Forward declaration
+class MsgStream;
+class CaloRings;
+
+class CaloRingsCnv_p1 : public T_AthenaPoolTPCnvBase<CaloRings, CaloRings_p1>
+{
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  CaloRingsCnv_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c CaloRings
+   *  from its persistent representation @c CaloRings_p1
+   */
+  virtual void persToTrans( const CaloRings_p1* persObj, 
+                            CaloRings* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c CaloRings_p1
+   *  from its transient representation @c CaloRings
+   */
+  virtual void transToPers( const CaloRings* transObj, 
+                            CaloRings_p1* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline CaloRingsCnv_p1::CaloRingsCnv_p1()
+{}
+
+#endif //> RECTPCNV_CALORINGSCNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsContainerCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsContainerCnv_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..e64a1a05e5b2b4656a4dae2f8d1cd25613889bce
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsContainerCnv_p1.h
@@ -0,0 +1,41 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// CaloRingsContainerCnv_p1.h 
+// Header file for class CaloRingsContainerCnv_p1
+// Author: D.E.Ferreira de Lima<dferreir@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef RECTPCNV_CALORINGSCONTAINERCNV_P1_H 
+#define RECTPCNV_CALORINGSCONTAINERCNV_P1_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/CaloRingsContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// RecTPCnv includes
+#include "egammaEventTPCnv/CaloRingsContainer_p1.h"
+#include "egammaEventTPCnv/CaloRingsCnv_p1.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            CaloRingsContainer, 
+            CaloRingsContainer_p1, 
+            CaloRingsCnv_p1 
+       > CaloRingsContainerCnv_p1;
+
+template<>
+class T_TPCnv<CaloRingsContainer, CaloRingsContainer_p1>
+  : public CaloRingsContainerCnv_p1
+{
+public:
+};
+
+#endif //> RECTPCNV_CALORINGSCONTAINERCNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsContainer_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsContainer_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..44f24b67895b13a2d631e118a2738e7865f58ef9
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRingsContainer_p1.h
@@ -0,0 +1,23 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// CaloRingsContainer_p1.h 
+// Header file for class CaloRingsContainer_p1
+// Author: D.E.Ferreira de Lima<dferreir@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef RECTPCNV_CALORINGSCONTAINER_P1_H 
+#define RECTPCNV_CALORINGSCONTAINER_P1_H 
+
+// STL includes
+#include <vector>
+
+// RecTPCnv includes
+#include "egammaEventTPCnv/CaloRings_p1.h"
+
+class CaloRingsContainer_p1 : public std::vector<CaloRings_p1>
+{};
+
+#endif //> RECTPCNV_CALORINGSCONTAINER_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRings_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRings_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..43676d19940e5c18f9d3f188ce6796dd40fe2d56
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/CaloRings_p1.h
@@ -0,0 +1,77 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// CaloRings_p1.h 
+// Header file for class CaloRings_p1
+// Author: D.E.Ferreira de Lima<dferreir@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef RECTPCNV_CALORINGS_P1_H 
+#define RECTPCNV_CALORINGS_P1_H 
+
+// STL includes
+#include <vector>
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLink_p3.h"
+#include "DataModelAthenaPool/ElementLinkVector_p1.h"
+
+// forward declarations
+class CaloRingsCnv_p1;
+
+class CaloRings_p1 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class CaloRingsCnv_p1;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  CaloRings_p1();
+
+  /** Destructor: 
+   */
+  ~CaloRings_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// Ring information
+  std::vector<float>  m_rings;
+  std::vector<unsigned int> m_nRings;
+
+  std::vector<int> m_layers; // To be converted to CaloCell_ID::CaloSample
+  std::vector<unsigned int> m_nLayers;
+
+  std::vector<float> m_deltaEta;
+  std::vector<float> m_deltaPhi;
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline CaloRings_p1::CaloRings_p1()
+{}
+
+#endif //> RECTPCNV_EGAMMA_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..787d886e07dc4a1f88471890a6e7d39623289011
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p1.h
@@ -0,0 +1,74 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p1.h 
+// Header file for class ElectronCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCNV_P1_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCNV_P1_H 
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p1.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Electron; }
+
+class ElectronCnv_p1 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Electron, 
+		                 Electron_p1
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  ElectronCnv_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Electron
+   *  from its persistent representation @c Electron_p1
+   */
+  virtual void persToTrans( const Electron_p1* persObj, 
+                            Analysis::Electron* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Electron_p1
+   *  from its transient representation @c Analysis::Electron
+   */
+  virtual void transToPers( const Analysis::Electron* transObj, 
+                            Electron_p1* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline ElectronCnv_p1::ElectronCnv_p1()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..6e87d831da4fe510b7ebbbf1793caa49750050ff
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p2.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p2.h 
+// Header file for class ElectronCnv_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCNV_P2_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCNV_P2_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p2.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Electron; }
+
+class ElectronCnv_p2 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Electron, 
+		                 Electron_p2
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  ElectronCnv_p2();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Electron
+   *  from its persistent representation @c Electron_p2
+   */
+  virtual void persToTrans( const Electron_p2* persObj, 
+                            Analysis::Electron* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Electron_p2
+   *  from its transient representation @c Analysis::Electron
+   */
+  virtual void transToPers( const Analysis::Electron* transObj, 
+                            Electron_p2* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline ElectronCnv_p2::ElectronCnv_p2()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCNV_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..8b463ca90538b7b951ffde2e2ccf255be892e405
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p3.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p3.h 
+// Header file for class ElectronCnv_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCNV_P3_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCNV_P3_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p3.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Electron; }
+
+class ElectronCnv_p3 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Electron, 
+		                 Electron_p3
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  ElectronCnv_p3();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Electron
+   *  from its persistent representation @c Electron_p3
+   */
+  virtual void persToTrans( const Electron_p3* persObj, 
+                            Analysis::Electron* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Electron_p3
+   *  from its transient representation @c Analysis::Electron
+   */
+  virtual void transToPers( const Analysis::Electron* transObj, 
+                            Electron_p3* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline ElectronCnv_p3::ElectronCnv_p3()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCNV_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..7d4448427581c9a501717471a75879591806065d
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p4.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p4.h 
+// Header file for class ElectronCnv_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCNV_P4_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCNV_P4_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p4.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Electron; }
+
+class ElectronCnv_p4 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Electron, 
+		                 Electron_p4
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  ElectronCnv_p4();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Electron
+   *  from its persistent representation @c Electron_p4
+   */
+  virtual void persToTrans( const Electron_p4* persObj, 
+                            Analysis::Electron* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Electron_p4
+   *  from its transient representation @c Analysis::Electron
+   */
+  virtual void transToPers( const Analysis::Electron* transObj, 
+                            Electron_p4* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline ElectronCnv_p4::ElectronCnv_p4()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCNV_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..bfaf9fe68efd7189e9e32753183b9750798f5141
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronCnv_p5.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p5.h 
+// Header file for class ElectronCnv_p5
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCNV_P5_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCNV_P5_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p5.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Electron; }
+
+class ElectronCnv_p5 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Electron, 
+		                 Electron_p5
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  ElectronCnv_p5();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Electron
+   *  from its persistent representation @c Electron_p5
+   */
+  virtual void persToTrans( const Electron_p5* persObj, 
+                            Analysis::Electron* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Electron_p5
+   *  from its transient representation @c Analysis::Electron
+   */
+  virtual void transToPers( const Analysis::Electron* transObj, 
+                            Electron_p5* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline ElectronCnv_p5::ElectronCnv_p5()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCNV_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..0915447af82866d8da25809c9e29ac1ca57c3a60
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p1.h
@@ -0,0 +1,42 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p1.h 
+// Header file for class ElectronContainerCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P1_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P1_H 
+
+// STL includes
+
+// Gaudi includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainer_p1.h"
+#include "egammaEventTPCnv/ElectronCnv_p1.h"
+
+// egammaEvent includes
+#include "egammaEvent/ElectronContainer.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            ElectronContainer, 
+            ElectronContainer_p1, 
+            ElectronCnv_p1 
+       > ElectronContainerCnv_p1;
+
+template<>
+class T_TPCnv<ElectronContainer, ElectronContainer_p1>
+  : public ElectronContainerCnv_p1
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..9c8dcd591836f86739e15558ecc96e758b39def4
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p2.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p2.h 
+// Header file for class ElectronContainerCnv_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P2_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P2_H 1
+
+// STL includes
+
+// Gaudi includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainer_p2.h"
+#include "egammaEventTPCnv/ElectronCnv_p2.h"
+
+// egammaEvent includes
+#include "egammaEvent/ElectronContainer.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            ElectronContainer, 
+            ElectronContainer_p2, 
+            ElectronCnv_p2 
+       > ElectronContainerCnv_p2;
+
+template<>
+class T_TPCnv<ElectronContainer, ElectronContainer_p2>
+  : public ElectronContainerCnv_p2
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..87cf4a8f7c1f18d06248ef36fbfb4d33f7fa8145
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p3.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p3.h 
+// Header file for class ElectronContainerCnv_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P3_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P3_H 1
+
+// STL includes
+
+// Gaudi includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainer_p3.h"
+#include "egammaEventTPCnv/ElectronCnv_p3.h"
+
+// egammaEvent includes
+#include "egammaEvent/ElectronContainer.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            ElectronContainer, 
+            ElectronContainer_p3, 
+            ElectronCnv_p3 
+       > ElectronContainerCnv_p3;
+
+template<>
+class T_TPCnv<ElectronContainer, ElectronContainer_p3>
+  : public ElectronContainerCnv_p3
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..e19ab60ad460baaab0bc3e4e21f7f3769eb1dd83
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p4.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p4.h 
+// Header file for class ElectronContainerCnv_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P4_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P4_H 1
+
+// STL includes
+
+// Gaudi includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainer_p4.h"
+#include "egammaEventTPCnv/ElectronCnv_p4.h"
+
+// egammaEvent includes
+#include "egammaEvent/ElectronContainer.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            ElectronContainer, 
+            ElectronContainer_p4, 
+            ElectronCnv_p4 
+       > ElectronContainerCnv_p4;
+
+template<>
+class T_TPCnv<ElectronContainer, ElectronContainer_p4>
+  : public ElectronContainerCnv_p4
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..f07b044157e7deab75b8adbe92b5a2fe43e72f9f
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainerCnv_p5.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p5.h 
+// Header file for class ElectronContainerCnv_p5
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P5_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P5_H 1
+
+// STL includes
+
+// Gaudi includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainer_p5.h"
+#include "egammaEventTPCnv/ElectronCnv_p5.h"
+
+// egammaEvent includes
+#include "egammaEvent/ElectronContainer.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            ElectronContainer, 
+            ElectronContainer_p5, 
+            ElectronCnv_p5 
+       > ElectronContainerCnv_p5;
+
+template<>
+class T_TPCnv<ElectronContainer, ElectronContainer_p5>
+  : public ElectronContainerCnv_p5
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINERCNV_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..44f971851f1706ce96cb1cae54f13098f421ebd0
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p1.h
@@ -0,0 +1,24 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainer_p1.h 
+// Header file for class ElectronContainer_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+// Date:   December 2006
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P1_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P1_H 
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p1.h"
+
+class ElectronContainer_p1 : public std::vector<Electron_p1>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..cec57796cccae94ed4e292b78412fd1c4335ab0b
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p2.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainer_p2.h 
+// Header file for class ElectronContainer_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P2_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P2_H 
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p2.h"
+
+class ElectronContainer_p2 : public std::vector<Electron_p2>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..ebfc5e91571c121c72748cbf815f2d5e59d88b50
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p3.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainer_p3.h 
+// Header file for class ElectronContainer_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P3_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P3_H 1
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p3.h"
+
+class ElectronContainer_p3 : public std::vector<Electron_p3>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..d1f5ec5f6cbee29863b9879a19f5aa221372caaf
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p4.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainer_p4.h 
+// Header file for class ElectronContainer_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P4_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P4_H 1
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p4.h"
+
+class ElectronContainer_p4 : public std::vector<Electron_p4>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..61c3d6c4a75b8388717e5fabf70624556f10f8a4
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/ElectronContainer_p5.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainer_p5.h 
+// Header file for class ElectronContainer_p5
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P5_H 
+#define EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P5_H 1
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p5.h"
+
+class ElectronContainer_p5 : public std::vector<Electron_p5>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRONCONTAINER_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..09097ea7c85cd1cecb674c71038538fcf5b1fa60
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p1.h
@@ -0,0 +1,70 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p1.h 
+// Header file for class Electron_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+// Date:   December 2006
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRON_P1_H 
+#define EGAMMAEVENTTPCNV_ELECTRON_P1_H 
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p1.h"
+
+// forward declarations
+class ElectronCnv_p1;
+
+class Electron_p1 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class ElectronCnv_p1;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Electron_p1();
+
+  /** Destructor: 
+   */
+  ~Electron_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p1 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Electron_p1::Electron_p1() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRON_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..f73a476118fe2c8c3d85f15c6aed0a9e02e4de6f
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p2.h
@@ -0,0 +1,67 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p2.h 
+// Header file for class Electron_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRON_P2_H 
+#define EGAMMAEVENTTPCNV_ELECTRON_P2_H 
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p2.h"
+
+// forward declarations
+class ElectronCnv_p2;
+
+class Electron_p2 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class ElectronCnv_p2;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Electron_p2();
+
+  /** Destructor: 
+   */
+  ~Electron_p2();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p2 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Electron_p2::Electron_p2() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRON_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..5afd0fbb22e55f637934d184543ce932148dbccb
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p3.h
@@ -0,0 +1,67 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p3.h 
+// Header file for class Electron_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRON_P3_H 
+#define EGAMMAEVENTTPCNV_ELECTRON_P3_H 1
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p3.h"
+
+// forward declarations
+class ElectronCnv_p3;
+
+class Electron_p3 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class ElectronCnv_p3;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Electron_p3();
+
+  /** Destructor: 
+   */
+  ~Electron_p3();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p3 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Electron_p3::Electron_p3() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRON_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..1aadf73865ccfe1084bbba353bf042df5e55bac1
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p4.h
@@ -0,0 +1,67 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p4.h 
+// Header file for class Electron_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRON_P4_H 
+#define EGAMMAEVENTTPCNV_ELECTRON_P4_H 1
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p4.h"
+
+// forward declarations
+class ElectronCnv_p4;
+
+class Electron_p4 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class ElectronCnv_p4;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Electron_p4();
+
+  /** Destructor: 
+   */
+  ~Electron_p4();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p4 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Electron_p4::Electron_p4() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRON_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..601c4fd14eceb85612d8878b7dda1ad800bbafff
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Electron_p5.h
@@ -0,0 +1,67 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p5.h 
+// Header file for class Electron_p5
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_ELECTRON_P5_H 
+#define EGAMMAEVENTTPCNV_ELECTRON_P5_H 1
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p5.h"
+
+// forward declarations
+class ElectronCnv_p5;
+
+class Electron_p5 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class ElectronCnv_p5;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Electron_p5();
+
+  /** Destructor: 
+   */
+  ~Electron_p5();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p5 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Electron_p5::Electron_p5() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_ELECTRON_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/OLD_selection.xml b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/OLD_selection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..62c40b11c72029e2a4ba2071b5f47f3dacee9ae1
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/OLD_selection.xml
@@ -0,0 +1,24 @@
+<lcgdict>
+	
+	
+  <class name="egammaContainer_p1" id="DBA382E5-52F7-4B40-8623-E807E134412E" />
+  <class name="std::vector<egamma_p1>" />
+  <class name="egamma_p1" />
+
+
+  <class name="ElectronContainer_p1"  id="48355DA8-3BCE-43E0-B29B-51525BCEEDDD" />
+  <class name="std::vector<Electron_p1>" />
+  <class name="Electron_p1" />
+
+
+  <class name="PhotonContainer_p1"   id="7D40A2D2-C03C-470C-8F0C-937592D34B5B" />
+  <class name="std::vector<Photon_p1>" />
+  <class name="Photon_p1" />
+
+
+  <class name="egDetailContainer_p1" id="C3E26ADE-A984-41AC-83DF-F430F6DF1F1F" />
+  <class name="std::vector<egDetail_p1>" />
+  <class name="egDetail_p1" />
+
+
+</lcgdict>
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..53d928080c74125e35d7bc414d4cc641f069e15a
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p1.h
@@ -0,0 +1,74 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p1.h 
+// Header file for class PhotonCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCNV_P1_H 
+#define EGAMMAEVENTTPCNV_PHOTONCNV_P1_H 
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p1.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Photon; }
+
+class PhotonCnv_p1 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Photon, 
+		                 Photon_p1
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  PhotonCnv_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Photon
+   *  from its persistent representation @c Photon_p1
+   */
+  virtual void persToTrans( const Photon_p1* persObj, 
+                            Analysis::Photon* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Photon_p1
+   *  from its transient representation @c Analysis::Photon
+   */
+  virtual void transToPers( const Analysis::Photon* transObj, 
+                            Photon_p1* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline PhotonCnv_p1::PhotonCnv_p1()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..8cc65cd94214b9af5a41022062f4f75c1a36085d
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p2.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p2.h 
+// Header file for class PhotonCnv_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCNV_P2_H 
+#define EGAMMAEVENTTPCNV_PHOTONCNV_P2_H 
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p2.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Photon; }
+
+class PhotonCnv_p2 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Photon, 
+		                 Photon_p2
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  PhotonCnv_p2();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Photon
+   *  from its persistent representation @c Photon_p2
+   */
+  virtual void persToTrans( const Photon_p2* persObj, 
+                            Analysis::Photon* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Photon_p2
+   *  from its transient representation @c Analysis::Photon
+   */
+  virtual void transToPers( const Analysis::Photon* transObj, 
+                            Photon_p2* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline PhotonCnv_p2::PhotonCnv_p2()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCNV_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..80b53de391e189a8478320b12a2c3160596795a2
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p3.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p3.h 
+// Header file for class PhotonCnv_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCNV_P3_H 
+#define EGAMMAEVENTTPCNV_PHOTONCNV_P3_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p3.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Photon; }
+
+class PhotonCnv_p3 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Photon, 
+		                 Photon_p3
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  PhotonCnv_p3();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Photon
+   *  from its persistent representation @c Photon_p3
+   */
+  virtual void persToTrans( const Photon_p3* persObj, 
+                            Analysis::Photon* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Photon_p3
+   *  from its transient representation @c Analysis::Photon
+   */
+  virtual void transToPers( const Analysis::Photon* transObj, 
+                            Photon_p3* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline PhotonCnv_p3::PhotonCnv_p3()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCNV_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..2f25fe347f2338fa450fdfe18ba08c540c03cd45
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p4.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p4.h 
+// Header file for class PhotonCnv_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCNV_P4_H 
+#define EGAMMAEVENTTPCNV_PHOTONCNV_P4_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p4.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Photon; }
+
+class PhotonCnv_p4 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Photon, 
+		                 Photon_p4
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  PhotonCnv_p4();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Photon
+   *  from its persistent representation @c Photon_p4
+   */
+  virtual void persToTrans( const Photon_p4* persObj, 
+                            Analysis::Photon* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Photon_p4
+   *  from its transient representation @c Analysis::Photon
+   */
+  virtual void transToPers( const Analysis::Photon* transObj, 
+                            Photon_p4* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline PhotonCnv_p4::PhotonCnv_p4()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCNV_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..45824d56e0ef3697a26cd0ceca2427e38212ae4f
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonCnv_p5.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p5.h 
+// Header file for class PhotonCnv_p5
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCNV_P5_H 
+#define EGAMMAEVENTTPCNV_PHOTONCNV_P5_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p5.h"
+
+// Forward declaration
+class MsgStream;
+namespace Analysis { class Photon; }
+
+class PhotonCnv_p5 : public T_AthenaPoolTPCnvBase<
+                                 Analysis::Photon, 
+		                 Photon_p5
+		              >
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  PhotonCnv_p5();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c Analysis::Photon
+   *  from its persistent representation @c Photon_p5
+   */
+  virtual void persToTrans( const Photon_p5* persObj, 
+                            Analysis::Photon* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c Photon_p5
+   *  from its transient representation @c Analysis::Photon
+   */
+  virtual void transToPers( const Analysis::Photon* transObj, 
+                            Photon_p5* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline PhotonCnv_p5::PhotonCnv_p5()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCNV_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..ef60cbe55dee9129449ab4049c9a71e7d452fbc1
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p1.h
@@ -0,0 +1,42 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p1.h 
+// Header file for class PhotonContainerCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P1_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P1_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/PhotonContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainer_p1.h"
+#include "egammaEventTPCnv/PhotonCnv_p1.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            PhotonContainer, 
+            PhotonContainer_p1, 
+            PhotonCnv_p1 
+       > PhotonContainerCnv_p1;
+
+template<>
+class T_TPCnv<PhotonContainer, PhotonContainer_p1>
+  : public PhotonContainerCnv_p1
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..813c388dc99aa7a444931d33ff535b042aadb373
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p2.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p2.h 
+// Header file for class PhotonContainerCnv_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P2_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P2_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/PhotonContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainer_p2.h"
+#include "egammaEventTPCnv/PhotonCnv_p2.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            PhotonContainer, 
+            PhotonContainer_p2, 
+            PhotonCnv_p2 
+       > PhotonContainerCnv_p2;
+
+template<>
+class T_TPCnv<PhotonContainer, PhotonContainer_p2>
+  : public PhotonContainerCnv_p2
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..392bccf05134270124bde34852b80bd0671d5546
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p3.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p3.h 
+// Header file for class PhotonContainerCnv_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P3_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P3_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/PhotonContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainer_p3.h"
+#include "egammaEventTPCnv/PhotonCnv_p3.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            PhotonContainer, 
+            PhotonContainer_p3, 
+            PhotonCnv_p3 
+       > PhotonContainerCnv_p3;
+
+template<>
+class T_TPCnv<PhotonContainer, PhotonContainer_p3>
+  : public PhotonContainerCnv_p3
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..823a915f317f2453326a0f3e8836714f9cac33fe
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p4.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p4.h 
+// Header file for class PhotonContainerCnv_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P4_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P4_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/PhotonContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainer_p4.h"
+#include "egammaEventTPCnv/PhotonCnv_p4.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            PhotonContainer, 
+            PhotonContainer_p4, 
+            PhotonCnv_p4 
+       > PhotonContainerCnv_p4;
+
+template<>
+class T_TPCnv<PhotonContainer, PhotonContainer_p4>
+  : public PhotonContainerCnv_p4
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..734ad1590d75678853044208ed61733d660c9e00
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainerCnv_p5.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p5.h 
+// Header file for class PhotonContainerCnv_p5
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P5_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P5_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/PhotonContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainer_p5.h"
+#include "egammaEventTPCnv/PhotonCnv_p5.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            PhotonContainer, 
+            PhotonContainer_p5, 
+            PhotonCnv_p5 
+       > PhotonContainerCnv_p5;
+
+template<>
+class T_TPCnv<PhotonContainer, PhotonContainer_p5>
+  : public PhotonContainerCnv_p5
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINERCNV_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..4e9e0fcf18a80dbcbba27ea41bdcfea39de2047a
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p1.h
@@ -0,0 +1,24 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainer_p1.h 
+// Header file for class PhotonContainer_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+// Date:   December 2006
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINER_P1_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINER_P1_H 
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p1.h"
+
+class PhotonContainer_p1 : public std::vector<Photon_p1>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINER_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..b085b697fe9dafa89941d587dd26c9a377a9aa00
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p2.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainer_p2.h 
+// Header file for class PhotonContainer_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINER_P2_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINER_P2_H 
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p2.h"
+
+class PhotonContainer_p2 : public std::vector<Photon_p2>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINER_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..6436a79f7751f95050ee11e79c052f1399e3fdd7
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p3.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainer_p3.h 
+// Header file for class PhotonContainer_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINER_P3_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINER_P3_H 1
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p3.h"
+
+class PhotonContainer_p3 : public std::vector<Photon_p3>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINER_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..75aed7ef5d66580aac7326282d68a9c457d9fd4c
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p4.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainer_p4.h 
+// Header file for class PhotonContainer_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINER_P4_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINER_P4_H 1
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p4.h"
+
+class PhotonContainer_p4 : public std::vector<Photon_p4>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINER_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..2b5c0ead4410954e2d6a48fae430db3af160e5f5
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/PhotonContainer_p5.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainer_p5.h 
+// Header file for class PhotonContainer_p5
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTONCONTAINER_P5_H 
+#define EGAMMAEVENTTPCNV_PHOTONCONTAINER_P5_H 1
+
+// STL includes
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p5.h"
+
+class PhotonContainer_p5 : public std::vector<Photon_p5>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_PHOTONCONTAINER_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..f26885ffcff9a9a094058a9a79ca633618dc6da4
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p1.h
@@ -0,0 +1,70 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p1.h 
+// Header file for class Photon_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+// Date:   December 2006
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTON_P1_H 
+#define EGAMMAEVENTTPCNV_PHOTON_P1_H 
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p1.h"
+
+// forward declarations
+class PhotonCnv_p1;
+
+class Photon_p1 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class PhotonCnv_p1;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Photon_p1();
+
+  /** Destructor: 
+   */
+  ~Photon_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p1 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Photon_p1::Photon_p1() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTON_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..1d0ca4415e9f6d91c1e5f3208dee694e5ade2f4b
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p2.h
@@ -0,0 +1,67 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p2.h 
+// Header file for class Photon_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTON_P2_H 
+#define EGAMMAEVENTTPCNV_PHOTON_P2_H 1
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p2.h"
+
+// forward declarations
+class PhotonCnv_p2;
+
+class Photon_p2
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class PhotonCnv_p2;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Photon_p2();
+
+  /** Destructor: 
+   */
+  ~Photon_p2();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p2 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Photon_p2::Photon_p2() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTON_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..3ea5eeffa7d577e3d070c2202d539151dcaf3633
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p3.h
@@ -0,0 +1,67 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p3.h 
+// Header file for class Photon_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTON_P3_H 
+#define EGAMMAEVENTTPCNV_PHOTON_P3_H 1
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p3.h"
+
+// forward declarations
+class PhotonCnv_p3;
+
+class Photon_p3
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class PhotonCnv_p3;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Photon_p3();
+
+  /** Destructor: 
+   */
+  ~Photon_p3();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p3 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Photon_p3::Photon_p3() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTON_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..656d2ba0f315bb64ceb5dd699f1e7b742008ba26
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p4.h
@@ -0,0 +1,67 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p4.h 
+// Header file for class Photon_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTON_P4_H 
+#define EGAMMAEVENTTPCNV_PHOTON_P4_H 1
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p4.h"
+
+// forward declarations
+class PhotonCnv_p4;
+
+class Photon_p4
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class PhotonCnv_p4;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Photon_p4();
+
+  /** Destructor: 
+   */
+  ~Photon_p4();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p4 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Photon_p4::Photon_p4() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTON_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..abf10b02be44003489fd828c6c93acbcdd581be8
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/Photon_p5.h
@@ -0,0 +1,67 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p5.h 
+// Header file for class Photon_p5
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_PHOTON_P5_H 
+#define EGAMMAEVENTTPCNV_PHOTON_P5_H 1
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p5.h"
+
+// forward declarations
+class PhotonCnv_p5;
+
+class Photon_p5
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class PhotonCnv_p5;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  Photon_p5();
+
+  /** Destructor: 
+   */
+  ~Photon_p5();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the egamma part 
+  egamma_p5 m_egamma;
+  
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline Photon_p5::Photon_p5() :
+  m_egamma()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_PHOTON_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainerCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainerCnv_p1.h
new file mode 100644
index 0000000000000000000000000000000000000000..5a9ec00680d0f9e3cdf579a621a7b85f53d48436
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainerCnv_p1.h
@@ -0,0 +1,51 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetailContainerCnv_p1.h 
+// Header file for class egDetailContainerCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGDETAILCONTAINERCNV_P1_H 
+#define EGAMMAEVENTTPCNV_EGDETAILCONTAINERCNV_P1_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/egDetailContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egDetailContainer_p1.h"
+
+class MsgStream;
+
+class egDetailContainerCnv_p1 : public T_AthenaPoolTPCnvBase<egDetailContainer, egDetailContainer_p1>
+{
+public:
+  egDetailContainerCnv_p1() {};
+  virtual void persToTrans( const egDetailContainer_p1     *persObj,
+			    egDetailContainer  *transObj,
+			    MsgStream                    &msg );
+
+  virtual void transToPers( const egDetailContainer *transObj,
+			    egDetailContainer_p1                *persObj,
+			    MsgStream                         &msg );
+};
+
+// Template for access to T/P converter from dictionary
+template<>
+class T_TPCnv<egDetailContainer, egDetailContainer_p1>
+  : public egDetailContainerCnv_p1
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_EGDETAILCONTAINERCNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainerCnv_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainerCnv_p2.h
new file mode 100644
index 0000000000000000000000000000000000000000..a9d98021828b0598a3ca8035ec9727c3e5657dee
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainerCnv_p2.h
@@ -0,0 +1,49 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetailContainerCnv_p2.h 
+// Header file for class egDetailContainerCnv_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGDETAILCONTAINERCNV_P2_H 
+#define EGAMMAEVENTTPCNV_EGDETAILCONTAINERCNV_P2_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/egDetailContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egDetailContainer_p2.h"
+
+class MsgStream;
+
+class egDetailContainerCnv_p2 : public T_AthenaPoolTPCnvBase<egDetailContainer, egDetailContainer_p2>
+{
+public:
+  egDetailContainerCnv_p2() {};
+  virtual void persToTrans( const egDetailContainer_p2     *persObj,
+			    egDetailContainer  *transObj,
+			    MsgStream                    &msg );
+
+  virtual void transToPers( const egDetailContainer *transObj,
+			    egDetailContainer_p2                *persObj,
+			    MsgStream                         &msg );
+};
+
+// Template for access to T/P converter from dictionary
+template<>
+class T_TPCnv<egDetailContainer, egDetailContainer_p2>
+  : public egDetailContainerCnv_p2
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_EGDETAILCONTAINERCNV_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainer_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainer_p1.h
new file mode 100644
index 0000000000000000000000000000000000000000..fcc554233bcdc04176415a99de84cd3477daa187
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainer_p1.h
@@ -0,0 +1,25 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetailContainer_p1.h 
+// Header file for class egDetailContainer_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+// Date:   December 2006
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGDETAILCONTAINER_P1_H 
+#define EGAMMAEVENTTPCNV_EGDETAILCONTAINER_P1_H 
+
+// STL includes
+#include <vector>
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egDetail_p1.h"
+
+class egDetailContainer_p1 : public std::vector<egDetail_p1>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_EGDETAILCONTAINER_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainer_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainer_p2.h
new file mode 100644
index 0000000000000000000000000000000000000000..6aabac3c175939b8dadb9e9085e540b12054735a
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetailContainer_p2.h
@@ -0,0 +1,23 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetailContainer_p2.h 
+// Header file for class egDetailContainer_p2
+// Date:   April 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGDETAILCONTAINER_P2_H 
+#define EGAMMAEVENTTPCNV_EGDETAILCONTAINER_P2_H 
+
+// STL includes
+#include <vector>
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egDetail_p2.h"
+
+class egDetailContainer_p2 : public std::vector<egDetail_p2>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_EGDETAILCONTAINER_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetail_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetail_p1.h
new file mode 100644
index 0000000000000000000000000000000000000000..2686da6c176bc75a3f8e9ece10de53a5808bfe58
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetail_p1.h
@@ -0,0 +1,72 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetailContainer_p1.h 
+// Header file for class egDetailContainer_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+// Date:   December 2006
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGDETAIL_P1_H 
+#define EGAMMAEVENTTPCNV_EGDETAIL_P1_H 
+
+// STL includes
+#include <vector>
+#include <string>
+
+// forward declarations
+class egDetailCnv_p1;
+
+class egDetail_p1 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  //  friend class egDetailCnv_p1;
+  friend class egDetailContainerCnv_p1;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  egDetail_p1();
+
+  /** Destructor: 
+   */
+  ~egDetail_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// egDetail Parameters and name of class
+  std::string m_className;
+  std::vector<unsigned int> m_egDetailEnumParams;
+  std::vector<float> m_egDetailFloatParams;
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egDetail_p1::egDetail_p1()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGDETAIL_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetail_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetail_p2.h
new file mode 100644
index 0000000000000000000000000000000000000000..8defead8fc3a308454a56e8119fa6578efc0d4ff
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egDetail_p2.h
@@ -0,0 +1,70 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetailContainer_p2.h 
+// Header file for class egDetailContainer_p2
+// Date:   April 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGDETAIL_P2_H 
+#define EGAMMAEVENTTPCNV_EGDETAIL_P2_H 
+
+// STL includes
+#include <vector>
+#include <string>
+
+// forward declarations
+class egDetailCnv_p2;
+
+class egDetail_p2 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  //  friend class egDetailCnv_p2;
+  friend class egDetailContainerCnv_p2;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  egDetail_p2();
+
+  /** Destructor: 
+   */
+  ~egDetail_p2();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// egDetail Parameters and name of class
+  std::string m_className;
+  std::vector<unsigned int> m_egDetailEnumParams;
+  std::vector<float> m_egDetailFloatParams;
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egDetail_p2::egDetail_p2()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGDETAIL_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..24cc3a208eaa29919d09162860a1dcd569eb2f8f
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p1.h
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p1.h 
+// Header file for class egammaCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACNV_P1_H 
+#define EGAMMAEVENTTPCNV_EGAMMACNV_P1_H 
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p1.h"
+
+// Forward declaration
+class MsgStream;
+class egamma;
+
+class egammaCnv_p1 : public T_AthenaPoolTPCnvBase<egamma, egamma_p1>
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  egammaCnv_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c egamma
+   *  from its persistent representation @c egamma_p1
+   */
+  virtual void persToTrans( const egamma_p1* persObj, 
+                            egamma* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c egamma_p1
+   *  from its transient representation @c egamma
+   */
+  virtual void transToPers( const egamma* transObj, 
+                            egamma_p1* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egammaCnv_p1::egammaCnv_p1()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..abcb1bf7d219519f1977205006d6e93be2ec35b7
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p2.h
@@ -0,0 +1,69 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p2.h 
+// Header file for class egammaCnv_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACNV_P2_H 
+#define EGAMMAEVENTTPCNV_EGAMMACNV_P2_H 
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p2.h"
+
+// Forward declaration
+class MsgStream;
+class egamma;
+
+class egammaCnv_p2 : public T_AthenaPoolTPCnvBase<egamma, egamma_p2>
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  egammaCnv_p2();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c egamma
+   *  from its persistent representation @c egamma_p2
+   */
+  virtual void persToTrans( const egamma_p2* persObj, 
+                            egamma* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c egamma_p2
+   *  from its transient representation @c egamma
+   */
+  virtual void transToPers( const egamma* transObj, 
+                            egamma_p2* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egammaCnv_p2::egammaCnv_p2()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACNV_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..ac166e78c1a199d740831dccddcc82179e462b9f
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p3.h
@@ -0,0 +1,69 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p3.h 
+// Header file for class egammaCnv_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACNV_P3_H 
+#define EGAMMAEVENTTPCNV_EGAMMACNV_P3_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p3.h"
+
+// Forward declaration
+class MsgStream;
+class egamma;
+
+class egammaCnv_p3 : public T_AthenaPoolTPCnvBase<egamma, egamma_p3>
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  egammaCnv_p3();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c egamma
+   *  from its persistent representation @c egamma_p3
+   */
+  virtual void persToTrans( const egamma_p3* persObj, 
+                            egamma* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c egamma_p3
+   *  from its transient representation @c egamma
+   */
+  virtual void transToPers( const egamma* transObj, 
+                            egamma_p3* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egammaCnv_p3::egammaCnv_p3()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACNV_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..5911e15e3ca35616c90eac28c069ba0679b86c66
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p4.h
@@ -0,0 +1,69 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p4.h 
+// Header file for class egammaCnv_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACNV_P4_H 
+#define EGAMMAEVENTTPCNV_EGAMMACNV_P4_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p4.h"
+
+// Forward declaration
+class MsgStream;
+class egamma;
+
+class egammaCnv_p4 : public T_AthenaPoolTPCnvBase<egamma, egamma_p4>
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  egammaCnv_p4();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c egamma
+   *  from its persistent representation @c egamma_p4
+   */
+  virtual void persToTrans( const egamma_p4* persObj, 
+                            egamma* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c egamma_p4
+   *  from its transient representation @c egamma
+   */
+  virtual void transToPers( const egamma* transObj, 
+                            egamma_p4* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egammaCnv_p4::egammaCnv_p4()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACNV_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..6aeecd9becc72b79b9b89dd748a5b7c3d7355474
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaCnv_p5.h
@@ -0,0 +1,70 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p5.h 
+// Header file for class egammaCnv_p5
+// New cnv to include Ringer: W.S.Freund<wsfreund@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACNV_P5_H 
+#define EGAMMAEVENTTPCNV_EGAMMACNV_P5_H 1
+
+// STL includes
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p5.h"
+
+// Forward declaration
+class MsgStream;
+class egamma;
+
+class egammaCnv_p5 : public T_AthenaPoolTPCnvBase<egamma, egamma_p5>
+{ 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+ public: 
+
+  /** Default constructor: 
+   */
+  egammaCnv_p5();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /** Method creating the transient representation of @c egamma
+   *  from its persistent representation @c egamma_p5
+   */
+  virtual void persToTrans( const egamma_p5* persObj, 
+                            egamma* transObj, 
+                            MsgStream& msg );
+
+  /** Method creating the persistent representation @c egamma_p5
+   *  from its transient representation @c egamma
+   */
+  virtual void transToPers( const egamma* transObj, 
+                            egamma_p5* persObj, 
+                            MsgStream& msg );
+
+  /////////////////////////////////////////////////////////////////// 
+  // Protected method: 
+  /////////////////////////////////////////////////////////////////// 
+ protected: 
+
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egammaCnv_p5::egammaCnv_p5()
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACNV_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..3fb624f604427096a7421351e59e8cfd8a6ffad4
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p1.h
@@ -0,0 +1,42 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p1.h 
+// Header file for class egammaContainerCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P1_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P1_H 
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/egammaContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainer_p1.h"
+#include "egammaEventTPCnv/egammaCnv_p1.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            egammaContainer, 
+            egammaContainer_p1, 
+            egammaCnv_p1 
+       > egammaContainerCnv_p1;
+
+template<>
+class T_TPCnv<egammaContainer, egammaContainer_p1>
+  : public egammaContainerCnv_p1
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..50a621759b9747e06cbe36676d96d09bc4f14752
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p2.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p2.h 
+// Header file for class egammaContainerCnv_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P2_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P2_H 1
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/egammaContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainer_p2.h"
+#include "egammaEventTPCnv/egammaCnv_p2.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            egammaContainer, 
+            egammaContainer_p2, 
+            egammaCnv_p2 
+       > egammaContainerCnv_p2;
+
+template<>
+class T_TPCnv<egammaContainer, egammaContainer_p2>
+  : public egammaContainerCnv_p2
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..67b6f37450a98977476bb105f51d4a0b16abd9fc
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p3.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p3.h 
+// Header file for class egammaContainerCnv_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P3_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P3_H 1
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/egammaContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainer_p3.h"
+#include "egammaEventTPCnv/egammaCnv_p3.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            egammaContainer, 
+            egammaContainer_p3, 
+            egammaCnv_p3 
+       > egammaContainerCnv_p3;
+
+template<>
+class T_TPCnv<egammaContainer, egammaContainer_p3>
+  : public egammaContainerCnv_p3
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..3fb788aca29531f08cd16695babc6d475ef232bc
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p4.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p4.h 
+// Header file for class egammaContainerCnv_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P4_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P4_H 1
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/egammaContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainer_p4.h"
+#include "egammaEventTPCnv/egammaCnv_p4.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            egammaContainer, 
+            egammaContainer_p4, 
+            egammaCnv_p4 
+       > egammaContainerCnv_p4;
+
+template<>
+class T_TPCnv<egammaContainer, egammaContainer_p4>
+  : public egammaContainerCnv_p4
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..1c5f82c37674d7b1741130a46b6e2fc9c374e875
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainerCnv_p5.h
@@ -0,0 +1,41 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p5.h 
+// Header file for class egammaContainerCnv_p5
+// New cnv to include Ringer: W.S.Freund<wsfreund@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P5_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P5_H 1
+
+// STL includes
+
+// Gaudi includes
+
+// egammaEvent includes
+#include "egammaEvent/egammaContainer.h"
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainer_p5.h"
+#include "egammaEventTPCnv/egammaCnv_p5.h"
+
+typedef T_AthenaPoolTPCnvVector< 
+            egammaContainer, 
+            egammaContainer_p5, 
+            egammaCnv_p5 
+       > egammaContainerCnv_p5;
+
+template<>
+class T_TPCnv<egammaContainer, egammaContainer_p5>
+  : public egammaContainerCnv_p5
+{
+public:
+};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINERCNV_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..16590a1985312e21fce5d8b168d1274f83e3bc3d
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p1.h
@@ -0,0 +1,25 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p1.h 
+// Header file for class egammaContainer_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+// Date:   December 2006
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINER_P1_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINER_P1_H 
+
+// STL includes
+#include <vector>
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p1.h"
+
+class egammaContainer_p1 : public std::vector<egamma_p1>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINER_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..1fa2e687ce1f612cb6da034f8259ef19185bab16
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p2.h
@@ -0,0 +1,22 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p2.h 
+// Header file for class egammaContainer_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINER_P2_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINER_P2_H 
+
+// STL includes
+#include <vector>
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p2.h"
+
+class egammaContainer_p2 : public std::vector<egamma_p2>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINER_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..581264d1d4f587558a388603be3e44a08e546722
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p3.h
@@ -0,0 +1,22 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p3.h 
+// Header file for class egammaContainer_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINER_P3_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINER_P3_H 1
+
+// STL includes
+#include <vector>
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p3.h"
+
+class egammaContainer_p3 : public std::vector<egamma_p3>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINER_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..5b8921a89b6c8b2e2961f12ab353ab3392efe946
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p4.h
@@ -0,0 +1,22 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p4.h 
+// Header file for class egammaContainer_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINER_P4_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINER_P4_H 1
+
+// STL includes
+#include <vector>
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p4.h"
+
+class egammaContainer_p4 : public std::vector<egamma_p4>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINER_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..9a976e280377f70efc43df04b7c16eb6a7846122
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaContainer_p5.h
@@ -0,0 +1,23 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p5.h 
+// Header file for class egammaContainer_p5
+// New cnv to include Ringer: W.S.Freund<wsfreund@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMACONTAINER_P5_H 
+#define EGAMMAEVENTTPCNV_EGAMMACONTAINER_P5_H 1
+
+// STL includes
+#include <vector>
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p5.h"
+
+class egammaContainer_p5 : public std::vector<egamma_p5>
+{};
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMACONTAINER_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaEventTPCnvDict.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaEventTPCnvDict.h
new file mode 100755
index 0000000000000000000000000000000000000000..7286f8c2a8891eb0e9d862d17202a25e66c23702
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egammaEventTPCnvDict.h
@@ -0,0 +1,89 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/// File: egammaEventTPCnv/egammaEventTPCnvDict.h
+/// Dictionary file for persistent representation(s) of AOD containers
+/// Author: Sebastien Binet <binet@cern.ch>
+/// Date:   December 2006
+
+#ifndef EGAMMAEVENTTPCNV_EGAMMAEVENTTPCNVDICT_H
+#define EGAMMAEVENTTPCNV_EGAMMAEVENTTPCNVDICT_H
+
+#include "egammaEventTPCnv/egamma_p1.h"
+#include "egammaEventTPCnv/egammaContainer_p1.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p1.h"
+#include "egammaEventTPCnv/Electron_p1.h"
+#include "egammaEventTPCnv/ElectronContainer_p1.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p1.h"
+#include "egammaEventTPCnv/Photon_p1.h"
+#include "egammaEventTPCnv/PhotonContainer_p1.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p1.h"
+#include "egammaEventTPCnv/egDetail_p1.h"
+#include "egammaEventTPCnv/egDetailContainer_p1.h"
+#include "egammaEventTPCnv/egDetailContainerCnv_p1.h"
+#include "egammaEventTPCnv/egamma_p2.h"
+#include "egammaEventTPCnv/egammaContainer_p2.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p2.h"
+#include "egammaEventTPCnv/Electron_p2.h"
+#include "egammaEventTPCnv/ElectronContainer_p2.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p2.h"
+#include "egammaEventTPCnv/Photon_p2.h"
+#include "egammaEventTPCnv/PhotonContainer_p2.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p2.h"
+#include "egammaEventTPCnv/egDetail_p2.h"
+#include "egammaEventTPCnv/egDetailContainer_p2.h"
+#include "egammaEventTPCnv/egDetailContainerCnv_p2.h"
+#include "egammaEventTPCnv/egamma_p3.h"
+#include "egammaEventTPCnv/egammaContainer_p3.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p3.h"
+#include "egammaEventTPCnv/Electron_p3.h"
+#include "egammaEventTPCnv/ElectronContainer_p3.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p3.h"
+#include "egammaEventTPCnv/Photon_p3.h"
+#include "egammaEventTPCnv/PhotonContainer_p3.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p3.h"
+#include "egammaEventTPCnv/egamma_p4.h"
+#include "egammaEventTPCnv/egammaContainer_p4.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p4.h"
+#include "egammaEventTPCnv/Electron_p4.h"
+#include "egammaEventTPCnv/ElectronContainer_p4.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p4.h"
+#include "egammaEventTPCnv/Photon_p4.h"
+#include "egammaEventTPCnv/PhotonContainer_p4.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p4.h"
+#include "egammaEventTPCnv/egamma_p5.h"
+#include "egammaEventTPCnv/egammaContainer_p5.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p5.h"
+#include "egammaEventTPCnv/Electron_p5.h"
+#include "egammaEventTPCnv/ElectronContainer_p5.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p5.h"
+#include "egammaEventTPCnv/Photon_p5.h"
+#include "egammaEventTPCnv/PhotonContainer_p5.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p5.h"
+
+#include "egammaEventTPCnv/CaloRings_p1.h"
+#include "egammaEventTPCnv/CaloRingsContainer_p1.h"
+#include "egammaEventTPCnv/CaloRingsContainerCnv_p1.h"
+
+struct dummy {
+  T_TPCnv<ElectronContainer, ElectronContainer_p1> m_elecnv;
+  T_TPCnv<PhotonContainer, PhotonContainer_p1> m_phocnv;
+  T_TPCnv<ElectronContainer, ElectronContainer_p2> m_elecnv_2;
+  T_TPCnv<PhotonContainer, PhotonContainer_p2> m_phocnv_2;
+  T_TPCnv<ElectronContainer, ElectronContainer_p3> m_elecnv_3;
+  T_TPCnv<PhotonContainer, PhotonContainer_p3> m_phocnv_3;
+  T_TPCnv<ElectronContainer, ElectronContainer_p4> m_elecnv_4;
+  T_TPCnv<PhotonContainer, PhotonContainer_p4> m_phocnv_4;
+  T_TPCnv<ElectronContainer, ElectronContainer_p5> m_elecnv_5;
+  T_TPCnv<PhotonContainer, PhotonContainer_p5> m_phocnv_5;
+
+  T_TPCnv<egDetailContainer, egDetailContainer_p1> m_egDetailContainercnv;
+  T_TPCnv<egDetailContainer, egDetailContainer_p2> m_egDetailContainercnv_2;
+
+  T_TPCnv<CaloRingsContainer, CaloRingsContainer_p1> m_caloRingsContainercnv;
+};
+
+#endif //EGAMMAEVENTTPCNV_EGAMMAEVENTTPCNVDICT_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p1.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p1.h
new file mode 100755
index 0000000000000000000000000000000000000000..312919b410af647274444c433687d6f444ef62bc
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p1.h
@@ -0,0 +1,103 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p1.h 
+// Header file for class egammaContainer_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+// Date:   December 2006
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMA_P1_H 
+#define EGAMMAEVENTTPCNV_EGAMMA_P1_H 
+
+// STL includes
+#include <vector>
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLink_p1.h"
+#include "DataModelAthenaPool/ElementLinkVector_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4EEtaPhiM_p1.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBase_p1.h"
+
+// forward declarations
+class egammaCnv_p1;
+
+class egamma_p1 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class egammaCnv_p1;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  egamma_p1();
+
+  /** Destructor: 
+   */
+  ~egamma_p1();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the 4-mom part
+  P4EEtaPhiM_p1 m_momentum;
+
+  /// the ParticleBase part
+  ParticleBase_p1 m_particleBase;
+
+  // the egamma part 
+
+  /// links to clusters
+  ElementLinkInt_p1 m_cluster;
+  
+  /// links to tracks
+  ElementLinkInt_p1 m_trackParticle;
+
+  /// links to tracks
+  ElementLinkInt_p1 m_conversion;
+
+  /// links to egDetails
+  ElementLinkIntVector_p1 m_egDetails;
+
+  // authors
+  unsigned int m_author;
+
+  /// egamma PID
+  std::vector<unsigned int> m_egammaEnumPIDs;
+  std::vector<double> m_egammaDblPIDs;
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egamma_p1::egamma_p1()
+  : m_author(0)
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMA_P1_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p2.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p2.h
new file mode 100755
index 0000000000000000000000000000000000000000..1e9744feff6663c51f22bff7d2a25a8edcfe5b3e
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p2.h
@@ -0,0 +1,100 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p2.h 
+// Header file for class egammaContainer_p2
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMA_P2_H 
+#define EGAMMAEVENTTPCNV_EGAMMA_P2_H 1
+
+// STL includes
+#include <vector>
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLink_p1.h"
+#include "DataModelAthenaPool/ElementLinkVector_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4EEtaPhiMFloat_p2.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBase_p1.h"
+
+// forward declarations
+class egammaCnv_p2;
+
+class egamma_p2 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class egammaCnv_p2;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  egamma_p2();
+
+  /** Destructor: 
+   */
+  ~egamma_p2();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the 4-mom part
+  P4EEtaPhiMFloat_p2 m_momentum;
+
+  /// the ParticleBase part
+  ParticleBase_p1 m_particleBase;
+
+  // the egamma part 
+
+  /// links to clusters
+  ElementLinkInt_p1 m_cluster;
+  
+  /// links to tracks
+  ElementLinkIntVector_p1 m_trackParticle;
+
+  /// links to tracks
+  ElementLinkIntVector_p1 m_conversion;
+
+  /// links to egDetails
+  ElementLinkIntVector_p1 m_egDetails;
+
+  // authors
+  unsigned int m_author;
+
+  /// egamma PID
+  std::vector<unsigned int> m_egammaEnumPIDs;
+  std::vector<double> m_egammaDblPIDs;
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egamma_p2::egamma_p2()
+  : m_author(0)
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMA_P2_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p3.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p3.h
new file mode 100644
index 0000000000000000000000000000000000000000..fb5e50e12cbc9dfc6e0bac4dba7ee9d4fff1b14a
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p3.h
@@ -0,0 +1,100 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p3.h 
+// Header file for class egammaContainer_p3
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMA_P3_H 
+#define EGAMMAEVENTTPCNV_EGAMMA_P3_H 1
+
+// STL includes
+#include <vector>
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLink_p3.h"
+#include "DataModelAthenaPool/ElementLinkVector_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4EEtaPhiMFloat_p2.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBase_p2.h"
+
+// forward declarations
+class egammaCnv_p3;
+
+class egamma_p3 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class egammaCnv_p3;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  egamma_p3();
+
+  /** Destructor: 
+   */
+  ~egamma_p3();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the 4-mom part
+  P4EEtaPhiMFloat_p2 m_momentum;
+
+  /// the ParticleBase part
+  ParticleBase_p2 m_particleBase;
+
+  // the egamma part 
+
+  /// links to clusters
+  ElementLinkInt_p3 m_cluster;
+  
+  /// links to tracks
+  ElementLinkIntVector_p1 m_trackParticle;
+
+  /// links to tracks
+  ElementLinkIntVector_p1 m_conversion;
+
+  /// links to egDetails
+  ElementLinkIntVector_p1 m_egDetails;
+
+  // authors
+  unsigned int m_author;
+
+  /// egamma PID
+  std::vector<unsigned int> m_egammaEnumPIDs;
+  std::vector<double> m_egammaDblPIDs;
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egamma_p3::egamma_p3()
+  : m_author(0)
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMA_P3_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p4.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p4.h
new file mode 100644
index 0000000000000000000000000000000000000000..c691843843cb2959883a1524366398269c4881a8
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p4.h
@@ -0,0 +1,106 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainer_p4.h 
+// Header file for class egammaContainer_p4
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMA_P4_H 
+#define EGAMMAEVENTTPCNV_EGAMMA_P4_H 1
+
+// STL includes
+#include <vector>
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLink_p3.h"
+#include "DataModelAthenaPool/ElementLinkVector_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4EEtaPhiMFloat_p2.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBase_p2.h"
+
+// forward declarations
+class egammaCnv_p4;
+
+class egamma_p4 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class egammaCnv_p4;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  egamma_p4();
+
+  /** Destructor: 
+   */
+  ~egamma_p4();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the 4-mom part
+  P4EEtaPhiMFloat_p2 m_momentum;
+
+  /// the 4-mom part for the Cluster
+  P4EEtaPhiMFloat_p2 m_momentumCluster;
+                                                              
+  /// the ParticleBase part
+  ParticleBase_p2 m_particleBase;
+
+  // the egamma part 
+
+  /// links to clusters
+  ElementLinkInt_p3 m_cluster;
+  
+  /// links to tracks
+  ElementLinkIntVector_p1 m_trackParticle;
+  // std::vector<ElementLinkInt_p3> m_trackParticle;
+
+  /// links to tracks
+  ElementLinkIntVector_p1 m_conversion;
+  // std::vector<ElementLinkInt_p3> m_conversion;
+
+  /// links to egDetails
+  ElementLinkIntVector_p1 m_egDetails;
+  // std::vector<ElementLinkInt_p3> m_egDetails;
+
+  // authors
+  unsigned int m_author;
+
+  /// egamma PID
+  std::vector<unsigned int> m_egammaEnumPIDs;
+  std::vector<double> m_egammaDblPIDs;
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egamma_p4::egamma_p4()
+  : m_author(0)
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMA_P4_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p5.h b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p5.h
new file mode 100644
index 0000000000000000000000000000000000000000..e0289725fe45affbc9262c8e04895bce8371d2f7
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/egamma_p5.h
@@ -0,0 +1,110 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egamma_p5.h 
+// Header file for class egamma_p5
+// New cnv to include Ringer: W.S.Freund<wsfreund@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+#ifndef EGAMMAEVENTTPCNV_EGAMMA_P5_H 
+#define EGAMMAEVENTTPCNV_EGAMMA_P5_H 1
+
+// STL includes
+#include <vector>
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLink_p3.h"
+#include "DataModelAthenaPool/ElementLinkVector_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4EEtaPhiMFloat_p2.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBase_p2.h"
+
+// forward declarations
+class egammaCnv_p5;
+
+class egamma_p5 
+{
+  /////////////////////////////////////////////////////////////////// 
+  // Friend classes
+  /////////////////////////////////////////////////////////////////// 
+
+  // Make the AthenaPoolCnv class our friend
+  friend class egammaCnv_p5;
+
+  /////////////////////////////////////////////////////////////////// 
+  // Public methods: 
+  /////////////////////////////////////////////////////////////////// 
+public: 
+
+  /** Default constructor: 
+   */
+  egamma_p5();
+
+  /** Destructor: 
+   */
+  ~egamma_p5();
+
+  /////////////////////////////////////////////////////////////////// 
+  // Const methods: 
+  ///////////////////////////////////////////////////////////////////
+
+  /////////////////////////////////////////////////////////////////// 
+  // Non-const methods: 
+  /////////////////////////////////////////////////////////////////// 
+
+  /////////////////////////////////////////////////////////////////// 
+  // Private data: 
+  /////////////////////////////////////////////////////////////////// 
+private: 
+
+  /// the 4-mom part
+  P4EEtaPhiMFloat_p2 m_momentum;
+
+  /// the 4-mom part for the Cluster
+  P4EEtaPhiMFloat_p2 m_momentumCluster;
+                                                              
+  /// the ParticleBase part
+  ParticleBase_p2 m_particleBase;
+
+  // the egamma part 
+
+  /// links to clusters
+  ElementLinkInt_p3 m_cluster;
+  
+  /// links to tracks
+  ElementLinkIntVector_p1 m_trackParticle;
+  // std::vector<ElementLinkInt_p3> m_trackParticle;
+
+  /// links to tracks
+  ElementLinkIntVector_p1 m_conversion;
+  // std::vector<ElementLinkInt_p3> m_conversion;
+
+  /// links to egDetails
+  ElementLinkIntVector_p1 m_egDetails;
+  // std::vector<ElementLinkInt_p3> m_egDetails;
+
+  /// links to rings          
+  ElementLinkInt_p3 m_rings;  
+
+  // authors
+  unsigned int m_author;
+
+  /// egamma PID
+  std::vector<unsigned int> m_egammaEnumPIDs;
+  std::vector<double> m_egammaDblPIDs;
+}; 
+
+/////////////////////////////////////////////////////////////////// 
+// Inline methods: 
+/////////////////////////////////////////////////////////////////// 
+
+inline egamma_p5::egamma_p5()
+  : m_author(0)
+{}
+
+#endif //> EGAMMAEVENTTPCNV_EGAMMA_P5_H
diff --git a/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/selection.xml b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/selection.xml
new file mode 100755
index 0000000000000000000000000000000000000000..4824cd8a8c91f48d524f01bc6a97f7dafbc9046b
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/egammaEventTPCnv/selection.xml
@@ -0,0 +1,66 @@
+<lcgdict>
+  <!-- egamma -->
+  <class name="egammaContainer_p5"  id="1AA8DE2E-D1CC-4076-B74A-82BBCC551798" />
+  <class name="std::vector<egamma_p5>" />
+  <class name="egamma_p5" />
+
+  <class name="egammaContainer_p4"  id="451AACD2-5B23-4557-8A3F-6CD1AB36BF9F" />
+  <class name="std::vector<egamma_p4>" />
+  <class name="egamma_p4" />
+
+  <class name="egammaContainer_p3"  id="95BD7D50-F070-4245-91DE-ECAB4A8D722D" />
+  <class name="std::vector<egamma_p3>" />
+  <class name="egamma_p3" />
+
+  <class name="egammaContainer_p2"  id="5576188C-ECA9-4BD1-B1F1-563C728FE51F" />
+  <class name="std::vector<egamma_p2>" />
+  <class name="egamma_p2" />
+
+  <class name="egDetailContainer_p2" id="6AB9ADFD-836F-416D-B343-3DDF7D4F6E18" />
+  <class name="std::vector<egDetail_p2>" />
+  <class name="egDetail_p2" />
+
+
+  <!-- Electron -->
+  <class name="ElectronContainer_p5" id="A7C69641-E985-4D31-92D4-D33206C197F1" />
+  <class name="std::vector<Electron_p5>" />
+  <class name="Electron_p5" />
+
+  <class name="ElectronContainer_p4" id="1A7C1F66-D9D2-49E9-80A8-592A0CEE3FDF" />
+  <class name="std::vector<Electron_p4>" />
+  <class name="Electron_p4" />
+
+
+  <class name="ElectronContainer_p3" id="51C149D6-2FBA-4ADD-B6AA-8AE39E07D202" />
+  <class name="std::vector<Electron_p3>" />
+  <class name="Electron_p3" />
+
+
+  <class name="ElectronContainer_p2" id="A4377CE2-C0DC-4F80-8CFD-3BBE9A8EFD52" />
+  <class name="std::vector<Electron_p2>" />
+  <class name="Electron_p2" />
+
+
+  <!-- Photon -->
+  <class name="PhotonContainer_p5"   id="64942DEF-C0FE-4CA7-A735-70187092DC27" />
+  <class name="std::vector<Photon_p5>" />
+  <class name="Photon_p5" />
+
+  <class name="PhotonContainer_p4"   id="554B12C0-AB10-451D-963C-F9714FB29695" />
+  <class name="std::vector<Photon_p4>" />
+  <class name="Photon_p4" />
+  
+  <class name="PhotonContainer_p3"   id="BC1DF3E5-98F5-444D-826A-DFBB85E1C870" />
+  <class name="std::vector<Photon_p3>" />
+  <class name="Photon_p3" />
+
+  <class name="PhotonContainer_p2"   id="E807B07C-8B27-4FF1-A638-05FBCA034C0B" />
+  <class name="std::vector<Photon_p2>" />
+  <class name="Photon_p2" />
+
+  <!-- Rings -->
+  <class name="CaloRingsContainer_p1" id="E6E0435E-BFEC-11DE-B657-001CC0754D20" />
+  <class name="std::vector<CaloRings_p1>" />
+  <class name="CaloRings_p1" />
+
+</lcgdict>
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/CaloRingsCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/CaloRingsCnv_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..a0fafa3ad55b4f788e0512a4deeb1a6f0a30ebde
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/CaloRingsCnv_p1.cxx
@@ -0,0 +1,85 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// CaloRingsCnv_p1.cxx 
+// Implementation file for class CaloRingsCnv_p1
+// Author: D.E.Ferreira de Lima<dferreir@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/CaloRings.h"
+#undef private
+#undef protected
+
+#include "GaudiKernel/GaudiException.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/CaloRingsCnv_p1.h"
+
+void CaloRingsCnv_p1::persToTrans( const CaloRings_p1* pers,
+				CaloRings* trans, 
+				MsgStream& /*msg*/ ) 
+{
+  if ( (!trans) || (!pers) ) {
+    throw GaudiException("CaloRingsCnv_p1::persToTrans called with NULL pers or trans!","CaloRingsCnv_p1::persToTrans", StatusCode::FAILURE);
+    return;
+  }
+
+
+  trans->clear();
+  unsigned int layerNumber = 0;
+  unsigned int ringNumber = 0;
+  // for each ringset
+  for (unsigned int i = 0; i < pers->m_nRings.size(); ++i) {
+    // translate layer information
+    std::vector<CaloCell_ID::CaloSample> layers;
+    for (unsigned int j = 0; j < pers->m_nLayers[i]; ++j) {
+      layers.push_back((CaloCell_ID::CaloSample) pers->m_layers[layerNumber++]);
+    }
+    // insert configuration
+    trans->addRingSet(pers->m_nRings[i], layers, pers->m_deltaEta[i], pers->m_deltaPhi[i]);
+    // copy ring values
+    for (unsigned int k = 0; k < pers->m_nRings[i]; ++k){
+      trans->at(i).at(k) = pers->m_rings[ringNumber++];
+    }
+  }
+
+}
+
+void CaloRingsCnv_p1::transToPers( const CaloRings* trans, 
+				CaloRings_p1* pers, 
+				MsgStream& /*msg*/ ) 
+{
+  if ( (!trans) || (!pers) ) {
+    throw GaudiException("CaloRingsCnv_p1::transToPers called with NULL pers or trans!","CaloRingsCnv_p1::transToPers", StatusCode::FAILURE);
+    return;
+  }
+
+  pers->m_nRings.clear();
+  pers->m_rings.clear();
+  pers->m_nLayers.clear();
+  pers->m_layers.clear();
+  pers->m_deltaEta.clear();
+  pers->m_deltaPhi.clear();
+
+  for (unsigned int i = 0; i < trans->size(); ++i) {
+    pers->m_nRings.push_back(trans->at(i).m_rings.size());
+    for (unsigned int j = 0; j < trans->at(i).m_rings.size(); ++j) {
+      pers->m_rings.push_back(trans->at(i).m_rings[j]);
+    }
+    pers->m_nLayers.push_back(trans->at(i).m_layers.size());
+    for (unsigned int k = 0; k < trans->at(i).m_layers.size(); ++k) {
+      pers->m_layers.push_back((int) trans->at(i).m_layers[k]);
+    }
+    pers->m_deltaEta.push_back(trans->at(i).m_deltaEta);
+    pers->m_deltaPhi.push_back(trans->at(i).m_deltaPhi);
+  }
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/CaloRingsContainerCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/CaloRingsContainerCnv_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..1930a46d2e8eb23fb15d4768371a0ce04a695ccf
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/CaloRingsContainerCnv_p1.cxx
@@ -0,0 +1,14 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// CaloRingsContainerCnv_p1.cxx 
+// Implementation file for class CaloRingsContainerCnv_p1
+// Author: D.E.Ferreira de Lima<dferreir@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/CaloRingsContainerCnv_p1.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/CaloRings_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/CaloRings_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..c1d016d2534755eda00e11cc6bae1a6edf34c65b
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/CaloRings_p1.cxx
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// CaloRings_p1.cxx 
+// Implementation file for class CaloRings_p1
+// Author: D.E.Ferreira de Lima<dferreir@mail.cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/CaloRings_p1.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+CaloRings_p1::~CaloRings_p1()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..64d3ffe29acd0035caab064fb3b46c76df9549f7
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p1.cxx
@@ -0,0 +1,73 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p1.cxx 
+// Implementation file for class ElectronCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Electron.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p1.h"
+#include "egammaEventTPCnv/ElectronCnv_p1.h"
+
+// pre-allocate converters
+static egammaCnv_p1   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void ElectronCnv_p1::persToTrans( const Electron_p1* pers,
+				  Analysis::Electron* trans, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Electron from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Electron from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void ElectronCnv_p1::transToPers( const Analysis::Electron* trans, 
+				  Electron_p1* pers, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Electron..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Electron [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..90ae5be3e10e4344bff7cabefecec8bc1e78d905
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p2.cxx
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p2.cxx 
+// Implementation file for class ElectronCnv_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Electron.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p2.h"
+#include "egammaEventTPCnv/ElectronCnv_p2.h"
+
+// pre-allocate converters
+static egammaCnv_p2   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void ElectronCnv_p2::persToTrans( const Electron_p2* pers,
+				  Analysis::Electron* trans, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Electron from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Electron from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void ElectronCnv_p2::transToPers( const Analysis::Electron* trans, 
+				  Electron_p2* pers, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Electron..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Electron [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..3919f8a1105b47e503db6ea60e3e5581bc3841a3
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p3.cxx
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p3.cxx 
+// Implementation file for class ElectronCnv_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Electron.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p3.h"
+#include "egammaEventTPCnv/ElectronCnv_p3.h"
+
+// pre-allocate converters
+static egammaCnv_p3   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void ElectronCnv_p3::persToTrans( const Electron_p3* pers,
+				  Analysis::Electron* trans, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Electron from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Electron from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void ElectronCnv_p3::transToPers( const Analysis::Electron* trans, 
+				  Electron_p3* pers, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Electron..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Electron [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..cec16ff8542bdaffcc90325c15c8ab2d81e65065
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p4.cxx
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p4.cxx 
+// Implementation file for class ElectronCnv_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Electron.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p4.h"
+#include "egammaEventTPCnv/ElectronCnv_p4.h"
+
+// pre-allocate converters
+static egammaCnv_p4   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void ElectronCnv_p4::persToTrans( const Electron_p4* pers,
+				  Analysis::Electron* trans, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Electron from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Electron from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void ElectronCnv_p4::transToPers( const Analysis::Electron* trans, 
+				  Electron_p4* pers, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Electron..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Electron [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..19106c7309dc16af83744cb176bac9d3c5535061
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronCnv_p5.cxx
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronCnv_p5.cxx 
+// Implementation file for class ElectronCnv_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Electron.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p5.h"
+#include "egammaEventTPCnv/ElectronCnv_p5.h"
+
+// pre-allocate converters
+static egammaCnv_p5   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void ElectronCnv_p5::persToTrans( const Electron_p5* pers,
+				  Analysis::Electron* trans, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Electron from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Electron from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void ElectronCnv_p5::transToPers( const Analysis::Electron* trans, 
+				  Electron_p5* pers, 
+				  MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Electron..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Electron [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..700f651eced8cfb85322dd1c1b458df5aa54c3e7
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p1.cxx
@@ -0,0 +1,15 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p1.cxx 
+// Implementation file for class ElectronContainerCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainerCnv_p1.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..9947534a7876df17ce206673f5c201b565dc0510
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p2.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p2.cxx 
+// Implementation file for class ElectronContainerCnv_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainerCnv_p2.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..52ab100577e8f3bd0f67d7179619a8d9aaa27b3a
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p3.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p3.cxx 
+// Implementation file for class ElectronContainerCnv_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainerCnv_p3.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..13fcea1a841f19ab5b68f963a2fec5e1f978d482
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p4.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p4.cxx 
+// Implementation file for class ElectronContainerCnv_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainerCnv_p4.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..c7bf0526f0aaed1011afea63e149ab7f1efd4af6
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/ElectronContainerCnv_p5.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// ElectronContainerCnv_p5.cxx 
+// Implementation file for class ElectronContainerCnv_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/ElectronContainerCnv_p5.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..ad75e6b5a355fa005d63ee9b757cea41cc089388
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p1.cxx
@@ -0,0 +1,22 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p1.cxx 
+// Implementation file for class Electron_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p1.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Electron_p1::~Electron_p1()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..85dcfe61cd625adde7cd8df60710df460eaa00d8
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p2.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p2.cxx 
+// Implementation file for class Electron_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p2.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Electron_p2::~Electron_p2()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..e159a3769e9d2a3cb224e5ba184f8f1b38587d80
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p3.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p3.cxx 
+// Implementation file for class Electron_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p3.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Electron_p3::~Electron_p3()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..8b5e09c5dfb07b2ffc8d3ce8a0f4b1175ea84555
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p4.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p4.cxx 
+// Implementation file for class Electron_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p4.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Electron_p4::~Electron_p4()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a1a191b5d2f180a89d2baf28e3553502235f8438
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Electron_p5.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Electron_p5.cxx 
+// Implementation file for class Electron_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Electron_p5.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Electron_p5::~Electron_p5()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..e6a817b4f7e056d5f31d3f03d16e5e5e5be42a59
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p1.cxx
@@ -0,0 +1,73 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p1.cxx 
+// Implementation file for class PhotonCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Photon.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p1.h"
+#include "egammaEventTPCnv/PhotonCnv_p1.h"
+
+// pre-allocate converters
+static egammaCnv_p1   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void PhotonCnv_p1::persToTrans( const Photon_p1* pers,
+				Analysis::Photon* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Photon from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Photon from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void PhotonCnv_p1::transToPers( const Analysis::Photon* trans, 
+				Photon_p1* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Photon..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Photon [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..35e3aaa49f28a070cde21d54dc88c423348dea7c
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p2.cxx
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p2.cxx 
+// Implementation file for class PhotonCnv_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Photon.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p2.h"
+#include "egammaEventTPCnv/PhotonCnv_p2.h"
+
+// pre-allocate converters
+static egammaCnv_p2   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void PhotonCnv_p2::persToTrans( const Photon_p2* pers,
+				Analysis::Photon* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Photon from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Photon from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void PhotonCnv_p2::transToPers( const Analysis::Photon* trans, 
+				Photon_p2* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Photon..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Photon [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..c4e357270932912e9b3739c84f3689ac985e31b0
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p3.cxx
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p3.cxx 
+// Implementation file for class PhotonCnv_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Photon.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p3.h"
+#include "egammaEventTPCnv/PhotonCnv_p3.h"
+
+// pre-allocate converters
+static egammaCnv_p3   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void PhotonCnv_p3::persToTrans( const Photon_p3* pers,
+				Analysis::Photon* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Photon from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Photon from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void PhotonCnv_p3::transToPers( const Analysis::Photon* trans, 
+				Photon_p3* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Photon..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Photon [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..15f1503c8285a83bc2606539d02f408e16a14696
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p4.cxx
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p4.cxx 
+// Implementation file for class PhotonCnv_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Photon.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p4.h"
+#include "egammaEventTPCnv/PhotonCnv_p4.h"
+
+// pre-allocate converters
+static egammaCnv_p4   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void PhotonCnv_p4::persToTrans( const Photon_p4* pers,
+				Analysis::Photon* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Photon from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Photon from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void PhotonCnv_p4::transToPers( const Analysis::Photon* trans, 
+				Photon_p4* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Photon..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Photon [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..aa76e303ba84664bd0ec842b6bbbfa4e5082359a
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonCnv_p5.cxx
@@ -0,0 +1,71 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonCnv_p5.cxx 
+// Implementation file for class PhotonCnv_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/Photon.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p5.h"
+#include "egammaEventTPCnv/PhotonCnv_p5.h"
+
+// pre-allocate converters
+static egammaCnv_p5   egammaCnv;
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void PhotonCnv_p5::persToTrans( const Photon_p5* pers,
+				Analysis::Photon* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading Photon from persistent state..."
+//       << endreq;
+
+  // base class
+  egammaCnv.persToTrans( &pers->m_egamma, trans, msg );
+
+//   msg << MSG::DEBUG << "Loaded Photon from persistent state [OK]"
+//       << endreq;
+
+  return;
+}
+
+void PhotonCnv_p5::transToPers( const Analysis::Photon* trans, 
+				Photon_p5* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of Photon..."
+//       << endreq;
+
+  // base class
+  egammaCnv.transToPers( trans, &pers->m_egamma, msg );
+
+//   msg << MSG::DEBUG << "Created persistent state of Photon [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..fec3445633e037f920be96e839e1ad9a13e5a877
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p1.cxx
@@ -0,0 +1,15 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p1.cxx 
+// Implementation file for class PhotonContainerCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainerCnv_p1.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..3f6491f90a875e4e904ee0a1c6c445e7adcefff8
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p2.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p2.cxx 
+// Implementation file for class PhotonContainerCnv_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainerCnv_p2.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..d7ddd1c85a5bb66f70c5b095de157eb67d625965
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p3.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p3.cxx 
+// Implementation file for class PhotonContainerCnv_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainerCnv_p3.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..6e32580498e24a7f60a35239ca39a3a3a464ca39
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p4.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p4.cxx 
+// Implementation file for class PhotonContainerCnv_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainerCnv_p4.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..5b6bf3a7175efa03018c36aea3a657f8bc834988
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/PhotonContainerCnv_p5.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// PhotonContainerCnv_p5.cxx 
+// Implementation file for class PhotonContainerCnv_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/PhotonContainerCnv_p5.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..84ba1eaf61cc2ab454142d9099dd551e07a52977
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p1.cxx
@@ -0,0 +1,22 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p1.cxx 
+// Implementation file for class Photon_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p1.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Photon_p1::~Photon_p1()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..ed9e87a5807235b7a896fffd07252c839f0a11fa
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p2.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p2.cxx 
+// Implementation file for class Photon_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p2.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Photon_p2::~Photon_p2()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..8211319da641f92932e170a95b663e9ae46c1f6e
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p3.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p3.cxx 
+// Implementation file for class Photon_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p3.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Photon_p3::~Photon_p3()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..53035a093df22f7afb435ac81f0b50e34576c677
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p4.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p4.cxx 
+// Implementation file for class Photon_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p4.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Photon_p4::~Photon_p4()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..5e10ac95547d759ba3626fbcdcd5347c0adcfaeb
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/Photon_p5.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Photon_p5.cxx 
+// Implementation file for class Photon_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/Photon_p5.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+Photon_p5::~Photon_p5()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egDetailContainerCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egDetailContainerCnv_p1.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..af1e7349fd67fc38aafa3019f3753d4734959cbc
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egDetailContainerCnv_p1.cxx
@@ -0,0 +1,174 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetailContainerCnv_p1.cxx 
+// Implementation file for class egDetailContainerCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+#define private public
+#define protected public
+#include "egammaEvent/egDetailContainer.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egDetailContainerCnv_p1.h"
+
+#include "egammaEvent/EMShower.h"
+#include "egammaEvent/EMTrackMatch.h"
+#include "egammaEvent/EMConvert.h"
+#include "egammaEvent/EMBremFit.h"
+#include "egammaEvent/EMTrackFit.h"
+#include "egammaEvent/EMErrorDetail.h"
+
+#ifdef MSG_DEBUG
+#undef MSG_DEBUG
+#endif
+#define MSG_DEBUG(log, x) \
+     do { if (log.level()<=MSG::DEBUG) { log << MSG::DEBUG << x << endreq; } } while (0)
+
+void egDetailContainerCnv_p1::persToTrans( const egDetailContainer_p1    *pers,
+                                           egDetailContainer *trans,
+                                           MsgStream                   &msg )
+{
+  trans->clear();
+  egDetailContainer_p1::const_iterator it = pers->begin();
+
+  for( ; it != pers->end(); ++it ){
+
+    const std::vector<float>& egParams = it->m_egDetailFloatParams;
+    const std::vector<unsigned int>& egEnum = it->m_egDetailEnumParams;
+    // if you crash here, then there is a data corruption...
+    assert( egEnum.size() == egParams.size() );
+  
+    if ( it->m_className == "EMShower" ) {
+      
+      EMShower     *tmpEMShower     = new EMShower();
+      for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+	if ( tmpEMShower->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	  tmpEMShower->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+	}
+	else {
+	  msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+	      << " Index " << egEnum[i] << endreq;
+	  continue;
+	}
+      }
+      tmpEMShower->set_linkIndex(0);
+      trans->push_back(tmpEMShower);
+      
+    } 
+    else if ( it->m_className == "EMTrackMatch" ) {
+      
+      EMTrackMatch *tmpEMTrackMatch = new EMTrackMatch();
+      for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+        egammaParameters::ParamDef key =
+          static_cast<egammaParameters::ParamDef> (egEnum[i]);
+        if (key == egammaParameters::EoverP) continue;
+        if (key == egammaParameters::EtaCorrMag)
+          key = egammaParameters::etaSampling1;
+	if ( tmpEMTrackMatch->hasParameter( key ) ) {
+          tmpEMTrackMatch->set_parameter(key,egParams[i]);
+	}
+	else {
+	  msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+	      << " Index " << key << endreq;
+	  continue;
+	}
+      }
+      tmpEMTrackMatch->set_linkIndex(0);
+      trans->push_back(tmpEMTrackMatch);
+      
+    }
+    else if ( it->m_className == "EMConvert" ) {
+      
+      EMConvert    *tmpEMConvert    = new EMConvert();
+      for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+	if ( tmpEMConvert->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	  tmpEMConvert->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+	}
+	else {
+	  msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+	      << " Index " << egEnum[i] << endreq;
+	  continue;
+	}
+      }
+      tmpEMConvert->set_linkIndex(0);
+      trans->push_back(tmpEMConvert);
+
+    }
+    else if ( it->m_className == "EMBremFit" ) {
+      
+      EMBremFit    *tmpEMBremFit    = new EMBremFit();
+      for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+	if ( tmpEMBremFit->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	  tmpEMBremFit->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+	}
+	else {
+	  msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+	      << " Index " << egEnum[i] << endreq;
+	  continue;
+	}
+      }
+      tmpEMBremFit->set_linkIndex(0);
+      trans->push_back(tmpEMBremFit);
+    }
+    else if ( it->m_className == "EMTrackFit" ) {
+					
+	EMTrackFit    *tmpEMTrackFit    = new EMTrackFit();
+	for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+       	  if ( tmpEMTrackFit->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	   tmpEMTrackFit->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+          } 	
+          else {
+            msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+		<< " Index " << egEnum[i] << endreq;
+	    continue;
+          }
+	}
+	tmpEMTrackFit->set_linkIndex(0);
+        trans->push_back(tmpEMTrackFit);
+
+    }
+    else if ( it->m_className == "EMErrorDetail" ) {
+					
+	EMErrorDetail    *tmpEMErrorDetail    = new EMErrorDetail();
+	for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+       	  if ( tmpEMErrorDetail->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	   tmpEMErrorDetail->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+          } 	
+          else {
+            msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+		<< " Index " << egEnum[i] << endreq;
+	    continue;
+          }
+	}
+	tmpEMErrorDetail->set_linkIndex(0);
+        trans->push_back(tmpEMErrorDetail);
+
+    }
+    else {
+      msg << MSG::ERROR << "Read unknown egDetail type: " << it->m_className << endreq;
+      continue;
+    }
+    //  trans = (dynamic_cast<EMShower*>(trans));
+    
+  }
+
+  MSG_DEBUG(msg, "finished egDetailContainer perstoTrans");
+}
+
+
+void egDetailContainerCnv_p1::transToPers( const egDetailContainer* /*trans*/,
+                                           egDetailContainer_p1* /*pers*/,
+                                           MsgStream& /*msg*/)
+{
+  throw GaudiException("Deprecated method, we have evolved to use egDetail_p2.Please migrate to use egDetailContainerCnv_p2::transToPers","egDetailContainerCnv_p1::transToPers", StatusCode::FAILURE);
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egDetailContainerCnv_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egDetailContainerCnv_p2.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..6415f121d3c211a487076471f3a4ca947514b9ca
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egDetailContainerCnv_p2.cxx
@@ -0,0 +1,274 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetailContainerCnv_p2.cxx 
+// Implementation file for class egDetailContainerCnv_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+#define private public
+#define protected public
+#include "egammaEvent/egDetailContainer.h"
+#undef private
+#undef protected
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egDetailContainerCnv_p2.h"
+
+#include "egammaEvent/EMShower.h"
+#include "egammaEvent/EMTrackMatch.h"
+#include "egammaEvent/EMConvert.h"
+#include "egammaEvent/EMBremFit.h"
+#include "egammaEvent/EMTrackFit.h"
+#include "egammaEvent/EMErrorDetail.h"
+
+#include <cfloat>
+
+#ifdef MSG_DEBUG
+#undef MSG_DEBUG
+#endif
+#define MSG_DEBUG(log, x) \
+     do { if (log.level()<=MSG::DEBUG) { log << MSG::DEBUG << x << endreq; } } while (0)
+
+
+void egDetailContainerCnv_p2::persToTrans( const egDetailContainer_p2    *pers,
+                                           egDetailContainer *trans,
+                                           MsgStream                   &msg )
+{
+  trans->clear();
+  egDetailContainer_p2::const_iterator it = pers->begin();
+
+  for( ; it != pers->end(); ++it ){
+
+    const std::vector<float>& egParams = it->m_egDetailFloatParams;
+    const std::vector<unsigned int>& egEnum = it->m_egDetailEnumParams;
+    // if you crash here, then there is a data corruption...
+    assert( egEnum.size() == egParams.size() );
+  
+    if ( it->m_className == "EMShower" ) {
+      
+      EMShower     *tmpEMShower     = new EMShower();
+      for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+	if ( tmpEMShower->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	  tmpEMShower->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+	}
+	else {
+	  msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+	      << " Index " << egEnum[i] << endreq;
+	  continue;
+	}
+      }
+      trans->push_back(tmpEMShower);
+      
+    } 
+    else if ( it->m_className == "EMTrackMatch" ) {
+      
+      EMTrackMatch *tmpEMTrackMatch = new EMTrackMatch();
+      for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+        egammaParameters::ParamDef key =
+          static_cast<egammaParameters::ParamDef> (egEnum[i]);
+        if (key == egammaParameters::EoverP) continue;
+        if (key == egammaParameters::EtaCorrMag)
+          key = egammaParameters::etaSampling1;
+	if ( tmpEMTrackMatch->hasParameter( key ) ) {
+          tmpEMTrackMatch->set_parameter(key, egParams[i]);
+	}
+	else {
+	  msg << MSG::ERROR << "Read unknown parameter for "
+              << it->m_className << " Index " << key << endreq;
+	  continue;
+	}
+      }
+      trans->push_back(tmpEMTrackMatch);
+      
+    }
+    else if ( it->m_className == "EMConvert" ) {
+      
+      EMConvert    *tmpEMConvert    = new EMConvert();
+      for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+	if ( tmpEMConvert->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	  tmpEMConvert->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+	}
+	else {
+	  msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+	      << " Index " << egEnum[i] << endreq;
+	  continue;
+	}
+      }
+      trans->push_back(tmpEMConvert);
+
+    }
+    else if ( it->m_className == "EMBremFit" ) {
+      
+      EMBremFit    *tmpEMBremFit    = new EMBremFit();
+      for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+	if ( tmpEMBremFit->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	  tmpEMBremFit->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+	}
+	else {
+	  msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+	      << " Index " << egEnum[i] << endreq;
+	  continue;
+	}
+      }
+      trans->push_back(tmpEMBremFit);
+    }
+    else if ( it->m_className == "EMTrackFit" ) {
+					
+	EMTrackFit    *tmpEMTrackFit    = new EMTrackFit();
+	for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+       	  if ( tmpEMTrackFit->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	   tmpEMTrackFit->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+          } 	
+          else {
+            msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+		<< " Index " << egEnum[i] << endreq;
+	    continue;
+          }
+	}
+        trans->push_back(tmpEMTrackFit);
+
+    }
+    else if ( it->m_className == "EMErrorDetail" ) {
+					
+	EMErrorDetail    *tmpEMErrorDetail    = new EMErrorDetail();
+	for ( unsigned int i=0; i< egEnum.size(); i++ ) {
+       	  if ( tmpEMErrorDetail->hasParameter( (egammaParameters::ParamDef) egEnum[i]) ) {
+	   tmpEMErrorDetail->set_parameter((egammaParameters::ParamDef) egEnum[i],egParams[i]);
+          } 	
+          else {
+            msg << MSG::ERROR << "Read unknown parameter for " << it->m_className 
+		<< " Index " << egEnum[i] << endreq;
+	    continue;
+          }
+	}
+        trans->push_back(tmpEMErrorDetail);
+
+    }
+    else {
+      msg << MSG::ERROR << "Read unknown egDetail type: " << it->m_className << endreq;
+      continue;
+    }
+    //  trans = (dynamic_cast<EMShower*>(trans));
+    
+  }
+
+  MSG_DEBUG(msg, "finished egDetailContainer perstoTrans");
+}
+
+void egDetailContainerCnv_p2::transToPers( const egDetailContainer *trans,
+                                           egDetailContainer_p2                *pers,
+                                           MsgStream                         &msg )
+{
+    egDetailContainer::const_iterator it = trans->begin();
+    for( ; it != trans->end(); ++it ){
+      
+      egDetail_p2 detail;
+      std::vector<float>& egParam       = detail.m_egDetailFloatParams;
+      std::vector<unsigned int>& egEnum = detail.m_egDetailEnumParams;
+
+      unsigned int nbOfEgammaParams = (int) egammaParameters::lastEgammaParam;
+      // first we need to cast 
+      const EMShower     *tmpEMShower     = dynamic_cast<const EMShower*>     (*it);
+      const EMTrackMatch *tmpEMTrackMatch = dynamic_cast<const EMTrackMatch*> (*it);
+      const EMConvert    *tmpEMConvert    = dynamic_cast<const EMConvert*>    (*it);
+      const EMBremFit    *tmpEMBremFit    = dynamic_cast<const EMBremFit*>    (*it);
+      const EMTrackFit    *tmpEMTrackFit    = dynamic_cast<const EMTrackFit*>    (*it);
+      const EMErrorDetail    *tmpEMErrorDetail    = dynamic_cast<const EMErrorDetail*>    (*it);
+      if ( !tmpEMShower      && 
+	   !tmpEMTrackMatch  && 
+	   !tmpEMConvert     &&
+	   !tmpEMBremFit     &&
+	   !tmpEMTrackFit    &&
+	   !tmpEMErrorDetail  ) {
+	msg << MSG::ERROR <<  "Unknown egDetail type will not write its data" << endreq;
+	continue;
+      }
+
+      double tmpParam;
+      if ( tmpEMShower ) {
+	MSG_DEBUG(msg, "decoded detail as  " << tmpEMShower->className());
+	detail.m_className = tmpEMShower->className();
+	for ( unsigned int i=0; i<nbOfEgammaParams; i++ ) {
+	  tmpParam = tmpEMShower->parameter( (egammaParameters::ParamDef)i);
+	  if ( tmpParam != egammaParameters::EgParamUndefined ) {
+	    if (tmpParam > FLT_MAX) tmpParam = FLT_MAX;
+	    if (tmpParam < - FLT_MAX) tmpParam = - FLT_MAX;
+	    egEnum.push_back(i);
+	    egParam.push_back(tmpParam);
+	  }
+	}
+      }
+      else if ( tmpEMTrackMatch ) {
+	MSG_DEBUG(msg, "decoded detail as  " << tmpEMTrackMatch->className());
+	detail.m_className = tmpEMTrackMatch->className();
+	for ( unsigned int i=0; i<nbOfEgammaParams; i++ ) {
+	  tmpParam = tmpEMTrackMatch->parameter( (egammaParameters::ParamDef)i);
+	  if ( tmpParam != egammaParameters::EgParamUndefined ) {
+	    if (tmpParam > FLT_MAX) tmpParam = FLT_MAX;
+	    if (tmpParam < - FLT_MAX) tmpParam = - FLT_MAX;
+	    egEnum.push_back(i);
+	    egParam.push_back(tmpParam);
+	  }
+	}
+      }
+      else if ( tmpEMConvert ) {
+	MSG_DEBUG(msg, "decoded detail as  " << tmpEMConvert->className());
+	detail.m_className = tmpEMConvert->className();
+	for ( unsigned int i=0; i<nbOfEgammaParams; i++ ) {
+	  tmpParam = tmpEMConvert->parameter( (egammaParameters::ParamDef)i);
+	  if ( tmpParam != egammaParameters::EgParamUndefined ) {
+	    if (tmpParam > FLT_MAX) tmpParam = FLT_MAX;
+	    if (tmpParam < - FLT_MAX) tmpParam = - FLT_MAX;
+	    egEnum.push_back(i);
+	    egParam.push_back(tmpParam);
+	  }
+	}
+      }
+      else if ( tmpEMBremFit ) {
+	MSG_DEBUG(msg, "decoded detail as  " << tmpEMBremFit->className());
+	detail.m_className = tmpEMBremFit->className();
+	for ( unsigned int i=0; i<nbOfEgammaParams; i++ ) {
+	  tmpParam = tmpEMBremFit->parameter( (egammaParameters::ParamDef)i);
+	  if ( tmpParam != egammaParameters::EgParamUndefined ) {
+	    if (tmpParam > FLT_MAX) tmpParam = FLT_MAX;
+	    if (tmpParam < - FLT_MAX) tmpParam = - FLT_MAX;
+	    egEnum.push_back(i);
+	    egParam.push_back(tmpParam);
+	  }
+	}
+      }
+      else if ( tmpEMTrackFit ) {
+	MSG_DEBUG(msg, "decoded detail as  " << tmpEMTrackFit->className());
+	detail.m_className = tmpEMTrackFit->className();
+	for ( unsigned int i=0; i<nbOfEgammaParams; i++ ) {
+	  tmpParam = tmpEMTrackFit->parameter( (egammaParameters::ParamDef)i);
+	  if ( tmpParam != egammaParameters::EgParamUndefined ) {
+	    if (tmpParam > FLT_MAX) tmpParam = FLT_MAX;
+	    if (tmpParam < - FLT_MAX) tmpParam = - FLT_MAX;
+	    egEnum.push_back(i);
+	    egParam.push_back(tmpParam);
+	  }
+	}
+      }
+      else if ( tmpEMErrorDetail ) {
+	MSG_DEBUG(msg, "decoded detail as  " << tmpEMErrorDetail->className());
+	detail.m_className = tmpEMErrorDetail->className();
+	for ( unsigned int i=0; i<nbOfEgammaParams; i++ ) {
+	  tmpParam = tmpEMErrorDetail->parameter( (egammaParameters::ParamDef)i);
+	  if ( tmpParam != egammaParameters::EgParamUndefined ) {
+	    if (tmpParam > FLT_MAX) tmpParam = FLT_MAX;
+	    if (tmpParam < - FLT_MAX) tmpParam = - FLT_MAX;
+	    egEnum.push_back(i);
+	    egParam.push_back(tmpParam);
+	  }
+	}
+      }
+ 
+      pers->push_back( detail );
+    }
+
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egDetail_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egDetail_p1.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..1e123f70eb3abd992d4a48ee2323c19c2baa04de
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egDetail_p1.cxx
@@ -0,0 +1,22 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetail_p1.cxx 
+// Implementation file for class egDetail_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egDetail_p1.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+egDetail_p1::~egDetail_p1()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egDetail_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egDetail_p2.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..0e1a1e3af32e06fd66a7b71c0ca69c4748c6f0a7
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egDetail_p2.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egDetail_p2.cxx 
+// Implementation file for class egDetail_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egDetail_p2.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+egDetail_p2::~egDetail_p2()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..e2b49934134e6df4b21710380712afda70919f51
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p1.cxx
@@ -0,0 +1,130 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p1.cxx 
+// Implementation file for class egammaCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/egamma.h"
+#undef private
+#undef protected
+
+#include "GaudiKernel/GaudiException.h"
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLinkCnv_p1.h"
+#include "DataModelAthenaPool/ElementLinkVectorCnv_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4ImplEEtaPhiMCnv_p1.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBaseCnv_p1.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p1.h"
+
+typedef ElementLinkCnv_p1<ElementLink<CaloClusterContainer> > ClusterLinkCnv_t;
+typedef ElementLinkCnv_p1<ElementLink<Rec::TrackParticleContainer> > TrackLinkCnv_t;
+typedef ElementLinkCnv_p1<ElementLink<VxContainer> > ConversionLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<egDetailContainer> > EgDetailsCnv_t;
+
+// pre-allocate converters
+static P4ImplEEtaPhiMCnv_p1 momCnv;
+static ParticleBaseCnv_p1 partBaseCnv;
+static ClusterLinkCnv_t   clusterCnv;
+static TrackLinkCnv_t     trackCnv;
+static ConversionLinkCnv_t     conversionCnv;
+static EgDetailsCnv_t     egDetailsCnv;
+
+// some constants used to keep consistency over business of egPID conversion
+// --hack-hack-hack-- (ugly-ugly)
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void egammaCnv_p1::persToTrans( const egamma_p1* pers,
+				egamma* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading egamma from persistent state..."
+//       << endreq;
+
+  trans->m_author = pers->m_author;
+
+  momCnv.persToTrans (&pers->m_momentum,
+		      &trans->momentumBase(), 
+		      msg);
+  partBaseCnv.persToTrans (&pers->m_particleBase, 
+			   &trans->particleBase(), 
+			   msg);
+    
+  // element links
+  clusterCnv.persToTrans( &pers->m_cluster, &trans->m_cluster, msg );
+
+  ElementLink<Rec::TrackParticleContainer> el;
+  trackCnv.persToTrans( &pers->m_trackParticle,    
+		        &el,
+			msg );
+  trans->m_trackParticle.push_back(el);   
+
+  ElementLink<VxContainer> em;
+  conversionCnv.persToTrans( &pers->m_conversion,    
+			     &em,
+			     msg );
+  trans->m_conversion.push_back(em);
+
+  egDetailsCnv.persToTrans( &pers->m_egDetails, 
+			    &trans->m_egDetails, 
+			    msg );
+
+  // egPID filling (doubles)
+  {
+    const std::vector<double>& egID = pers->m_egammaDblPIDs;
+    const std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    // if you crash here, then there is a data corruption...
+    assert( egEnum.size() == egID.size() );
+
+    for ( unsigned int i=0; i< egID.size(); i++ ) {
+      trans->set_egammaID( (egammaPID::PID) egEnum[i],      egID[i] );
+    }
+  }
+  //Clearing Rings ElementLink:
+  trans->resetRings(); 
+
+//   msg << MSG::DEBUG << "Loaded egamma from persistent state [OK]"
+//       << endreq;
+  return;
+}
+
+void egammaCnv_p1::transToPers( const egamma* /*trans*/, 
+				egamma_p1* /*pers*/, 
+				MsgStream& /*msg*/ ) 
+{
+
+  throw GaudiException("Deprecated method, we have evolved to use egamma_p2.Please migrate to use egammaCnv_p2::transToPers","egammaCnv_p1::transToPers", StatusCode::FAILURE);
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..f162a230f5dccfe66cdf2d861d3864aa756848c6
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p2.cxx
@@ -0,0 +1,167 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p2.cxx 
+// Implementation file for class egammaCnv_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/egamma.h"
+#undef private
+#undef protected
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLinkCnv_p1.h"
+#include "DataModelAthenaPool/ElementLinkVectorCnv_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4ImplEEtaPhiMCnv_p2.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBaseCnv_p1.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p2.h"
+
+typedef ElementLinkCnv_p1<ElementLink<CaloClusterContainer> > ClusterLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<Rec::TrackParticleContainer> > TrackLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<VxContainer> > ConversionLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<egDetailContainer> > EgDetailsCnv_t;
+
+// pre-allocate converters
+static P4ImplEEtaPhiMCnv_p2 momCnv;
+static ParticleBaseCnv_p1 partBaseCnv;
+static ClusterLinkCnv_t   clusterCnv;
+static TrackLinkCnv_t     trackCnv;
+static ConversionLinkCnv_t     conversionCnv;
+static EgDetailsCnv_t     egDetailsCnv;
+
+// some constants used to keep consistency over business of egPID conversion
+// --hack-hack-hack-- (ugly-ugly)
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void egammaCnv_p2::persToTrans( const egamma_p2* pers,
+				egamma* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading egamma from persistent state..."
+//       << endreq;
+
+  trans->m_author = pers->m_author;
+
+  momCnv.persToTrans (&pers->m_momentum,
+		      &trans->momentumBase(), 
+		      msg);
+  partBaseCnv.persToTrans (&pers->m_particleBase, 
+			   &trans->particleBase(), 
+			   msg);
+    
+  // element links
+  clusterCnv.persToTrans( &pers->m_cluster, &trans->m_cluster, msg );
+
+  trackCnv.persToTrans( &pers->m_trackParticle,    
+			&trans->m_trackParticle,   
+			msg );
+
+  conversionCnv.persToTrans( &pers->m_conversion,    
+			     &trans->m_conversion,   
+			     msg );
+
+  egDetailsCnv.persToTrans( &pers->m_egDetails, 
+			    &trans->m_egDetails, 
+			    msg );
+
+  // egPID filling (doubles)
+  {
+    const std::vector<double>& egID = pers->m_egammaDblPIDs;
+    const std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    // if you crash here, then there is a data corruption...
+    assert( egEnum.size() == egID.size() );
+
+    for ( unsigned int i=0; i< egID.size(); i++ ) {
+      trans->set_egammaID( (egammaPID::PID) egEnum[i],      egID[i] );
+    }
+  }
+  //Clearing Rings ElementLink:
+  trans->resetRings(); 
+
+//   msg << MSG::DEBUG << "Loaded egamma from persistent state [OK]"
+//       << endreq;
+  return;
+}
+
+void egammaCnv_p2::transToPers( const egamma* trans, 
+				egamma_p2* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of egamma..."
+//       << endreq;
+
+  momCnv.transToPers (&trans->momentumBase(), 
+		      &pers->m_momentum,
+		      msg);
+  partBaseCnv.transToPers (&trans->particleBase(), 
+			   &pers->m_particleBase,
+			   msg);
+
+  // element links
+  clusterCnv.transToPers( &trans->m_cluster, &pers->m_cluster, msg );
+  
+  trackCnv.transToPers( &trans->m_trackParticle,   
+			&pers->m_trackParticle,
+			msg );
+
+  conversionCnv.transToPers( &trans->m_conversion,   
+			     &pers->m_conversion,
+			     msg );
+
+  egDetailsCnv.transToPers( &trans->m_egDetails,  
+			    &pers->m_egDetails,
+			    msg );
+
+  // author
+  pers->m_author = trans->m_author;
+  
+  // egPID (ints)
+  {
+    std::vector<double>& egID = pers->m_egammaDblPIDs;
+    std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    unsigned int nbOfEgammaIDs = (int) egammaPID::LastEgammaPID;
+
+    double tmpID;
+    for ( unsigned int i=0; i<nbOfEgammaIDs; i++ ) {
+      tmpID = trans->egammaID( (egammaPID::PID) i);
+      if ( tmpID != egammaPID::EgPidUndefined ) {
+	egEnum.push_back(i);
+	egID.push_back(tmpID);
+      }
+    } 
+  }
+
+//   msg << MSG::DEBUG << "Created persistent state of egamma [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..3c6b6cd963d7d3204cc2deab58171863378b7898
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p3.cxx
@@ -0,0 +1,167 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p3.cxx 
+// Implementation file for class egammaCnv_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/egamma.h"
+#undef private
+#undef protected
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLinkCnv_p3.h"
+#include "DataModelAthenaPool/ElementLinkVectorCnv_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4ImplEEtaPhiMCnv_p2.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBaseCnv_p2.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p3.h"
+
+typedef ElementLinkCnv_p3<ElementLink<CaloClusterContainer> > ClusterLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<Rec::TrackParticleContainer> > TrackLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<VxContainer> > ConversionLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<egDetailContainer> > EgDetailsCnv_t;
+
+// pre-allocate converters
+static P4ImplEEtaPhiMCnv_p2 momCnv;
+static ParticleBaseCnv_p2 partBaseCnv;
+static ClusterLinkCnv_t   clusterCnv;
+static TrackLinkCnv_t     trackCnv;
+static ConversionLinkCnv_t     conversionCnv;
+static EgDetailsCnv_t     egDetailsCnv;
+
+// some constants used to keep consistency over business of egPID conversion
+// --hack-hack-hack-- (ugly-ugly)
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void egammaCnv_p3::persToTrans( const egamma_p3* pers,
+				egamma* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading egamma from persistent state..."
+//       << endreq;
+
+  trans->m_author = pers->m_author;
+
+  momCnv.persToTrans (&pers->m_momentum,
+		      &trans->momentumBase(), 
+		      msg);
+  partBaseCnv.persToTrans (&pers->m_particleBase, 
+			   &trans->particleBase(), 
+			   msg);
+    
+  // element links
+  clusterCnv.persToTrans( &pers->m_cluster, &trans->m_cluster, msg );
+
+  trackCnv.persToTrans( &pers->m_trackParticle,    
+			&trans->m_trackParticle,   
+			msg );
+
+  conversionCnv.persToTrans( &pers->m_conversion,    
+			     &trans->m_conversion,   
+			     msg );
+
+  egDetailsCnv.persToTrans( &pers->m_egDetails, 
+			    &trans->m_egDetails, 
+			    msg );
+
+  // egPID filling (doubles)
+  {
+    const std::vector<double>& egID = pers->m_egammaDblPIDs;
+    const std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    // if you crash here, then there is a data corruption...
+    assert( egEnum.size() == egID.size() );
+
+    for ( unsigned int i=0; i< egID.size(); i++ ) {
+      trans->set_egammaID( (egammaPID::PID) egEnum[i],      egID[i] );
+    }
+  }
+  //Clearing Rings ElementLink:
+  trans->resetRings(); 
+
+//   msg << MSG::DEBUG << "Loaded egamma from persistent state [OK]"
+//       << endreq;
+  return;
+}
+
+void egammaCnv_p3::transToPers( const egamma* trans, 
+				egamma_p3* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of egamma..."
+//       << endreq;
+
+  momCnv.transToPers (&trans->momentumBase(), 
+		      &pers->m_momentum,
+		      msg);
+  partBaseCnv.transToPers (&trans->particleBase(), 
+			   &pers->m_particleBase,
+			   msg);
+
+  // element links
+  clusterCnv.transToPers( &trans->m_cluster, &pers->m_cluster, msg );
+  
+  trackCnv.transToPers( &trans->m_trackParticle,   
+			&pers->m_trackParticle,
+			msg );
+
+  conversionCnv.transToPers( &trans->m_conversion,   
+			     &pers->m_conversion,
+			     msg );
+
+  egDetailsCnv.transToPers( &trans->m_egDetails,  
+			    &pers->m_egDetails,
+			    msg );
+
+  // author
+  pers->m_author = trans->m_author;
+  
+  // egPID (ints)
+  {
+    std::vector<double>& egID = pers->m_egammaDblPIDs;
+    std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    unsigned int nbOfEgammaIDs = (int) egammaPID::LastEgammaPID;
+
+    double tmpID;
+    for ( unsigned int i=0; i<nbOfEgammaIDs; i++ ) {
+      tmpID = trans->egammaID( (egammaPID::PID) i);
+      if ( tmpID != egammaPID::EgPidUndefined ) {
+	egEnum.push_back(i);
+	egID.push_back(tmpID);
+      }
+    } 
+  }
+
+//   msg << MSG::DEBUG << "Created persistent state of egamma [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..803c8a3e7249840e74d91a97bc63ee56bc1e1c84
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p4.cxx
@@ -0,0 +1,192 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p4.cxx 
+// Implementation file for class egammaCnv_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/egamma.h"
+#undef private
+#undef protected
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLinkCnv_p3.h"
+#include "DataModelAthenaPool/ElementLinkVectorCnv_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4ImplEEtaPhiMCnv_p2.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBaseCnv_p2.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p4.h"
+
+typedef ElementLinkCnv_p3<ElementLink<CaloClusterContainer> > ClusterLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<Rec::TrackParticleContainer> > TrackLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<VxContainer> > ConversionLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<egDetailContainer> > EgDetailsCnv_t;
+
+// pre-allocate converters
+static P4ImplEEtaPhiMCnv_p2 momCnv;
+static ParticleBaseCnv_p2 partBaseCnv;
+static ClusterLinkCnv_t   clusterCnv;
+static TrackLinkCnv_t     trackCnv;
+static ConversionLinkCnv_t     conversionCnv;
+static EgDetailsCnv_t     egDetailsCnv;
+
+// some constants used to keep consistency over business of egPID conversion
+// --hack-hack-hack-- (ugly-ugly)
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void egammaCnv_p4::persToTrans( const egamma_p4* pers,
+				egamma* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading egamma from persistent state..."
+//       << endreq;
+
+  trans->m_author = pers->m_author;
+
+  momCnv.persToTrans (&pers->m_momentum,
+		      &trans->momentumBase(), 
+		      msg);
+
+  momCnv.persToTrans (&pers->m_momentumCluster,
+		      &trans->m_momentumCluster, 
+		      msg);
+
+  partBaseCnv.persToTrans (&pers->m_particleBase, 
+			   &trans->particleBase(), 
+			   msg);
+    
+  // element links
+  clusterCnv.persToTrans( &pers->m_cluster, &trans->m_cluster, msg );
+
+  trackCnv.persToTrans( &pers->m_trackParticle,    
+			&trans->m_trackParticle,   
+			msg );
+
+  conversionCnv.persToTrans( &pers->m_conversion,    
+			     &trans->m_conversion,   
+			     msg );
+
+  egDetailsCnv.persToTrans( &pers->m_egDetails, 
+			    &trans->m_egDetails, 
+			    msg );
+
+  // egPID filling (doubles)
+  {
+    const std::vector<double>& egID = pers->m_egammaDblPIDs;
+    const std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    // if you crash here, then there is a data corruption...
+    assert( egEnum.size() == egID.size() );
+
+    for ( unsigned int i=0; i< egID.size(); i++ ) {
+      trans->set_egammaID( (egammaPID::PID) egEnum[i],      egID[i] );
+    }
+
+    // HACK: before rel 17 PID values of 0 were not stored. Therefore,
+    // let's put 0's if OQ or IsEM are missing. (We will not worry
+    // about the MVA tools)
+
+    bool found;
+    trans->isem(egammaPID::ALL, egammaPID::IsEM, &found);
+    if (!found) trans->set_egammaIDint(egammaPID::IsEM, 0);
+
+    trans->isemse(egammaPID::ALL, &found);
+    if (!found) trans->set_egammaIDint(egammaPID::SofteIsEM, 0);
+
+    trans->isgoodoq(egammaPID::ALLOQ, &found);
+    if (!found) trans->set_egammaIDint(egammaPID::IsGoodOQ, 0);
+
+  }
+  //Clearing Rings ElementLink:
+  trans->resetRings(); 
+
+//   msg << MSG::DEBUG << "Loaded egamma from persistent state [OK]"
+//       << endreq;
+  return;
+}
+
+void egammaCnv_p4::transToPers( const egamma* trans, 
+				egamma_p4* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of egamma..."
+//       << endreq;
+
+  momCnv.transToPers (&trans->momentumBase(), 
+		      &pers->m_momentum,
+		      msg);
+
+  momCnv.transToPers (&trans->m_momentumCluster,
+		      &pers->m_momentumCluster, 
+		      msg);
+
+  partBaseCnv.transToPers (&trans->particleBase(), 
+			   &pers->m_particleBase,
+			   msg);
+
+  // element links
+  clusterCnv.transToPers( &trans->m_cluster, &pers->m_cluster, msg );
+  
+  trackCnv.transToPers( &trans->m_trackParticle,   
+			&pers->m_trackParticle,
+			msg );
+
+  conversionCnv.transToPers( &trans->m_conversion,   
+			     &pers->m_conversion,
+			     msg );
+
+  egDetailsCnv.transToPers( &trans->m_egDetails,  
+			    &pers->m_egDetails,
+			    msg );
+
+  // author
+  pers->m_author = trans->m_author;
+  
+  // egPID (ints)
+  {
+    std::vector<double>& egID = pers->m_egammaDblPIDs;
+    std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    unsigned int nbOfEgammaIDs = (int) egammaPID::LastEgammaPID;
+
+    double tmpID;
+    for ( unsigned int i=0; i<nbOfEgammaIDs; i++ ) {
+      tmpID = trans->egammaID( (egammaPID::PID) i);
+      if ( tmpID != egammaPID::EgPidUndefined ) {
+	egEnum.push_back(i);
+	egID.push_back(tmpID);
+      }
+    } 
+  }
+
+//   msg << MSG::DEBUG << "Created persistent state of egamma [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..df632e28882102e916b29baff0e0b9712c6e99f5
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaCnv_p5.cxx
@@ -0,0 +1,179 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaCnv_p5.cxx 
+// Implementation file for class egammaCnv_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// STL includes
+
+// egammaEvent includes
+#define private public
+#define protected public
+#include "egammaEvent/egamma.h"
+#undef private
+#undef protected
+
+// DataModelAthenaPool includes
+#include "DataModelAthenaPool/ElementLinkCnv_p3.h"
+#include "DataModelAthenaPool/ElementLinkVectorCnv_p1.h"
+
+// EventCommonTPCnv includes
+#include "EventCommonTPCnv/P4ImplEEtaPhiMCnv_p2.h"
+
+// ParticleEventTPCnv includes
+#include "ParticleEventTPCnv/ParticleBaseCnv_p2.h"
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaCnv_p5.h"
+
+typedef ElementLinkCnv_p3<ElementLink<CaloClusterContainer> > ClusterLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<Rec::TrackParticleContainer> > TrackLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<VxContainer> > ConversionLinkCnv_t;
+typedef ElementLinkVectorCnv_p1<ElementLinkVector<egDetailContainer> > EgDetailsCnv_t;
+typedef ElementLinkCnv_p3<ElementLink<CaloRingsContainer> > RingsLinkCnv_t;
+
+// pre-allocate converters
+static P4ImplEEtaPhiMCnv_p2 momCnv;
+static ParticleBaseCnv_p2 partBaseCnv;
+static ClusterLinkCnv_t   clusterCnv;
+static TrackLinkCnv_t     trackCnv;
+static ConversionLinkCnv_t     conversionCnv;
+static EgDetailsCnv_t     egDetailsCnv;
+static RingsLinkCnv_t     ringsCnv;
+
+// some constants used to keep consistency over business of egPID conversion
+// --hack-hack-hack-- (ugly-ugly)
+
+/////////////////////////////////////////////////////////////////// 
+// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+// Constructors
+////////////////
+
+// Destructor
+///////////////
+
+/////////////////////////////////////////////////////////////////// 
+// Const methods: 
+///////////////////////////////////////////////////////////////////
+
+void egammaCnv_p5::persToTrans( const egamma_p5* pers,
+				egamma* trans, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Loading egamma from persistent state..."
+//       << endreq;
+
+  trans->m_author = pers->m_author;
+
+  momCnv.persToTrans (&pers->m_momentum,
+		      &trans->momentumBase(), 
+		      msg);
+
+  momCnv.persToTrans (&pers->m_momentumCluster,
+		      &trans->m_momentumCluster, 
+		      msg);
+
+  partBaseCnv.persToTrans (&pers->m_particleBase, 
+			   &trans->particleBase(), 
+			   msg);
+    
+  // element links
+  clusterCnv.persToTrans( &pers->m_cluster, &trans->m_cluster, msg );
+
+  trackCnv.persToTrans( &pers->m_trackParticle,    
+			&trans->m_trackParticle,   
+			msg );
+
+  conversionCnv.persToTrans( &pers->m_conversion,    
+			     &trans->m_conversion,   
+			     msg );
+
+  egDetailsCnv.persToTrans( &pers->m_egDetails, 
+			    &trans->m_egDetails, 
+			    msg );
+
+  // egPID filling (doubles)
+  {
+    const std::vector<double>& egID = pers->m_egammaDblPIDs;
+    const std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    // if you crash here, then there is a data corruption...
+    assert( egEnum.size() == egID.size() );
+
+    for ( unsigned int i=0; i< egID.size(); i++ ) {
+      trans->set_egammaID( (egammaPID::PID) egEnum[i],      egID[i] );
+    }
+  }
+
+  ringsCnv.persToTrans( &pers->m_rings, &trans->m_rings, msg);
+//   msg << MSG::DEBUG << "Loaded egamma from persistent state [OK]"
+//       << endreq;
+  return;
+}
+
+void egammaCnv_p5::transToPers( const egamma* trans, 
+				egamma_p5* pers, 
+				MsgStream& msg ) 
+{
+//   msg << MSG::DEBUG << "Creating persistent state of egamma..."
+//       << endreq;
+
+  momCnv.transToPers (&trans->momentumBase(), 
+		      &pers->m_momentum,
+		      msg);
+
+  momCnv.transToPers (&trans->m_momentumCluster,
+		      &pers->m_momentumCluster, 
+		      msg);
+
+  partBaseCnv.transToPers (&trans->particleBase(), 
+			   &pers->m_particleBase,
+			   msg);
+
+  // element links
+  clusterCnv.transToPers( &trans->m_cluster, &pers->m_cluster, msg );
+  
+  trackCnv.transToPers( &trans->m_trackParticle,   
+			&pers->m_trackParticle,
+			msg );
+
+  conversionCnv.transToPers( &trans->m_conversion,   
+			     &pers->m_conversion,
+			     msg );
+
+  egDetailsCnv.transToPers( &trans->m_egDetails,  
+			    &pers->m_egDetails,
+			    msg );
+
+  // author
+  pers->m_author = trans->m_author;
+  
+  // egPID (ints)
+  {
+    std::vector<double>& egID = pers->m_egammaDblPIDs;
+    std::vector<unsigned int>& egEnum = pers->m_egammaEnumPIDs;
+
+    unsigned int nbOfEgammaIDs = (int) egammaPID::LastEgammaPID;
+
+    bool found;
+    for ( unsigned int i=0; i<nbOfEgammaIDs; i++ ) {
+      const double tmpID = trans->egammaID( (egammaPID::PID) i, &found);
+      if (found) {
+	egEnum.push_back(i);
+	egID.push_back(tmpID);
+      }
+    } 
+  }
+
+  ringsCnv.transToPers (&trans->m_rings, &pers->m_rings, msg);
+//   msg << MSG::DEBUG << "Created persistent state of egamma [OK]"
+//       << endreq;
+  return;
+}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..39c644a14189adc6dcb845c62c575c790da0ef46
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p1.cxx
@@ -0,0 +1,15 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p1.cxx 
+// Implementation file for class egammaContainerCnv_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainerCnv_p1.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..e0dfba0f5fc619dddeeeac65c82c03486fa98d5d
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p2.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p2.cxx 
+// Implementation file for class egammaContainerCnv_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainerCnv_p2.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..93765a2c2d7be252aee99991a19c986473cd55ac
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p3.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p3.cxx 
+// Implementation file for class egammaContainerCnv_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainerCnv_p3.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..436e907c9766cc4d2daf70998099abd00f73ef91
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p4.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p4.cxx 
+// Implementation file for class egammaContainerCnv_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainerCnv_p4.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..07cf737586106e9a9ca1a90deb28425c6ea879a7
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaContainerCnv_p5.cxx
@@ -0,0 +1,13 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egammaContainerCnv_p5.cxx 
+// Implementation file for class egammaContainerCnv_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egammaContainerCnv_p5.h"
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egammaEventTPCnv.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egammaEventTPCnv.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..db239c0c8105639ccdf73cbcd8eb5defe7641961
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egammaEventTPCnv.cxx
@@ -0,0 +1,116 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// generate the T/P converter entries
+#include "AthenaKernel/TPCnvFactory.h"
+
+#include "egammaEventTPCnv/ElectronContainerCnv_p1.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p2.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p3.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p4.h"
+#include "egammaEventTPCnv/ElectronContainerCnv_p5.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p1.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p2.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p3.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p4.h"
+#include "egammaEventTPCnv/PhotonContainerCnv_p5.h"
+#include "egammaEventTPCnv/egDetailContainerCnv_p1.h"
+#include "egammaEventTPCnv/egDetailContainerCnv_p2.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p1.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p2.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p3.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p4.h"
+#include "egammaEventTPCnv/egammaContainerCnv_p5.h"
+#include "egammaEventTPCnv/CaloRingsContainerCnv_p1.h"
+
+DECLARE_TPCNV_FACTORY(ElectronContainerCnv_p1,
+                      ElectronContainer,
+                      ElectronContainer_p1,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(ElectronContainerCnv_p2,
+                      ElectronContainer,
+                      ElectronContainer_p2,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(ElectronContainerCnv_p3,
+                      ElectronContainer,
+                      ElectronContainer_p3,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(ElectronContainerCnv_p4,
+                      ElectronContainer,
+                      ElectronContainer_p4,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(ElectronContainerCnv_p5,
+                      ElectronContainer,
+                      ElectronContainer_p5,
+                      Athena::TPCnvVers::Current)
+
+DECLARE_TPCNV_FACTORY(PhotonContainerCnv_p1,
+                      PhotonContainer,
+                      PhotonContainer_p1,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(PhotonContainerCnv_p2,
+                      PhotonContainer,
+                      PhotonContainer_p2,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(PhotonContainerCnv_p3,
+                      PhotonContainer,
+                      PhotonContainer_p3,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(PhotonContainerCnv_p4,
+                      PhotonContainer,
+                      PhotonContainer_p4,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(PhotonContainerCnv_p5,
+                      PhotonContainer,
+                      PhotonContainer_p5,
+                      Athena::TPCnvVers::Current)
+
+DECLARE_TPCNV_FACTORY(egDetailContainerCnv_p1,
+                      egDetailContainer,
+                      egDetailContainer_p1,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(egDetailContainerCnv_p2,
+                      egDetailContainer,
+                      egDetailContainer_p2,
+                      Athena::TPCnvVers::Current)
+
+DECLARE_TPCNV_FACTORY(egammaContainerCnv_p1,
+                      egammaContainer,
+                      egammaContainer_p1,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(egammaContainerCnv_p2,
+                      egammaContainer,
+                      egammaContainer_p2,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(egammaContainerCnv_p3,
+                      egammaContainer,
+                      egammaContainer_p3,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(egammaContainerCnv_p4,
+                      egammaContainer,
+                      egammaContainer_p4,
+                      Athena::TPCnvVers::Old)
+
+DECLARE_TPCNV_FACTORY(egammaContainerCnv_p5,
+                      egammaContainer,
+                      egammaContainer_p5,
+                      Athena::TPCnvVers::Current)
+
+DECLARE_TPCNV_FACTORY(CaloRingsContainerCnv_p1,
+                      CaloRingsContainer,
+                      CaloRingsContainer_p1,
+                      Athena::TPCnvVers::Current)
+
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p1.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p1.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..e3e2f39ab9cfd7c3ddb343d741ac745f5e91abd7
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p1.cxx
@@ -0,0 +1,22 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egamma_p1.cxx 
+// Implementation file for class egamma_p1
+// Author: K.Cranmer<cranmer@cern.ch>
+// Author: S.Binet<binet@cern.ch>
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p1.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+egamma_p1::~egamma_p1()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p2.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p2.cxx
new file mode 100755
index 0000000000000000000000000000000000000000..6e07aa672061d1cd957c76c1fdd69180588f02af
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p2.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egamma_p2.cxx 
+// Implementation file for class egamma_p2
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p2.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+egamma_p2::~egamma_p2()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p3.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p3.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..cc2fe8246cca33192b98093514647ca15a51291f
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p3.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egamma_p3.cxx 
+// Implementation file for class egamma_p3
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p3.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+egamma_p3::~egamma_p3()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p4.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p4.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..edc6413cdee4fb6967f71fedb35608169bad8aab
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p4.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egamma_p4.cxx 
+// Implementation file for class egamma_p4
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p4.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+egamma_p4::~egamma_p4()
+{}
diff --git a/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p5.cxx b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p5.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..5af7eabb4c37c38530f7c2373b01a64ceb7693e5
--- /dev/null
+++ b/Reconstruction/egamma/egammaEventTPCnv/src/egamma_p5.cxx
@@ -0,0 +1,20 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// egamma_p5.cxx 
+// Implementation file for class egamma_p5
+/////////////////////////////////////////////////////////////////// 
+
+
+// egammaEventTPCnv includes
+#include "egammaEventTPCnv/egamma_p5.h"
+
+/////////////////////////////////////////////////////////////////// 
+/// Public methods: 
+/////////////////////////////////////////////////////////////////// 
+
+egamma_p5::~egamma_p5()
+{}