ATLAS Offline Software
sTGCSimHitCollectionCnv.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 // Gaudi
8 #include "GaudiKernel/StatusCode.h"
9 #include "GaudiKernel/MsgStream.h"
10 
11 // Athena
12 #include "StoreGate/StoreGateSvc.h"
13 
19 #include "HitManagement/AthenaHitsVector.h" //for back-compatibility
20 
21 
24 {
25 }
26 
28 
30  MsgStream log(msgSvc(), "sTGCSimHitCollectionCnv" );
31  ATH_MSG_DEBUG("createPersistent(): main converter");
33  return pixdc_p;
34 }
35 
37  MsgStream log(msgSvc(), "sTGCSimHitCollectionCnv" );
38  static const pool::Guid p1_guid("f8b975d2-8130-11e8-abf4-4b4a6a2b6ee5");
39  static const pool::Guid p2_guid("b9521cc6-6e3b-11e8-adbb-02163e01bddd");
40  static const pool::Guid p3_guid("8f3ffd1c-c9a0-4da7-b99e-a3828b6ac789");
41  static const pool::Guid p4_guid("018E2DAC-18EB-79C4-B562-FD7C035C92C1");
42 
43  ATH_MSG_DEBUG("createTransient(): main converter");
44  sTGCSimHitCollection* p_collection(nullptr);
45  if( compareClassGuid(p4_guid) ) {
46  ATH_MSG_DEBUG("createTransient(): T/P version 4 detected");
47  std::unique_ptr< Muon::sTGCSimHitCollection_p4 > col_vect( this->poolReadObject< Muon::sTGCSimHitCollection_p4 >() );
48  p_collection = m_TPConverter_p4.createTransient( col_vect.get(), log );
49  } else if( compareClassGuid(p3_guid) ) {
50  ATH_MSG_DEBUG("createTransient(): T/P version 3 detected");
51  std::unique_ptr< Muon::sTGCSimHitCollection_p3 > col_vect( this->poolReadObject< Muon::sTGCSimHitCollection_p3 >() );
52  p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log );
53  } else if( compareClassGuid(p2_guid) ) {
54  ATH_MSG_DEBUG("createTransient(): T/P version 2 detected");
55  std::unique_ptr< Muon::sTGCSimHitCollection_p2 > col_vect( this->poolReadObject< Muon::sTGCSimHitCollection_p2 >() );
56  p_collection = m_TPConverter_p2.createTransient( col_vect.get(), log );
57  } else if( compareClassGuid(p1_guid) ) {
58  ATH_MSG_DEBUG("createTransient(): T/P version 1 detected");
59  std::unique_ptr< Muon::sTGCSimHitCollection_p1 > col_vect( this->poolReadObject< Muon::sTGCSimHitCollection_p1 >() );
60  p_collection = m_TPConverter_p1.createTransient( col_vect.get(), log );
61  }
62  //----------------------------------------------------------------
63  else {
64  throw std::runtime_error("Unsupported persistent version of sTGCSimHitCollection");
65 
66  }
67  return p_collection;
68 }
sTGCSimHitCollectionCnv::createTransient
virtual sTGCSimHitCollection * createTransient()
Definition: sTGCSimHitCollectionCnv.cxx:36
sTGCSimHitCollectionCnv::~sTGCSimHitCollectionCnv
virtual ~sTGCSimHitCollectionCnv()
AthenaHitsVector.h
AtlasHitsVector
Definition: AtlasHitsVector.h:33
sTGCSimHitCollection.h
sTGCSimHitCollectionCnv::m_TPConverter_p4
sTGCSimHitCollectionCnv_p4 m_TPConverter_p4
Definition: sTGCSimHitCollectionCnv.h:42
sTGCSimHitCollectionCnv::m_TPConverter_p3
sTGCSimHitCollectionCnv_p3 m_TPConverter_p3
Definition: sTGCSimHitCollectionCnv.h:41
TPAbstractPolyCnvBase::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
pool::Guid
::Guid Guid
Definition: T_AthenaPoolCustCnv.h:19
sTGCSimHitCollectionCnv::createPersistent
virtual sTGCSimHitCollection_PERS * createPersistent(sTGCSimHitCollection *transCont)
Definition: sTGCSimHitCollectionCnv.cxx:29
sTGCSimHitCollection_p3.h
sTGCSimHitCollectionCnv_p4::createTransient
virtual sTGCSimHitCollection * createTransient(const Muon::sTGCSimHitCollection_p4 *persObj, MsgStream &log)
Definition: sTGCSimHitCollectionCnv_p4.cxx:65
sTGCSimHitCollectionCnv.h
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
T_AthenaPoolCustomCnv
Compatibility for old converter classes that don't get passed the key.
Definition: T_AthenaPoolCustomCnv.h:132
sTGCSimHitCollectionCnv::m_TPConverter_p2
sTGCSimHitCollectionCnv_p2 m_TPConverter_p2
Definition: sTGCSimHitCollectionCnv.h:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
sTGCSimHitCollectionCnv::m_TPConverter_p1
sTGCSimHitCollectionCnv_p1 m_TPConverter_p1
Definition: sTGCSimHitCollectionCnv.h:39
sTGCSimHitCollection_p4.h
Muon::sTGCSimHitCollection_p3
Definition: sTGCSimHitCollection_p3.h:13
sTGCSimHitCollection_p2.h
sTGCSimHitCollectionCnv_p1::createTransient
virtual sTGCSimHitCollection * createTransient(const Muon::sTGCSimHitCollection_p1 *persObj, MsgStream &log)
Definition: sTGCSimHitCollectionCnv_p1.cxx:63
sTGCSimHitCollection_p1.h
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
sTGCSimHitCollectionCnv_p2::createTransient
virtual sTGCSimHitCollection * createTransient(const Muon::sTGCSimHitCollection_p2 *persObj, MsgStream &log)
Definition: sTGCSimHitCollectionCnv_p2.cxx:64
sTGCSimHitCollectionCnv::sTGCSimHitCollectionCnv
sTGCSimHitCollectionCnv(ISvcLocator *svcloc)
Definition: sTGCSimHitCollectionCnv.cxx:22
T_AthenaPoolCustCnv::compareClassGuid
virtual bool compareClassGuid(const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
sTGCSimHitCollectionCnv_p3::createTransient
virtual sTGCSimHitCollection * createTransient(const Muon::sTGCSimHitCollection_p3 *persObj, MsgStream &log)
Definition: sTGCSimHitCollectionCnv_p3.cxx:65
StoreGateSvc.h