diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawDataCollection_p4.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawDataCollection_p4.h new file mode 100644 index 0000000000000000000000000000000000000000..4e1b80f2bc539b6314e8862729eceeac4c2b90b3 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawDataCollection_p4.h @@ -0,0 +1,79 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +// NOTE: This is an exact copy of CscRawDataCollection_p3, since from p3 to p4 only the meaning of the m_hashId changed: +// Until p3, the m_hashId stores the identifier hash which encodes the geometrical position of the CSC +// From p4 onwards, the m_hashId stores the position of the CSC identifier in the vector of identifiers + +#ifndef MUON_CSCCRAWDATACOLLECTION_P4_H +#define MUON_CSCCRAWDATACOLLECTION_P4_H + +#include "MuonEventAthenaPool/CscRawData_p4.h" + +/** +Persistent represenation of the Collection of CSC Raw Hits. +*/ +class CscRawDataCollection_p4 + : public std::vector<CscRawData_p4> +{ +public: + + CscRawDataCollection_p4 () : + std::vector<CscRawData_p4>(), + m_id(0), + m_rodId(0), + m_subDetectorId(0), + m_numRPU(0), + m_samplingPhase(false), + m_triggerType(false), + m_firstBitSummary(0), + m_eventType(0), + m_rpuID(), + m_dataType(), + m_spuCount(10,0), + m_scaAddress(0) + {} + +friend class CscRawDataCollectionCnv_p4; + +private: + + /** Identifier of this collection */ + uint32_t m_id; + + /** online ROD Identifier */ + uint16_t m_rodId; + uint16_t m_subDetectorId; + + /** number of RPU */ + uint16_t m_numRPU; + + /** sampling phase */ + bool m_samplingPhase; + + /** trigger Type */ + bool m_triggerType; + + /** First Bit Summary */ + uint8_t m_firstBitSummary; + + /** event type/data type */ + uint32_t m_eventType; + + /** RPU ID and data type */ + std::vector<uint16_t> m_rpuID; + std::vector<uint8_t> m_dataType; + + /** cluster counts for 10 SPU: 5 SPU in each chamber or RPU! + For Chamber CSS, RPU ID = 5 and for CSL RPU ID = 11 + For CSS, SPU ID goes from 0-4 and 5-9 for CSS + The non-precision SPU are at index 4 and 9 in the list */ + std::vector<uint16_t> m_spuCount; + + /** SCA Address */ + uint32_t m_scaAddress; + +}; + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawDataContainer_p4.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawDataContainer_p4.h new file mode 100644 index 0000000000000000000000000000000000000000..878cfd4f44c070ecd55c3012a195ff7da0f8839e --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawDataContainer_p4.h @@ -0,0 +1,32 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +// NOTE: This is an exact copy of CscRawDataContainer_p3, since from p3 to p4 only the meaning of the m_hashId changed: +// Until p3, the m_hashId stores the identifier hash which encodes the geometrical position of the CSC +// From p4 onwards, the m_hashId stores the position of the CSC identifier in the vector of identifiers + +#ifndef MUON_CSCCRAWDATACONTAINER_P4_H +#define MUON_CSCCRAWDATACONTAINER_P4_H + +/* + +Persistent represenation of a container of collections of CSC Raw Hits, +Author: Marcin Nowak + CERN, December, 2005 + +*/ + +#include "MuonEventAthenaPool/CscRawDataCollection_p4.h" + + +class CscRawDataContainer_p4 + : public std::vector<CscRawDataCollection_p4> +{ +public: + CscRawDataContainer_p4() : std::vector<CscRawDataCollection_p4>() {} + + friend class CscRawDataContainerCnv_p4; +}; + +#endif diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawData_p4.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawData_p4.h new file mode 100644 index 0000000000000000000000000000000000000000..6882e7b4e65ad874fb21b05e2d3ea539f53fb7d7 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/CscRawData_p4.h @@ -0,0 +1,61 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +// NOTE: This is an exact copy of CscRawData_p3, since from p3 to p4 only the meaning of the m_hashId changed: +// Until p3, the m_hashId stores the identifier hash which encodes the geometrical position of the CSC +// From p4 onwards, the m_hashId stores the position of the CSC identifier in the vector of identifiers + +#ifndef MUON_CSCRAWDATA_P4_H +#define MUON_CSCRAWDATA_P4_H + +#include <iostream> +#include <vector> +#include <inttypes.h> + +class CscRawData_p4 +{ +public: + CscRawData_p4 () + : + m_amps(), + m_address(0), + m_id(0), + m_time(0), + m_rpuID(0), + m_width(0), + m_isTimeComputed(false), + m_hashId(0) + {} + + friend class CscRawDataCnv_p4; + +private: + + /// in common with _p1 + + /** ADC samples */ + std::vector<uint16_t> m_amps; + /** online identifier of the first strip in the ROD cluster */ + uint32_t m_address; + /** online identifier of the collection in which this strip is */ + uint16_t m_id; + + // m_dpuiID removed from _p1 + + //New to _p2 + + /** online peaking time of the first strip: this is 0 if failed to compute time in the ROD */ + uint16_t m_time; + /** SPU -Sparsifier Processing Unit - identifier in which this strip is */ + uint16_t m_rpuID; + /** number of consecutive strips forming the on-line cluster */ + uint16_t m_width; + /** failed to compute the time in the ROD or not - if failure m_time = 0 */ + bool m_isTimeComputed; + /** offline hash identifier of the first strip in the online cluster */ + uint32_t m_hashId; +}; + +#endif + diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/MuonRDOCnvDict.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/MuonRDOCnvDict.h index cc84b1944e4f494210f62161f0f6be24dbac288c..6268df26de943c8dcabfc45ef3d88ad4d2fc13fe 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/MuonRDOCnvDict.h +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/MuonRDOCnvDict.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ /* @@ -12,6 +12,10 @@ #ifndef MUONRDO_CNVDICT_H #define MUONRDO_CNVDICT_H +#include "MuonEventAthenaPool/CscRawData_p4.h" +#include "MuonEventAthenaPool/CscRawDataCollection_p4.h" +#include "MuonEventAthenaPool/CscRawDataContainer_p4.h" + #include "MuonEventAthenaPool/CscRawData_p3.h" #include "MuonEventAthenaPool/CscRawDataCollection_p3.h" #include "MuonEventAthenaPool/CscRawDataContainer_p3.h" diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/selection.xml b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/selection.xml index c72fdd64fad499beea08478e0eb11452a1adccad..bdf181b8e1ae94e9488b9bdebb5af84209ff3651 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/selection.xml +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/MuonEventAthenaPool/selection.xml @@ -1,9 +1,4 @@ <lcgdict> - <class name="CscRawData_p2" /> - <class name="std::vector<CscRawData_p2>" /> - <class name="CscRawDataCollection_p2" /> - <class name="std::vector<CscRawDataCollection_p2>" /> - <class name="CscRawDataContainer_p2" id="19221A0D-4167-4A1C-BE2A-EE335D7C9D5F" /> <class name="CscRawData_p1" /> <class name="std::vector<CscRawData_p1>" /> @@ -11,12 +6,24 @@ <class name="std::vector<CscRawDataCollection_p1>" /> <class name="CscRawDataContainer_p1" id="3586FE6B-0504-4E78-BD9F-AF839C50F931" /> + <class name="CscRawData_p2" /> + <class name="std::vector<CscRawData_p2>" /> + <class name="CscRawDataCollection_p2" /> + <class name="std::vector<CscRawDataCollection_p2>" /> + <class name="CscRawDataContainer_p2" id="19221A0D-4167-4A1C-BE2A-EE335D7C9D5F" /> + <class name="CscRawData_p3" /> <class name="std::vector<CscRawData_p3>" /> <class name="CscRawDataCollection_p3" /> <class name="std::vector<CscRawDataCollection_p3>" /> <class name="CscRawDataContainer_p3" id="A77330FB-BD12-4E50-829C-DADFBF556119" /> + <class name="CscRawData_p4" /> + <class name="std::vector<CscRawData_p4>" /> + <class name="CscRawDataCollection_p4" /> + <class name="std::vector<CscRawDataCollection_p4>" /> + <class name="CscRawDataContainer_p4" id="F94905BF-D474-4453-B9D0-80ECB7BA4041" /> + <class name="TgcRawData_p1" /> <class name="std::vector<TgcRawData_p1>" /> <class name="TgcRdo_p1" /> diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCnv_p4.cxx b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCnv_p4.cxx new file mode 100644 index 0000000000000000000000000000000000000000..167bea90599d9da65343c2becfe75a1e8b5e26fa --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCnv_p4.cxx @@ -0,0 +1,76 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#include "MuonRDO/CscRawData.h" +#include "CscRawDataCnv_p4.h" +#include "GaudiKernel/GaudiException.h" +#include "StoreGate/StoreGateSvc.h" +#include "MuonIdHelpers/CscIdHelper.h" +#include <TString.h> // for Form + +bool CscRawDataCnv_p4::initialize() { + if (m_init) return m_init; + ISvcLocator* svcLocator = Gaudi::svcLocator(); + StoreGateSvc* detStore; + if (svcLocator->service("DetectorStore", detStore).isFailure()) { + throw std::runtime_error(Form("File: %s, Line: %d\nCscRawDataCnv_p4::initialize() - Failed to retrieve DetectorStore", __FILE__, __LINE__)); + } + if (detStore->retrieve(m_cscIdHelper, "CSCIDHELPER").isFailure()) { + throw std::runtime_error(Form("File: %s, Line: %d\nCscRawDataCnv_p4::initialize() - Failed to retrieve CscIdHelper (needed for channel hash conversion)", __FILE__, __LINE__)); + } + m_init = true; + return m_init; +} + +void +CscRawDataCnv_p4::transToPers(const CscRawData* trans, CscRawData_p4* pers, MsgStream &) +{ + if (!this->initialize()) throw std::runtime_error(Form("File: %s, Line: %d\nCscRawDataCnv_p4::transToPers() - Failed to initialize", __FILE__, __LINE__)); + + pers->m_amps = trans->samples(); + pers->m_address = trans->address(); + pers->m_id = trans->identify(); + pers->m_time = trans->time(); + pers->m_rpuID = trans->rpuID(); + pers->m_width = trans->width(); + pers->m_isTimeComputed = trans->isTimeComputed(); + if (m_cscIdHelper) { + // translate the transient (geometrical) hash into a positional hash as expected by the p4 persistent data format + IdContext context = m_cscIdHelper->channel_context(); + Identifier id; + IdentifierHash posHash; + if (!m_cscIdHelper->get_id(trans->hashId(), id, &context)) { // retrieve identifier from geometrical hash + if (!m_cscIdHelper->get_pos_channel_hash(id, posHash)) pers->m_hashId = posHash; // retrieve positional identifier hash from identifier + } + } else { + throw std::runtime_error(Form("File: %s, Line: %d\nCscRawDataCnv_p4::transToPers() - No CscIdHelper present (needed for channel hash conversion)", __FILE__, __LINE__)); + } +} + +void +CscRawDataCnv_p4::persToTrans(const CscRawData_p4* pers, CscRawData* trans, MsgStream &) +{ + if (!this->initialize()) throw std::runtime_error(Form("File: %s, Line: %d\nCscRawDataCnv_p4::persToTrans() - Failed to initialize", __FILE__, __LINE__)); + + *trans = CscRawData (pers->m_amps, + pers->m_address, + pers->m_id, + pers->m_rpuID, + pers->m_width); + if (m_cscIdHelper) { + // translate the persistent p4 (positional) hash into a geometrical hash (as expected by the transient data format) + IdentifierHash posHash = pers->m_hashId; + IdentifierHash geoHash; + Identifier id; + if (!m_cscIdHelper->get_id_fromPosHash(posHash, id)) { // retrieve identifier from positional identifier hash + if (!m_cscIdHelper->get_channel_hash(id, geoHash)) { // retrieve geometrical identifier hash from identifier + trans->setHashID(geoHash); + } + } + } else { + throw std::runtime_error(Form("File: %s, Line: %d\nCscRawDataCnv_p4::persToTrans() - No CscIdHelper present (needed for channel hash conversion)", __FILE__, __LINE__)); + } + if (pers->m_isTimeComputed) + trans->setTime (pers->m_time); +} diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCnv_p4.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCnv_p4.h new file mode 100644 index 0000000000000000000000000000000000000000..87641ec1df3d88b651152fc30b532ffd7e180866 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCnv_p4.h @@ -0,0 +1,35 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef MUON_CSCRAWDATACNV_P4_H +#define MUON_CSCRAWDATACNV_P4_H + +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonEventAthenaPool/CscRawData_p4.h" +#include "MuonRDO/CscRawData.h" + +class MsgStream; +class CscIdHelper; + + +/** +Transient/Persistent converter for CscRawData class +*/ +class CscRawDataCnv_p4 : public T_AthenaPoolTPCnvBase<CscRawData, CscRawData_p4> +{ +public: + CscRawDataCnv_p4() {} + + virtual void persToTrans(const CscRawData_p4* persObj, CscRawData* transObj, MsgStream &log); + virtual void transToPers(const CscRawData* transObj, CscRawData_p4* persObj, MsgStream &log); +private: + bool initialize(); + bool m_init=false; + CscIdHelper* m_cscIdHelper=nullptr; + +}; + + +#endif + diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCollectionCnv_p4.cxx b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCollectionCnv_p4.cxx new file mode 100644 index 0000000000000000000000000000000000000000..09b78fd23ce183ae71530c2e4e62dd88176114b8 --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCollectionCnv_p4.cxx @@ -0,0 +1,57 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +// NOTE: This is an exact copy of CscRawDataCollectionCnv_p3, since from p3 to p4 only the meaning of the m_hashId changed: +// Until p3, the m_hashId stores the identifier hash which encodes the geometrical position of the CSC +// From p4 onwards, the m_hashId stores the position of the CSC identifier in the vector of identifiers + +#include "GaudiKernel/MsgStream.h" +#include "CscRawDataCollectionCnv_p4.h" +#include <sstream> + +void +CscRawDataCollectionCnv_p4::persToTrans(const CscRawDataCollection_p4* persColl, CscRawDataCollection* transColl, MsgStream &log) +{ + + IdentifierHash idhash = transColl->identifyHash(); + transColl->setOnlineId (persColl->m_id); + transColl->setIdentifyHash (idhash); + transColl->setRodId (persColl->m_rodId); + transColl->setSubDetectorId (persColl->m_subDetectorId); + transColl->setNumDPU (persColl->m_numRPU); + transColl->set_samplingPhase (persColl->m_samplingPhase); + transColl->set_triggerType (persColl->m_triggerType); + transColl->set_firstBitSummary (persColl->m_firstBitSummary); + transColl->set_eventType (persColl->m_eventType); + transColl->setRPUID (persColl->m_rpuID); + transColl->set_dataType (persColl->m_dataType); + transColl->set_spuCount (persColl->m_spuCount); + transColl->set_scaAddress (persColl->m_scaAddress); + + // Invoke vector converter from the base template + CscRawDataCollection_Cnv_p4_base_t::persToTrans( persColl, transColl, log ); +} + + + +void +CscRawDataCollectionCnv_p4::transToPers(const CscRawDataCollection* transColl, CscRawDataCollection_p4* persColl, MsgStream &log) +{ + persColl->m_id = transColl->identify(); + persColl->m_rodId = transColl->rodId() ; + persColl->m_subDetectorId = transColl->subDetectorId(); + persColl->m_numRPU = transColl->numRPU(); + persColl->m_samplingPhase = transColl->samplingPhase() ; + persColl->m_triggerType = transColl->triggerType() ; + persColl->m_firstBitSummary= transColl->firstBitSummary(); + persColl->m_eventType = transColl->eventType(); + persColl->m_rpuID = transColl->rpuID(); + persColl->m_dataType = transColl->dataType(); + persColl->m_spuCount = transColl->spuCount(); + persColl->m_scaAddress = transColl->scaAddress(); + + // Invoke vector converter from the base template + CscRawDataCollection_Cnv_p4_base_t::transToPers( transColl, persColl, log ); +} + diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCollectionCnv_p4.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCollectionCnv_p4.h new file mode 100644 index 0000000000000000000000000000000000000000..6ede8c883eee7713718830b0ea60cd80dacb586b --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataCollectionCnv_p4.h @@ -0,0 +1,37 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +// NOTE: This is an exact copy of CscRawDataCollectionCnv_p3, since from p3 to p4 only the meaning of the m_hashId changed: +// Until p3, the m_hashId stores the identifier hash which encodes the geometrical position of the CSC +// From p4 onwards, the m_hashId stores the position of the CSC identifier in the vector of identifiers + +#ifndef MUON_CSCCRAWDATACOLLECTIONCNV_P4_H +#define MUON_CSCCRAWDATACOLLECTIONCNV_P4_H + +#include "MuonRDO/CscRawDataCollection.h" +#include "AthenaPoolCnvSvc/T_AthenaPoolTPConverter.h" +#include "MuonEventAthenaPool/CscRawDataCollection_p4.h" + +#include "CscRawDataCnv_p4.h" + + +typedef T_AthenaPoolTPCnvVector< CscRawDataCollection, CscRawDataCollection_p4, CscRawDataCnv_p4 > CscRawDataCollection_Cnv_p4_base_t; + +/** +Transient/Persistent converter for the Collection of CSC Raw Hits, +*/ + +class CscRawDataCollectionCnv_p4 + : public CscRawDataCollection_Cnv_p4_base_t +{ +public: + CscRawDataCollectionCnv_p4() {} + + virtual void persToTrans(const CscRawDataCollection_p4* persColl, CscRawDataCollection* transColl, MsgStream &log) ; + virtual void transToPers(const CscRawDataCollection* transColl, CscRawDataCollection_p4* persColl, MsgStream &log) ; +}; + + +#endif + diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataContainerCnv.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataContainerCnv.h index ec28e23d303b929386ae46d48710dc3b7816c12e..1b19ccedbcdc55f3c2de14a02ccf89b43566df34 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataContainerCnv.h +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataContainerCnv.h @@ -1,19 +1,16 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONEVENTATHENAPOOL_CSCRAWDATACONTAINERCNV_H #define MUONEVENTATHENAPOOL_CSCRAWDATACONTAINERCNV_H - - - -#include "MuonEventAthenaPool/CscRawDataContainer_p1.h" #include "MuonRDO/CscRawDataContainer.h" #include "MuonRdoContainerTPCnv.h" #include "CscRawDataContainerCnv_p1.h" #include "CscRawDataContainerCnv_p2.h" #include "CscRawDataContainerCnv_p3.h" +#include "CscRawDataContainerCnv_p4.h" /* custom POOL TP converter for CSC RDO @@ -35,12 +32,17 @@ CscRawDataContainerCnv::createTransient() CscRawDataContainer * trans_cont = 0; - static pool::Guid p3_guid("A77330FB-BD12-4E50-829C-DADFBF556119"); - static pool::Guid p2_guid("19221A0D-4167-4A1C-BE2A-EE335D7C9D5F"); - static pool::Guid p1_guid("3586FE6B-0504-4E78-BD9F-AF839C50F931"); - static pool::Guid p0_guid("D7600810-31BC-4344-A3C6-9C59F47E5551"); + static pool::Guid p4_guid("F94905BF-D474-4453-B9D0-80ECB7BA4041"); + static pool::Guid p3_guid("A77330FB-BD12-4E50-829C-DADFBF556119"); + static pool::Guid p2_guid("19221A0D-4167-4A1C-BE2A-EE335D7C9D5F"); + static pool::Guid p1_guid("3586FE6B-0504-4E78-BD9F-AF839C50F931"); + static pool::Guid p0_guid("D7600810-31BC-4344-A3C6-9C59F47E5551"); - if( compareClassGuid(p3_guid) ) { + if( compareClassGuid(p4_guid) ) { + CscRawDataContainerCnv_p4 tpConvertor_p4; + std::unique_ptr< CscRawDataContainer_p4 > col_vect( poolReadObject< CscRawDataContainer_p4 >() ); + trans_cont = tpConvertor_p4.createTransient( col_vect.get(), log ); + } else if( compareClassGuid(p3_guid) ) { std::unique_ptr< CscRawDataContainer_p3 > col_vect( poolReadObject< CscRawDataContainer_p3 >() ); trans_cont = m_TPconverter.createTransient( col_vect.get(), log ); } else if( compareClassGuid(p2_guid) ) { diff --git a/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataContainerCnv_p4.h b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataContainerCnv_p4.h new file mode 100644 index 0000000000000000000000000000000000000000..1051ce8138d3bbd182dab2d5f8d45ca3ea52b8da --- /dev/null +++ b/MuonSpectrometer/MuonCnv/MuonEventAthenaPool/src/CscRawDataContainerCnv_p4.h @@ -0,0 +1,29 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +// NOTE: This is an exact copy of CscRawDataContainerCnv_p3, since from p3 to p4 only the meaning of the m_hashId changed: +// Until p3, the m_hashId stores the identifier hash which encodes the geometrical position of the CSC +// From p4 onwards, the m_hashId stores the position of the CSC identifier in the vector of identifiers + +#ifndef MUON_CSCCRAWDATACONTAINERCNV_P4_H +#define MUON_CSCCRAWDATACONTAINERCNV_P4_H + + +#include "MuonRDO/CscRawDataContainer.h" +#include "MuonEventAthenaPool/CscRawDataContainer_p4.h" +#include "CscRawDataCollectionCnv_p4.h" + +/** +Transient/Persistent converter for a container of collections of CSC Raw Hits, +*/ +class CscRawDataContainerCnv_p4 + : public T_AthenaPoolTPCnvIDCont< CscRawDataContainer, CscRawDataContainer_p4, CscRawDataCollectionCnv_p4> +{ +public: + CscRawDataContainerCnv_p4() {} + +}; + + +#endif