ATLAS Offline Software
TrackRecordCollectionCnv.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
9 
11 
13  MsgStream mlog(msgSvc(), "TrackRecordCollectionConverter" );
15  TrackRecordCollection_PERS *persObj = converter.createPersistent( transCont, mlog );
16  return persObj;
17 }
18 
19 
21 
22  MsgStream mlog(msgSvc(), "TrackRecordCollectionConverter" );
24  TrackRecordCollectionCnv_p2 converter_p2;
25  TrackRecordCollection *trans_cont(0);
26 
27  // GUIDs are here:
28  static const pool::Guid p1_guid("1B1EEE3B-4647-41B4-B1D4-495DF77F0D3C");
29  static const pool::Guid p2_guid("22D044AD-A13A-42BF-B2A4-BDAF5BE2D819");
30  static const pool::Guid old_guid("0F77F941-6019-4FE5-B6F4-E90BE9F7ACC9");
31 
32  if( this->compareClassGuid(p1_guid)) {
33  std::unique_ptr< TrackRecordCollection_p1 > col_vect( this->poolReadObject< TrackRecordCollection_p1 >() );
34  trans_cont = converter.createTransient( col_vect.get(), mlog );
35  }
36  else if( this->compareClassGuid(old_guid)) {
37  // old version from before TP separation
38  TrackRecordCollection_p0 *oldObj = this->poolReadObject<TrackRecordCollection_p0>();
39  trans_cont = oldObj;
40  }
41  // New _p2 version faster and smaller
42  else if( this->compareClassGuid(p2_guid)) {
43  std::unique_ptr< TrackRecordCollection_p2 > col_vect( this->poolReadObject< TrackRecordCollection_p2 >() );
44  trans_cont = converter_p2.createTransient( col_vect.get(), mlog );
45  }
46  else
47  {
48  throw std::runtime_error("Unsupported persistent version of Data container");
49  }
50  return trans_cont;
51 }
52 
53 
TrackRecordCollection_p0
AtlasHitsVector< TrackRecord > TrackRecordCollection_p0
Definition: TrackRecordCollectionCnv.cxx:10
TPPolyCnvBase::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
Create transient representation of a persistent object.
AtlasHitsVector
Definition: AtlasHitsVector.h:33
TrackRecordCollectionCnv.h
TrackRecordCollectionCnv_p1.h
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
TrackRecordCollectionCnv::createTransient
TrackRecordCollection * createTransient()
Definition: TrackRecordCollectionCnv.cxx:20
python.InDetPriVxFinderConfig.mlog
mlog
Definition: InDetPriVxFinderConfig.py:134
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
TrackRecordCollectionCnv::createPersistent
TrackRecordCollection_PERS * createPersistent(TrackRecordCollection *transCont)
Definition: TrackRecordCollectionCnv.cxx:12
TrackRecordCollection_p2
Definition: TrackRecordCollection_p2.h:21
TrackRecordCollectionCnv_p2.h
T_AtlasHitsVectorCnv
Definition: TPConverter.h:1234
TPCnvStdVectorConst
Const version of TPCnvStdVector.
Definition: TPConverter.h:1308
T_AthenaPoolCustCnv< TrackRecordCollection, TrackRecordCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Guid &clid) const
Compare POOL class GUID with the one of the object being read.
TrackRecord_p0.h