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