ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileSvc
TileSimEventAthenaPool
src
TileHitVectorCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TileSimEventTPCnv/TileHitVectorCnv_p1.h
"
6
#include "
TileHitVectorCnv.h
"
7
#include "
TileSimEventTPCnv/TileHit_p1.h
"
8
9
10
TileHitVector_PERS
*
TileHitVectorCnv::createPersistent
(
TileHitVector
* transCont) {
11
MsgStream mlog(msgSvc(),
"TileHitVectorConverter"
);
12
TileHitVectorCnv_p1
converter;
13
TileHitVector_PERS
*persObj = converter.
createPersistent
( transCont, mlog );
14
return
persObj;
15
}
16
17
18
TileHitVector
*
TileHitVectorCnv::createTransient
(
const
Token
* token) {
19
20
MsgStream mlog(msgSvc(),
"TileHitVectorConverter"
);
21
TileHitVectorCnv_p1
converter_p1;
22
23
TileHitVector
* trans_cont(0);
24
25
static
const
Guid
p1_guid(
"65AD597A-BF97-46EE-B9E3-203B35218EA7"
);
26
static
const
Guid
p0_guid(
"EA2209D1-C339-453D-AEAD-21C026F0735E"
);
27
28
if
( this->
compareClassGuid
(token, p1_guid)) {
29
30
std::unique_ptr< TileHitVector_p1 > col_vect( this->
poolReadObject< TileHitVector_p1 >
(token) );
31
trans_cont = converter_p1.
createTransient
( col_vect.get(), mlog );
32
33
}
else
if
( this->
compareClassGuid
(token, p0_guid)) {
34
35
// old version from before TP separation
36
TileOldHitVector
* oldVec = this->
poolReadObject<TileOldHitVector>
(token);
37
size_t
size
= oldVec->
size
();
38
trans_cont =
new
TileHitVector
();
39
trans_cont->
reserve
(
size
);
40
// copy all hits to new vector
41
42
for
(
TileHit
*
hit
: *oldVec) {
43
trans_cont->
push_back
(*
hit
);
44
}
45
46
delete
oldVec;
47
48
}
else
{
49
throw
std::runtime_error(
"Unsupported persistent version of Data container"
);
50
}
51
52
return
trans_cont;
53
}
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
size
size_t size() const
Number of registered mappings.
TileHitVectorCnv.h
TileHitVector_PERS
TileHitVector_p1 TileHitVector_PERS
Definition
TileHitVectorCnv.h:15
TileHitVectorCnv_p1.h
TileHitVector
AtlasHitsVector< TileHit > TileHitVector
Definition
TileHitVector.h:28
TileOldHitVector
AthenaHitsVector< TileHit > TileOldHitVector
Definition
TileHitVector.h:26
TileHit_p1.h
AthenaHitsVector::size
size_type size() const
Definition
AthenaHitsVector.h:199
AtlasHitsVector::push_back
void push_back(const T &t)
Definition
AtlasHitsVector.h:144
AtlasHitsVector::reserve
void reserve(size_type n)
Definition
AtlasHitsVector.h:157
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)
T_AthenaPoolCustomCnv< TileHitVector, TileHitVector_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< TileHitVector, TileHitVector_PERS >::poolReadObject
P * poolReadObject(const Token *token)
TileHitVectorCnv_p1
Definition
TileHitVectorCnv_p1.h:13
TileHitVectorCnv_p1::createTransient
virtual TileHitVector * createTransient(const TileHitVector_p1 *persObj, MsgStream &log)
Create transient representation of a persistent object.
Definition
TileHitVectorCnv_p1.cxx:15
TileHitVectorCnv::createPersistent
TileHitVector_PERS * createPersistent(TileHitVector *transCont)
Definition
TileHitVectorCnv.cxx:10
TileHitVectorCnv::createTransient
TileHitVector * createTransient(const Token *token)
Definition
TileHitVectorCnv.cxx:18
TileHit
Definition
TileSimEvent/TileSimEvent/TileHit.h:30
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