ATLAS Offline Software
MMPrepDataContainerCnv.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 #include "GaudiKernel/StatusCode.h"
8 #include "GaudiKernel/MsgStream.h"
11 
14 {
15 }
16 
18 
20  // Call base clase initialize
21  if( !MMPrepDataContainerCnvBase::initialize().isSuccess() )
22  return StatusCode::FAILURE;
23 
24  // Get the messaging service, print where you are
25  MsgStream log(msgSvc(), "MMPrepDataContainerCnv");
26  if (log.level() <= MSG::INFO) log << MSG::INFO << "MMPrepDataContainerCnv::initialize()" << endmsg;
27 
28  return StatusCode::SUCCESS;
29 }
30 
32  MsgStream log(msgSvc(), "MMPrepDataContainerCnv" );
33  if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createPersistent(): main converter"<<endmsg;
35  // COMPRESS MMPrepDataContainer_PERS *pers= m_converter_p1.createPersistent( transCont, log );
36  return pers;
37 }
38 
40  MsgStream log(msgSvc(), "MMPrepDataContainerCnv" );
41  static const pool::Guid p1_guid("5E5C97E2-8D7C-11E2-9FCB-001517648C14");
42  static const pool::Guid p2_guid("86B42223-304D-4AFA-8E94-A49B23AC8865");
43  if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): main converter"<<endmsg;
44  Muon::MMPrepDataContainer* p_collection(nullptr);
45  if( compareClassGuid(p1_guid) ) {
46  if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 1 detected"<<endmsg;
47  std::unique_ptr< Muon::MMPrepDataContainer_p1 > p_coll( poolReadObject< Muon::MMPrepDataContainer_p1 >() );
48  p_collection = m_converter_p1.createTransient( p_coll.get(), log );
49  } else if(compareClassGuid(p2_guid)) {
50  if (log.level() <= MSG::DEBUG) log<<MSG::DEBUG<<"createTransient(): T/P version 2 detected"<<endmsg;
51  std::unique_ptr< Muon::MMPrepDataContainer_p2 > p_coll( poolReadObject< Muon::MMPrepDataContainer_p2 >() );
52  p_collection = m_converter_p2.createTransient( p_coll.get(), log );
53 
54  }else {
55  throw std::runtime_error("Unsupported persistent version of MMPrepDataContainer.");
56 
57  }
58  return p_collection;
59 }
Muon::MMPrepDataContainerCnv_p2::createTransient
virtual Muon::MMPrepDataContainer * createTransient(const Muon::MMPrepDataContainer_p2 *persObj, MsgStream &log)
Definition: MMPrepDataContainerCnv_p2.cxx:206
Muon::MuonPrepDataContainer
Template for Muon PRD containers (which are basically collections of MuonPrepDataCollections).
Definition: MuonPrepDataContainer.h:42
MMPrepDataContainer.h
Muon::MMPrepDataContainerCnv_p1::createTransient
virtual Muon::MMPrepDataContainer * createTransient(const Muon::MMPrepDataContainer_p1 *persObj, MsgStream &log)
Definition: MMPrepDataContainerCnv_p1.cxx:206
TPAbstractPolyCnvBase::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
MMPrepDataContainerCnv.h
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
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MMPrepDataContainerCnv::m_converter_p2
Muon::MMPrepDataContainerCnv_p2 m_converter_p2
Definition: MMPrepDataContainerCnv.h:42
MMPrepDataContainerCnv::m_converter_p1
Muon::MMPrepDataContainerCnv_p1 m_converter_p1
Definition: MMPrepDataContainerCnv.h:41
Muon::MuonPRD_Container_p2
Class to contain the Muon Prep Raw Data.
Definition: MuonPRD_Container_p2.h:26
MMPrepDataContainerCnv::~MMPrepDataContainerCnv
virtual ~MMPrepDataContainerCnv()
MMPrepDataContainerCnv::createTransient
virtual Muon::MMPrepDataContainer * createTransient()
Definition: MMPrepDataContainerCnv.cxx:39
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
T_AthenaPoolCustCnv::compareClassGuid
virtual bool compareClassGuid(const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
MMPrepDataContainerCnv::createPersistent
virtual MMPrepDataContainer_PERS * createPersistent(Muon::MMPrepDataContainer *transCont)
Definition: MMPrepDataContainerCnv.cxx:31
T_AthenaPoolCustCnv::initialize
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
StoreGateSvc.h
MMPrepDataContainerCnv::MMPrepDataContainerCnv
MMPrepDataContainerCnv(ISvcLocator *svcloc)
Definition: MMPrepDataContainerCnv.cxx:12
MMPrepDataContainerCnv::initialize
virtual StatusCode initialize()
Gaudi Service Interface method implementations:
Definition: MMPrepDataContainerCnv.cxx:19