ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEventCnv
TrkTruthTPCnv
src
TrackTruthCollectionCnv_p2.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
// T/P converter for TrackTruthCollection.
6
// Andrei Gaponenko <agaponenko@lbl.gov>, 2007
7
// Olivier Arnaez <olivier.arnaez@cern.ch>, 2015
8
9
#include "
TrkTruthTPCnv/TrackTruthCollectionCnv_p2.h
"
10
11
#include "
TrkTruthTPCnv/TrackTruthCollection_p2.h
"
12
#include "
TrkTruthData/TrackTruthCollection.h
"
13
14
#include "
GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p2.h
"
15
#include "
DataModelAthenaPool/DataLinkCnv_p1.h
"
16
17
#include "
StoreGate/StoreGateSvc.h
"
18
19
#include "
TrackTruthCollectionAccessor.h
"
20
21
namespace
{
22
const
HepMcParticleLinkCnv_p2
particleLinkConverter;
23
const
DataLinkCnv_p1<DataLink<TrackCollection>
> dataLinkConverter;
24
}
25
26
void
TrackTruthCollectionCnv_p2::persToTrans
(
const
Trk::TrackTruthCollection_p2
* pers,
27
TrackTruthCollection
* trans,
28
MsgStream&
msg
)
29
{
30
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p2::persToTrans(): PERS size = "
<<pers->
m_entries
.size()<<
endmsg
;
31
32
dataLinkConverter.persToTrans(pers->
m_trackCollectionLink
,
TrackTruthCollectionAccessor::trackCollectionLink
(trans),
msg
);
33
34
for
(Trk::TrackTruthCollection_p2::CollectionType::const_iterator i=pers->
m_entries
.begin(); i!=pers->
m_entries
.end(); ++i) {
35
HepMcParticleLink
link;
36
particleLinkConverter.persToTrans(&i->particle, &link,
msg
);
37
trans->insert(trans->end(), std::make_pair(i->index,
TrackTruth
(link, i->probability, 0)) );
38
}
39
40
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p2::persToTrans() DONE"
<<
endmsg
;
41
}
42
43
void
TrackTruthCollectionCnv_p2::transToPers
(
const
TrackTruthCollection
* trans,
44
Trk::TrackTruthCollection_p2
* pers,
45
MsgStream&
msg
)
46
{
47
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p2::transToPers()"
<<
endmsg
;
48
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p2::transToPers(): input size = "
<<trans->size()<<
endmsg
;
49
50
dataLinkConverter.transToPers(trans->
trackCollectionLink
(), pers->
m_trackCollectionLink
,
msg
);
51
52
pers->
m_entries
.resize(trans->size());
53
Trk::TrackTruthCollection_p2::CollectionType::size_type ipers(0);
54
for
(TrackTruthCollection::const_iterator itrans=trans->begin(); itrans!=trans->end(); ++itrans, ++ipers) {
55
Trk::TrackTruthCollection_p2::Entry
& current = pers->
m_entries
[ipers];
56
const
TrackTruth
& truth = itrans->second;
57
current.index = itrans->first.index();
// extract index from ElementLink
58
current.probability = truth.
probability
();
59
particleLinkConverter.transToPers(&itrans->second.particleLink(), ¤t.particle,
msg
);
60
}
61
62
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p2::transToPers() DONE"
<<
endmsg
;
63
}
endmsg
#define endmsg
Definition
AnalysisConfig_Ntuple.cxx:54
DataLinkCnv_p1.h
This file contains the class definition for the DataLinkCnv_p1 class and DataLinkVectorCnv_p1 class.
HepMcParticleLinkCnv_p2.h
StoreGateSvc.h
TrackTruthCollectionAccessor.h
TrackTruthCollectionCnv_p2.h
TrackTruthCollection.h
TrackTruthCollection_p2.h
DataLinkCnv_p1
Definition
DataLinkCnv_p1.h:23
HepMcParticleLinkCnv_p2
Definition
HepMcParticleLinkCnv_p2.h:29
HepMcParticleLink
a link optimized in size for a GenParticle in a McEventCollection
Definition
HepMcParticleLink.h:72
TrackTruthCollectionAccessor::trackCollectionLink
static DataLink< TrackCollection > & trackCollectionLink(TrackTruthCollection *truthColl)
Definition
TrackTruthCollectionAccessor.h:21
TrackTruthCollectionCnv_p2::persToTrans
virtual void persToTrans(const Trk::TrackTruthCollection_p2 *persObj, TrackTruthCollection *transObj, MsgStream &msg)
Method creating the transient representation of Analysis::TrackTruthCollection from its persistent re...
Definition
TrackTruthCollectionCnv_p2.cxx:26
TrackTruthCollectionCnv_p2::transToPers
virtual void transToPers(const TrackTruthCollection *transObj, Trk::TrackTruthCollection_p2 *persObj, MsgStream &msg)
Method creating the persistent representation TrackTruthCollection_p2 from its transient representati...
Definition
TrackTruthCollectionCnv_p2.cxx:43
TrackTruthCollection
Definition
TrackTruthCollection.h:21
TrackTruthCollection::trackCollectionLink
DataLink< TrackCollection > trackCollectionLink() const
Definition
TrackTruthCollection.h:27
TrackTruth
MC particle associated with a reco track + the quality of match.
Definition
TrackTruth.h:14
TrackTruth::probability
float probability() const
Definition
TrackTruth.h:28
Trk::TrackTruthCollection_p2
Definition
TrackTruthCollection_p2.h:21
Trk::TrackTruthCollection_p2::m_entries
CollectionType m_entries
Definition
TrackTruthCollection_p2.h:39
Trk::TrackTruthCollection_p2::m_trackCollectionLink
DataLink_p1 m_trackCollectionLink
Definition
TrackTruthCollection_p2.h:24
Trk::TrackTruthCollection_p2::Entry
Definition
TrackTruthCollection_p2.h:29
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0