ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetEventCnv
InDetSimEventAthenaPool
src
TRTUncompressedHitCollectionCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
InDetSimEventTPCnv/InDetHits/TRT_HitCollectionCnv_p1.h
"
6
#include "
InDetSimEventTPCnv/InDetHits/TRT_HitCollectionCnv_p2.h
"
7
#include "
InDetSimEventTPCnv/InDetHits/TRT_HitCollectionCnv_p3.h
"
8
#include "
InDetSimEventTPCnv/InDetHits/TRT_HitCollectionCnv_p4.h
"
9
#include "
InDetSimEventTPCnv/InDetHits/TRT_HitCollectionCnv_p5.h
"
10
#include "
TRTUncompressedHitCollectionCnv.h
"
11
#include "
InDetSimEventTPCnv/InDetHits/TRT_Hit_p1.h
"
12
#include "
InDetSimEventTPCnv/InDetHits/TRT_Hit_p2.h
"
13
14
15
TRT_HitCollection_PERS
*
TRTUncompressedHitCollectionCnv::createPersistent
(
TRTUncompressedHitCollection
* transCont) {
16
MsgStream mlog(msgSvc(),
"TRT_HitCollectionConverter"
);
17
TRT_HitCollectionCnv_PERS
converter;
18
TRT_HitCollection_PERS
*persObj = converter.
createPersistent
( transCont, mlog );
19
return
persObj;
20
}
21
22
23
TRTUncompressedHitCollection
*
TRTUncompressedHitCollectionCnv::createTransient
(
const
Token
* token) {
24
MsgStream mlog(msgSvc(),
"TRT_HitCollectionConverter"
);
25
TRT_HitCollectionCnv_p1
converter_p1;
26
TRT_HitCollectionCnv_p2
converter_p2;
27
TRT_HitCollectionCnv_p3
converter_p3;
28
TRT_HitCollectionCnv_p4
converter_p4;
29
TRT_HitCollectionCnv_p5
converter_p5;
30
static
const
Guid
p1_guid(
"6688E934-157E-421A-B6D1-A35FC8BD651C"
);
31
static
const
Guid
p2_guid(
"473FF621-3466-4D87-9469-4780A6A77023"
);
32
static
const
Guid
p3_guid(
"FB5F5BFC-43E5-44E1-B79C-C330C1480E2E"
);
33
static
const
Guid
p4_guid(
"73BECF03-4C45-491E-A973-A1C4402AD018"
);
34
static
const
Guid
p5_guid(
"018E1E3D-8B69-7BDF-B1E9-D5D09F3CF750"
);
35
static
const
Guid
old_guid(
"35722E01-C4E3-420E-8A7E-E375C5E7989D"
);
36
37
38
TRTUncompressedHitCollection
*trans_cont(
nullptr
);
39
if
( this->
compareClassGuid
(token, p4_guid)) {
40
std::unique_ptr< TRT_HitCollection_p4 > col_vect( this->
poolReadObject< TRT_HitCollection_p4 >
(token) );
41
trans_cont = converter_p4.
createTransient
( col_vect.get(), mlog );
42
}
43
else
if
( this->
compareClassGuid
(token, p1_guid)) {
44
std::unique_ptr< TRT_HitCollection_p1 > col_vect( this->
poolReadObject< TRT_HitCollection_p1 >
(token) );
45
trans_cont = converter_p1.
createTransient
( col_vect.get(), mlog );
46
}
47
else
if
( this->
compareClassGuid
(token, p2_guid)) {
48
std::unique_ptr< TRT_HitCollection_p2 > col_vect( this->
poolReadObject< TRT_HitCollection_p2 >
(token) );
49
trans_cont = converter_p2.
createTransient
( col_vect.get(), mlog );
50
}
51
else
if
( this->
compareClassGuid
(token, p3_guid)) {
52
std::unique_ptr< TRT_HitCollection_p3 > col_vect( this->
poolReadObject< TRT_HitCollection_p3 >
(token) );
53
trans_cont = converter_p3.
createTransient
( col_vect.get(), mlog );
54
}
55
else
if
( this->
compareClassGuid
(token, p5_guid)) {
56
std::unique_ptr< TRT_HitCollection_p5 > col_vect( this->
poolReadObject< TRT_HitCollection_p5 >
(token) );
57
trans_cont = converter_p5.
createTransient
( col_vect.get(), mlog );
58
}
59
else
if
( this->
compareClassGuid
(token, old_guid)) {
60
// old version from before TP separation - convert to new transient format
61
AthenaHitsVector<TRTUncompressedHit>
* oldColl = this->
poolReadObject< AthenaHitsVector<TRTUncompressedHit>
>(token);
62
size_t
size
= oldColl->
size
();
63
trans_cont=
new
TRTUncompressedHitCollection
(
"DefaultCollectionName"
,
size
);
64
//do the copy
65
for
(
TRTUncompressedHit
*
hit
: *oldColl) {
66
trans_cont->
push_back
(*
hit
);
67
}
68
delete
oldColl;
69
}
else
{
70
throw
std::runtime_error(
"Unsupported persistent version of Data container"
);
71
}
72
return
trans_cont;
73
}
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
size
size_t size() const
Number of registered mappings.
TRTUncompressedHitCollectionCnv.h
TRT_HitCollectionCnv_PERS
TRT_HitCollectionCnv_p4 TRT_HitCollectionCnv_PERS
Definition
TRTUncompressedHitCollectionCnv.h:31
TRT_HitCollection_PERS
TRT_HitCollection_p4 TRT_HitCollection_PERS
Definition
TRTUncompressedHitCollectionCnv.h:30
TRTUncompressedHitCollection
AtlasHitsVector< TRTUncompressedHit > TRTUncompressedHitCollection
Definition
TRTUncompressedHitCollection.h:16
TRT_HitCollectionCnv_p1.h
TRT_HitCollectionCnv_p1
T_AtlasHitsVectorCnv< TRTUncompressedHitCollection, TRT_HitCollection_p1, TRT_HitCnv_p1 > TRT_HitCollectionCnv_p1
Definition
TRT_HitCollectionCnv_p1.h:10
TRT_HitCollectionCnv_p2.h
TRT_HitCollectionCnv_p3.h
TRT_HitCollectionCnv_p4.h
TRT_HitCollectionCnv_p5.h
TRT_Hit_p1.h
TRT_Hit_p2.h
AthenaHitsVector
Definition
AthenaHitsVector.h:87
AthenaHitsVector::size
size_type size() const
Definition
AthenaHitsVector.h:199
AtlasHitsVector::push_back
void push_back(const T &t)
Definition
AtlasHitsVector.h:144
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
TPAbstractPolyCnvBase::createPersistent
virtual PERS * createPersistent(const TRANS *transObj, MsgStream &log)
Create persistent representation of a transient object.
TPPolyCnvBase< TRANS, TRANS, PERS >::createTransient
virtual TRANS * createTransient(const PERS *persObj, MsgStream &log)
TRTUncompressedHitCollectionCnv::createTransient
TRTUncompressedHitCollection * createTransient(const Token *token)
Definition
TRTUncompressedHitCollectionCnv.cxx:23
TRTUncompressedHitCollectionCnv::createPersistent
TRT_HitCollection_PERS * createPersistent(TRTUncompressedHitCollection *transCont)
Definition
TRTUncompressedHitCollectionCnv.cxx:15
TRTUncompressedHit
Definition
TRTUncompressedHit.h:11
TRT_HitCollectionCnv_p2
Definition
TRT_HitCollectionCnv_p2.h:17
TRT_HitCollectionCnv_p2::createTransient
virtual TRTUncompressedHitCollection * createTransient(const TRT_HitCollection_p2 *persObj, MsgStream &log)
Definition
TRT_HitCollectionCnv_p2.cxx:123
TRT_HitCollectionCnv_p3
Definition
TRT_HitCollectionCnv_p3.h:17
TRT_HitCollectionCnv_p3::createTransient
virtual TRTUncompressedHitCollection * createTransient(const TRT_HitCollection_p3 *persObj, MsgStream &log)
Definition
TRT_HitCollectionCnv_p3.cxx:281
TRT_HitCollectionCnv_p4
Definition
TRT_HitCollectionCnv_p4.h:17
TRT_HitCollectionCnv_p4::createTransient
virtual TRTUncompressedHitCollection * createTransient(const TRT_HitCollection_p4 *persObj, MsgStream &log)
Definition
TRT_HitCollectionCnv_p4.cxx:302
TRT_HitCollectionCnv_p5
Definition
TRT_HitCollectionCnv_p5.h:14
TRT_HitCollectionCnv_p5::createTransient
virtual TRTUncompressedHitCollection * createTransient(const TRT_HitCollection_p5 *persObj, MsgStream &log)
Definition
TRT_HitCollectionCnv_p5.cxx:301
T_AthenaPoolCustomCnv< TRTUncompressedHitCollection, TRT_HitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< TRTUncompressedHitCollection, TRT_HitCollection_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
Generated on
for ATLAS Offline Software by
1.17.0