ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TileCalorimeter
TileSvc
TileEventAthenaPool
src
TileHitContainerCnv.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 "
TileTPCnv/TileHitContainerCnv_p1.h
"
6
#include "
TileHitContainerCnv.h
"
7
// Gaudi
8
#include "GaudiKernel/MsgStream.h"
9
10
TileHitContainer_PERS
*
TileHitContainerCnv::createPersistent
(
TileHitContainer
* transCont) {
11
MsgStream mlog(msgSvc(),
"TileHitContainerConverter"
);
12
TileHitContainerCnv_p1
converter;
13
TileHitContainer_PERS
*persObj = converter.
createPersistent
( transCont, mlog );
14
return
persObj;
15
}
16
17
TileHitContainer
*
TileHitContainerCnv::createTransient
(
const
Token
* token) {
18
MsgStream mlog(msgSvc(),
"TileHitContainerConverter"
);
19
TileHitContainerCnv_p1
converter_p1;
20
21
TileHitContainer
*trans_cont(0);
22
23
static
const
Guid
p1_guid(
"E347580F-BBF0-441E-A799-9AC0256F69DF"
);
24
static
const
Guid
p0_guid(
"704A373C-EA65-4721-A9B8-F577B683699E"
);
25
26
if
( this->
compareClassGuid
(token, p1_guid)) {
27
std::unique_ptr< TileHitContainer_p1 > cont( this->
poolReadObject< TileHitContainer_p1 >
(token) );
28
trans_cont = converter_p1.
createTransient
( cont.get(), mlog );
29
}
30
else
if
( this->
compareClassGuid
(token, p0_guid)) {
31
// old version from before TP separation
32
TileHitCollectionVec
* rdoV = this->
poolReadObject<TileHitCollectionVec>
(token);
33
34
if
(mlog.level()<=MSG::DEBUG)
35
mlog << MSG::DEBUG <<
"Read IDC, size "
<< rdoV->
size
() <<
endmsg
;
36
37
// TileFragHash::TYPE type = rdoV->m_type;
38
39
// create the Tile IdentifiableContainer to contain the rdo collections
40
trans_cont =
new
TileHitContainer
(
false
,
SG::OWN_ELEMENTS
);
41
42
TileHitCollectionVec::iterator
it = rdoV->
begin
();
43
TileHitCollectionVec::iterator
last = rdoV->
end
();
44
45
for
(; it != last; ++it) {
46
47
TileHitCollection
* rdoColl = *it;
48
rdoColl->
setOwnership
(
SG::OWN_ELEMENTS
);
49
50
// register the rdo collection in StoreGate
51
TileHitCollection::ID
id_coll = rdoColl->
identify
();
52
StatusCode
sc
= trans_cont->
addCollection
(rdoColl,trans_cont->
hashFunc
()(id_coll));
53
if
(
sc
.isFailure()) {
54
mlog << MSG::ERROR <<
"Can't add collection "
<< id_coll <<
" to container "
<<
endmsg
;
55
}
56
}
57
delete
rdoV;
58
}
else
{
59
throw
std::runtime_error(
"Unsupported persistent version of Data container"
);
60
}
61
return
trans_cont;
62
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
TileHitContainerCnv.h
TileHitContainer_PERS
TileHitContainer_p1 TileHitContainer_PERS
Definition
TileHitContainerCnv.h:12
TileHitContainerCnv_p1.h
TileHitContainerCnv_p1
T_TilePoolContainerCnv< TileHitContainer, TileHitContainer_p1, TileHitCnv_p1 > TileHitContainerCnv_p1
Definition
TileHitContainerCnv_p1.h:27
DataVector< TileHitCollection >::iterator
DataModel_detail::iterator< DataVector > iterator
Definition
DataVector.h:842
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
Guid
This class provides a encapsulation of a GUID/UUID/CLSID/IID data structure (128 bit number).
Definition
Guid.h:25
IdentifiableContainerMT::addCollection
virtual StatusCode addCollection(const T *coll, IdentifierHash hashId) override final
insert collection into container with id hash if IDC should not take ownership of collection,...
Definition
IdentifiableContainerMT.h:306
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< TileHitContainer, TileHitContainer_PERS >::compareClassGuid
virtual bool compareClassGuid(const Token *token, const Guid &clid) const
T_AthenaPoolCustomCnv< TileHitContainer, TileHitContainer_PERS >::poolReadObject
P * poolReadObject(const Token *token)
TileHitCollectionVec
Definition
TileHitContainer.h:33
TileHitCollection
Definition
TileHitCollection.h:12
TileHitCollection::ID
MyBase::ID ID
Definition
TileHitCollection.h:17
TileHitContainerCnv::createTransient
TileHitContainer * createTransient(const Token *token)
Definition
TileHitContainerCnv.cxx:17
TileHitContainerCnv::createPersistent
TileHitContainer_PERS * createPersistent(TileHitContainer *transCont)
Definition
TileHitContainerCnv.cxx:10
TileHitContainer
Definition
TileHitContainer.h:13
TileRawDataCollection::setOwnership
void setOwnership(SG::OwnershipPolicy ownPolicy)
Definition
TileRawDataCollection.h:110
TileRawDataCollection::identify
ID identify() const
Definition
TileRawDataCollection.h:71
TileRawDataContainer::hashFunc
const TileFragHash & hashFunc() const
Definition
TileRawDataContainer.h:66
Token
This class provides a token that identifies in a unique way objects on the persistent storage.
Definition
Token.h:22
SG::OWN_ELEMENTS
@ OWN_ELEMENTS
this data object owns its elements
Definition
OwnershipPolicy.h:17
Generated on
for ATLAS Offline Software by
1.17.0