ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
InnerDetector
InDetEventCnv
InDetSimEventAthenaPool
src
SiHitCollectionCnv.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/SiHitCollectionCnv_p1.h
"
6
#include "
InDetSimEventTPCnv/InDetHits/SiHitCollectionCnv_p2.h
"
7
#include "
InDetSimEventTPCnv/InDetHits/SiHitCollectionCnv_p3.h
"
8
#include "
InDetSimEventTPCnv/InDetHits/SiHitCollectionCnv_p4.h
"
9
#include "
InDetSimEventTPCnv/InDetHits/SiHit_p1.h
"
10
#include "
InDetSimEventTPCnv/InDetHits/SiHit_p2.h
"
11
#include "
SiHitCollectionCnv.h
"
12
13
14
SiHitCollection_PERS
*
SiHitCollectionCnv::createPersistent
(
SiHitCollection
* transCont) {
15
MsgStream mlog(msgSvc(),
"SiHitCollectionConverter"
);
16
SiHitCollectionCnv_PERS
converter;
17
SiHitCollection_PERS
*persObj = converter.
createPersistent
( transCont, mlog );
18
return
persObj;
19
}
20
21
22
SiHitCollection
*
SiHitCollectionCnv::createTransient
(
const
Token
* token) {
23
MsgStream mlog(msgSvc(),
"SiHitCollectionConverter"
);
24
SiHitCollectionCnv_p1
converter_p1;
25
SiHitCollectionCnv_p2
converter_p2;
26
SiHitCollectionCnv_p3
converter_p3;
27
SiHitCollectionCnv_p4
converter_p4;
28
29
static
const
Guid
p1_guid(
"36D1FF8E-5734-4A93-A133-F286CF47DB72"
);
30
static
const
Guid
p2_guid(
"BD1469C5-C904-40B8-82B9-43D25888D884"
);
31
static
const
Guid
p3_guid(
"59E13FDA-2799-4362-8423-44D57F08734D"
);
32
static
const
Guid
p4_guid(
"018E1E2B-6C61-752E-B26D-6ABB05FBD4D9"
);
33
static
const
Guid
old_guid(
"1EC39DA3-14F9-4901-88C7-F6909B064574"
);
34
35
SiHitCollection
*trans_cont(
nullptr
);
36
if
( this->
compareClassGuid
(token, p3_guid)) {
37
std::unique_ptr< SiHitCollection_p3 > col_vect( this->
poolReadObject< SiHitCollection_p3 >
(token) );
38
trans_cont = converter_p3.
createTransient
( col_vect.get(), mlog );
39
}
40
else
if
( this->
compareClassGuid
(token, p1_guid)) {
41
std::unique_ptr< SiHitCollection_p1 > col_vect( this->
poolReadObject< SiHitCollection_p1 >
(token) );
42
trans_cont = converter_p1.
createTransient
( col_vect.get(), mlog );
43
}
44
else
if
( this->
compareClassGuid
(token, p2_guid)) {
// version p2
45
std::unique_ptr< SiHitCollection_p2 > col_vect( this->
poolReadObject< SiHitCollection_p2 >
(token) );
46
trans_cont = converter_p2.
createTransient
( col_vect.get(), mlog );
47
}
48
else
if
( this->
compareClassGuid
(token, p4_guid)) {
// version p4
49
std::unique_ptr< SiHitCollection_p4 > col_vect( this->
poolReadObject< SiHitCollection_p4 >
(token) );
50
trans_cont = converter_p4.
createTransient
( col_vect.get(), mlog );
51
}
52
else
if
( this->
compareClassGuid
(token, old_guid)) {
53
// old version from before TP separation, just return it
54
AthenaHitsVector<SiHit>
* oldColl = this->
poolReadObject< AthenaHitsVector<SiHit>
>(token);
55
size_t
size
= oldColl->
size
();
56
trans_cont=
new
SiHitCollection
(
"DefaultCollectionName"
,
size
);
57
//do the copy
58
for
(
SiHit
*
hit
: *oldColl) {
59
trans_cont->
push_back
(*
hit
);
60
}
61
delete
oldColl;
62
}
else
{
63
throw
std::runtime_error(
"Unsupported persistent version of Data container"
);
64
}
65
return
trans_cont;
66
}
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
SiHitCollectionCnv.h
SiHitCollectionCnv_PERS
SiHitCollectionCnv_p3 SiHitCollectionCnv_PERS
Definition
SiHitCollectionCnv.h:22
SiHitCollection_PERS
SiHitCollection_p3 SiHitCollection_PERS
Definition
SiHitCollectionCnv.h:21
SiHitCollectionCnv_p1.h
SiHitCollectionCnv_p1
T_AtlasHitsVectorCnv< SiHitCollection, SiHitCollection_p1, SiHitCnv_p1 > SiHitCollectionCnv_p1
Definition
SiHitCollectionCnv_p1.h:10
SiHitCollectionCnv_p2.h
SiHitCollectionCnv_p3.h
SiHitCollectionCnv_p4.h
SiHitCollection
AtlasHitsVector< SiHit > SiHitCollection
Definition
SiHitCollection.h:14
SiHit_p1.h
SiHit_p2.h
size
size_t size() const
Number of registered mappings.
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
SiHitCollectionCnv_p2
Definition
SiHitCollectionCnv_p2.h:17
SiHitCollectionCnv_p2::createTransient
virtual SiHitCollection * createTransient(const SiHitCollection_p2 *persObj, MsgStream &log)
Definition
SiHitCollectionCnv_p2.cxx:255
SiHitCollectionCnv_p3
Definition
SiHitCollectionCnv_p3.h:18
SiHitCollectionCnv_p3::createTransient
virtual SiHitCollection * createTransient(const SiHitCollection_p3 *persObj, MsgStream &log)
Definition
SiHitCollectionCnv_p3.cxx:276
SiHitCollectionCnv_p4
Definition
SiHitCollectionCnv_p4.h:14
SiHitCollectionCnv_p4::createTransient
virtual SiHitCollection * createTransient(const SiHitCollection_p4 *persObj, MsgStream &log)
Definition
SiHitCollectionCnv_p4.cxx:275
SiHitCollectionCnv::createPersistent
SiHitCollection_PERS * createPersistent(SiHitCollection *transCont)
Definition
SiHitCollectionCnv.cxx:14
SiHitCollectionCnv::createTransient
SiHitCollection * createTransient(const Token *token)
Definition
SiHitCollectionCnv.cxx:22
SiHit
Definition
SiHit.h:19
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)
T_AthenaPoolCustomCnv< SiHitCollection, SiHitCollection_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< SiHitCollection, SiHitCollection_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