ATLAS Offline Software
TileMuonReceiverContainerCnv.cxx
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // TileMuonReceveirContainerCnv.cxx
8 // Implementation file for class TileMuonReceiverContainerCnv
9 // Author: Joao Gentil Saraiva <joao.gentil.saraiva@cern.ch>
10 // Date: March 2014
12 
13 // Framework includes
14 #include "GaudiKernel/MsgStream.h"
15 
16 // TileTPCnv includes
18 
19 // TileEventAthenaPool includes
21 
24 {
25  MsgStream msg( msgSvc(), "TileMuonReceiverContainerCnv" );
26 
28  TileMuonReceiverContainer_PERS *persObj = cnv.createPersistent( transCont, msg );
29 
30  if (msg.level()<=MSG::DEBUG)
31  msg << MSG::DEBUG << "::createPersistent [Success]" << endmsg;
32  return persObj;
33 }
34 
36 
37  MsgStream msg( msgSvc(), "TileMuonReceiverContainerCnv" );
38 
39  TileMuonReceiverContainer *transObj = 0;
40 
41  static const pool::Guid tr_guid("A01F819F-4F0B-4713-A275-7DA5F47F77E5");
42  static const pool::Guid p1_guid("7F0DA5A3-7773-4852-AE55-A9920FEB31AB");
43 
44  if ( compareClassGuid(tr_guid) ) {
45 
46  // regular object from before the T/P separation
47  return poolReadObject<TileMuonReceiverContainer>();
48 
49  } else if ( compareClassGuid(p1_guid) ) {
50  // using unique_ptr ensures deletion of the persistent object
51  std::unique_ptr<TileMuonReceiverContainer_p1> persObj( poolReadObject<TileMuonReceiverContainer_p1>() );
53  transObj = cnv.createTransient( persObj.get(), msg );
54  } else {
55  throw std::runtime_error("Unsupported persistent version of TileMuonReceiverContainer");
56  }
57 
58  return transObj;
59 }
TileMuonReceiverContainerCnv.h
TileMuonReceiverContainer_p1
Definition: TileMuonReceiverContainer_p1.h:19
TPPolyCnvBase::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
TileMuonReceiverContainerCnv_p1.h
TPAbstractPolyCnvBase::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
TileMuonReceiverContainerCnv::createPersistent
virtual TileMuonReceiverContainer_PERS * createPersistent(TileMuonReceiverContainer *transCont)
Build the persistent representation from the transient one.
Definition: TileMuonReceiverContainerCnv.cxx:23
pool::Guid
::Guid Guid
Definition: T_AthenaPoolCustCnv.h:19
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
TileMuonReceiverContainerCnv::createTransient
virtual TileMuonReceiverContainer * createTransient()
Build the transient representation from a persistent one.
Definition: TileMuonReceiverContainerCnv.cxx:35
DEBUG
#define DEBUG
Definition: page_access.h:11
TPCnvVector
Definition: TPConverter.h:1256
T_AthenaPoolCustCnv< TileMuonReceiverContainer, TileMuonReceiverContainer_PERS >::compareClassGuid
virtual bool compareClassGuid(const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
TileContainer
Definition: TileContainer.h:38