ATLAS Offline Software
GenericMuonSimHitCollectionCnv.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 
18 #include "HitManagement/AthenaHitsVector.h" //for back-compatibility
19 
20 
23 {
24 }
25 
27 
29  MsgStream log(msgSvc(), "GenericMuonSimHitCollectionCnv" );
30  ATH_MSG_DEBUG("createPersistent(): main converter");
32  return pixdc_p;
33 }
34 
36  MsgStream log(msgSvc(), "GenericMuonSimHitCollectionCnv" );
37  static const pool::Guid p1_guid("C2D5D558-2671-11E1-AAFA-001E4F3E5646");
38  static const pool::Guid p2_guid("3760C0D8-C7EA-42C7-925A-E841196F2138");
39  static const pool::Guid p3_guid("018E2DAC-18EB-7635-A068-B08EFB5CD64A");
40  ATH_MSG_DEBUG("createTransient(): main converter");
41  GenericMuonSimHitCollection* p_collection(nullptr);
42  if( compareClassGuid(p3_guid) ) {
43  ATH_MSG_DEBUG("createTransient(): T/P version 3 detected");
44  std::unique_ptr< Muon::GenericMuonSimHitCollection_p3 > col_vect( this->poolReadObject< Muon::GenericMuonSimHitCollection_p3 >() );
45  p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log );
46  } else if( compareClassGuid(p2_guid) ) {
47  ATH_MSG_DEBUG("createTransient(): T/P version 2 detected");
48  std::unique_ptr< Muon::GenericMuonSimHitCollection_p2 > col_vect( this->poolReadObject< Muon::GenericMuonSimHitCollection_p2 >() );
49  p_collection = m_TPConverter_p2.createTransient( col_vect.get(), log );
50  } else if( compareClassGuid(p1_guid) ) {
51  ATH_MSG_DEBUG("createTransient(): T/P version 1 detected");
52  std::unique_ptr< Muon::GenericMuonSimHitCollection_p1 > col_vect( this->poolReadObject< Muon::GenericMuonSimHitCollection_p1 >() );
53  p_collection = m_TPConverter_p1.createTransient( col_vect.get(), log );
54  }
55  //----------------------------------------------------------------
56  else {
57  throw std::runtime_error("Unsupported persistent version of GenericMuonSimHitCollection");
58 
59  }
60  return p_collection;
61 }
AthenaHitsVector.h
GenericMuonSimHitCollectionCnv_p3::createTransient
virtual GenericMuonSimHitCollection * createTransient(const Muon::GenericMuonSimHitCollection_p3 *persObj, MsgStream &log)
Definition: GenericMuonSimHitCollectionCnv_p3.cxx:91
GenericMuonSimHitCollectionCnv::~GenericMuonSimHitCollectionCnv
virtual ~GenericMuonSimHitCollectionCnv()
AtlasHitsVector
Definition: AtlasHitsVector.h:33
GenericMuonSimHitCollectionCnv::createTransient
virtual GenericMuonSimHitCollection * createTransient()
Definition: GenericMuonSimHitCollectionCnv.cxx:35
TPAbstractPolyCnvBase::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
GenericMuonSimHitCollectionCnv::GenericMuonSimHitCollectionCnv
GenericMuonSimHitCollectionCnv(ISvcLocator *svcloc)
Definition: GenericMuonSimHitCollectionCnv.cxx:21
GenericMuonSimHitCollection.h
pool::Guid
::Guid Guid
Definition: T_AthenaPoolCustCnv.h:19
GenericMuonSimHitCollectionCnv::createPersistent
virtual GenericMuonSimHitCollection_PERS * createPersistent(GenericMuonSimHitCollection *transCont)
Definition: GenericMuonSimHitCollectionCnv.cxx:28
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
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
GenericMuonSimHitCollectionCnv::m_TPConverter_p2
GenericMuonSimHitCollectionCnv_p2 m_TPConverter_p2
Definition: GenericMuonSimHitCollectionCnv.h:38
GenericMuonSimHitCollectionCnv.h
GenericMuonSimHitCollectionCnv::m_TPConverter_p3
GenericMuonSimHitCollectionCnv_p3 m_TPConverter_p3
Definition: GenericMuonSimHitCollectionCnv.h:39
Muon::GenericMuonSimHitCollection_p2
Definition: GenericMuonSimHitCollection_p2.h:13
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
GenericMuonSimHitCollectionCnv_p1::createTransient
virtual GenericMuonSimHitCollection * createTransient(const Muon::GenericMuonSimHitCollection_p1 *persObj, MsgStream &log)
Definition: GenericMuonSimHitCollectionCnv_p1.cxx:91
T_AthenaPoolCustCnv::compareClassGuid
virtual bool compareClassGuid(const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
GenericMuonSimHitCollection_p1.h
StoreGateSvc.h
GenericMuonSimHitCollectionCnv_p2::createTransient
virtual GenericMuonSimHitCollection * createTransient(const Muon::GenericMuonSimHitCollection_p2 *persObj, MsgStream &log)
Definition: GenericMuonSimHitCollectionCnv_p2.cxx:91
GenericMuonSimHitCollection_p3.h
GenericMuonSimHitCollectionCnv::m_TPConverter_p1
GenericMuonSimHitCollectionCnv_p1 m_TPConverter_p1
Definition: GenericMuonSimHitCollectionCnv.h:37
GenericMuonSimHitCollection_p2.h