From 9b4f296d1bd1207875239bcd890b630f4673eada Mon Sep 17 00:00:00 2001
From: Sanya Solodkov <Sanya.Solodkov@cern.ch>
Date: Mon, 31 Mar 2014 15:15:22 +0200
Subject: [PATCH] disabling debug output in TileMuonReceiverObjCnv
 (TileTPCnv-00-02-10)

---
 .../TileTPCnv/TileTPCnv/ARA_selection.xml     |  79 ++++++
 .../TileTPCnv/TileTPCnv/OLD_selection.xml     |   3 +
 .../TileTPCnv/T_TilePoolContainerCnv.h        | 114 +++++++++
 .../TileTPCnv/TileTPCnv/TileBeamElemCnv_p1.h  |  46 ++++
 .../TileTPCnv/TileBeamElemContainerCnv_p1.h   |  39 +++
 .../TileTPCnv/TileBeamElemContainer_p1.h      |  46 ++++
 .../TileTPCnv/TileTPCnv/TileBeamElem_p1.h     |  40 +++
 .../TileTPCnv/TileCosmicMuonCnv_p1.h          |  46 ++++
 .../TileTPCnv/TileCosmicMuonCnv_p2.h          |  46 ++++
 .../TileTPCnv/TileCosmicMuonContainerCnv_p1.h |  38 +++
 .../TileTPCnv/TileCosmicMuonContainerCnv_p2.h |  38 +++
 .../TileTPCnv/TileCosmicMuonContainer_p1.h    |  21 ++
 .../TileTPCnv/TileCosmicMuonContainer_p2.h    |  21 ++
 .../TileTPCnv/TileTPCnv/TileCosmicMuon_p1.h   |  61 +++++
 .../TileTPCnv/TileTPCnv/TileCosmicMuon_p2.h   |  66 +++++
 .../TileTPCnv/TileTPCnv/TileDigitsCnv_p1.h    |  46 ++++
 .../TileTPCnv/TileDigitsContainerCnv_p1.h     |  39 +++
 .../TileTPCnv/TileDigitsContainer_p1.h        |  46 ++++
 .../TileTPCnv/TileTPCnv/TileDigits_p1.h       |  39 +++
 .../TileTPCnv/TileTPCnv/TileHitCnv_p1.h       |  33 +++
 .../TileTPCnv/TileHitContainerCnv_p1.h        |  39 +++
 .../TileTPCnv/TileTPCnv/TileHitContainer_p1.h |  46 ++++
 .../TileTPCnv/TileTPCnv/TileHitVectorCnv_p1.h |  24 ++
 .../TileTPCnv/TileTPCnv/TileHitVector_p1.h    |  40 +++
 .../TileSvc/TileTPCnv/TileTPCnv/TileHit_p1.h  |  20 ++
 .../TileTPCnv/TileTPCnv/TileL2Cnv_p1.h        |  46 ++++
 .../TileTPCnv/TileTPCnv/TileL2Cnv_p2.h        |  46 ++++
 .../TileTPCnv/TileL2ContainerCnv_p1.h         |  38 +++
 .../TileTPCnv/TileL2ContainerCnv_p2.h         |  38 +++
 .../TileTPCnv/TileTPCnv/TileL2Container_p1.h  |  21 ++
 .../TileTPCnv/TileTPCnv/TileL2Container_p2.h  |  21 ++
 .../TileSvc/TileTPCnv/TileTPCnv/TileL2_p1.h   |  47 ++++
 .../TileSvc/TileTPCnv/TileTPCnv/TileL2_p2.h   |  39 +++
 .../TileTPCnv/TileTPCnv/TileMuCnv_p1.h        |  46 ++++
 .../TileTPCnv/TileMuContainerCnv_p1.h         |  38 +++
 .../TileTPCnv/TileTPCnv/TileMuContainer_p1.h  |  21 ++
 .../TileSvc/TileTPCnv/TileTPCnv/TileMu_p1.h   |  40 +++
 .../TileMuonReceiverContainerCnv_p1.h         |  38 +++
 .../TileTPCnv/TileMuonReceiverContainer_p1.h  |  21 ++
 .../TileTPCnv/TileMuonReceiverObjCnv_p1.h     |  46 ++++
 .../TileTPCnv/TileMuonReceiverObj_p1.h        |  37 +++
 .../TileTPCnv/TileRawChannelCnv_p1.h          |  46 ++++
 .../TileTPCnv/TileRawChannelContainerCnv_p1.h |  39 +++
 .../TileTPCnv/TileRawChannelContainer_p1.h    |  46 ++++
 .../TileTPCnv/TileTPCnv/TileRawChannel_p1.h   |  39 +++
 .../TileTPCnv/TileTPCnv/TileTPCnvDict.h       |  67 +++++
 .../TileTPCnv/TileTPCnv/TileTTL1CellCnv_p1.h  |  46 ++++
 .../TileTPCnv/TileTTL1CellContainerCnv_p1.h   |  38 +++
 .../TileTPCnv/TileTTL1CellContainer_p1.h      |  21 ++
 .../TileTPCnv/TileTPCnv/TileTTL1Cell_p1.h     |  44 ++++
 .../TileTPCnv/TileTPCnv/TileTTL1Cnv_p1.h      |  46 ++++
 .../TileTPCnv/TileTTL1ContainerCnv_p1.h       |  38 +++
 .../TileTPCnv/TileTTL1Container_p1.h          |  21 ++
 .../TileSvc/TileTPCnv/TileTPCnv/TileTTL1_p1.h |  39 +++
 .../TileSvc/TileTPCnv/TileTPCnv/selection.xml |  48 ++++
 .../TileSvc/TileTPCnv/cmt/requirements        |  21 ++
 .../TileSvc/TileTPCnv/doc/mainpage.h          |  95 ++++++++
 .../TileTPCnv/src/TileBeamElemCnv_p1.cxx      |  43 ++++
 .../TileTPCnv/src/TileCosmicMuonCnv_p1.cxx    |  97 ++++++++
 .../TileTPCnv/src/TileCosmicMuonCnv_p2.cxx    | 132 ++++++++++
 .../TileTPCnv/src/TileDigitsCnv_p1.cxx        |  45 ++++
 .../TileSvc/TileTPCnv/src/TileHitCnv_p1.cxx   |  49 ++++
 .../TileTPCnv/src/TileHitVectorCnv_p1.cxx     |  33 +++
 .../TileSvc/TileTPCnv/src/TileL2Cnv_p1.cxx    | 116 +++++++++
 .../TileSvc/TileTPCnv/src/TileL2Cnv_p2.cxx    | 228 ++++++++++++++++++
 .../TileSvc/TileTPCnv/src/TileMuCnv_p1.cxx    |  60 +++++
 .../src/TileMuonReceiverObjCnv_p1.cxx         | 169 +++++++++++++
 .../TileTPCnv/src/TileRawChannelCnv_p1.cxx    | 123 ++++++++++
 .../TileSvc/TileTPCnv/src/TileTPCnv.cxx       | 117 +++++++++
 .../TileTPCnv/src/TileTTL1CellCnv_p1.cxx      |  59 +++++
 .../TileSvc/TileTPCnv/src/TileTTL1Cnv_p1.cxx  |  43 ++++
 71 files changed, 3667 insertions(+)
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/ARA_selection.xml
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/OLD_selection.xml
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/T_TilePoolContainerCnv.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemContainer_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElem_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonCnv_p2.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainerCnv_p2.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainer_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainer_p2.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuon_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuon_p2.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsContainer_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigits_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitContainer_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitVectorCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitVector_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHit_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Cnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Cnv_p2.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2ContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2ContainerCnv_p2.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Container_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Container_p2.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2_p2.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuContainer_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMu_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverContainer_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverObjCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverObj_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelContainer_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannel_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTPCnvDict.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellContainer_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Cell_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Cnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1ContainerCnv_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Container_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1_p1.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/selection.xml
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/cmt/requirements
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/doc/mainpage.h
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileBeamElemCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileCosmicMuonCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileCosmicMuonCnv_p2.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileDigitsCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileHitCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileHitVectorCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileL2Cnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileL2Cnv_p2.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileMuCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileMuonReceiverObjCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileRawChannelCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileTPCnv.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileTTL1CellCnv_p1.cxx
 create mode 100644 TileCalorimeter/TileSvc/TileTPCnv/src/TileTTL1Cnv_p1.cxx

diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/ARA_selection.xml b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/ARA_selection.xml
new file mode 100644
index 00000000000..80eac88e991
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/ARA_selection.xml
@@ -0,0 +1,79 @@
+<lcgdict>
+
+  <class name="T_TPCnv<TileHitContainer,TileHitContainer_p1>"/>
+  <class name="T_TilePoolContainerCnv<TileHitContainer,TileHitContainer_p1,TileHitCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileHitContainer,TileHitContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileHitContainer,TileHitContainer,TileHitContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileHitContainer,TileHitContainer,TileHitContainer_p1>"/>
+  <class name="ITPConverterFor<TileHitContainer>"/>
+
+  <class name="T_TPCnv<TileTTL1Container,TileTTL1Container_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<TileTTL1Container,TileTTL1Container_p1,TileTTL1Cnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileTTL1Container,TileTTL1Container_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileTTL1Container,TileTTL1Container,TileTTL1Container_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileTTL1Container,TileTTL1Container,TileTTL1Container_p1>"/>
+  <class name="ITPConverterFor<TileTTL1Container>"/>
+
+  <class name="T_TPCnv<TileL2Container,TileL2Container_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<TileL2Container,TileL2Container_p1,TileL2Cnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileL2Container,TileL2Container_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileL2Container,TileL2Container,TileL2Container_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileL2Container,TileL2Container,TileL2Container_p1>"/>
+  <class name="ITPConverterFor<TileL2Container>"/>
+
+  <class name="T_TPCnv<TileL2Container,TileL2Container_p2>"/>
+  <class name="T_AthenaPoolTPCnvVector<TileL2Container,TileL2Container_p2,TileL2Cnv_p2>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileL2Container,TileL2Container_p2>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileL2Container,TileL2Container,TileL2Container_p2>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileL2Container,TileL2Container,TileL2Container_p2>"/>
+
+  <class name="T_TPCnv<TileMuContainer,TileMuContainer_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<TileMuContainer,TileMuContainer_p1,TileMuCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileMuContainer,TileMuContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileMuContainer,TileMuContainer,TileMuContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileMuContainer,TileMuContainer,TileMuContainer_p1>"/>
+  <class name="ITPConverterFor<TileMuContainer>"/>
+
+  <class name="T_TPCnv<TileCosmicMuonContainer,TileCosmicMuonContainer_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<TileCosmicMuonContainer,TileCosmicMuonContainer_p1,TileCosmicMuonCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileCosmicMuonContainer,TileCosmicMuonContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileCosmicMuonContainer,TileCosmicMuonContainer,TileCosmicMuonContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileCosmicMuonContainer,TileCosmicMuonContainer,TileCosmicMuonContainer_p1>"/>
+
+  <class name="T_TPCnv<TileCosmicMuonContainer,TileCosmicMuonContainer_p2>"/>
+  <class name="T_AthenaPoolTPCnvVector<TileCosmicMuonContainer,TileCosmicMuonContainer_p2,TileCosmicMuonCnv_p2>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileCosmicMuonContainer,TileCosmicMuonContainer_p2>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileCosmicMuonContainer,TileCosmicMuonContainer,TileCosmicMuonContainer_p2>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileCosmicMuonContainer,TileCosmicMuonContainer,TileCosmicMuonContainer_p2>"/>
+  <class name="ITPConverterFor<TileCosmicMuonContainer>"/>
+
+  <class name="T_TPCnv<TileDigitsContainer,TileDigitsContainer_p1>"/>
+  <class name="T_TilePoolContainerCnv<TileDigitsContainer,TileDigitsContainer_p1,TileDigitsCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileDigitsContainer,TileDigitsContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileDigitsContainer,TileDigitsContainer,TileDigitsContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileDigitsContainer,TileDigitsContainer,TileDigitsContainer_p1>"/>
+  <class name="ITPConverterFor<TileDigitsContainer>"/>
+
+  <class name="T_TPCnv<TileBeamElemContainer,TileBeamElemContainer_p1>"/>
+  <class name="T_TilePoolContainerCnv<TileBeamElemContainer,TileBeamElemContainer_p1,TileBeamElemCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileBeamElemContainer,TileBeamElemContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileBeamElemContainer,TileBeamElemContainer,TileBeamElemContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileBeamElemContainer,TileBeamElemContainer,TileBeamElemContainer_p1>"/>
+  <class name="ITPConverterFor<TileBeamElemContainer>"/>
+
+  <class name="T_TPCnv<TileRawChannelContainer,TileRawChannelContainer_p1>"/>
+  <class name="T_TilePoolContainerCnv<TileRawChannelContainer,TileRawChannelContainer_p1,TileRawChannelCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileRawChannelContainer,TileRawChannelContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileRawChannelContainer,TileRawChannelContainer,TileRawChannelContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileRawChannelContainer,TileRawChannelContainer,TileRawChannelContainer_p1>"/>
+  <class name="ITPConverterFor<TileRawChannelContainer>"/>
+
+  <class name="T_TPCnv<TileMuonReceiverContainer,TileMuonReceiverContainer_p1>"/>
+  <class name="T_AthenaPoolTPCnvVector<TileMuonReceiverContainer,TileMuonReceiverContainer_p1,TileMuonReceiverObjCnv_p1>"/>
+  <class name="T_AthenaPoolTPCnvBase<TileMuonReceiverContainer,TileMuonReceiverContainer_p1>"/>
+  <class name="T_AthenaPoolTPPolyCnvBase<TileMuonReceiverContainer,TileMuonReceiverContainer,TileMuonReceiverContainer_p1>"/>
+  <class name="T_AthenaPoolTPAbstractPolyCnvBase<TileMuonReceiverContainer,TileMuonReceiverContainer,TileMuonReceiverContainer_p1>"/>
+  <class name="ITPConverterFor<TileMuonReceiverContainer>"/>
+
+
+</lcgdict>
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/OLD_selection.xml b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/OLD_selection.xml
new file mode 100644
index 00000000000..16ce8b580f2
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/OLD_selection.xml
@@ -0,0 +1,3 @@
+<lcgdict>
+
+</lcgdict>
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/T_TilePoolContainerCnv.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/T_TilePoolContainerCnv.h
new file mode 100644
index 00000000000..6df5945e425
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/T_TilePoolContainerCnv.h
@@ -0,0 +1,114 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// T_TilePoolContainerCnv.h 
+// Base class for Tile converters
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_T_TILEPOOLCONTAINERCNV_H
+#define TILETPCNV_T_TILEPOOLCONTAINERCNV_H
+
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+#include "EventContainers/SelectAllObject.h"
+#include "TileEvent/TileRawDataContainer.h"
+
+#include <vector>
+#include <inttypes.h>
+
+template<class TRANS, class PERS, class CONV>
+class T_TilePoolContainerCnv : public T_AthenaPoolTPCnvBase<TRANS, PERS> {
+public:
+  
+  typedef typename PERS::ElemVector pers_ElemVector;
+  typedef typename PERS::const_iterator pers_const_iterator;
+  typedef typename SelectAllObject<TRANS>::const_iterator trans_const_iterator;
+
+  T_TilePoolContainerCnv() : m_elementCnv()  {}
+
+  /** Converts vector of PERS::value_type objects to vector of TRANS::value_type objects,
+      using converter CONV
+      @param persVect [IN] vector of persistent objects
+      @param transVect [IN] vector of transient object
+      @param log [IN] output message stream
+  */
+  virtual void persToTrans(const PERS* pers, TRANS* trans, MsgStream &log) {
+
+    const std::vector<unsigned int>& param = pers->getParam();
+    const pers_ElemVector& vec = pers->getVector();
+
+    unsigned int pers_type = (param.size()>0) ? param[0] : 0;
+    int hashType = pers_type    & 0xF;
+    int type = (pers_type >> 4) & 0xF;
+    int unit = (pers_type >> 8) & 0xF;
+    uint32_t bsflags = pers_type & 0xFFFFF000;
+    if (hashType == 0xF) hashType = TileFragHash::Beam;
+    if (type == 0xF) type = TileFragHash::Beam;
+
+    log << MSG::DEBUG << MSG::hex << "pers_type= 0x" << pers_type 
+        << " - " <<  bsflags << " " << unit << " " << type << " " << hashType
+        << MSG::dec << " Nelements= " << vec.size() << endreq;
+
+    //trans->clear(); // only remove elements
+    trans->cleanup(); // remove all collections
+
+    if ( abs(trans->get_hashType()-hashType) > 0xF) {
+      log << MSG::DEBUG << "Pers hash type " << hashType
+          << " does not match Trans hash type " << trans->get_hashType()
+          << " ==> reinitializing hash " << endreq;
+
+      trans->initialize(false,(TileFragHash::TYPE)hashType); 
+    }
+
+    trans->set_unit((TileRawChannelUnit::UNIT)unit);
+    trans->set_type((TileFragHash::TYPE)type);
+    trans->set_bsflags(bsflags);
+
+    for( pers_const_iterator it = vec.begin(),
+                           iEnd = vec.end();
+         it != iEnd; ++it) {
+      trans->push_back( m_elementCnv.createTransient(&(*it), log)  );
+    }
+  }
+  
+  /** Converts vector of TRANS::value_type objects to vector of PERS::value_type objects,
+      using converter CONV
+      @param transVect [IN] vector of transient object
+      @param persVect [IN] vector of persistent objects
+      @param log [IN] output message stream
+  */
+  virtual void transToPers(const TRANS* trans, PERS* pers, MsgStream &log) {
+
+    pers->clear();
+    pers->reserve(1, 12288);
+
+    unsigned int pers_type = ((trans->get_hashType() & 0xF) |
+                             ((trans->get_type() & 0xF)<<4) |
+                             ((trans->get_unit() & 0xF)<<8) |
+                             (trans->get_bsflags() & 0xFFFFF000) ) ; 
+    pers->push_back_param(pers_type);
+
+    SelectAllObject<TRANS> selAll(trans); 
+    for(trans_const_iterator it = selAll.begin(),
+                           iEnd = selAll.end();
+        it != iEnd; ++it) {
+      m_elementCnv.transToPers((*it), pers->newElem(), log);
+    }
+
+    log << MSG::DEBUG << MSG::hex << "pers_type= 0x" << pers_type
+        << " - " << (trans->get_bsflags()>>12)
+        << " " << trans->get_unit() 
+        << " " << trans->get_type() 
+        << " " << trans->get_hashType()
+        << MSG::dec << "  Nelements= " << pers->getVector().size() << endreq;
+  }
+
+private:
+  /// TP converter used for vector elements
+  CONV 	m_elementCnv;	
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemCnv_p1.h
new file mode 100644
index 00000000000..167aab9691b
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemCnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileBeamElemCnv_p1.h 
+// Transient/Persistent converter for TileBeamElem class
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEBEAMELEMCNV_P1_H
+#define TILETPCNV_TILEBEAMELEMCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileBeamElem_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileBeamElem.h"
+
+class MsgStream;
+
+class TileBeamElemCnv_p1 : public T_AthenaPoolTPCnvBase<TileBeamElem, TileBeamElem_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileBeamElemCnv_p1() {}
+
+  /** Method creating the transient representation TileBeamElem
+   *  from its persistent representation TileBeamElem_p1
+   */
+  virtual void persToTrans(const TileBeamElem_p1* persObj, TileBeamElem* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileBeamElem_p1
+   *  from its transient representation TileBeamElem
+   */
+  virtual void transToPers(const TileBeamElem* transObj, TileBeamElem_p1* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILEBEAMELEMCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemContainerCnv_p1.h
new file mode 100644
index 00000000000..a84db086a62
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemContainerCnv_p1.h
@@ -0,0 +1,39 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileBeamElemContainerCnv_p1.h 
+// Header file for class TileBeamElemContainerCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEBEAMELEMCONTAINERCNV_P1_H
+#define TILETPCNV_TILEBEAMELEMCONTAINERCNV_P1_H
+
+// TileTPCnv includes
+#define private public
+#include "TileTPCnv/TileBeamElemContainer_p1.h"
+#undef private 
+#include "TileTPCnv/TileBeamElemCnv_p1.h"
+#include "TileTPCnv/T_TilePoolContainerCnv.h"
+
+// Tile includes
+#include "TileEvent/TileBeamElemContainer.h"
+
+typedef T_TilePoolContainerCnv<
+            TileBeamElemContainer,
+            TileBeamElemContainer_p1,
+            TileBeamElemCnv_p1
+       > TileBeamElemContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileBeamElemContainer, TileBeamElemContainer_p1>
+  : public TileBeamElemContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILEBEAMELEMCONTAINERCNV_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemContainer_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemContainer_p1.h
new file mode 100644
index 00000000000..ba27ed0e3a9
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElemContainer_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileBeamElemContainer_p1.h 
+// Persistent represenation of a TileBeamElemContainer
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILEBEAMELEMCONTAINER_P1_H
+#define TILEBEAMELEMCONTAINER_P1_H
+
+#include "TileTPCnv/TileBeamElem_p1.h"
+#include <vector>
+
+class TileBeamElemContainer_p1   
+{
+public:
+    /// typedefs
+    typedef std::vector<TileBeamElem_p1> ElemVector;
+    typedef ElemVector::const_iterator const_iterator;
+    typedef ElemVector::iterator       iterator;
+
+    /// Default constructor
+    TileBeamElemContainer_p1 () : m_param(), m_cont() {}
+
+    // Accessors
+    const std::vector<unsigned int>& getParam() const {return m_param;}
+    const ElemVector&               getVector() const {return m_cont;}
+
+    // Clear methods
+    void clear() {m_param.clear(); m_cont.clear(); }
+    void reserve(unsigned int size1, unsigned int size2) { m_param.reserve(size1);  m_cont.reserve(size2); }
+  
+    // Fill methods
+    void push_back_param (unsigned int param) { m_param.push_back(param); }
+    TileBeamElem_p1 * newElem () { m_cont.push_back(TileBeamElem_p1()); return &m_cont.back(); }
+      
+private:
+    std::vector<unsigned int>      m_param;
+    std::vector<TileBeamElem_p1>   m_cont; 
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElem_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElem_p1.h
new file mode 100644
index 00000000000..ecbdb9aad8c
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileBeamElem_p1.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileBeamElem_p1.h 
+// Header file for class TileBeamElem_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEBEAMELEM_P1_H
+#define TILETPCNV_TILEBEAMELEM_P1_H
+
+#include <vector>
+#include <inttypes.h>
+
+// forward declarations
+class TileBeamElemCnv_p1;
+
+class TileBeamElem_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileBeamElemCnv_p1;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileBeamElem_p1() : m_channelID(0), m_digits() {}
+
+private:
+
+  unsigned int m_channelID;
+  std::vector<uint16_t> m_digits;
+
+};
+
+#endif //> TILETPCNV_TILEBEAMELEM_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonCnv_p1.h
new file mode 100644
index 00000000000..6a25f64bd0c
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonCnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuonCnv_p1.h 
+// Header file for class TileCosmicMuonCnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILECOSMICMUONCNV_P1_H
+#define TILETPCNV_TILECOSMICMUONCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileCosmicMuon_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileCosmicMuon.h"
+
+class MsgStream;
+
+class TileCosmicMuonCnv_p1 : public T_AthenaPoolTPCnvBase<TileCosmicMuon, TileCosmicMuon_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileCosmicMuonCnv_p1() {}
+
+  /** Method creating the transient representation TileCosmicMuon
+   *  from its persistent representation TileCosmicMuon_p1
+   */
+  virtual void persToTrans(const TileCosmicMuon_p1* persObj, TileCosmicMuon* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileCosmicMuon_p1
+   *  from its transient representation TileCosmicMuon
+   */
+  virtual void transToPers(const TileCosmicMuon* transObj, TileCosmicMuon_p1* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILECOSMICMUONCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonCnv_p2.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonCnv_p2.h
new file mode 100644
index 00000000000..e4487f7f820
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonCnv_p2.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuonCnv_p2.h 
+// Header file for class TileCosmicMuonCnv_p2
+// Author: Jose Maneira <maneira@lip.pt>
+// Date:   July 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILECOSMICMUONCNV_P2_H
+#define TILETPCNV_TILECOSMICMUONCNV_P2_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileCosmicMuon_p2.h"
+
+// TileEvent includes
+#include "TileEvent/TileCosmicMuon.h"
+
+class MsgStream;
+
+class TileCosmicMuonCnv_p2 : public T_AthenaPoolTPCnvBase<TileCosmicMuon, TileCosmicMuon_p2> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileCosmicMuonCnv_p2() {}
+
+  /** Method creating the transient representation TileCosmicMuon
+   *  from its persistent representation TileCosmicMuon_p2
+   */
+  virtual void persToTrans(const TileCosmicMuon_p2* persObj, TileCosmicMuon* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileCosmicMuon_p2
+   *  from its transient representation TileCosmicMuon
+   */
+  virtual void transToPers(const TileCosmicMuon* transObj, TileCosmicMuon_p2* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILECOSMICMUONCNV_P2_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainerCnv_p1.h
new file mode 100644
index 00000000000..548c3d25dbe
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainerCnv_p1.h
@@ -0,0 +1,38 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuonContainerCnv_p1.h 
+// Header file for class TileCosmicMuonContainerCnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILECOSMICMUONCONTAINERCNV_P1_H
+#define TILETPCNV_TILECOSMICMUONCONTAINERCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileCosmicMuonContainer_p1.h"
+#include "TileTPCnv/TileCosmicMuonCnv_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileCosmicMuonContainer.h"
+
+typedef T_AthenaPoolTPCnvVector<
+            TileCosmicMuonContainer,
+            TileCosmicMuonContainer_p1,
+            TileCosmicMuonCnv_p1
+       > TileCosmicMuonContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileCosmicMuonContainer, TileCosmicMuonContainer_p1>
+  : public TileCosmicMuonContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILECOSMICMUONCONTAINERCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainerCnv_p2.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainerCnv_p2.h
new file mode 100644
index 00000000000..93102d480e1
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainerCnv_p2.h
@@ -0,0 +1,38 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuonContainerCnv_p2.h 
+// Header file for class TileCosmicMuonContainerCnv_p2
+// Author: Jose Maneira <maneira@lip.pt>
+// Date:   July 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILECOSMICMUONCONTAINERCNV_P2_H
+#define TILETPCNV_TILECOSMICMUONCONTAINERCNV_P2_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileCosmicMuonContainer_p2.h"
+#include "TileTPCnv/TileCosmicMuonCnv_p2.h"
+
+// TileEvent includes
+#include "TileEvent/TileCosmicMuonContainer.h"
+
+typedef T_AthenaPoolTPCnvVector<
+            TileCosmicMuonContainer,
+            TileCosmicMuonContainer_p2,
+            TileCosmicMuonCnv_p2
+       > TileCosmicMuonContainerCnv_p2;
+
+template<>
+class T_TPCnv<TileCosmicMuonContainer, TileCosmicMuonContainer_p2>
+  : public TileCosmicMuonContainerCnv_p2
+{
+public:
+};
+
+#endif //> TILETPCNV_TILECOSMICMUONCONTAINERCNV_P2_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainer_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainer_p1.h
new file mode 100644
index 00000000000..e277ebb98d6
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainer_p1.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuonContainer_p1.h 
+// Header file for class TileCosmicMuonContainer_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILECOSMICMUONCONTAINER_P1_H
+#define TILETPCNV_TILECOSMICMUONCONTAINER_P1_H
+
+// TileTPCnv includes
+#include "TileTPCnv/TileCosmicMuon_p1.h"
+
+class TileCosmicMuonContainer_p1 : public std::vector<TileCosmicMuon_p1>
+{};
+
+#endif //> TILETPCNV_TILECOSMICMUONCONTAINER_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainer_p2.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainer_p2.h
new file mode 100644
index 00000000000..28c9cd7dd5e
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuonContainer_p2.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuonContainer_p2.h 
+// Header file for class TileCosmicMuonContainer_p2
+// Author: Jose Maneira <maneira@lip.pt>
+// Date:   July 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILECOSMICMUONCONTAINER_P2_H
+#define TILETPCNV_TILECOSMICMUONCONTAINER_P2_H
+
+// TileTPCnv includes
+#include "TileTPCnv/TileCosmicMuon_p2.h"
+
+class TileCosmicMuonContainer_p2 : public std::vector<TileCosmicMuon_p2>
+{};
+
+#endif //> TILETPCNV_TILECOSMICMUONCONTAINER_P2_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuon_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuon_p1.h
new file mode 100644
index 00000000000..bc27fc8c9a4
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuon_p1.h
@@ -0,0 +1,61 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuon_p1.h 
+// Header file for class TileCosmicMuon_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILECOSMICMUON_P1_H
+#define TILETPCNV_TILECOSMICMUON_P1_H
+
+#include <vector>
+
+// forward declarations
+class TileCosmicMuonCnv_p1;
+
+class TileCosmicMuon_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileCosmicMuonCnv_p1;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileCosmicMuon_p1() : m_time(0.0), m_positionX(0.0),
+                        m_positionY(0.0), m_positionZ(0.0),
+                        m_directionPhi(0.0), m_directionTheta(0.0),
+                        m_fitQuality(0.0), m_fitNCells(0),
+                        m_pathTop(), m_pathBottom(),
+                        m_energyTop(), m_energyBottom(),
+                        m_trackCellHash() {}
+
+private:
+
+  float m_time;//!< Time of track at selected plane (y=0 for cosmics z=0 for beam)
+  float m_positionX; //!< X coordinate of point in track at selected plane (y=0 for cosmics z=0 for beam)
+  float m_positionY; //!< Y coordinate of point in track at selected plane (y=0 for cosmics z=0 for beam)
+  float m_positionZ; //!< Z coordinate of point in track at selected plane (y=0 for cosmics z=0 for beam)
+  float m_directionPhi; //!< Phi angle of track direction
+  float m_directionTheta; //!< Theta angle of track direction
+  float m_fitQuality; //!< Fit parameter: 0= no fit; (Hough) 1=fit ok; (Minuit) >0 chi-square 
+  int   m_fitNCells;  //!< Number of cells used in fit
+  
+  /** Vector with length of track within Tile on top modules [0]:sampling A; [1]: BC; [2]: D */
+  std::vector<float> m_pathTop; 
+  /** Vector with length of track within Tile on bottom modules [0]:sampling A; [1]: BC; [2]: D */
+  std::vector<float> m_pathBottom; 
+  /** Vector with sum energy of cells close to track on top modules [0]:sampling A; [1]: BC; [2]: D */
+  std::vector<float> m_energyTop; 
+  /** Vector with sum energy of cells close to track on bottom modules [0]:sampling A; [1]: BC; [2]: D */
+  std::vector<float> m_energyBottom; 
+ 
+  /** Vector with list of Identifier Hash of cells close to track.*/
+  std::vector<unsigned int> m_trackCellHash; 
+};
+
+#endif //> TILETPCNV_TILECOSMICMUON_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuon_p2.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuon_p2.h
new file mode 100644
index 00000000000..79fce6a6030
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileCosmicMuon_p2.h
@@ -0,0 +1,66 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuon_p2.h 
+// Header file for class TileCosmicMuon_p2
+// Author: Jose Maneira <maneira@lip.pt>
+// Date:   July 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILECOSMICMUON_P2_H
+#define TILETPCNV_TILECOSMICMUON_P2_H
+
+#include <vector>
+
+// forward declarations
+class TileCosmicMuonCnv_p2;
+
+class TileCosmicMuon_p2 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileCosmicMuonCnv_p2;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileCosmicMuon_p2() : m_time(0.0), m_positionX(0.0),
+                        m_positionY(0.0), m_positionZ(0.0),
+                        m_directionPhi(0.0), m_directionTheta(0.0),
+                        m_fitQuality(0.0), m_fitNCells(0),
+                        m_pathTop(), m_pathBottom(),
+                        m_energyTop(), m_energyBottom(),
+                        m_trackCellHash(), m_segmentPath(),
+                        m_segmentPartitionModuleSampling()   {}
+
+private:
+
+  float m_time;//!< Time of track at selected plane (y=0 for cosmics z=0 for beam)
+  float m_positionX; //!< X coordinate of point in track at selected plane (y=0 for cosmics z=0 for beam)
+  float m_positionY; //!< Y coordinate of point in track at selected plane (y=0 for cosmics z=0 for beam)
+  float m_positionZ; //!< Z coordinate of point in track at selected plane (y=0 for cosmics z=0 for beam)
+  float m_directionPhi; //!< Phi angle of track direction
+  float m_directionTheta; //!< Theta angle of track direction
+  float m_fitQuality; //!< Fit parameter: 0= no fit; (Hough) 1=fit ok; (Minuit) >0 chi-square 
+  int   m_fitNCells;  //!< Number of cells used in fit
+  
+  /** Vector with length of track within Tile on top modules [0]:sampling A; [1]: BC; [2]: D */
+  std::vector<float> m_pathTop; 
+  /** Vector with length of track within Tile on bottom modules [0]:sampling A; [1]: BC; [2]: D */
+  std::vector<float> m_pathBottom; 
+  /** Vector with sum energy of cells close to track on top modules [0]:sampling A; [1]: BC; [2]: D */
+  std::vector<float> m_energyTop; 
+  /** Vector with sum energy of cells close to track on bottom modules [0]:sampling A; [1]: BC; [2]: D */
+  std::vector<float> m_energyBottom; 
+ 
+  /** Vector with list of Identifier Hash of cells close to track.*/
+  std::vector<unsigned int> m_trackCellHash; 
+  /** Vector with length of track within Tile on a given segment */
+  std::vector<float> m_segmentPath; 
+  /** Vector with segment partition/module/sampling - one byte for each */
+  std::vector<unsigned int> m_segmentPartitionModuleSampling; 
+};
+
+#endif //> TILETPCNV_TILECOSMICMUON_P2_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsCnv_p1.h
new file mode 100644
index 00000000000..271085999c5
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsCnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileDigitsCnv_p1.h 
+// Transient/Persistent converter for TileDigits class
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEDIGITSCNV_P1_H
+#define TILETPCNV_TILEDIGITSCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileDigits_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileDigits.h"
+
+class MsgStream;
+
+class TileDigitsCnv_p1 : public T_AthenaPoolTPCnvBase<TileDigits, TileDigits_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileDigitsCnv_p1() {}
+
+  /** Method creating the transient representation TileDigits
+   *  from its persistent representation TileDigits_p1
+   */
+  virtual void persToTrans(const TileDigits_p1* persObj, TileDigits* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileDigits_p1
+   *  from its transient representation TileDigits
+   */
+  virtual void transToPers(const TileDigits* transObj, TileDigits_p1* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILEDIGITSCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsContainerCnv_p1.h
new file mode 100644
index 00000000000..e9eebae0269
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsContainerCnv_p1.h
@@ -0,0 +1,39 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileDigitsContainerCnv_p1.h 
+// Header file for class TileDigitsContainerCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEDIGITSCONTAINERCNV_P1_H
+#define TILETPCNV_TILEDIGITSCONTAINERCNV_P1_H
+
+// TileTPCnv includes
+#define private public
+#include "TileTPCnv/TileDigitsContainer_p1.h"
+#undef private 
+#include "TileTPCnv/TileDigitsCnv_p1.h"
+#include "TileTPCnv/T_TilePoolContainerCnv.h"
+
+// Tile includes
+#include "TileEvent/TileDigitsContainer.h"
+
+typedef T_TilePoolContainerCnv<
+            TileDigitsContainer,
+            TileDigitsContainer_p1,
+            TileDigitsCnv_p1
+       > TileDigitsContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileDigitsContainer, TileDigitsContainer_p1>
+  : public TileDigitsContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILEDIGITSCONTAINERCNV_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsContainer_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsContainer_p1.h
new file mode 100644
index 00000000000..cb77c75dd89
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigitsContainer_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileDigitsContainer_p1.h 
+// Persistent represenation of a TileDigitsContainer
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILEDIGITSCONTAINER_P1_H
+#define TILEDIGITSCONTAINER_P1_H
+
+#include "TileTPCnv/TileDigits_p1.h"
+#include <vector>
+
+class TileDigitsContainer_p1   
+{
+public:
+    /// typedefs
+    typedef std::vector<TileDigits_p1> ElemVector;
+    typedef ElemVector::const_iterator const_iterator;
+    typedef ElemVector::iterator       iterator;
+
+    /// Default constructor
+    TileDigitsContainer_p1 () : m_param(), m_cont() {}
+
+    // Accessors
+    const std::vector<unsigned int>& getParam() const {return m_param;}
+    const ElemVector&               getVector() const {return m_cont;}
+
+    // Clear methods
+    void clear() {m_param.clear(); m_cont.clear(); }
+    void reserve(unsigned int size1, unsigned int size2) { m_param.reserve(size1);  m_cont.reserve(size2); }
+  
+    // Fill methods
+    void push_back_param (unsigned int param) {m_param.push_back(param); }
+    TileDigits_p1 * newElem () { m_cont.push_back(TileDigits_p1()); return &m_cont.back(); }
+      
+private:
+    std::vector<unsigned int>    m_param;
+    std::vector<TileDigits_p1>   m_cont; 
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigits_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigits_p1.h
new file mode 100644
index 00000000000..bcf4cc66822
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileDigits_p1.h
@@ -0,0 +1,39 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileDigits_p1.h 
+// Header file for class TileDigits_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEDIGITS_P1_H
+#define TILETPCNV_TILEDIGITS_P1_H
+
+#include <vector>
+
+// forward declarations
+class TileDigitsCnv_p1;
+
+class TileDigits_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileDigitsCnv_p1;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileDigits_p1() : m_channelID(0), m_digits() {}
+
+private:
+
+  unsigned int m_channelID;
+  std::vector<short> m_digits;
+
+};
+
+#endif //> TILETPCNV_TILEDIGITS_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitCnv_p1.h
new file mode 100644
index 00000000000..4ae5f109979
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitCnv_p1.h
@@ -0,0 +1,33 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef TILEHITCNV_P1_H
+#define TILEHITCNV_P1_H
+
+/*
+Transient/Persistent converter for TileHit class
+Author: Davide Costanzo
+*/
+
+#include "TileSimEvent/TileHit.h"
+#include "TileTPCnv/TileHit_p1.h"
+
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+class MsgStream;
+
+
+class TileHitCnv_p1  : public T_AthenaPoolTPCnvBase<TileHit, TileHit_p1>
+{
+public:
+
+  TileHitCnv_p1() {}
+
+  virtual void          persToTrans(const TileHit_p1* persObj, TileHit* transObj, MsgStream &log);
+  virtual void          transToPers(const TileHit* transObj, TileHit_p1* persObj, MsgStream &log);
+};
+
+
+#endif
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitContainerCnv_p1.h
new file mode 100644
index 00000000000..13a9c9ce99c
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitContainerCnv_p1.h
@@ -0,0 +1,39 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileHitContainerCnv_p1.h 
+// Header file for class TileHitContainerCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEHITCONTAINERCNV_P1_H
+#define TILETPCNV_TILEHITCONTAINERCNV_P1_H
+
+// TileTPCnv includes
+#define private public
+#include "TileTPCnv/TileHitContainer_p1.h"
+#undef private 
+#include "TileTPCnv/TileHitCnv_p1.h"
+#include "TileTPCnv/T_TilePoolContainerCnv.h"
+
+// Tile includes
+#include "TileEvent/TileHitContainer.h"
+
+typedef T_TilePoolContainerCnv<
+            TileHitContainer,
+            TileHitContainer_p1,
+            TileHitCnv_p1
+       > TileHitContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileHitContainer, TileHitContainer_p1>
+  : public TileHitContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILEHITCONTAINERCNV_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitContainer_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitContainer_p1.h
new file mode 100644
index 00000000000..0955d1f44eb
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitContainer_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileHitContainer_p1.h 
+// Persistent represenation of a TileHitContainer
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILEHITCONTAINER_P1_H
+#define TILEHITCONTAINER_P1_H
+
+#include "TileTPCnv/TileHit_p1.h"
+#include <vector>
+
+class TileHitContainer_p1   
+{
+public:
+    /// typedefs
+    typedef std::vector<TileHit_p1> ElemVector;
+    typedef ElemVector::const_iterator const_iterator;
+    typedef ElemVector::iterator       iterator;
+
+    /// Default constructor
+    TileHitContainer_p1 () : m_param(), m_cont() {}
+
+    // Accessors
+    const std::vector<unsigned int>& getParam() const {return m_param;}
+    const ElemVector&               getVector() const {return m_cont;}
+
+    // Clear methods
+    void clear() {m_param.clear(); m_cont.clear(); }
+    void reserve(unsigned int size1, unsigned int size2) { m_param.reserve(size1);  m_cont.reserve(size2); }
+  
+    // Fill methods
+    void push_back_param (unsigned int param) {m_param.push_back(param); }
+    TileHit_p1 * newElem () { m_cont.push_back(TileHit_p1()); return &m_cont.back(); }
+      
+private:
+    std::vector<unsigned int> m_param;
+    std::vector<TileHit_p1>   m_cont; 
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitVectorCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitVectorCnv_p1.h
new file mode 100644
index 00000000000..2d547639460
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitVectorCnv_p1.h
@@ -0,0 +1,24 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef TILEHITVECTORCNV_P1_H
+#define TILEHITVECTORCNV_P1_H
+
+#define private public
+#include "TileTPCnv/TileHitVector_p1.h"
+#undef private 
+#include "TileSimEvent/TileHitVector.h"
+#include "TileTPCnv/TileHitCnv_p1.h"
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+class TileHitVectorCnv_p1 : public T_AtlasHitsVectorCnv< TileHitVector, TileHitVector_p1, TileHitCnv_p1 >
+{
+ public:
+  
+  TileHitVectorCnv_p1()  {};
+  virtual TileHitVector* createTransient(const TileHitVector_p1* persObj, MsgStream &log);
+  
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitVector_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitVector_p1.h
new file mode 100644
index 00000000000..85061100db8
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHitVector_p1.h
@@ -0,0 +1,40 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef TILEHITVECTOR_P1_H
+#define TILEHITVECTOR_P1_H
+
+/*
+
+Persistent represenation of a TileHitVector
+Author: Davide Costanzo
+
+*/
+
+#include "TileTPCnv/TileHit_p1.h"
+#include <vector>
+#include <string>
+
+
+class TileHitVector_p1   
+{
+public:
+  /// typedefs
+  typedef std::vector<TileHit_p1> HitVector;
+  typedef HitVector::const_iterator const_iterator;
+  typedef HitVector::iterator       iterator;
+  
+  /// Default constructor
+  TileHitVector_p1 () : m_cont(), m_name() {}
+
+  // Accessors
+  const std::string&  name() const {return m_name;}
+  const HitVector&    getVector() const {return m_cont;}
+
+private:
+  std::vector<TileHit_p1> m_cont; 
+  std::string             m_name;
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHit_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHit_p1.h
new file mode 100644
index 00000000000..4552af2e21b
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileHit_p1.h
@@ -0,0 +1,20 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef TILESIMEVENT_TILEHIT_P1_H
+#define TILESIMEVENT_TILEHIT_P1_H
+#include <vector>
+
+class TileHit_p1 {
+ public:
+  TileHit_p1() : m_channelID(0), m_energy(), m_time() {};
+  friend class TileHitCnv_p1;
+  
+ private:
+  unsigned int m_channelID;            // identifier of the cell in which this hit occured.
+  std::vector<float> m_energy;         // energy deposited in scint, as seen by pmt 
+  std::vector<float> m_time;           // time of the energy deposition relative to BC
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Cnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Cnv_p1.h
new file mode 100644
index 00000000000..e7d03669b31
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Cnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2Cnv_p1.h 
+// Header file for class TileL2Cnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEL2CNV_P1_H
+#define TILETPCNV_TILEL2CNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileL2_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileL2.h"
+
+class MsgStream;
+
+class TileL2Cnv_p1 : public T_AthenaPoolTPCnvBase<TileL2, TileL2_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileL2Cnv_p1() {}
+
+  /** Method creating the transient representation TileL2
+   *  from its persistent representation TileL2_p1
+   */
+  virtual void persToTrans(const TileL2_p1* persObj, TileL2* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileL2_p1
+   *  from its transient representation TileL2
+   */
+  virtual void transToPers(const TileL2* transObj, TileL2_p1* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILEL2CNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Cnv_p2.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Cnv_p2.h
new file mode 100644
index 00000000000..d0640b1ea88
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Cnv_p2.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2Cnv_p2.h 
+// Header file for class TileL2Cnv_p2
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEL2CNV_P2_H
+#define TILETPCNV_TILEL2CNV_P2_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileL2_p2.h"
+
+// TileEvent includes
+#include "TileEvent/TileL2.h"
+
+class MsgStream;
+
+class TileL2Cnv_p2 : public T_AthenaPoolTPCnvBase<TileL2, TileL2_p2> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileL2Cnv_p2() {}
+
+  /** Method creating the transient representation TileL2
+   *  from its persistent representation TileL2_p2
+   */
+  virtual void persToTrans(const TileL2_p2* persObj, TileL2* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileL2_p2
+   *  from its transient representation TileL2
+   */
+  virtual void transToPers(const TileL2* transObj, TileL2_p2* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILEL2CNV_P2_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2ContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2ContainerCnv_p1.h
new file mode 100644
index 00000000000..35086cbb7d5
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2ContainerCnv_p1.h
@@ -0,0 +1,38 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2ContainerCnv_p1.h 
+// Header file for class TileL2ContainerCnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEL2CONTAINERCNV_P1_H
+#define TILETPCNV_TILEL2CONTAINERCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileL2Container_p1.h"
+#include "TileTPCnv/TileL2Cnv_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileL2Container.h"
+
+typedef T_AthenaPoolTPCnvVector<
+            TileL2Container,
+            TileL2Container_p1,
+            TileL2Cnv_p1
+       > TileL2ContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileL2Container, TileL2Container_p1>
+  : public TileL2ContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILEL2CONTAINERCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2ContainerCnv_p2.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2ContainerCnv_p2.h
new file mode 100644
index 00000000000..8564d0b3b8a
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2ContainerCnv_p2.h
@@ -0,0 +1,38 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2ContainerCnv_p2.h 
+// Header file for class TileL2ContainerCnv_p2
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEL2CONTAINERCNV_P2_H
+#define TILETPCNV_TILEL2CONTAINERCNV_P2_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileL2Container_p2.h"
+#include "TileTPCnv/TileL2Cnv_p2.h"
+
+// TileEvent includes
+#include "TileEvent/TileL2Container.h"
+
+typedef T_AthenaPoolTPCnvVector<
+            TileL2Container,
+            TileL2Container_p2,
+            TileL2Cnv_p2
+       > TileL2ContainerCnv_p2;
+
+template<>
+class T_TPCnv<TileL2Container, TileL2Container_p2>
+  : public TileL2ContainerCnv_p2
+{
+public:
+};
+
+#endif //> TILETPCNV_TILEL2CONTAINERCNV_P2_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Container_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Container_p1.h
new file mode 100644
index 00000000000..72c183aebe2
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Container_p1.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2Container_p1.h 
+// Header file for class TileL2Container_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEL2CONTAINER_P1_H
+#define TILETPCNV_TILEL2CONTAINER_P1_H
+
+// TileTPCnv includes
+#include "TileTPCnv/TileL2_p1.h"
+
+class TileL2Container_p1 : public std::vector<TileL2_p1>
+{};
+
+#endif //> TILETPCNV_TILEL2CONTAINER_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Container_p2.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Container_p2.h
new file mode 100644
index 00000000000..0bcc51ef5af
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2Container_p2.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2Container_p2.h 
+// Header file for class TileL2Container_p2
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEL2CONTAINER_P2_H
+#define TILETPCNV_TILEL2CONTAINER_P2_H
+
+// TileTPCnv includes
+#include "TileTPCnv/TileL2_p2.h"
+
+class TileL2Container_p2 : public std::vector<TileL2_p2>
+{};
+
+#endif //> TILETPCNV_TILEL2CONTAINER_P2_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2_p1.h
new file mode 100644
index 00000000000..434c63aa84e
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2_p1.h
@@ -0,0 +1,47 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2_p1.h 
+// Header file for class TileL2_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEL2_P1_H
+#define TILETPCNV_TILEL2_P1_H
+
+#include <vector>
+
+// forward declarations
+class TileL2Cnv_p1;
+
+class TileL2_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileL2Cnv_p1;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileL2_p1() : m_ID(0), m_val(), m_eta(), m_phi(0.0),
+                m_enemu0(), m_enemu1(), m_enemu2(), 
+                m_quality_factor(), m_Et(0.0) {}
+
+private:
+
+  int m_ID;
+  std::vector<unsigned int> m_val;
+  std::vector<float> m_eta;
+  float m_phi;
+  std::vector<float> m_enemu0;
+  std::vector<float> m_enemu1;
+  std::vector<float> m_enemu2;
+  std::vector<unsigned int> m_quality_factor;
+  float m_Et;
+
+};
+
+#endif //> TILETPCNV_TILEL2_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2_p2.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2_p2.h
new file mode 100644
index 00000000000..3c435871d09
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileL2_p2.h
@@ -0,0 +1,39 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2_p2.h 
+// Header file for class TileL2_p2
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEL2_P2_H
+#define TILETPCNV_TILEL2_P2_H
+
+#include <vector>
+
+// forward declarations
+class TileL2Cnv_p2;
+
+class TileL2_p2 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileL2Cnv_p2;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileL2_p2() : m_ID(0), m_ival(), m_fval() {}
+
+private:
+
+  int m_ID;
+  std::vector<unsigned int> m_ival;
+  std::vector<float> m_fval;
+
+};
+
+#endif //> TILETPCNV_TILEL2_P2_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuCnv_p1.h
new file mode 100644
index 00000000000..92c955210dc
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuCnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuCnv_p1.h 
+// Header file for class TileMuCnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEMUCNV_P1_H
+#define TILETPCNV_TILEMUCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileMu_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileMu.h"
+
+class MsgStream;
+
+class TileMuCnv_p1 : public T_AthenaPoolTPCnvBase<TileMu, TileMu_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileMuCnv_p1() {}
+
+  /** Method creating the transient representation TileMu
+   *  from its persistent representation TileMu_p1
+   */
+  virtual void persToTrans(const TileMu_p1* persObj, TileMu* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileMu_p1
+   *  from its transient representation TileMu
+   */
+  virtual void transToPers(const TileMu* transObj, TileMu_p1* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILEMUCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuContainerCnv_p1.h
new file mode 100644
index 00000000000..e8d10f020d8
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuContainerCnv_p1.h
@@ -0,0 +1,38 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuContainerCnv_p1.h 
+// Header file for class TileMuContainerCnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEMUCONTAINERCNV_P1_H
+#define TILETPCNV_TILEMUCONTAINERCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileMuContainer_p1.h"
+#include "TileTPCnv/TileMuCnv_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileMuContainer.h"
+
+typedef T_AthenaPoolTPCnvVector<
+            TileMuContainer,
+            TileMuContainer_p1,
+            TileMuCnv_p1
+       > TileMuContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileMuContainer, TileMuContainer_p1>
+  : public TileMuContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILEMUCONTAINERCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuContainer_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuContainer_p1.h
new file mode 100644
index 00000000000..5b5ae89db81
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuContainer_p1.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuContainer_p1.h 
+// Header file for class TileMuContainer_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEMUCONTAINER_P1_H
+#define TILETPCNV_TILEMUCONTAINER_P1_H
+
+// TileTPCnv includes
+#include "TileTPCnv/TileMu_p1.h"
+
+class TileMuContainer_p1 : public std::vector<TileMu_p1>
+{};
+
+#endif //> TILETPCNV_TILEMUCONTAINER_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMu_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMu_p1.h
new file mode 100644
index 00000000000..8b479758e58
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMu_p1.h
@@ -0,0 +1,40 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMu_p1.h 
+// Header file for class TileMu_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEMU_P1_H
+#define TILETPCNV_TILEMU_P1_H
+
+#include <vector>
+
+// forward declarations
+class TileMuCnv_p1;
+
+class TileMu_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileMuCnv_p1;
+
+public:
+
+  /** Default constructor: 
+   */
+    TileMu_p1() : m_eta(0.0), m_phi(0.0), m_energy_deposited(), m_quality_factor() {}  
+
+private:
+
+  float m_eta;
+  float m_phi;
+  std::vector<float> m_energy_deposited;
+  float m_quality_factor;
+
+};
+
+#endif //> TILETPCNV_TILEMU_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverContainerCnv_p1.h
new file mode 100644
index 00000000000..50a1084eb8d
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverContainerCnv_p1.h
@@ -0,0 +1,38 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuonReceiverContainerCnv_p1.h 
+// Header file for class TileMuonReceiverContainerCnv_p1
+// Author: Joao Gentil Saraiva <joao.gentil.saraiva@cern.ch>
+// Date:   March 2014
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEMUONRECEIVERCONTAINERCNV_P1_H
+#define TILETPCNV_TILEMUONRECEIVERCONTAINERCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileMuonReceiverContainer_p1.h"
+#include "TileTPCnv/TileMuonReceiverObjCnv_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileContainer.h"
+
+typedef T_AthenaPoolTPCnvVector<
+            TileMuonReceiverContainer,
+            TileMuonReceiverContainer_p1,
+            TileMuonReceiverObjCnv_p1
+       > TileMuonReceiverContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileMuonReceiverContainer, TileMuonReceiverContainer_p1>
+  : public TileMuonReceiverContainerCnv_p1
+{
+public:
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverContainer_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverContainer_p1.h
new file mode 100644
index 00000000000..50f8606ef33
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverContainer_p1.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuonReceiverContainer_p1.h 
+// Header file for class TileMuonReceiverContainer_p1
+// Author: Joao Gentil Saraiva <joao.gentil.saraiva@cern.ch>
+// Date:   March 2014
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEMUONRECEIVERCONTAINER_P1_H
+#define TILETPCNV_TILEMUONRECEIVERCONTAINER_P1_H
+
+// TileTPCnv includes
+#include "TileTPCnv/TileMuonReceiverObj_p1.h"
+
+class TileMuonReceiverContainer_p1 : public std::vector<TileMuonReceiverObj_p1>
+{};
+
+#endif 
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverObjCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverObjCnv_p1.h
new file mode 100644
index 00000000000..c601b95148b
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverObjCnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuonReceiverObjCnv_p1.h 
+// Header file for class TileMuonReceiverObjCnv_p1
+// Author: Joao Gentil Saraiva <joao.gentil.saraiva@cern.ch>
+// Date:   March 2014
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEMUONRECEIVEROBJCNV_P1_H
+#define TILETPCNV_TILEMUONRECEIVEROBJCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileMuonReceiverObj_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileMuonReceiverObj.h"
+
+class MsgStream;
+
+class TileMuonReceiverObjCnv_p1 : public T_AthenaPoolTPCnvBase<TileMuonReceiverObj, TileMuonReceiverObj_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileMuonReceiverObjCnv_p1() {}
+
+  /** Method creating the transient representation TileMuonReceiverObj
+   *  from its persistent representation TileMuonReceiverObj_p1
+   */
+  virtual void persToTrans(const TileMuonReceiverObj_p1* persObj, TileMuonReceiverObj* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileMuonReceiverObj_p1
+   *  from its transient representation TileMuonReceiverObj
+   */
+  virtual void transToPers(const TileMuonReceiverObj* transObj, TileMuonReceiverObj_p1* persObj, MsgStream &log);
+
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverObj_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverObj_p1.h
new file mode 100644
index 00000000000..482125edc54
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileMuonReceiverObj_p1.h
@@ -0,0 +1,37 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuonReceiverObj_p1.h 
+// Header file for class TileMuonReceiverObj_p1
+// Author: Joao Gentil Saraiva <joao.gentil.saraiva@cern.ch>
+// Date:   March 2014
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILEMUONRECEIVEROBJ_P1_H
+#define TILETPCNV_TILEMUONRECEIVEROBJ_P1_H
+
+#include <vector>
+
+// forward declarations
+class TileMuonReceiverObjCnv_p1;
+
+class TileMuonReceiverObj_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileMuonReceiverObjCnv_p1;
+
+public:
+
+  // Default constructor: 
+  TileMuonReceiverObj_p1(): m_id(0), m_data() {}
+
+private:
+
+  unsigned int m_id;
+  std::vector<float> m_data;
+
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelCnv_p1.h
new file mode 100644
index 00000000000..94066f18aa7
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelCnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileRawChannelCnv_p1.h 
+// Transient/Persistent converter for TileRawChannel class
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILERAWCHANNELCNV_P1_H
+#define TILETPCNV_TILERAWCHANNELCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileRawChannel_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileRawChannel.h"
+
+class MsgStream;
+
+class TileRawChannelCnv_p1 : public T_AthenaPoolTPCnvBase<TileRawChannel, TileRawChannel_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileRawChannelCnv_p1() {}
+
+  /** Method creating the transient representation TileRawChannel
+   *  from its persistent representation TileRawChannel_p1
+   */
+  virtual void persToTrans(const TileRawChannel_p1* persObj, TileRawChannel* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileRawChannel_p1
+   *  from its transient representation TileRawChannel
+   */
+  virtual void transToPers(const TileRawChannel* transObj, TileRawChannel_p1* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILERAWCHANNELCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelContainerCnv_p1.h
new file mode 100644
index 00000000000..975f50cb455
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelContainerCnv_p1.h
@@ -0,0 +1,39 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileRawChannelContainerCnv_p1.h 
+// Header file for class TileRawChannelContainerCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILERAWCHANNELCONTAINERCNV_P1_H
+#define TILETPCNV_TILERAWCHANNELCONTAINERCNV_P1_H
+
+// TileTPCnv includes
+#define private public
+#include "TileTPCnv/TileRawChannelContainer_p1.h"
+#undef private 
+#include "TileTPCnv/TileRawChannelCnv_p1.h"
+#include "TileTPCnv/T_TilePoolContainerCnv.h"
+
+// Tile includes
+#include "TileEvent/TileRawChannelContainer.h"
+
+typedef T_TilePoolContainerCnv<
+            TileRawChannelContainer,
+            TileRawChannelContainer_p1,
+            TileRawChannelCnv_p1
+       > TileRawChannelContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileRawChannelContainer, TileRawChannelContainer_p1>
+  : public TileRawChannelContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILERAWCHANNELCONTAINERCNV_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelContainer_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelContainer_p1.h
new file mode 100644
index 00000000000..f7d89a07db1
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannelContainer_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileRawChannelContainer_p1.h 
+// Persistent represenation of a TileRawChannelContainer
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILERAWCHANNELCONTAINER_P1_H
+#define TILERAWCHANNELCONTAINER_P1_H
+
+#include "TileTPCnv/TileRawChannel_p1.h"
+#include <vector>
+
+class TileRawChannelContainer_p1   
+{
+public:
+    /// typedefs
+    typedef std::vector<TileRawChannel_p1> ElemVector;
+    typedef ElemVector::const_iterator const_iterator;
+    typedef ElemVector::iterator       iterator;
+
+    /// Default constructor
+    TileRawChannelContainer_p1 () : m_param(), m_cont() {}
+
+    // Accessors
+    const std::vector<unsigned int>& getParam() const {return m_param;}
+    const ElemVector&               getVector() const {return m_cont;}
+
+    // Clear methods
+    void clear() {m_param.clear(); m_cont.clear(); }
+    void reserve(unsigned int size1, unsigned int size2) { m_param.reserve(size1);  m_cont.reserve(size2); }
+  
+    // Fill methods
+    void push_back_param (unsigned int param) {m_param.push_back(param); }
+    TileRawChannel_p1 * newElem () { m_cont.push_back(TileRawChannel_p1()); return &m_cont.back(); }
+      
+private:
+    std::vector<unsigned int>        m_param;
+    std::vector<TileRawChannel_p1>   m_cont; 
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannel_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannel_p1.h
new file mode 100644
index 00000000000..06408c148bf
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileRawChannel_p1.h
@@ -0,0 +1,39 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileRawChannel_p1.h 
+// Header file for class TileRawChannel_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILERAWCHANNEL_P1_H
+#define TILETPCNV_TILERAWCHANNEL_P1_H
+
+#include <vector>
+
+// forward declarations
+class TileRawChannelCnv_p1;
+
+class TileRawChannel_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileRawChannelCnv_p1;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileRawChannel_p1() : m_channelID(0), m_length(0), m_data() {}
+
+private:
+
+  unsigned int m_channelID;
+  unsigned int m_length;
+  std::vector<float> m_data;
+};
+
+#endif //> TILETPCNV_TILERAWCHANNEL_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTPCnvDict.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTPCnvDict.h
new file mode 100644
index 00000000000..0c34644d5be
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTPCnvDict.h
@@ -0,0 +1,67 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef TILETPCNV_TILETPCNVDICT_H
+#define TILETPCNV_TILETPCNVDICT_H
+
+#include "TileTPCnv/TileHit_p1.h"
+#include "TileTPCnv/TileHitVector_p1.h"
+#include "TileTPCnv/TileHitContainer_p1.h"
+#include "TileTPCnv/TileHitContainerCnv_p1.h"
+
+#include "TileTPCnv/TileTTL1_p1.h"
+#include "TileTPCnv/TileTTL1Container_p1.h"
+#include "TileTPCnv/TileTTL1ContainerCnv_p1.h"
+
+#include "TileTPCnv/TileL2_p1.h"
+#include "TileTPCnv/TileL2Container_p1.h"
+#include "TileTPCnv/TileL2ContainerCnv_p1.h"
+
+#include "TileTPCnv/TileL2_p2.h"
+#include "TileTPCnv/TileL2Container_p2.h"
+#include "TileTPCnv/TileL2ContainerCnv_p2.h"
+
+#include "TileTPCnv/TileMu_p1.h"
+#include "TileTPCnv/TileMuContainer_p1.h"
+#include "TileTPCnv/TileMuContainerCnv_p1.h"
+
+#include "TileTPCnv/TileCosmicMuon_p1.h"
+#include "TileTPCnv/TileCosmicMuonContainer_p1.h"
+#include "TileTPCnv/TileCosmicMuonContainerCnv_p1.h"
+
+#include "TileTPCnv/TileCosmicMuon_p2.h"
+#include "TileTPCnv/TileCosmicMuonContainer_p2.h"
+#include "TileTPCnv/TileCosmicMuonContainerCnv_p2.h"
+
+#include "TileTPCnv/TileDigits_p1.h"
+#include "TileTPCnv/TileDigitsContainer_p1.h"
+#include "TileTPCnv/TileDigitsContainerCnv_p1.h"
+
+#include "TileTPCnv/TileBeamElem_p1.h"
+#include "TileTPCnv/TileBeamElemContainer_p1.h"
+#include "TileTPCnv/TileBeamElemContainerCnv_p1.h"
+
+#include "TileTPCnv/TileRawChannel_p1.h"
+#include "TileTPCnv/TileRawChannelContainer_p1.h"
+#include "TileTPCnv/TileRawChannelContainerCnv_p1.h"
+
+#include "TileTPCnv/TileMuonReceiverObj_p1.h"
+#include "TileTPCnv/TileMuonReceiverContainer_p1.h"
+#include "TileTPCnv/TileMuonReceiverContainerCnv_p1.h"
+
+struct dummy {
+  T_TPCnv<TileHitContainer, TileHitContainer_p1> m_tilehitcnv;
+  T_TPCnv<TileTTL1Container, TileTTL1Container_p1> m_tilettl1cnv;
+  T_TPCnv<TileL2Container, TileL2Container_p1> m_tilel2cnv1;
+  T_TPCnv<TileL2Container, TileL2Container_p2> m_tilel2cnv2;
+  T_TPCnv<TileMuContainer, TileMuContainer_p1> m_tilemucnv;
+  T_TPCnv<TileCosmicMuonContainer, TileCosmicMuonContainer_p1> m_tilecosmicmuoncnv1;
+  T_TPCnv<TileCosmicMuonContainer, TileCosmicMuonContainer_p2> m_tilecosmicmuoncnv2;
+  T_TPCnv<TileDigitsContainer, TileDigitsContainer_p1> m_tiledigitscnv;
+  T_TPCnv<TileBeamElemContainer, TileBeamElemContainer_p1> m_tilebeamelemcnv;
+  T_TPCnv<TileRawChannelContainer, TileRawChannelContainer_p1> m_tilerawchannelcnv;
+  T_TPCnv<TileMuonReceiverContainer, TileMuonReceiverContainer_p1> m_tilemuonreceivercnv;
+};
+
+#endif
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellCnv_p1.h
new file mode 100644
index 00000000000..c15a3d75dd1
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellCnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1CellCnv_p1.h 
+// Transient/Persistent converter for TileTTL1Cell class
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILETTL1CELLCNV_P1_H
+#define TILETPCNV_TILETTL1CELLCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileTTL1Cell_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileTTL1Cell.h"
+
+class MsgStream;
+
+class TileTTL1CellCnv_p1 : public T_AthenaPoolTPCnvBase<TileTTL1Cell, TileTTL1Cell_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileTTL1CellCnv_p1() {}
+
+  /** Method creating the transient representation TileTTL1Cell
+   *  from its persistent representation TileTTL1Cell_p1
+   */
+  virtual void persToTrans(const TileTTL1Cell_p1* persObj, TileTTL1Cell* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileTTL1Cell_p1
+   *  from its transient representation TileTTL1Cell
+   */
+  virtual void transToPers(const TileTTL1Cell* transObj, TileTTL1Cell_p1* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILETTL1CELLCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellContainerCnv_p1.h
new file mode 100644
index 00000000000..f4457a8a7b1
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellContainerCnv_p1.h
@@ -0,0 +1,38 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1CellContainerCnv_p1.h 
+// Header file for class TileTTL1CellContainerCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILETTL1CELLCONTAINERCNV_P1_H
+#define TILETPCNV_TILETTL1CELLCONTAINERCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileTTL1CellContainer_p1.h"
+#include "TileTPCnv/TileTTL1CellCnv_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileTTL1CellContainer.h"
+
+typedef T_AthenaPoolTPCnvVector<
+            TileTTL1CellContainer,
+            TileTTL1CellContainer_p1,
+            TileTTL1CellCnv_p1
+       > TileTTL1CellContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileTTL1CellContainer, TileTTL1CellContainer_p1>
+  : public TileTTL1CellContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILETTL1CELLCONTAINERCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellContainer_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellContainer_p1.h
new file mode 100644
index 00000000000..c877d44f86c
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1CellContainer_p1.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1CellContainer_p1.h 
+// Header file for class TileTTL1CellContainer_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILETTL1CELLCONTAINER_P1_H
+#define TILETPCNV_TILETTL1CELLCONTAINER_P1_H
+
+// TileTPCnv includes
+#include "TileTPCnv/TileTTL1Cell_p1.h"
+
+class TileTTL1CellContainer_p1 : public std::vector<TileTTL1Cell_p1>
+{};
+
+#endif //> TILETPCNV_TILETTL1CELLCONTAINER_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Cell_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Cell_p1.h
new file mode 100644
index 00000000000..d46066abca6
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Cell_p1.h
@@ -0,0 +1,44 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1Cell_p1.h 
+// Header file for class TileTTL1Cell_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILETTL1CELL_P1_H
+#define TILETPCNV_TILETTL1CELL_P1_H
+
+#include <vector>
+
+// forward declarations
+class TileTTL1CellCnv_p1;
+
+class TileTTL1Cell_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileTTL1CellCnv_p1;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileTTL1Cell_p1() : m_channelID(0), m_eneTower(0.0), 
+                      m_timeAve(0.0), m_corrFactor(0.0),
+                      m_quality(0) {}
+
+private:
+
+  unsigned int m_channelID;
+  float m_eneTower;
+  float m_timeAve;
+  float m_corrFactor;
+  uint16_t m_quality;
+
+};
+
+#endif //> TILETPCNV_TILETTL1CELL_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Cnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Cnv_p1.h
new file mode 100644
index 00000000000..6df320a8586
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Cnv_p1.h
@@ -0,0 +1,46 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1Cnv_p1.h 
+// Transient/Persistent converter for TileTTL1 class
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILETTL1CNV_P1_H
+#define TILETPCNV_TILETTL1CNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileTTL1_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileTTL1.h"
+
+class MsgStream;
+
+class TileTTL1Cnv_p1 : public T_AthenaPoolTPCnvBase<TileTTL1, TileTTL1_p1> {
+
+public:
+
+  /** Default constructor: 
+   */
+  TileTTL1Cnv_p1() {}
+
+  /** Method creating the transient representation TileTTL1
+   *  from its persistent representation TileTTL1_p1
+   */
+  virtual void persToTrans(const TileTTL1_p1* persObj, TileTTL1* transObj, MsgStream &log);
+
+  /** Method creating the persistent representation TileTTL1_p1
+   *  from its transient representation TileTTL1
+   */
+  virtual void transToPers(const TileTTL1* transObj, TileTTL1_p1* persObj, MsgStream &log);
+
+};
+
+#endif //> TILETPCNV_TILETTL1CNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1ContainerCnv_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1ContainerCnv_p1.h
new file mode 100644
index 00000000000..a1dcc8960a2
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1ContainerCnv_p1.h
@@ -0,0 +1,38 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1ContainerCnv_p1.h 
+// Header file for class TileTTL1ContainerCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILETTL1CONTAINERCNV_P1_H
+#define TILETPCNV_TILETTL1CONTAINERCNV_P1_H
+
+// AthenaPoolCnvSvc includes
+#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h"
+
+// TileTPCnv includes
+#include "TileTPCnv/TileTTL1Container_p1.h"
+#include "TileTPCnv/TileTTL1Cnv_p1.h"
+
+// TileEvent includes
+#include "TileEvent/TileTTL1Container.h"
+
+typedef T_AthenaPoolTPCnvVector<
+            TileTTL1Container,
+            TileTTL1Container_p1,
+            TileTTL1Cnv_p1
+       > TileTTL1ContainerCnv_p1;
+
+template<>
+class T_TPCnv<TileTTL1Container, TileTTL1Container_p1>
+  : public TileTTL1ContainerCnv_p1
+{
+public:
+};
+
+#endif //> TILETPCNV_TILETTL1CONTAINERCNV_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Container_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Container_p1.h
new file mode 100644
index 00000000000..6c0e9e30374
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1Container_p1.h
@@ -0,0 +1,21 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1Container_p1.h 
+// Header file for class TileTTL1Container_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILETTL1CONTAINER_P1_H
+#define TILETPCNV_TILETTL1CONTAINER_P1_H
+
+// TileTPCnv includes
+#include "TileTPCnv/TileTTL1_p1.h"
+
+class TileTTL1Container_p1 : public std::vector<TileTTL1_p1>
+{};
+
+#endif //> TILETPCNV_TILETTL1CONTAINER_P1_H
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1_p1.h b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1_p1.h
new file mode 100644
index 00000000000..b445efa7183
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/TileTTL1_p1.h
@@ -0,0 +1,39 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1_p1.h 
+// Header file for class TileTTL1_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+#ifndef TILETPCNV_TILETTL1_P1_H
+#define TILETPCNV_TILETTL1_P1_H
+
+#include <vector>
+
+// forward declarations
+class TileTTL1Cnv_p1;
+
+class TileTTL1_p1 {
+
+  // Make the AthenaPoolCnv class our friend
+  friend class TileTTL1Cnv_p1;
+
+public:
+
+  /** Default constructor: 
+   */
+  TileTTL1_p1() : m_channelID(0), m_TTL1digits() {}
+
+private:
+
+  unsigned int m_channelID;
+  std::vector<float> m_TTL1digits;
+
+};
+
+#endif //> TILETPCNV_TILETTL1_P1_H
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/selection.xml b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/selection.xml
new file mode 100644
index 00000000000..4850b60037d
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/TileTPCnv/selection.xml
@@ -0,0 +1,48 @@
+<lcgdict>
+
+  <class name="TileHit_p1" />
+  <class name="std::vector<TileHit_p1>" />
+  <class name="TileHitVector_p1" id="65AD597A-BF97-46EE-B9E3-203B35218EA7" />
+  <class name="TileHitContainer_p1" id="E347580F-BBF0-441E-A799-9AC0256F69DF" />
+
+  <class name="TileTTL1_p1" />
+  <class name="std::vector<TileTTL1_p1>" />
+  <class name="TileTTL1Container_p1" id="213FA88B-52AE-4229-8886-62D7D54FA7A3" />
+
+  <class name="TileL2_p1" />
+  <class name="std::vector<TileL2_p1>" />
+  <class name="TileL2Container_p1" id="FE877FF9-475D-42D9-8DC3-CABD220BFD27" />
+
+  <class name="TileL2_p2" />
+  <class name="std::vector<TileL2_p2>" />
+  <class name="TileL2Container_p2" id="3283BF32-0B18-408F-9B46-6A1B26B37D5C" />
+
+  <class name="TileMu_p1" />
+  <class name="std::vector<TileMu_p1>" />
+  <class name="TileMuContainer_p1" id="DE8904EB-25FD-495A-8DD5-E31B05E397C6" />
+
+  <class name="TileCosmicMuon_p1" />
+  <class name="std::vector<TileCosmicMuon_p1>" />
+  <class name="TileCosmicMuonContainer_p1" id="716F406D-8F59-4879-AA07-C28BA374E6EF" />
+
+  <class name="TileCosmicMuon_p2" />
+  <class name="std::vector<TileCosmicMuon_p2>" />
+  <class name="TileCosmicMuonContainer_p2" id="8957FF04-12E8-43BA-A0C8-D7D9638E242E" />
+
+  <class name="TileDigits_p1" />
+  <class name="std::vector<TileDigits_p1>" />
+  <class name="TileDigitsContainer_p1" id="F9386A42-43A7-4482-8A5B-F33EDE586FB2" />
+
+  <class name="TileBeamElem_p1" />
+  <class name="std::vector<TileBeamElem_p1>" />
+  <class name="TileBeamElemContainer_p1" id="CF8DE6AB-8E15-4B5F-881B-39B736EAB4E0" />
+
+  <class name="TileRawChannel_p1" />
+  <class name="std::vector<TileRawChannel_p1>" />
+  <class name="TileRawChannelContainer_p1" id="BF727F06-9F94-4989-9C1F-9E59023988EA" />
+
+  <class name="TileMuonReceiverObj_p1" />
+  <class name="std::vector<TileMuonReceiverObj_p1>" />
+  <class name="TileMuonReceiverContainer_p1" id="7F0DA5A3-7773-4852-AE55-A9920FEB31AB" /> 
+
+</lcgdict>
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/cmt/requirements b/TileCalorimeter/TileSvc/TileTPCnv/cmt/requirements
new file mode 100644
index 00000000000..aa59e8461d9
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/cmt/requirements
@@ -0,0 +1,21 @@
+package TileTPCnv
+
+author Jose Maneira <Jose.Maneira@cern.ch>
+
+use AtlasPolicy          AtlasPolicy-* 
+use AtlasReflex          AtlasReflex-*           External
+use TileSimEvent         TileSimEvent-*          TileCalorimeter 
+use TileEvent            TileEvent-*             TileCalorimeter 
+use EventContainers      EventContainers-*       Event
+use AthenaPoolCnvSvc     AthenaPoolCnvSvc-*      Database/AthenaPOOL
+
+private
+use AthenaKernel         AthenaKernel-*          Control
+end_private
+
+library TileTPCnv *.cxx
+apply_pattern tpcnv_library
+
+apply_pattern lcgdict dict=TileTPCnv  selectionfile=selection.xml headerfiles="../TileTPCnv/TileTPCnvDict.h"
+apply_pattern lcgdict dict=ARA_TileTPCnv  selectionfile=ARA_selection.xml headerfiles="../TileTPCnv/TileTPCnvDict.h"
+apply_pattern lcgdict dict=OLD_TileTPCnv  selectionfile=OLD_selection.xml headerfiles="../TileTPCnv/TileTPCnvDict.h"
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/doc/mainpage.h b/TileCalorimeter/TileSvc/TileTPCnv/doc/mainpage.h
new file mode 100644
index 00000000000..41239d34721
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/doc/mainpage.h
@@ -0,0 +1,95 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+/**
+
+This package is used to provide the Transient/Persistent separation for TileCal classes.
+
+@mainpage
+
+@author Aranzazu Ruiz Martinez <Aranzazu.Ruiz.Martinez@cern.ch>
+@author Alexander Solodkov <Sanya.Solodkov@cern.ch>
+
+@section Intro Introduction
+
+  - Two separate data models are used:
+    - Transient data model: principal, used almost everywhere
+    - Persistent data model: supplementary, used for data storage
+  - The primary motivation of T/P separation is to provide backwards compatibility (i.e. when the transient representation of a TileEvent class is modified, the old persistent representations can still be read)
+  - Additionally, the persistent model introduces class versioning (ClassName_p1, ClassName_p2, etc.)
+  - It allows more efficient and performant data storage, important to include information in ESD or AOD files
+  - Data is being copied between transient and persistent objects before writing and after reading by the T/P converters
+
+@section Info Related Packages
+
+  The persistent classes and containers in TileTPCnv package have the correspondent transient classes and containers in TileSimEvent and TileEvent packages:
+
+  - TileHit: stores the total energy visible by one PMT
+  - TileL2: stores TileMuId and \f$ E_{\rm{T}} \f$ quantities as computed in the ROD DSPs
+  - TileMu: stores TileMuId (processed offline) related information
+  - TileCosmicMuon: stores information on TileMuonFitter results
+  - TileTTL1Cell: stores the trigger tower energy, average time and quality factor built from Tile cell information
+
+  Note that a GUID is assigned for each transient class in TileSimEvent/selection.xml and TileEvent/selection.xml files.
+
+  The AthenaPool converters, where these GUIDs are used, are stored in TileEventAthenaPool package.
+
+@section Class Persistent Classes
+
+  The following persistent classes are implemented in this package:
+
+  - TileHit_p1
+  - TileL2_p1
+  - TileMu_p1
+  - TileCosmicMuon_p1
+  - TileTTL1Cell_p1
+
+  This persistent classes are meant to reduce the size of the objects, i.e. converting variables from double to float, for data storage. Note that a GUID is assigned for each persistent class in TileTPCnv/selection.xml file.
+
+@section Cnt Persistent Containers
+
+  The following persistent containers are implemented in this package:
+
+  - TileHitVector_p1
+  - TileL2Container_p1
+  - TileMuContainer_p1
+  - TileCosmicMuonContainer_p1
+  - TileTTL1CellContainer_p1
+
+@section Cnv T/P Converters
+  
+  The following T/P converters are implemented in this package:
+
+  - TileHitCnv_p1
+  - TileL2Cnv_p1
+  - TileMuCnv_p1
+  - TileCosmicMuonCnv_p1
+  - TileTTL1CellCnv_p1
+
+  In the T/P converters, the methods transToPers and persToTrans are used for the conversion from transient to persistent or vice versa.
+
+@section CntCnv T/P Container Converters
+
+  The following T/P container converters are implemented in this package:
+
+  - TileHitVectorCnv_p1
+  - TileL2ContainerCnv_p1
+  - TileMuContainerCnv_p1
+  - TileCosmicMuonContainerCnv_p1
+  - TileTTL1CellContainerCnv_p1
+
+@ref used_TileTPCnv
+
+@ref requirements_TileTPCnv
+*/
+
+/**
+@page used_TileTPCnv Used Packages
+@htmlinclude used_packages.html
+*/
+
+/**
+@page requirements_TileTPCnv Requirements
+@include requirements
+*/
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileBeamElemCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileBeamElemCnv_p1.cxx
new file mode 100644
index 00000000000..d731c15c007
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileBeamElemCnv_p1.cxx
@@ -0,0 +1,43 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileBeamElemCnv_p1.cxx 
+// Implementation file for class TileBeamElemCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+
+#define private public
+#define protected public
+#include "TileEvent/TileBeamElem.h"
+#undef private
+#undef protected
+
+#include "TileTPCnv/TileBeamElemCnv_p1.h"
+
+
+void
+TileBeamElemCnv_p1::persToTrans(const TileBeamElem_p1* persObj, TileBeamElem* transObj, MsgStream &/*log*/)
+{
+  transObj->m_adc_hwid = HWIdentifier(Identifier32(persObj->m_channelID));
+   
+  transObj->m_digits.reserve(persObj->m_digits.size());
+  for (std::vector<uint16_t>::const_iterator it = persObj->m_digits.begin(); it != persObj->m_digits.end(); ++it) {
+    transObj->m_digits.push_back( (uint32_t)(*it) );
+  }
+}
+
+
+void
+TileBeamElemCnv_p1::transToPers(const TileBeamElem* transObj, TileBeamElem_p1* persObj, MsgStream &/*log*/)
+{
+  persObj->m_channelID = transObj->m_adc_hwid.get_identifier32().get_compact();
+
+  persObj->m_digits.reserve(transObj->m_digits.size());
+  for (std::vector<uint32_t>::const_iterator it = transObj->m_digits.begin(); it != transObj->m_digits.end(); ++it) {
+    persObj->m_digits.push_back( (uint16_t)(*it) );
+  }
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileCosmicMuonCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileCosmicMuonCnv_p1.cxx
new file mode 100644
index 00000000000..c0aa2a9bf94
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileCosmicMuonCnv_p1.cxx
@@ -0,0 +1,97 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuonCnv_p1.cxx 
+// Implementation file for class TileCosmicMuonCnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+
+// TileEvent includes
+#define private public
+#define protected public
+#include "TileEvent/TileCosmicMuon.h"
+#undef private
+#undef protected
+
+// TileTPCnv includes
+#include "TileTPCnv/TileCosmicMuonCnv_p1.h"
+
+
+void TileCosmicMuonCnv_p1::transToPers(const TileCosmicMuon* transObj, TileCosmicMuon_p1* persObj, MsgStream &/*log*/) {
+
+  persObj->m_time = transObj->m_time;
+  persObj->m_positionX = transObj->m_positionX;
+  persObj->m_positionY = transObj->m_positionY;
+  persObj->m_positionZ = transObj->m_positionZ;
+  persObj->m_directionPhi = transObj->m_directionPhi;
+  persObj->m_directionTheta = transObj->m_directionTheta;
+  persObj->m_fitQuality = transObj->m_fitQuality;
+  persObj->m_fitNCells = transObj->m_fitNCells;
+
+  for (std::vector<double>::const_iterator it = transObj->m_pathTop.begin(); it != transObj->m_pathTop.end(); ++it) {
+    persObj->m_pathTop.push_back((float) *it );
+  }
+
+  for (std::vector<double>::const_iterator it = transObj->m_pathBottom.begin(); it != transObj->m_pathBottom.end(); ++it) {
+    persObj->m_pathBottom.push_back((float) *it );
+  }
+
+  for (std::vector<double>::const_iterator it = transObj->m_energyTop.begin(); it != transObj->m_energyTop.end(); ++it) {
+    persObj->m_energyTop.push_back((float) *it );
+  }
+
+  for (std::vector<double>::const_iterator it = transObj->m_energyBottom.begin(); it != transObj->m_energyBottom.end(); ++it) {
+    persObj->m_energyBottom.push_back((float) *it );
+  }
+
+  for (std::vector<IdentifierHash>::const_iterator it = transObj->m_trackCellHash.begin(); it != transObj->m_trackCellHash.end(); ++it) {
+    persObj->m_trackCellHash.push_back( *it );
+  }
+}
+
+
+void TileCosmicMuonCnv_p1::persToTrans(const TileCosmicMuon_p1* persObj, TileCosmicMuon* transObj, MsgStream &/*log*/) {
+
+  transObj->m_time = persObj->m_time;
+  transObj->m_positionX = persObj->m_positionX;
+  transObj->m_positionY = persObj->m_positionY;
+  transObj->m_positionZ = persObj->m_positionZ;
+  transObj->m_directionPhi = persObj->m_directionPhi;
+  transObj->m_directionTheta = persObj->m_directionTheta;
+  transObj->m_fitQuality = persObj->m_fitQuality;
+  transObj->m_fitNCells = persObj->m_fitNCells;
+
+  transObj->m_pathTop.reserve(persObj->m_pathTop.size());
+  for (std::vector<float>::const_iterator it = persObj->m_pathTop.begin(); it != persObj->m_pathTop.end(); ++it) {
+    transObj->m_pathTop.push_back((double) *it );
+  }
+
+  transObj->m_pathBottom.reserve(persObj->m_pathBottom.size());
+  for (std::vector<float>::const_iterator it = persObj->m_pathBottom.begin(); it != persObj->m_pathBottom.end(); ++it) {
+    transObj->m_pathBottom.push_back((double) *it );
+  }
+
+  transObj->m_energyTop.reserve(persObj->m_energyTop.size());
+  for (std::vector<float>::const_iterator it = persObj->m_energyTop.begin(); it != persObj->m_energyTop.end(); ++it) {
+    transObj->m_energyTop.push_back((double) *it );
+  }
+
+  transObj->m_energyBottom.reserve(persObj->m_energyBottom.size());
+  for (std::vector<float>::const_iterator it = persObj->m_energyBottom.begin(); it != persObj->m_energyBottom.end(); ++it) {
+    transObj->m_energyBottom.push_back((double) *it );
+  }
+
+  transObj->m_trackCellHash.reserve(persObj->m_trackCellHash.size());
+  for (std::vector<unsigned int>::const_iterator it = persObj->m_trackCellHash.begin(); it != persObj->m_trackCellHash.end(); ++it) {
+    transObj->m_trackCellHash.push_back( *it );
+  }
+  
+  transObj->m_segmentPath.reserve(0);
+  transObj->m_segmentPartition.reserve(0);
+  transObj->m_segmentModule.reserve(0);
+  transObj->m_segmentSampling.reserve(0);
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileCosmicMuonCnv_p2.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileCosmicMuonCnv_p2.cxx
new file mode 100644
index 00000000000..5e3bc99fbc4
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileCosmicMuonCnv_p2.cxx
@@ -0,0 +1,132 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileCosmicMuonCnv_p2.cxx 
+// Implementation file for class TileCosmicMuonCnv_p2
+// Author: Jose Maneira <maneira@lip.pt>
+// Date:   July 2009
+/////////////////////////////////////////////////////////////////// 
+
+// TileEvent includes
+#define private public
+#define protected public
+#include "TileEvent/TileCosmicMuon.h"
+#undef private
+#undef protected
+
+// TileTPCnv includes
+#include "TileTPCnv/TileCosmicMuonCnv_p2.h"
+
+#include <algorithm>
+
+void TileCosmicMuonCnv_p2::transToPers(const TileCosmicMuon* transObj, TileCosmicMuon_p2* persObj, MsgStream &/*log*/) {
+
+  persObj->m_time = transObj->m_time;
+  persObj->m_positionX = transObj->m_positionX;
+  persObj->m_positionY = transObj->m_positionY;
+  persObj->m_positionZ = transObj->m_positionZ;
+  persObj->m_directionPhi = transObj->m_directionPhi;
+  persObj->m_directionTheta = transObj->m_directionTheta;
+  persObj->m_fitQuality = transObj->m_fitQuality;
+  persObj->m_fitNCells = transObj->m_fitNCells;
+
+  for (std::vector<double>::const_iterator it = transObj->m_pathTop.begin(); it != transObj->m_pathTop.end(); ++it) {
+    persObj->m_pathTop.push_back((float) *it );
+  }
+
+  for (std::vector<double>::const_iterator it = transObj->m_pathBottom.begin(); it != transObj->m_pathBottom.end(); ++it) {
+    persObj->m_pathBottom.push_back((float) *it );
+  }
+
+  for (std::vector<double>::const_iterator it = transObj->m_energyTop.begin(); it != transObj->m_energyTop.end(); ++it) {
+    persObj->m_energyTop.push_back((float) *it );
+  }
+
+  for (std::vector<double>::const_iterator it = transObj->m_energyBottom.begin(); it != transObj->m_energyBottom.end(); ++it) {
+    persObj->m_energyBottom.push_back((float) *it );
+  }
+
+  for (std::vector<IdentifierHash>::const_iterator it = transObj->m_trackCellHash.begin(); it != transObj->m_trackCellHash.end(); ++it) {
+    persObj->m_trackCellHash.push_back((unsigned int)*it );
+  }
+
+  for (std::vector<double>::const_iterator it = transObj->m_segmentPath.begin(); it != transObj->m_segmentPath.end(); ++it) {
+    persObj->m_segmentPath.push_back((float) *it );
+  }
+
+  size_t idx = std::max(std::max(transObj->m_segmentPartition.size(),transObj->m_segmentModule.size()),transObj->m_segmentSampling.size ());
+  persObj->m_segmentPartitionModuleSampling.resize(idx,0);
+  
+  idx = 0;
+  for (std::vector<int>::const_iterator it = transObj->m_segmentPartition.begin(); it != transObj->m_segmentPartition.end(); ++it) {
+    persObj->m_segmentPartitionModuleSampling[idx++] |= ((*it)&0xFF)<<24;
+  }
+
+  idx = 0;
+  for (std::vector<int>::const_iterator it = transObj->m_segmentModule.begin(); it != transObj->m_segmentModule.end(); ++it) {
+    persObj->m_segmentPartitionModuleSampling[idx++] |= ((*it)&0xFF)<<16;
+  }
+
+  idx = 0;
+  for (std::vector<int>::const_iterator it = transObj->m_segmentSampling.begin(); it != transObj->m_segmentSampling.end(); ++it) {
+    persObj->m_segmentPartitionModuleSampling[idx++] |= ((*it)&0xFF)<<8;
+  }
+}
+
+
+void TileCosmicMuonCnv_p2::persToTrans(const TileCosmicMuon_p2* persObj, TileCosmicMuon* transObj, MsgStream &/*log*/) {
+
+  transObj->m_time = persObj->m_time;
+  transObj->m_positionX = persObj->m_positionX;
+  transObj->m_positionY = persObj->m_positionY;
+  transObj->m_positionZ = persObj->m_positionZ;
+  transObj->m_directionPhi = persObj->m_directionPhi;
+  transObj->m_directionTheta = persObj->m_directionTheta;
+  transObj->m_fitQuality = persObj->m_fitQuality;
+  transObj->m_fitNCells = persObj->m_fitNCells;
+
+  transObj->m_pathTop.reserve(persObj->m_pathTop.size());
+  for (std::vector<float>::const_iterator it = persObj->m_pathTop.begin(); it != persObj->m_pathTop.end(); ++it) {
+    transObj->m_pathTop.push_back((double) *it );
+  }
+
+  transObj->m_pathBottom.reserve(persObj->m_pathBottom.size());
+  for (std::vector<float>::const_iterator it = persObj->m_pathBottom.begin(); it != persObj->m_pathBottom.end(); ++it) {
+    transObj->m_pathBottom.push_back((double) *it );
+  }
+
+  transObj->m_energyTop.reserve(persObj->m_energyTop.size());
+  for (std::vector<float>::const_iterator it = persObj->m_energyTop.begin(); it != persObj->m_energyTop.end(); ++it) {
+    transObj->m_energyTop.push_back((double) *it );
+  }
+
+  transObj->m_energyBottom.reserve(persObj->m_energyBottom.size());
+  for (std::vector<float>::const_iterator it = persObj->m_energyBottom.begin(); it != persObj->m_energyBottom.end(); ++it) {
+    transObj->m_energyBottom.push_back((double) *it );
+  }
+
+  transObj->m_trackCellHash.reserve(persObj->m_trackCellHash.size());
+  for (std::vector<unsigned int>::const_iterator it = persObj->m_trackCellHash.begin(); it != persObj->m_trackCellHash.end(); ++it) {
+    transObj->m_trackCellHash.push_back( *it );
+  }
+
+  transObj->m_segmentPath.reserve(persObj->m_segmentPath.size());
+  for (std::vector<float>::const_iterator it = persObj->m_segmentPath.begin(); it != persObj->m_segmentPath.end(); ++it) {
+    transObj->m_segmentPath.push_back((double) *it );
+  }
+
+  unsigned int pms = persObj->m_segmentPartitionModuleSampling.size();
+  transObj->m_segmentPartition.reserve(pms);
+  transObj->m_segmentModule.reserve(pms);
+  transObj->m_segmentSampling.reserve(pms);
+
+  for (std::vector<unsigned int>::const_iterator it = persObj->m_segmentPartitionModuleSampling.begin(); it != persObj->m_segmentPartitionModuleSampling.end(); ++it) {
+    pms = (*it);
+    transObj->m_segmentPartition.push_back( (pms>>24) & 0xFF );
+    transObj->m_segmentModule.push_back   ( (pms>>16) & 0xFF );
+    transObj->m_segmentSampling.push_back ( (pms>>8)  & 0xFF );
+  }
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileDigitsCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileDigitsCnv_p1.cxx
new file mode 100644
index 00000000000..64ed3930bc5
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileDigitsCnv_p1.cxx
@@ -0,0 +1,45 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileDigitsCnv_p1.cxx 
+// Implementation file for class TileDigitsCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+
+#define private public
+#define protected public
+#include "TileEvent/TileDigits.h"
+#undef private
+#undef protected
+
+#include "TileTPCnv/TileDigitsCnv_p1.h"
+
+
+void
+TileDigitsCnv_p1::persToTrans(const TileDigits_p1* persObj, TileDigits* transObj, MsgStream &/*log*/)
+{
+  transObj->m_adc_hwid = HWIdentifier(Identifier32(persObj->m_channelID));
+   
+  transObj->m_digits.reserve(persObj->m_digits.size());
+  for (std::vector<short>::const_iterator it = persObj->m_digits.begin(); it != persObj->m_digits.end(); ++it) {
+    float val = (*it)/16.;
+    transObj->m_digits.push_back( val );
+  }
+}
+
+
+void
+TileDigitsCnv_p1::transToPers(const TileDigits* transObj, TileDigits_p1* persObj, MsgStream &/*log*/)
+{
+  persObj->m_channelID = transObj->m_adc_hwid.get_identifier32().get_compact();
+
+  persObj->m_digits.reserve(transObj->m_digits.size());
+  for (std::vector<float>::const_iterator it = transObj->m_digits.begin(); it != transObj->m_digits.end(); ++it) {
+    short val = (short)(std::min((*it),float(2047.))*16.);
+    persObj->m_digits.push_back( val );
+  }
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileHitCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileHitCnv_p1.cxx
new file mode 100644
index 00000000000..dac639286d3
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileHitCnv_p1.cxx
@@ -0,0 +1,49 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileHitCnv_p1.cxx 
+// Implementation file for class TileHitCnv_p1
+// Author: Author: Davide Costanzo
+// Date:   March 2007
+/////////////////////////////////////////////////////////////////// 
+
+#define private public
+#define protected public
+#include "TileSimEvent/TileHit.h"
+#undef private
+#undef protected
+
+#include "TileTPCnv/TileHitCnv_p1.h"
+
+
+void
+TileHitCnv_p1::persToTrans(const TileHit_p1* persObj, TileHit* transObj, MsgStream &/*log*/)
+{
+   transObj->m_pmt_id          = Identifier(Identifier32(persObj->m_channelID));
+   
+   transObj->m_energy.reserve(persObj->m_energy.size());
+   for (std::vector<float>::const_iterator it = persObj->m_energy.begin(); it != persObj->m_energy.end(); ++it) {
+    transObj->m_energy.push_back( *it );
+   }
+   for (std::vector<float>::const_iterator it = persObj->m_time.begin(); it != persObj->m_time.end(); ++it) {
+    transObj->m_time.push_back( *it );
+   }
+
+}
+
+void
+TileHitCnv_p1::transToPers(const TileHit* transObj, TileHit_p1* persObj, MsgStream &/*log*/)
+{
+   persObj->m_channelID         = transObj->m_pmt_id.get_identifier32().get_compact();
+
+   for (std::vector<float>::const_iterator it = transObj->m_energy.begin(); it != transObj->m_energy.end(); ++it) {
+    persObj->m_energy.push_back( *it );
+   }
+   for (std::vector<float>::const_iterator it = transObj->m_time.begin(); it != transObj->m_time.end(); ++it) {
+    persObj->m_time.push_back( *it );
+   }
+
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileHitVectorCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileHitVectorCnv_p1.cxx
new file mode 100644
index 00000000000..a81242914ab
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileHitVectorCnv_p1.cxx
@@ -0,0 +1,33 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileHitVectorCnv_p1.cxx 
+// Implementation file for class TileHitVectorCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+
+#include "TileTPCnv/TileHitVectorCnv_p1.h"
+
+TileHitVector* TileHitVectorCnv_p1::createTransient(const TileHitVector_p1* persObj, MsgStream &log)
+{
+    const TileHitVector_p1::HitVector& pvec = persObj->getVector();
+
+    // the only reason why we reimplement this method is that we want to be sure
+    // that correct size is reserved for the vector directly in the constructor
+    TileHitVector * trans = new TileHitVector(persObj->name(),pvec.size());
+    trans->resize(pvec.size());
+
+    // since we reimplement this method anyhow, let's call directly persToTrans method of
+    // the converter instead of doing this through few calls in base class
+    TileHitCnv_p1 element_cnv;
+    TileHitVector::iterator it;
+    TileHitVector_p1::const_iterator ip;
+    for (it=trans->begin(), ip = pvec.begin(); ip != pvec.end(); ++ip, ++it) {
+        element_cnv.persToTrans( &*ip, &*it, log );
+    }
+    return trans;
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileL2Cnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileL2Cnv_p1.cxx
new file mode 100644
index 00000000000..18d316ba6c4
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileL2Cnv_p1.cxx
@@ -0,0 +1,116 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2Cnv_p1.cxx 
+// Implementation file for class TileL2Cnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+
+// TileEvent includes
+#define private public
+#define protected public
+#include "TileEvent/TileL2.h"
+#undef private
+#undef protected
+
+// TileTPCnv includes
+#include "TileTPCnv/TileL2Cnv_p1.h"
+
+
+void TileL2Cnv_p1::transToPers(const TileL2* transObj, TileL2_p1* persObj, MsgStream &/*log*/) {
+
+  // Drawer ID
+  persObj->m_ID = transObj->m_ID;
+
+  // Encoded 32-bit words
+  persObj->m_val.push_back(0); // one extra word which is not present in new transient class
+  for (std::vector<unsigned int>::const_iterator it = transObj->m_val.begin(); it != transObj->m_val.end(); ++it) {
+    persObj->m_val.push_back((unsigned int) *it );
+  }
+
+  // Muon eta coordinate
+  for (std::vector<float>::const_iterator it = transObj->m_eta.begin(); it != transObj->m_eta.end(); ++it) {
+    persObj->m_eta.push_back( *it );
+  }
+
+  // Muon phi coordinate
+  persObj->m_phi = transObj->m_phi;
+
+  // Energy in the innermost layer
+  for (std::vector<float>::const_iterator it = transObj->m_enemu0.begin(); it != transObj->m_enemu0.end(); ++it) {
+    persObj->m_enemu0.push_back( *it );
+  }
+
+  // Energy in the central layer
+  for (std::vector<float>::const_iterator it = transObj->m_enemu1.begin(); it != transObj->m_enemu1.end(); ++it) {
+    persObj->m_enemu1.push_back( *it );
+  }
+
+  // Energy in the outermost layer
+  for (std::vector<float>::const_iterator it = transObj->m_enemu2.begin(); it != transObj->m_enemu2.end(); ++it) {
+    persObj->m_enemu2.push_back( *it );
+  }
+
+  // Quality factor
+  for (std::vector<unsigned int>::const_iterator it = transObj->m_quality_factor.begin(); it != transObj->m_quality_factor.end(); ++it) {
+    persObj->m_quality_factor.push_back((unsigned int) *it );
+  }
+
+  // Transverse energy
+  persObj->m_Et = transObj->m_sumE[0];
+
+}
+
+
+void TileL2Cnv_p1::persToTrans(const TileL2_p1* persObj, TileL2* transObj, MsgStream &/*log*/) {
+
+  transObj->m_eta.reserve(persObj->m_eta.size());
+
+  // Drawer ID
+  transObj->m_ID = persObj->m_ID;
+
+  // Encoded 32-bit words
+  std::vector<unsigned int>::const_iterator it = persObj->m_val.begin();
+  if (it != persObj->m_val.end()) {
+    ++it; // ignore first word, which is not in new transient format
+    for (std::vector<unsigned int>::const_iterator it = persObj->m_val.begin(); it != persObj->m_val.end(); ++it) {
+      transObj->m_val.push_back((unsigned int) *it );
+    }
+  }
+
+  // Muon eta coordinate
+  for (std::vector<float>::const_iterator it = persObj->m_eta.begin(); it != persObj->m_eta.end(); ++it) {
+    transObj->m_eta.push_back( *it );
+  }
+
+  // Muon phi coordinate
+  transObj->m_phi = persObj->m_phi;
+
+  // Energy in the innermost layer
+  for (std::vector<float>::const_iterator it = persObj->m_enemu0.begin(); it != persObj->m_enemu0.end(); ++it) {
+    transObj->m_enemu0.push_back( *it );
+  }
+
+  // Energy in the central layer
+  for (std::vector<float>::const_iterator it = persObj->m_enemu1.begin(); it != persObj->m_enemu1.end(); ++it) {
+    transObj->m_enemu1.push_back( *it );
+  }
+
+  // Energy in the outermost layer
+  for (std::vector<float>::const_iterator it = persObj->m_enemu2.begin(); it != persObj->m_enemu2.end(); ++it) {
+    transObj->m_enemu2.push_back( *it );
+  }
+
+  // Quality factor
+  for (std::vector<unsigned int>::const_iterator it = persObj->m_quality_factor.begin(); it != persObj->m_quality_factor.end(); ++it) {
+    transObj->m_quality_factor.push_back((unsigned int) *it );
+  }
+
+  // Transverse energy
+  transObj->m_sumE.push_back(persObj->m_Et);
+
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileL2Cnv_p2.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileL2Cnv_p2.cxx
new file mode 100644
index 00000000000..f9bddc5dbe2
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileL2Cnv_p2.cxx
@@ -0,0 +1,228 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileL2Cnv_p2.cxx 
+// Implementation file for class TileL2Cnv_p2
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+
+// TileEvent includes
+#define private public
+#define protected public
+#include "TileEvent/TileL2.h"
+#undef private
+#undef protected
+
+// TileTPCnv includes
+#include "TileTPCnv/TileL2Cnv_p2.h"
+
+// #define TILEL2_DEBUG true
+
+#ifdef TILEL2_DEBUG
+#include "iostream"
+#endif
+
+static bool old_format_print=true;
+
+void TileL2Cnv_p2::transToPers(const TileL2* transObj, TileL2_p2* persObj, MsgStream &log) {
+
+  unsigned int l1 = transObj->m_sumE.size();
+  unsigned int l2 = transObj->m_eta.size();
+  unsigned int l3 = transObj->m_val.size();
+  unsigned int l4 = transObj->m_quality_factor.size();
+  
+  if (l1>15 || l2>15 || l3>15 || l4>15) {
+      log << MSG::ERROR << "TOO BIG SIZE IN TileL2Cnv_p2::transToPers !!! " 
+          << " l1=" << l1
+          << " l2=" << l2
+          << " l3=" << l3
+          << " l4=" << l4
+          << endreq;
+      persObj->m_ID = (transObj->m_ID & 0xFFFF);
+      return;
+  }
+
+  persObj->m_fval.reserve(l1+4*l2);
+  persObj->m_ival.reserve(l3+l4);
+
+  // Transverse energy
+  if (l1>0) {
+    bool allzeros=true;
+    for (std::vector<float>::const_iterator it = transObj->m_sumE.begin(); it != transObj->m_sumE.end(); ++it) {
+      persObj->m_fval.push_back( *it );
+      if (fabs(*it) > 1.e-6) allzeros=false;
+    }
+    if (allzeros) {
+      l1=0;
+      persObj->m_fval.clear();
+    }
+  }
+
+  // Drawer ID
+  persObj->m_ID = (l1<<28) | (l2<<24) | (l3<<20) | (l4<<16) | (transObj->m_ID & 0xFFFF);
+
+  if (l2) {
+    // Muon eta coordinate
+    for (std::vector<float>::const_iterator it = transObj->m_eta.begin(); it != transObj->m_eta.end(); ++it) {
+        persObj->m_fval.push_back( *it );
+    }
+
+    // Energy in the innermost layer
+    for (std::vector<float>::const_iterator it = transObj->m_enemu0.begin(); it != transObj->m_enemu0.end(); ++it) {
+        persObj->m_fval.push_back( *it );
+    }
+
+    // Energy in the central layer
+    for (std::vector<float>::const_iterator it = transObj->m_enemu1.begin(); it != transObj->m_enemu1.end(); ++it) {
+        persObj->m_fval.push_back( *it );
+    }
+
+    // Energy in the outermost layer
+    for (std::vector<float>::const_iterator it = transObj->m_enemu2.begin(); it != transObj->m_enemu2.end(); ++it) {
+        persObj->m_fval.push_back( *it );
+    }
+
+    if (l1 + 4*l2 != persObj->m_fval.size()) {
+      log << MSG::ERROR << "WRONG SIZE IN TileL2Cnv_p2::transToPers !!! " 
+          << " l1=" << l1
+          << " l2=" << l2
+          << "(" << transObj->m_eta.size()
+          << "," << transObj->m_enemu0.size()
+          << "," << transObj->m_enemu1.size()
+          << "," << transObj->m_enemu2.size()
+          << ")  f_size=" << persObj->m_fval.size()
+          << endreq;
+    }
+  }
+  
+  // Encoded 32-bit words
+  for (std::vector<unsigned int>::const_iterator it = transObj->m_val.begin(); it != transObj->m_val.end(); ++it) {
+      persObj->m_ival.push_back( *it );
+  }
+
+  // Quality factor
+  for (std::vector<unsigned int>::const_iterator it = transObj->m_quality_factor.begin(); it != transObj->m_quality_factor.end(); ++it) {
+    persObj->m_ival.push_back( *it );
+  }
+
+#ifdef TILEL2_DEBUG
+  transObj->print();
+  std::cout << "pers TileL2 0x"<< std::hex << persObj->m_ID << "  " << std::dec;
+  for (unsigned int i=0; i<persObj->m_fval.size(); ++i) 
+      std::cout << persObj->m_fval[i] << " ";
+  for (unsigned int i=0; i<persObj->m_ival.size(); ++i) 
+      std::cout << " " << persObj->m_ival[i];
+  std::cout << std::endl;
+#endif
+}
+
+
+void TileL2Cnv_p2::persToTrans(const TileL2_p2* persObj, TileL2* transObj, MsgStream &log) {
+
+  unsigned int l0 = persObj->m_ID;
+
+  // Drawer ID
+  transObj->m_ID = l0 & 0xFFFF;
+  transObj->setphi();
+
+  unsigned int l1 = (l0 >> 28) & 0xF;
+  unsigned int l2 = (l0 >> 24) & 0xF;
+  unsigned int l3 = (l0 >> 20) & 0xF;
+  unsigned int l4 = (l0 >> 16) & 0xF;
+
+  std::vector<float>::const_iterator it = persObj->m_fval.begin();
+  std::vector<unsigned int>::const_iterator iti = persObj->m_ival.begin();
+
+  if (l1 + 4*l2 != persObj->m_fval.size() || l3+l4 != persObj->m_ival.size()) {
+      log << MSG::ERROR << "WRONG SIZE IN TileL2Cnv_p2::persToTrans !!! " 
+          << " id=0x" << MSG::hex << l0 << MSG::dec 
+          << " f_size=" << persObj->m_fval.size()
+          << " i_size=" << persObj->m_ival.size()
+          << endreq;
+      return;
+  }
+  
+  if (l1>2 || l3 == 2*l2 ) { // new format, usually with 3 sumE values
+    transObj->m_sumE.reserve(l1);
+    for (unsigned int i=0; i<l1; ++i) {
+      transObj->m_sumE.push_back( (*it++) );
+    }
+  } else { // decode all old formats (used between July 2010 and June 2011)
+           // sumE vector is not saved, only Et might be present
+
+    if (old_format_print) {
+      old_format_print=false;
+      log << MSG::INFO << "Old format detected in TileL2Cnv_p2::persToTrans"
+          << " l1="<<l1
+          << " l2="<<l2
+          << " l3="<<l3
+          << " l4="<<l4
+          << endreq;
+    }
+
+    transObj->m_sumE.resize(1,0.0);
+
+    if (l3>0) {
+      transObj->m_sumE[0] = (*iti++)-9000.; // take Et from integer applying offset
+      --l3; // and ignore first integer value - Et is not kept in val array in new format
+    }
+    
+    if (l1>0) { // old format with Et and phi saved as two floats
+      transObj->m_sumE[0] = (*it++); // use Et value from float array directly
+      if (l1>1) ++it; // ignore phi value
+    }
+  }
+
+  if (l2) {
+    // Muon eta coordinate
+    transObj->m_eta.reserve(l2);
+    for (unsigned int i=0; i<l2; ++i) {
+      transObj->m_eta.push_back( (*it++) );
+    }
+
+    // Energy in the innermost layer
+    transObj->m_enemu0.reserve(l2);
+    for (unsigned int i=0; i<l2; ++i) {
+      transObj->m_enemu0.push_back( (*it++) );
+    }
+
+    // Energy in the central layer
+    transObj->m_enemu1.reserve(l2);
+    for (unsigned int i=0; i<l2; ++i) {
+      transObj->m_enemu1.push_back( (*it++) );
+    }
+
+    // Energy in the outermost layer
+    transObj->m_enemu2.reserve(l2);
+    for (unsigned int i=0; i<l2; ++i) {
+      transObj->m_enemu2.push_back( (*it++) );
+    }
+  }
+  
+  // Encoded 32-bit words
+  transObj->m_val.reserve(l3);
+  for (unsigned int i=0; i<l3; ++i) {
+    transObj->m_val.push_back( (*iti++) );
+  }
+
+  // Quality factor
+  transObj->m_quality_factor.reserve(l4);
+  for (unsigned int i=0; i<l4; ++i) {
+    transObj->m_quality_factor.push_back( (*iti++) );
+  }
+
+#ifdef TILEL2_DEBUG
+  transObj->print();
+  std::cout << "pers TileL2 0x"<< std::hex << persObj->m_ID << "  " << std::dec;
+  for (unsigned int i=0; i<persObj->m_fval.size(); ++i) 
+      std::cout << persObj->m_fval[i] << " ";
+  for (unsigned int i=0; i<persObj->m_ival.size(); ++i) 
+      std::cout << " " << persObj->m_ival[i];
+  std::cout << std::endl;
+#endif
+}
+
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileMuCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileMuCnv_p1.cxx
new file mode 100644
index 00000000000..4e933ba9c73
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileMuCnv_p1.cxx
@@ -0,0 +1,60 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuCnv_p1.cxx 
+// Implementation file for class TileMuCnv_p1
+// Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
+// Date:   July 2008
+/////////////////////////////////////////////////////////////////// 
+
+// TileEvent includes
+#define private public
+#define protected public
+#include "TileEvent/TileMu.h"
+#undef private
+#undef protected
+
+// TileTPCnv includes
+#include "TileTPCnv/TileMuCnv_p1.h"
+
+
+void TileMuCnv_p1::transToPers(const TileMu* transObj, TileMu_p1* persObj, MsgStream &/*log*/) {
+
+  // Muon eta coordinate
+  persObj->m_eta = transObj->m_eta;
+
+  // Muon phi coordinate
+  persObj->m_phi = transObj->m_phi;
+
+  // Muon quality factor
+  persObj->m_quality_factor = transObj->m_quality_factor;
+
+  // Energy deposited by the muon in TileCal
+  for (std::vector<float>::const_iterator it = transObj->m_energy_deposited.begin(); it != transObj->m_energy_deposited.end(); ++it) {
+    persObj->m_energy_deposited.push_back( *it );
+  }
+
+}
+
+
+void TileMuCnv_p1::persToTrans(const TileMu_p1* persObj, TileMu* transObj, MsgStream &/*log*/) {
+
+  // Muon eta coordinate
+  transObj->m_eta = persObj->m_eta;
+
+  // Muon phi coordinate
+  transObj->m_phi = persObj->m_phi;
+
+  // Muon quality factor
+  transObj->m_quality_factor = persObj->m_quality_factor;
+
+  // Energy deposited by the muon in TileCal
+  transObj->m_energy_deposited.reserve(persObj->m_energy_deposited.size());
+  for (std::vector<float>::const_iterator it = persObj->m_energy_deposited.begin(); it != persObj->m_energy_deposited.end(); ++it) {
+    transObj->m_energy_deposited.push_back( *it );
+  }
+
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileMuonReceiverObjCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileMuonReceiverObjCnv_p1.cxx
new file mode 100644
index 00000000000..1eb0e79b5f8
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileMuonReceiverObjCnv_p1.cxx
@@ -0,0 +1,169 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileMuonReceiverObjCnv_p1.cxx 
+// Implementation file for class TileMuonReceiverObjCnv_p1
+// Author: Joao Gentil Saraiva <joao.gentil.saraiva@cern.ch>
+// Date:   March 2014
+/////////////////////////////////////////////////////////////////// 
+
+// TileEvent includes
+#define private public
+#define protected public
+#include "TileEvent/TileMuonReceiverObj.h"
+#undef private
+#undef protected
+
+// TileTPCnv includes
+#include "TileTPCnv/TileMuonReceiverObjCnv_p1.h"
+
+//#define DEBUG_OUTPUT 1
+
+void TileMuonReceiverObjCnv_p1::transToPers(const TileMuonReceiverObj* transObj, TileMuonReceiverObj_p1* persObj, MsgStream &/*log*/) {
+
+  // module id
+  persObj->m_id = std::max(std::min(transObj->m_id,0xFFF),0);
+
+  if (persObj->m_id > 0 && persObj->m_id < 0xFFF) { // standard object with decision
+
+    size_t maxsize=8; // keep only 8 decision bits maximum
+
+    // decision 
+    if (transObj->m_TileMuRcvDecision.size()>0) {
+      persObj->m_id |= std::min(transObj->m_TileMuRcvDecision.size(),maxsize) << 20;
+      unsigned int bit=0x1000;
+      for (std::vector<bool>::const_iterator it = transObj->m_TileMuRcvDecision.begin(); it != transObj->m_TileMuRcvDecision.end(); ++it) {
+        if (*it) {
+          persObj->m_id |= bit;
+        }
+        bit <<= 1;
+        if (bit >= 0x100000) break; // keep only 8 bits maximum
+      }
+    }
+
+    maxsize=15; // keep only 15 vords from every vector maximum
+
+    // energy 
+    if (transObj->m_TileMuRcvEne.size()>0) {
+        persObj->m_id |= std::min(transObj->m_TileMuRcvEne.size(),maxsize) << 24;
+      size_t cnt=0;
+      for (std::vector<float>::const_iterator it = transObj->m_TileMuRcvEne.begin(); it != transObj->m_TileMuRcvEne.end(); ++it) {
+        persObj->m_data.push_back(*it);
+        if ((++cnt)>=maxsize) break;
+      }
+    }
+
+    // time 
+    if (transObj->m_TileMuRcvTime.size()>0) {
+      persObj->m_id |= std::min(transObj->m_TileMuRcvTime.size(),maxsize) << 28;
+      size_t cnt=0;
+      for (std::vector<float>::const_iterator it = transObj->m_TileMuRcvTime.begin(); it != transObj->m_TileMuRcvTime.end(); ++it) {
+        persObj->m_data.push_back(*it);
+        if ((++cnt)>=maxsize) break;
+      }
+    }
+
+  } else { // non-standard object with thresholds
+
+    size_t maxsize=255; // upper limit for word counter (but keep all threshold words anyway)
+
+    // thresholds
+    if ( transObj->m_id==0 && transObj->m_TileMuRcvThresholds.size()>0) {
+      persObj->m_id |= std::min(transObj->m_TileMuRcvThresholds.size(),maxsize) << 24;
+      for (std::vector<float>::const_iterator it = transObj->m_TileMuRcvThresholds.begin(); it != transObj->m_TileMuRcvThresholds.end(); ++it) {
+        persObj->m_data.push_back(*it);
+      }
+    }
+
+  }
+
+#ifdef DEBUG_OUTPUT
+  transObj->print();
+  std::cout << "Persistent_TMRO " << transObj->m_id << " id " << std::hex << persObj->m_id  
+            << " size " << std::dec << ((persObj->m_id>>20)&0xF) << " " << persObj->m_data.size() << "  val ";
+  for (unsigned int i=0; i<((persObj->m_id>>20)&0xF); ++i) {
+    std::cout << " " << (persObj->m_id>>(12+i) & 1);
+  }
+  std::cout << " ";
+  for (std::vector<float>::const_iterator it = persObj->m_data.begin(); it != persObj->m_data.end(); ++it) {
+    std::cout << " " << (*it);
+  }
+  std::cout << std::endl;
+#endif
+}
+
+
+void TileMuonReceiverObjCnv_p1::persToTrans(const TileMuonReceiverObj_p1* persObj, TileMuonReceiverObj* transObj, MsgStream &/*log*/) {
+
+  unsigned int id=persObj->m_id;
+
+  // module id
+  transObj->m_id = id & 0xFFF;
+
+  size_t n_elements = persObj->m_data.size();
+  std::vector<float>::const_iterator it = persObj->m_data.begin(); 
+
+  if (transObj->m_id > 0 && transObj->m_id < 0xFFF) { // standard object with decision
+      
+    size_t n0 = (id >> 20) & 0xF;
+    size_t n1 = (id >> 24) & 0xF;
+    size_t n2 = (id >> 28) & 0xF;
+  
+    if (n0) {
+      id >>= 12;
+      transObj->m_TileMuRcvDecision.reserve(n0); 
+      for (size_t i=0; i<n0; ++i) {
+        transObj->m_TileMuRcvDecision.push_back((bool) (id & 1) );
+        id >>= 1;
+      }
+    }
+
+    // energy
+    if (n1) {
+      if (n1>n_elements) n1=n_elements;
+      transObj->m_TileMuRcvEne.reserve(n1); 
+      for (size_t i=0; i<n1; ++i) {
+        transObj->m_TileMuRcvEne.push_back(*it);
+        ++it;
+      }
+      n_elements -= n1;
+    }
+  
+    // time
+    if (n2) {
+      if (n2>n_elements) n2=n_elements;
+      transObj->m_TileMuRcvTime.reserve(n2);
+      for (size_t i=0; i<n2; ++i) {
+        transObj->m_TileMuRcvTime.push_back(*it);
+        ++it;
+      }
+      n_elements -= n2;
+    }
+    
+  }
+
+  // remaining elements go to thresholds
+  if (n_elements) {
+    transObj->m_TileMuRcvThresholds.reserve(n_elements); 
+    for ( ; it != persObj->m_data.end(); ++it) {
+      transObj->m_TileMuRcvThresholds.push_back(*it);
+    }
+  }
+
+#ifdef DEBUG_OUTPUT
+  transObj->print();
+  std::cout << "Persistent_TMRO " << transObj->m_id << " id " << std::hex << persObj->m_id  
+            << " size " << std::dec << ((persObj->m_id>>20)&0xF) << " " << persObj->m_data.size() << "  val ";
+  for (unsigned int i=0; i<((persObj->m_id>>20)&0xF); ++i) {
+    std::cout << " " << (persObj->m_id>>(12+i) & 1);
+  }
+  std::cout << " ";
+  for (std::vector<float>::const_iterator it = persObj->m_data.begin(); it != persObj->m_data.end(); ++it) {
+    std::cout << " " << (*it);
+  }
+  std::cout << std::endl;
+#endif
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileRawChannelCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileRawChannelCnv_p1.cxx
new file mode 100644
index 00000000000..5ee90a32c7b
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileRawChannelCnv_p1.cxx
@@ -0,0 +1,123 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileRawChannelCnv_p1.cxx 
+// Implementation file for class TileRawChannelCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+
+#define private public
+#define protected public
+#include "TileEvent/TileRawChannel.h"
+#undef private
+#undef protected
+
+#include "TileTPCnv/TileRawChannelCnv_p1.h"
+//#include "iostream"
+
+void
+TileRawChannelCnv_p1::persToTrans(const TileRawChannel_p1* persObj, TileRawChannel* transObj, MsgStream &log)
+{
+  transObj->m_adc_hwid = HWIdentifier(Identifier32(persObj->m_channelID));
+
+  unsigned int length = persObj->m_length;
+  unsigned int l1 =  length        & 0xFF;
+  unsigned int l2 = (length >> 8)  & 0xFF;
+  unsigned int l3 = (length >> 16) & 0xFF;
+  unsigned int l4 = (length >> 24) & 0xFF;
+   
+  std::vector<float>::const_iterator it = persObj->m_data.begin();
+
+  if (l1>0) {
+    transObj->m_amplitude.reserve(l1);
+    for (unsigned int i=0; i<l1; ++i) {
+      transObj->m_amplitude.push_back( *it++ );
+    }
+  } else {
+    transObj->m_amplitude.push_back( 0.0 );
+  }
+  
+  if (l2>0) {
+    transObj->m_time.reserve(l2);
+    for (unsigned int i=0; i<l2; ++i) {
+      transObj->m_time.push_back( *it++ );
+    }
+  } else {
+    transObj->m_time.push_back( 0.0 );
+  }
+
+  if (l3>0) {
+    transObj->m_quality.reserve(l3);
+    for (unsigned int i=0; i<l3; ++i) {
+      transObj->m_quality.push_back( *it++ );
+    }
+  } else {
+    transObj->m_quality.push_back( 0.0 );
+  }
+
+  if (l4>0) 
+    transObj->m_pedestal = (*it++);
+  else
+    transObj->m_pedestal = 0.0;
+
+  if (it != persObj->m_data.end()) {
+    log << MSG::ERROR << "TileRawChannelCnv_p1::persToTrans wrong size of data vector: "
+        << persObj->m_data.size() << MSG::hex << "0x" << persObj->m_length << MSG::dec << endreq;
+  }
+}
+
+
+void
+TileRawChannelCnv_p1::transToPers(const TileRawChannel* transObj, TileRawChannel_p1* persObj, MsgStream &/*log*/)
+{
+  persObj->m_channelID = transObj->m_adc_hwid.get_identifier32().get_compact();
+
+  unsigned int l1 = transObj->m_amplitude.size(); if (l1>0xFF) l1=0xFF;
+  unsigned int l2 = transObj->m_time.size();      if (l2>0xFF) l2=0xFF;
+  unsigned int l3 = transObj->m_quality.size();   if (l3>0xFF) l3=0xFF;
+  unsigned int l4 = 1;
+
+  if (l1==1 && transObj->m_amplitude[0]==0.0) l1=0;
+  if (l2==1 && transObj->m_time[0]==0.0)      l2=0;
+  if (l3==1 && transObj->m_quality[0]==0.0)   l3=0;
+  if (         transObj->m_pedestal==0.0)     l4=0;
+
+  persObj->m_length = (l4<<24 | l3<<16 | l2<<8 | l1);
+  
+  if (persObj->m_length) {
+
+    persObj->m_data.reserve(l1+l2+l3+l4);
+
+    for (unsigned int i=0; i<l1; ++i) {
+      persObj->m_data.push_back( transObj->m_amplitude[i] );
+    }
+
+    for (unsigned int i=0; i<l2; ++i) {
+      persObj->m_data.push_back( transObj->m_time[i] );
+    }
+
+    for (unsigned int i=0; i<l3; ++i) {
+      persObj->m_data.push_back( transObj->m_quality[i] );
+    }
+
+    if (l4>0) {
+      persObj->m_data.push_back( transObj->m_pedestal );
+    }
+
+  } else {
+    persObj->m_data.clear();
+  }
+  
+//  if (l1==0 || l2==0 || l3==0 || l4==0)
+//    std::cout << "id=0x" << std::hex << persObj->m_channelID  
+//              << " length=0x" << persObj->m_length << std::dec 
+//              << " amp=" <<transObj->m_amplitude[0]
+//              << " time="<<transObj->m_time[0]
+//              << " qual="<<transObj->m_quality[0]
+//              << " ped=" <<transObj->m_pedestal
+//              << std::endl;
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileTPCnv.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileTPCnv.cxx
new file mode 100644
index 00000000000..a54bccfcb3d
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileTPCnv.cxx
@@ -0,0 +1,117 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// generate the T/P converter entries
+#include "AthenaKernel/TPCnvFactory.h"
+
+#include "TileTPCnv/TileHit_p1.h"
+#include "TileTPCnv/TileHitVector_p1.h"
+#include "TileTPCnv/TileHitContainer_p1.h"
+#include "TileTPCnv/TileHitContainerCnv_p1.h"
+
+#include "TileTPCnv/TileTTL1_p1.h"
+#include "TileTPCnv/TileTTL1Container_p1.h"
+#include "TileTPCnv/TileTTL1ContainerCnv_p1.h"
+
+#include "TileTPCnv/TileL2_p1.h"
+#include "TileTPCnv/TileL2Container_p1.h"
+#include "TileTPCnv/TileL2ContainerCnv_p1.h"
+
+#include "TileTPCnv/TileL2_p2.h"
+#include "TileTPCnv/TileL2Container_p2.h"
+#include "TileTPCnv/TileL2ContainerCnv_p2.h"
+
+#include "TileTPCnv/TileMu_p1.h"
+#include "TileTPCnv/TileMuContainer_p1.h"
+#include "TileTPCnv/TileMuContainerCnv_p1.h"
+
+#include "TileTPCnv/TileCosmicMuon_p1.h"
+#include "TileTPCnv/TileCosmicMuonContainer_p1.h"
+#include "TileTPCnv/TileCosmicMuonContainerCnv_p1.h"
+
+#include "TileTPCnv/TileCosmicMuon_p2.h"
+#include "TileTPCnv/TileCosmicMuonContainer_p2.h"
+#include "TileTPCnv/TileCosmicMuonContainerCnv_p2.h"
+
+#include "TileTPCnv/TileDigits_p1.h"
+#include "TileTPCnv/TileDigitsContainer_p1.h"
+#include "TileTPCnv/TileDigitsContainerCnv_p1.h"
+
+#include "TileTPCnv/TileBeamElem_p1.h"
+#include "TileTPCnv/TileBeamElemContainer_p1.h"
+#include "TileTPCnv/TileBeamElemContainerCnv_p1.h"
+
+#include "TileTPCnv/TileRawChannel_p1.h"
+#include "TileTPCnv/TileRawChannelContainer_p1.h"
+#include "TileTPCnv/TileRawChannelContainerCnv_p1.h"
+
+#include "TileTPCnv/TileMuonReceiverObj_p1.h"
+#include "TileTPCnv/TileMuonReceiverContainer_p1.h"
+#include "TileTPCnv/TileMuonReceiverContainerCnv_p1.h"
+
+DECLARE_NAMED_TPCNV_FACTORY(TileBeamElemContainerCnv_p1,
+                            TileBeamElemContainerCnv_p1,
+                            TileBeamElemContainer,
+                            TileBeamElemContainer_p1,
+                            Athena::TPCnvVers::Current)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileCosmicMuonContainerCnv_p1,
+                            TileCosmicMuonContainerCnv_p1,
+                            TileContainer<TileCosmicMuon>,
+                            TileCosmicMuonContainer_p1,
+                            Athena::TPCnvVers::Old)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileCosmicMuonContainerCnv_p2,
+                            TileCosmicMuonContainerCnv_p2,
+                            TileContainer<TileCosmicMuon>,
+                            TileCosmicMuonContainer_p2,
+                            Athena::TPCnvVers::Current)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileL2ContainerCnv_p1,
+                            TileL2ContainerCnv_p1,
+                            TileContainer<TileL2>,
+                            TileL2Container_p1,
+                            Athena::TPCnvVers::Old)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileL2ContainerCnv_p2,
+                            TileL2ContainerCnv_p2,
+                            TileContainer<TileL2>,
+                            TileL2Container_p2,
+                            Athena::TPCnvVers::Current)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileMuContainerCnv_p1,
+                            TileMuContainerCnv_p1,
+                            TileContainer<TileMu>,
+                            TileMuContainer_p1,
+                            Athena::TPCnvVers::Current)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileTTL1ContainerCnv_p1,
+                            TileTTL1ContainerCnv_p1,
+                            TileContainer<TileTTL1>,
+                            TileTTL1Container_p1,
+                            Athena::TPCnvVers::Current)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileDigitsContainerCnv_p1,
+                            TileDigitsContainerCnv_p1,
+                            TileDigitsContainer,
+                            TileDigitsContainer_p1,
+                            Athena::TPCnvVers::Current)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileHitContainerCnv_p1,
+                            TileHitContainerCnv_p1,
+                            TileHitContainer,
+                            TileHitContainer_p1,
+                            Athena::TPCnvVers::Current)
+                      
+DECLARE_NAMED_TPCNV_FACTORY(TileRawChannelContainerCnv_p1,
+                            TileRawChannelContainerCnv_p1,
+                            TileRawChannelContainer,
+                            TileRawChannelContainer_p1,
+                            Athena::TPCnvVers::Current)
+
+DECLARE_NAMED_TPCNV_FACTORY(TileMuonReceiverContainerCnv_p1,
+			    TileMuonReceiverContainerCnv_p1,
+			    TileContainer<TileMuonReceiverObj>,
+			    TileMuonReceiverContainer_p1,
+			    Athena::TPCnvVers::Current)
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileTTL1CellCnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileTTL1CellCnv_p1.cxx
new file mode 100644
index 00000000000..9952464407c
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileTTL1CellCnv_p1.cxx
@@ -0,0 +1,59 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1CellCnv_p1.cxx 
+// Implementation file for class TileTTL1CellCnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+
+#define private public
+#define protected public
+#include "TileEvent/TileTTL1Cell.h"
+#undef private
+#undef protected
+
+#include "TileTPCnv/TileTTL1CellCnv_p1.h"
+
+
+void
+TileTTL1CellCnv_p1::persToTrans(const TileTTL1Cell_p1* persObj, TileTTL1Cell* transObj, MsgStream &/*log*/)
+{
+  transObj->m_ID = Identifier(Identifier32(persObj->m_channelID));
+   
+  // Tower energy
+  transObj->m_eneTower = persObj->m_eneTower;
+
+  // Time average
+  transObj->m_timeAve = persObj->m_timeAve;
+
+  // Correction factor
+  transObj->m_corrFactor = persObj->m_corrFactor;
+
+  // quality factor
+  transObj->m_quality = persObj->m_quality;
+
+}
+
+
+void
+TileTTL1CellCnv_p1::transToPers(const TileTTL1Cell* transObj, TileTTL1Cell_p1* persObj, MsgStream &/*log*/)
+{
+  persObj->m_channelID = transObj->m_ID.get_identifier32().get_compact();
+
+  // Tower energy
+  persObj->m_eneTower = transObj->m_eneTower;
+
+  // Time average
+  persObj->m_timeAve = transObj->m_timeAve;
+
+  // Correction factor
+  persObj->m_corrFactor = transObj->m_corrFactor;
+
+  // quality factor
+  persObj->m_quality = transObj->m_quality;
+
+}
diff --git a/TileCalorimeter/TileSvc/TileTPCnv/src/TileTTL1Cnv_p1.cxx b/TileCalorimeter/TileSvc/TileTPCnv/src/TileTTL1Cnv_p1.cxx
new file mode 100644
index 00000000000..8b638116835
--- /dev/null
+++ b/TileCalorimeter/TileSvc/TileTPCnv/src/TileTTL1Cnv_p1.cxx
@@ -0,0 +1,43 @@
+///////////////////////// -*- C++ -*- /////////////////////////////
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// TileTTL1Cnv_p1.cxx 
+// Implementation file for class TileTTL1Cnv_p1
+// Author: Alexander Solodkov <Sanya.Solodkov@cern.ch>
+// Date:   June 2009
+/////////////////////////////////////////////////////////////////// 
+
+#define private public
+#define protected public
+#include "TileEvent/TileTTL1.h"
+#undef private
+#undef protected
+
+#include "TileTPCnv/TileTTL1Cnv_p1.h"
+
+
+void
+TileTTL1Cnv_p1::persToTrans(const TileTTL1_p1* persObj, TileTTL1* transObj, MsgStream &/*log*/)
+{
+  transObj->m_ID = Identifier(Identifier32(persObj->m_channelID));
+   
+  transObj->m_TTL1digits.reserve(persObj->m_TTL1digits.size());
+  for (std::vector<float>::const_iterator it = persObj->m_TTL1digits.begin(); it != persObj->m_TTL1digits.end(); ++it) {
+    transObj->m_TTL1digits.push_back( *it );
+  }
+}
+
+
+void
+TileTTL1Cnv_p1::transToPers(const TileTTL1* transObj, TileTTL1_p1* persObj, MsgStream &/*log*/)
+{
+  persObj->m_channelID = transObj->m_ID.get_identifier32().get_compact();
+
+  persObj->m_TTL1digits.reserve(transObj->m_TTL1digits.size());
+  for (std::vector<float>::const_iterator it = transObj->m_TTL1digits.begin(); it != transObj->m_TTL1digits.end(); ++it) {
+    persObj->m_TTL1digits.push_back( *it );
+  }
+}
-- 
GitLab