ATLAS Offline Software
MuonSimDataCollectionCnv.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 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 
16 
19 {
20 }
21 
23 
25  MsgStream log(msgSvc(), "MuonSimDataCollectionCnv" );
26  ATH_MSG_DEBUG("createPersistent(): main converter");
28  return pixdc_p;
29 }
30 
32  MsgStream log(msgSvc(), "MuonSimDataCollectionCnv" );
33  static const pool::Guid p0_guid("5B50C32E-A036-4B49-AC97-716E53210BE2");
34  static const pool::Guid p1_guid("0605B4A3-3744-4486-B39D-F9C9E809D868");
35  static const pool::Guid p2_guid("E0AA3013-4EF7-45B6-BDB1-17B21BF60791");
36  static const pool::Guid p3_guid("018F527E-346B-7A37-8C3D-5E7420A9C76A");
37  ATH_MSG_DEBUG("createTransient(): main converter");
38  MuonSimDataCollection* p_collection(nullptr);
39  if( compareClassGuid(p3_guid) ) {
40  ATH_MSG_DEBUG("createTransient(): T/P version 3 detected");
41  std::unique_ptr< Muon::MuonSimDataCollection_p3 > col_vect( this->poolReadObject< Muon::MuonSimDataCollection_p3 >() );
42  p_collection = m_TPConverter_p3.createTransient( col_vect.get(), log );
43  }
44  //----------------------------------------------------------------
45  else if( compareClassGuid(p2_guid) ) {
46  ATH_MSG_DEBUG("createTransient(): T/P version 2 detected");
47  std::unique_ptr< Muon::MuonSimDataCollection_p2 > col_vect( this->poolReadObject< Muon::MuonSimDataCollection_p2 >() );
48  p_collection = m_TPConverter_p2.createTransient( col_vect.get(), log );
49  }
50  //----------------------------------------------------------------
51  else if( compareClassGuid(p1_guid) ) {
52  ATH_MSG_DEBUG("createTransient(): T/P version 1 detected");
53  std::unique_ptr< Muon::MuonSimDataCollection_p1 > col_vect( this->poolReadObject< Muon::MuonSimDataCollection_p1 >() );
54  p_collection = m_TPConverter_p1.createTransient( col_vect.get(), log );
55  }
56  //----------------------------------------------------------------
57  else if( compareClassGuid(p0_guid) ){
58  if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): Old input file"<<std::endl;
59  std::unique_ptr< MuonSimDataCollection > col_vect( poolReadObject< MuonSimDataCollection >() );
60  p_collection = col_vect.release();
61  }
62  //----------------------------------------------------------------
63  else {
64  throw std::runtime_error("Unsupported persistent version of MuonSimDataCollection");
65 
66  }
67  return p_collection;
68 }
Muon::MuonSimDataCollection_p2
Definition: MuonSimDataCollection_p2.h:13
MuonSimDataCollectionCnv::~MuonSimDataCollectionCnv
virtual ~MuonSimDataCollectionCnv()
TPPolyCnvBase::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
MuonSimDataCollectionCnv::createPersistent
virtual MuonSimDataCollection_PERS * createPersistent(MuonSimDataCollection *transCont)
Definition: MuonSimDataCollectionCnv.cxx:24
MuonSimDataCollectionCnv::m_TPConverter_p2
MuonSimDataCollectionCnv_p2 m_TPConverter_p2
Definition: MuonSimDataCollectionCnv.h:35
TPAbstractPolyCnvBase::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
MuonSimDataCollectionCnv::m_TPConverter_p1
MuonSimDataCollectionCnv_p1 m_TPConverter_p1
Definition: MuonSimDataCollectionCnv.h:34
pool::Guid
::Guid Guid
Definition: T_AthenaPoolCustCnv.h:19
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
MuonSimDataCollection
Definition: MuonSimDataCollection.h:21
MuonSimDataCollectionCnv::m_TPConverter_p3
MuonSimDataCollectionCnv_p3 m_TPConverter_p3
Definition: MuonSimDataCollectionCnv.h:36
MuonSimDataCollectionCnv::createTransient
virtual MuonSimDataCollection * createTransient()
Definition: MuonSimDataCollectionCnv.cxx:31
MuonSimDataCollectionCnv.h
MuonSimDataCollection_p1.h
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
MuonSimDataCollectionCnv::MuonSimDataCollectionCnv
MuonSimDataCollectionCnv(ISvcLocator *svcloc)
Definition: MuonSimDataCollectionCnv.cxx:17
T_AthenaPoolCustCnv::compareClassGuid
virtual bool compareClassGuid(const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
MuonSimDataCollection.h
StoreGateSvc.h