ATLAS Offline Software
Simulation
G4SimCnv
G4SimAthenaPOOL
src
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
5
#include "
G4SimTPCnv/TrackRecordCollectionCnv_p1.h
"
6
#include "
G4SimTPCnv/TrackRecordCollectionCnv_p2.h
"
7
#include "
TrackRecordCollectionCnv.h
"
8
#include "
G4SimTPCnv/TrackRecord_p0.h
"
9
10
typedef
AtlasHitsVector<TrackRecord>
TrackRecordCollection_p0
;
11
12
TrackRecordCollection_PERS
*
TrackRecordCollectionCnv::createPersistent
(
TrackRecordCollection
* transCont) {
13
MsgStream
mlog
(
msgSvc
(),
"TrackRecordCollectionConverter"
);
14
TrackRecordCollectionCnv_p2
converter;
15
TrackRecordCollection_PERS
*persObj = converter.
createPersistent
( transCont,
mlog
);
16
return
persObj;
17
}
18
19
20
TrackRecordCollection
*
TrackRecordCollectionCnv::createTransient
() {
21
22
MsgStream
mlog
(
msgSvc
(),
"TrackRecordCollectionConverter"
);
23
TrackRecordCollectionCnv_p1
converter;
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
Generated on Tue Jul 2 2024 21:30:00 for ATLAS Offline Software by
1.8.18