ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
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
9
TrackRecordCollection_PERS
*
TrackRecordCollectionCnv::createPersistent
(
TrackRecordCollection
* transCont) {
10
MsgStream mlog(msgSvc(),
"TrackRecordCollectionConverter"
);
11
TrackRecordCollectionCnv_p2
converter;
12
TrackRecordCollection_PERS
*persObj = converter.
createPersistent
( transCont, mlog );
13
return
persObj;
14
}
15
16
17
TrackRecordCollection
*
TrackRecordCollectionCnv::createTransient
(
const
Token
* token) {
18
19
MsgStream mlog(msgSvc(),
"TrackRecordCollectionConverter"
);
20
TrackRecordCollectionCnv_p1
converter;
21
TrackRecordCollectionCnv_p2
converter_p2;
22
TrackRecordCollection
*trans_cont(0);
23
24
// GUIDs are here:
25
static
const
Guid
p1_guid(
"1B1EEE3B-4647-41B4-B1D4-495DF77F0D3C"
);
26
static
const
Guid
p2_guid(
"22D044AD-A13A-42BF-B2A4-BDAF5BE2D819"
);
27
28
if
( this->
compareClassGuid
(token, p1_guid)) {
29
std::unique_ptr< TrackRecordCollection_p1 > col_vect( this->
poolReadObject< TrackRecordCollection_p1 >
(token) );
30
trans_cont = converter.
createTransient
( col_vect.get(), mlog );
31
}
32
// New _p2 version faster and smaller
33
else
if
( this->
compareClassGuid
(token, p2_guid)) {
34
std::unique_ptr< TrackRecordCollection_p2 > col_vect( this->
poolReadObject< TrackRecordCollection_p2 >
(token) );
35
trans_cont = converter_p2.
createTransient
( col_vect.get(), mlog );
36
}
37
else
38
{
39
throw
std::runtime_error(
"Unsupported persistent version of Data container"
);
40
}
41
return
trans_cont;
42
}
43
44
TrackRecordCollectionCnv.h
TrackRecordCollection_PERS
TrackRecordCollection_p2 TrackRecordCollection_PERS
Definition
TrackRecordCollectionCnv.h:15
TrackRecordCollectionCnv_p1.h
TrackRecordCollectionCnv_p1
TPCnvStdVectorConst< TrackRecordCollection, TrackRecordCollection_p1, TrackRecordCnv_p1 > TrackRecordCollectionCnv_p1
Definition
TrackRecordCollectionCnv_p1.h:10
TrackRecordCollectionCnv_p2.h
TrackRecordCollectionCnv_p2
T_AtlasHitsVectorCnv< TrackRecordCollection, TrackRecordCollection_p2, TrackRecordCnv_p1 > TrackRecordCollectionCnv_p2
Definition
TrackRecordCollectionCnv_p2.h:13
TrackRecordCollection
AtlasHitsVector< TrackRecord > TrackRecordCollection
Definition
TrackRecordCollection.h:12
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
TPAbstractPolyCnvBase< TRANS, TRANS, PERS >::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
TPPolyCnvBase< TRANS, TRANS, PERS >::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
T_AthenaPoolCustomCnv< TrackRecordCollection, TrackRecordCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< TrackRecordCollection, TrackRecordCollection_PERS >::poolReadObject
P * poolReadObject(const Token *token)
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
TrackRecordCollectionCnv::createPersistent
TrackRecordCollection_PERS * createPersistent(TrackRecordCollection *transCont)
Definition
TrackRecordCollectionCnv.cxx:9
TrackRecordCollectionCnv::createTransient
TrackRecordCollection * createTransient(const Token *token)
Definition
TrackRecordCollectionCnv.cxx:17
Generated on
for ATLAS Offline Software by
1.17.0