ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
AnalysisCommon
ParticleEventTPCnv
src
INav4MomToTrackParticleAssocsCnv_p1.cxx
Go to the documentation of this file.
1
2
3
/*
4
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// INav4MomToTrackParticleAssocsCnv_p1.cxx
8
// Implementation file for class INav4MomToTrackParticleAssocsCnv_p1
9
// Author: Karsten Koeneke
11
12
13
// STL includes
14
15
// Framework includes
16
#include "GaudiKernel/MsgStream.h"
17
18
// NavFourMom includes
19
#include "
Particle/TrackParticleContainer.h
"
20
#include "
ParticleEvent/INav4MomToTrackParticleAssocs.h
"
21
22
// EventCommonTPCnv includes
23
#include "
ParticleEventTPCnv/INav4MomToTrackParticleAssocsCnv_p1.h
"
24
25
// some useful typedefs
26
typedef
INav4MomToTrackParticleAssocs::object_link
INav4MomLink_t
;
27
typedef
INav4MomToTrackParticleAssocs::asso_link
TrackParticleLink_t
;
28
29
30
#define LOG_MSG(log,lvl,msg) \
31
log << lvl; \
32
if( log.level() <= lvl ) log << lvl << msg << endmsg
33
34
void
35
INav4MomToTrackParticleAssocsCnv_p1::persToTrans
(
const
INav4MomToTrackParticleAssocs_p1
* pers,
36
INav4MomToTrackParticleAssocs
* trans,
37
MsgStream&
msg
)
const
38
{
39
LOG_MSG
(
msg
, MSG::DEBUG,
"Loading INav4MomToTrackParticleAssocs from persistent state..."
);
40
41
*trans =
INav4MomToTrackParticleAssocs
();
42
43
// retrieve underlying association stores
44
for
( INav4MomToTrackParticleAssocs_p1::TrackParticleStores_t::const_iterator
45
i = pers->
m_assocStores
.begin(),
46
iEnd = pers->
m_assocStores
.end();
47
i != iEnd;
48
++i )
49
{
50
IAssocStoresCnv_t::DLink_t
dlink;
51
m_assocStoresCnv
.persToTrans( &*i, &dlink,
msg
);
52
trans->
addAssocStore
(dlink);
53
}
54
55
for
( std::size_t i = 0, iEnd = pers->
m_assocs
.size(); i != iEnd; ++i )
56
{
57
const
ElementLinkInt_p3
& key = pers->
m_assocs
[i].first;
58
const
INav4MomToTrackParticleAssocs_p1::ElemLinkVect_t
& val = pers->
m_assocs
[i].second;
59
60
INav4MomLink_t
k;
61
m_inav4MomLinkCnv
.persToTrans( &key, &k,
msg
);
62
//unpack only if valid
63
if
(k.isValid())
64
{
65
for
( std::size_t j = 0, jEnd = val.size(); j != jEnd; ++j )
66
{
67
TrackParticleLink_t
assocLink;
68
m_TrackParticleLinkCnv
.persToTrans( &val[j], &assocLink,
msg
);
69
trans->
addAssociation
(k, assocLink);
70
}
71
}
72
}
73
LOG_MSG
(
msg
, MSG::DEBUG,
"Loaded INav4MomToTrackParticleAssocs from persistent state [OK]"
);
74
return
;
75
}
76
77
78
void
79
INav4MomToTrackParticleAssocsCnv_p1::transToPers
(
const
INav4MomToTrackParticleAssocs
* trans,
80
INav4MomToTrackParticleAssocs_p1
* pers,
81
MsgStream&
msg
)
const
82
{
83
LOG_MSG
(
msg
, MSG::DEBUG,
"Creating persistent state of INav4MomToTrackParticleAssocs..."
);
84
85
// retrieve underlying association stores
86
std::vector<DataLink<INav4MomToTrackParticleAssocs> > assocStores = trans->
getAssocStores
();
87
pers->
m_assocStores
.resize( assocStores.size() );
88
std::size_t j = 0;
89
for
(
const
DataLink<INav4MomToTrackParticleAssocs>
& l : assocStores) {
90
m_assocStoresCnv
.transToPers( &l, &pers->
m_assocStores
[j],
msg
);
91
++j;
92
}
93
94
j = 0;
95
pers->
m_assocs
.resize( trans->
size
() );
96
INav4MomToTrackParticleAssocs::object_iterator
begObj = trans->
beginObject
();
97
INav4MomToTrackParticleAssocs::object_iterator
endObj = trans->
endObject
();
98
for
(; begObj != endObj; ++begObj)
99
{
100
const
INav4MomLink_t
& key = begObj.getObjectLink();
101
INav4MomToTrackParticleAssocs_p1::AssocElem_t
& persAssoc = pers->
m_assocs
[j];
102
m_inav4MomLinkCnv
.transToPers( &key, &persAssoc.first,
msg
);
103
persAssoc.second.resize( begObj.getNumberOfAssociations() );
104
105
INav4MomToTrackParticleAssocs::asso_iterator
begAsso = begObj.getFirstAssociation();
106
INav4MomToTrackParticleAssocs::asso_iterator
endAsso = begObj.getLastAssociation();
107
size_t
i = 0;
108
for
(; begAsso != endAsso; ++begAsso) {
109
const
INav4MomToTrackParticleAssocs::asso_link
asso = begAsso.getLink();
110
m_TrackParticleLinkCnv
.transToPers( &asso, &persAssoc.second[i],
msg
);
111
++i;
112
}
113
114
++j;
115
}
116
117
LOG_MSG
(
msg
, MSG::DEBUG,
"Created persistent state of INav4MomToTrackParticleAssocs [OK]"
);
118
return
;
119
}
ElementLinkInt_p3
ElementLink_p3< uint32_t > ElementLinkInt_p3
Definition
ElementLink_p3.h:35
INav4MomLink_t
INav4MomAssocs::object_link INav4MomLink_t
Definition
INav4MomAssocsCnv_p2.cxx:28
LOG_MSG
#define LOG_MSG(log, lvl, msg)
Definition
INav4MomAssocsCnv_p3.cxx:31
TrackParticleLink_t
INav4MomToTrackParticleAssocs::asso_link TrackParticleLink_t
Definition
INav4MomToTrackParticleAssocsCnv_p1.cxx:27
INav4MomToTrackParticleAssocsCnv_p1.h
INav4MomToTrackParticleAssocs.h
TrackParticleContainer.h
AssociationMap< INavigable4MomentumCollection, Rec::TrackParticleContainer >::object_iterator
AssociationObjectIterator object_iterator
Definition
AssociationMap.h:84
AssociationMap< INavigable4MomentumCollection, Rec::TrackParticleContainer >::asso_link
ElementLink< asso_container_type > asso_link
Definition
AssociationMap.h:60
AssociationMap::size
size_t size()
get number of associations
Definition
AssociationMap.h:188
AssociationMap::endObject
object_iterator endObject() const
end iterator for objects
AssociationMap< INavigable4MomentumCollection, Rec::TrackParticleContainer >::asso_iterator
AssociationVectorIterator asso_iterator
Definition
AssociationMap.h:81
AssociationMap< INavigable4MomentumCollection, Rec::TrackParticleContainer >::object_link
ElementLink< object_container_type > object_link
Definition
AssociationMap.h:50
AssociationMap::addAssociation
void addAssociation(const object_container_type *objectContainer, const object_index_type &objectIndex, const asso_container_type *assoContainer, const asso_index_type &assoIndex)
AssociationMap::beginObject
object_iterator beginObject() const
begin iterator for objects
DataLinkCnv_p2< DataLink< INav4MomToTrackParticleAssocs > >::DLink_t
DataLink< INav4MomToTrackParticleAssocs > DLink_t
Definition
DataLinkCnv_p2.h:29
DataLink
Object reference supporting deferred reading from StoreGate.
Definition
AthLinks/DataLink.h:93
INav4MomToTrackParticleAssocsCnv_p1::m_TrackParticleLinkCnv
TrackParticleCnv_t m_TrackParticleLinkCnv
converter for ElementLink to TrackParticleCollection
Definition
INav4MomToTrackParticleAssocsCnv_p1.h:88
INav4MomToTrackParticleAssocsCnv_p1::m_inav4MomLinkCnv
INav4MomCnv_t m_inav4MomLinkCnv
converter for ElementLink to INavigable4MomentumCollection
Definition
INav4MomToTrackParticleAssocsCnv_p1.h:85
INav4MomToTrackParticleAssocsCnv_p1::m_assocStoresCnv
IAssocStoresCnv_t m_assocStoresCnv
converter for DataLink to INav4MomAssocs
Definition
INav4MomToTrackParticleAssocsCnv_p1.h:91
INav4MomToTrackParticleAssocsCnv_p1::persToTrans
virtual void persToTrans(const INav4MomToTrackParticleAssocs_p1 *pers, INav4MomToTrackParticleAssocs *trans, MsgStream &msg) const override
Method creating the transient representation of INav4MomToTrackParticleAssocs from its persistent rep...
Definition
INav4MomToTrackParticleAssocsCnv_p1.cxx:35
INav4MomToTrackParticleAssocsCnv_p1::transToPers
virtual void transToPers(const INav4MomToTrackParticleAssocs *trans, INav4MomToTrackParticleAssocs_p1 *pers, MsgStream &msg) const override
Method creating the persistent representation INav4MomToTrackParticleAssocs_p1 from its transient rep...
Definition
INav4MomToTrackParticleAssocsCnv_p1.cxx:79
INav4MomToTrackParticleAssocs_p1
Definition
INav4MomToTrackParticleAssocs_p1.h:27
INav4MomToTrackParticleAssocs_p1::AssocElem_t
std::pair< ElementLinkInt_p3, ElemLinkVect_t > AssocElem_t
Definition
INav4MomToTrackParticleAssocs_p1.h:41
INav4MomToTrackParticleAssocs_p1::m_assocs
Assocs_t m_assocs
Definition
INav4MomToTrackParticleAssocs_p1.h:62
INav4MomToTrackParticleAssocs_p1::m_assocStores
TrackParticleStores_t m_assocStores
Definition
INav4MomToTrackParticleAssocs_p1.h:63
INav4MomToTrackParticleAssocs_p1::ElemLinkVect_t
std::vector< ElementLinkInt_p3 > ElemLinkVect_t
Definition
INav4MomToTrackParticleAssocs_p1.h:40
INav4MomToTrackParticleAssocs
Definition
INav4MomToTrackParticleAssocs.h:35
INav4MomToTrackParticleAssocs::getAssocStores
std::vector< DataLink< INav4MomToTrackParticleAssocs > > getAssocStores() const
Return links to all other association stores.
Definition
INav4MomToTrackParticleAssocs.cxx:203
INav4MomToTrackParticleAssocs::addAssocStore
void addAssocStore(const DataLink< INav4MomToTrackParticleAssocs > &assocStore)
Definition
INav4MomToTrackParticleAssocs.cxx:176
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0