ATLAS Offline Software
TileCosmicMuonContainerCnv.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 // TileCosmicMuonContainerCnv.cxx
8 // Implementation file for class TileCosmicMuonContainerCnv
9 // Author: Aranzazu Ruiz <aranzazu.ruiz.martinez@cern.ch>
10 // Date: July 2008
11 // Revised: July 2009 maneira@lip.pt
13 
14 // Framework includes
15 #include "GaudiKernel/MsgStream.h"
16 
17 // TileTPCnv includes
20 
21 // TileEventAthenaPool includes
23 
26 {
27  MsgStream msg( msgSvc(), "TileCosmicMuonContainerCnv" );
28 
30  TileCosmicMuonContainer_PERS *persObj = cnv.createPersistent( transCont, msg );
31 
32  if (msg.level()<=MSG::DEBUG)
33  msg << MSG::DEBUG << "::createPersistent [Success]" << endmsg;
34  return persObj;
35 }
36 
38 
39  MsgStream msg( msgSvc(), "TileCosmicMuonContainerCnv" );
40 
41  TileCosmicMuonContainer *transObj = 0;
42 
43  static const pool::Guid tr_guid("81711CFC-C75C-49F4-BA12-31D6FAA2D93");
44  static const pool::Guid p0_guid("51A1E48E-5D5D-4491-85D0-3EFCCEBA5253"); //old before T/P
45  static const pool::Guid p1_guid("716F406D-8F59-4879-AA07-C28BA374E6EF");
46  static const pool::Guid p2_guid("8957FF04-12E8-43BA-A0C8-D7D9638E242E");
47 
48  if ( compareClassGuid(tr_guid) ) {
49 
50  // regular object from before the T/P separation
51  return poolReadObject<TileCosmicMuonContainer>();
52 
53  } else if ( compareClassGuid(p1_guid) ) {
54 
55  // using unique_ptr ensures deletion of the persistent object
56  std::unique_ptr<TileCosmicMuonContainer_p1> persObj( poolReadObject<TileCosmicMuonContainer_p1>() );
58  transObj = cnv.createTransient( persObj.get(), msg );
59  } else if ( compareClassGuid(p2_guid) ) {
60 
61  // using unique_ptr ensures deletion of the persistent object
62  std::unique_ptr<TileCosmicMuonContainer_p2> persObj( poolReadObject<TileCosmicMuonContainer_p2>() );
64  transObj = cnv.createTransient( persObj.get(), msg );
65  } else {
66  throw std::runtime_error("Unsupported persistent version of TileCosmicMuonContainer");
67  }
68 
69  return transObj;
70 }
TileCosmicMuonContainerCnv_p1.h
TileCosmicMuonContainerCnv::createPersistent
virtual TileCosmicMuonContainer_PERS * createPersistent(TileCosmicMuonContainer *transCont)
Build the persistent representation from the transient one.
Definition: TileCosmicMuonContainerCnv.cxx:25
TPPolyCnvBase::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
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
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
TileCosmicMuonContainerCnv.h
TileCosmicMuonContainerCnv::createTransient
virtual TileCosmicMuonContainer * createTransient()
Build the transient representation from a persistent one.
Definition: TileCosmicMuonContainerCnv.cxx:37
TileCosmicMuonContainerCnv_p2.h
DEBUG
#define DEBUG
Definition: page_access.h:11
TPCnvVector
Definition: TPConverter.h:1256
TileCosmicMuonContainer_p2
Definition: TileCosmicMuonContainer_p2.h:19
T_AthenaPoolCustCnv< TileCosmicMuonContainer, TileCosmicMuonContainer_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