ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
EventCommonTPCnv
src
INav4MomAssocsCnv_p3.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
// INav4MomAssocsCnv_p3.cxx
8
// Implementation file for class INav4MomAssocsCnv_p3
9
// Author: S.Binet<binet@cern.ch>
11
12
13
// STL includes
14
15
// Framework includes
16
#include "GaudiKernel/MsgStream.h"
17
18
// NavFourMom includes
19
#include "
NavFourMom/INavigable4MomentumCollection.h
"
20
#include "
NavFourMom/INav4MomAssocs.h
"
21
22
// EventCommonTPCnv includes
23
#include "
EventCommonTPCnv/INav4MomAssocsCnv_p3.h
"
24
25
#include "
AthenaKernel/getThinningCache.h
"
26
27
// some useful typedefs
28
typedef
INav4MomAssocs::object_link
INav4MomLink_t
;
29
30
31
#define LOG_MSG(log,lvl,msg) \
32
log << lvl; \
33
if( log.level() <= lvl ) log << lvl << msg << endmsg
34
35
void
36
INav4MomAssocsCnv_p3::persToTrans
(
const
INav4MomAssocs_p3
* pers,
37
INav4MomAssocs
*
trans
,
38
MsgStream&
msg
)
const
39
{
40
LOG_MSG
(
msg
, MSG::DEBUG,
"Loading INav4MomAssocs from persistent state..."
);
41
42
*
trans
=
INav4MomAssocs
();
43
44
// retrieve underlying association stores
45
for
( INav4MomAssocs_p3::INav4MomStores_t::const_iterator
46
i = pers->
m_assocStores
.begin(),
47
iEnd = pers->
m_assocStores
.end();
48
i != iEnd;
49
++i ) {
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
const
ElementLinkInt_p3
& key = pers->
m_assocs
[i].first;
57
const
INav4MomAssocs_p3::ElemLinkVect_t
& val = pers->
m_assocs
[i].second;
58
59
INav4MomLink_t
k;
60
m_inav4MomLinkCnv
.persToTrans( &key, &k,
msg
);
61
62
for
( std::size_t j = 0, jEnd = val.size(); j != jEnd; ++j ) {
63
INav4MomLink_t
assocLink;
64
m_inav4MomLinkCnv
.persToTrans( &val[j], &assocLink,
msg
);
65
trans
->addAssociation (k, assocLink);
66
}
67
}
68
69
LOG_MSG
(
msg
, MSG::DEBUG,
"Loaded INav4MomAssocs from persistent state [OK]"
);
70
return
;
71
}
72
73
74
void
75
INav4MomAssocsCnv_p3::transToPers
(
const
INav4MomAssocs
*
trans
,
76
INav4MomAssocs_p3
* pers,
77
MsgStream&
msg
)
const
78
{
79
LOG_MSG
(
msg
, MSG::DEBUG,
"Creating persistent state of INav4MomAssocs..."
);
80
81
// retrieve underlying association stores
82
std::vector<DataLink<INav4MomAssocs> > assocStores =
trans
->getAssocStores();
83
pers->
m_assocStores
.resize( assocStores.size() );
84
std::size_t j = 0;
85
for
(
const
DataLink<INav4MomAssocs>
& l : assocStores) {
86
m_assocStoresCnv
.transToPers( &l, &pers->
m_assocStores
[j],
msg
);
87
++j;
88
}
89
90
const
SG::ThinningCache
* cache =
SG::getThinningCache
();
91
92
j = 0;
93
pers->
m_assocs
.resize(
trans
->size() );
94
INav4MomAssocs::object_iterator
begObj =
trans
->beginObject();
95
INav4MomAssocs::object_iterator
endObj =
trans
->endObject();
96
for
(; begObj != endObj; ++begObj)
97
{
98
const
INav4MomLink_t
& key = begObj.getObjectLink();
99
INav4MomAssocs_p3::AssocElem_t
& persAssoc = pers->
m_assocs
[j];
100
m_inav4MomLinkCnv
.transToPers( key, persAssoc.first, cache,
msg
);
101
persAssoc.second.resize( begObj.getNumberOfAssociations() );
102
103
INav4MomAssocs::asso_iterator
begAsso = begObj.getFirstAssociation();
104
INav4MomAssocs::asso_iterator
endAsso = begObj.getLastAssociation();
105
size_t
i = 0;
106
for
(; begAsso != endAsso; ++begAsso) {
107
const
INav4MomAssocs::asso_link
asso = begAsso.getLink();
108
m_inav4MomLinkCnv
.transToPers( asso, persAssoc.second[i], cache,
msg
);
109
++i;
110
}
111
112
++j;
113
}
114
115
LOG_MSG
(
msg
, MSG::DEBUG,
"Created persistent state of INav4MomAssocs [OK]"
);
116
return
;
117
}
ElementLinkInt_p3
ElementLink_p3< uint32_t > ElementLinkInt_p3
Definition
ElementLink_p3.h:35
INav4MomAssocs
INav4MomAssocs
Definition
EventCommonTPCnv.cxx:32
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
INav4MomAssocsCnv_p3.h
INav4MomAssocs.h
INavigable4MomentumCollection.h
AssociationMap< INavigable4MomentumCollection, INavigable4MomentumCollection >::object_iterator
AssociationObjectIterator object_iterator
Definition
AssociationMap.h:84
AssociationMap< INavigable4MomentumCollection, INavigable4MomentumCollection >::asso_link
ElementLink< asso_container_type > asso_link
Definition
AssociationMap.h:60
AssociationMap< INavigable4MomentumCollection, INavigable4MomentumCollection >::asso_iterator
AssociationVectorIterator asso_iterator
Definition
AssociationMap.h:81
AssociationMap< INavigable4MomentumCollection, INavigable4MomentumCollection >::object_link
ElementLink< object_container_type > object_link
Definition
AssociationMap.h:50
DataLinkCnv_p2< DataLink< INav4MomAssocs > >::DLink_t
DataLink< INav4MomAssocs > DLink_t
Definition
DataLinkCnv_p2.h:29
DataLink
Object reference supporting deferred reading from StoreGate.
Definition
AthLinks/DataLink.h:93
INav4MomAssocsCnv_p3::m_assocStoresCnv
IAssocStoresCnv_t m_assocStoresCnv
converter for DataLink to INav4MomAssocs
Definition
INav4MomAssocsCnv_p3.h:81
INav4MomAssocsCnv_p3::persToTrans
virtual void persToTrans(const INav4MomAssocs_p3 *pers, INav4MomAssocs *trans, MsgStream &msg) const override
Method creating the transient representation of INav4MomAssocs from its persistent representation INa...
Definition
INav4MomAssocsCnv_p3.cxx:36
INav4MomAssocsCnv_p3::transToPers
virtual void transToPers(const INav4MomAssocs *trans, INav4MomAssocs_p3 *pers, MsgStream &msg) const override
Method creating the persistent representation INav4MomAssocs_p3 from its transient representation INa...
Definition
INav4MomAssocsCnv_p3.cxx:75
INav4MomAssocsCnv_p3::m_inav4MomLinkCnv
INav4MomCnv_t m_inav4MomLinkCnv
converter for ElementLink to INavigable4MomentumCollection
Definition
INav4MomAssocsCnv_p3.h:78
INav4MomAssocs_p3
Definition
INav4MomAssocs_p3.h:27
INav4MomAssocs_p3::AssocElem_t
std::pair< ElementLinkInt_p3, ElemLinkVect_t > AssocElem_t
Definition
INav4MomAssocs_p3.h:42
INav4MomAssocs_p3::m_assocStores
INav4MomStores_t m_assocStores
Definition
INav4MomAssocs_p3.h:72
INav4MomAssocs_p3::m_assocs
Assocs_t m_assocs
Definition
INav4MomAssocs_p3.h:71
INav4MomAssocs_p3::ElemLinkVect_t
std::vector< ElementLinkInt_p3 > ElemLinkVect_t
Definition
INav4MomAssocs_p3.h:40
INav4MomAssocs
Definition
INav4MomAssocs.h:33
SG::ThinningCache
Cache thinning decisions for converters.
Definition
ThinningCache.h:48
trans
TH1F * trans(TH1F *h, bool t=false)
Definition
comparitor.cxx:185
getThinningCache.h
Helpers to retrieve the current thinning cache from the event context.
SG::getThinningCache
const SG::ThinningCache * getThinningCache()
Retrieve the current thinning cache from the current event context.
Definition
getThinningCache.cxx:41
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0