ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkEventCnv
TrkTruthTPCnv
src
TrackTruthCollectionCnv_p1.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
8
#include "
TrkTruthTPCnv/TrackTruthCollectionCnv_p1.h
"
9
10
#include "
TrkTruthTPCnv/TrackTruthCollection_p1.h
"
11
#include "
TrkTruthData/TrackTruthCollection.h
"
12
13
#include "
GeneratorObjectsTPCnv/HepMcParticleLinkCnv_p1.h
"
14
#include "
DataModelAthenaPool/DataLinkCnv_p1.h
"
15
16
#include "
StoreGate/StoreGateSvc.h
"
17
18
#include "
TrackTruthCollectionAccessor.h
"
19
20
namespace
{
21
const
HepMcParticleLinkCnv_p1
particleLinkConverter;
22
const
DataLinkCnv_p1<DataLink<TrackCollection>
> dataLinkConverter;
23
}
24
25
void
TrackTruthCollectionCnv_p1::persToTrans
(
const
Trk::TrackTruthCollection_p1
* pers,
26
TrackTruthCollection
* trans,
27
MsgStream&
msg
)
28
{
29
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p1::persToTrans(): PERS size = "
<<pers->
m_entries
.size()<<
endmsg
;
30
31
dataLinkConverter.persToTrans(pers->
m_trackCollectionLink
,
TrackTruthCollectionAccessor::trackCollectionLink
(trans),
msg
);
32
33
for
(Trk::TrackTruthCollection_p1::CollectionType::const_iterator i=pers->
m_entries
.begin(); i!=pers->
m_entries
.end(); ++i) {
34
HepMcParticleLink
link;
35
particleLinkConverter.persToTrans(&i->particle, &link,
msg
);
36
trans->insert(trans->end(), std::make_pair(i->index,
TrackTruth
(link, i->probability, 0)) );
37
}
38
39
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p1::persToTrans() DONE"
<<
endmsg
;
40
}
41
42
void
TrackTruthCollectionCnv_p1::transToPers
(
const
TrackTruthCollection
* trans,
43
Trk::TrackTruthCollection_p1
* pers,
44
MsgStream&
msg
)
45
{
46
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p1::transToPers()"
<<
endmsg
;
47
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p1::transToPers(): input size = "
<<trans->size()<<
endmsg
;
48
49
dataLinkConverter.transToPers(trans->
trackCollectionLink
(), pers->
m_trackCollectionLink
,
msg
);
50
51
pers->
m_entries
.resize(trans->size());
52
Trk::TrackTruthCollection_p1::CollectionType::size_type ipers(0);
53
for
(TrackTruthCollection::const_iterator itrans=trans->begin(); itrans!=trans->end(); ++itrans, ++ipers) {
54
Trk::TrackTruthCollection_p1::Entry
& current = pers->
m_entries
[ipers];
55
const
TrackTruth
& truth = itrans->second;
56
current.index = itrans->first.index();
// extract index from ElementLink
57
current.probability = truth.
probability
();
58
particleLinkConverter.transToPers(&itrans->second.particleLink(), ¤t.particle,
msg
);
59
}
60
61
msg
<<MSG::DEBUG<<
"TrackTruthCollectionCnv_p1::transToPers() DONE"
<<
endmsg
;
62
}
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_p1.h
StoreGateSvc.h
TrackTruthCollectionAccessor.h
TrackTruthCollectionCnv_p1.h
TrackTruthCollection.h
TrackTruthCollection_p1.h
DataLinkCnv_p1
Definition
DataLinkCnv_p1.h:23
HepMcParticleLinkCnv_p1
Definition
HepMcParticleLinkCnv_p1.h:33
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_p1::persToTrans
virtual void persToTrans(const Trk::TrackTruthCollection_p1 *persObj, TrackTruthCollection *transObj, MsgStream &msg)
Method creating the transient representation of Analysis::TrackTruthCollection from its persistent re...
Definition
TrackTruthCollectionCnv_p1.cxx:25
TrackTruthCollectionCnv_p1::transToPers
virtual void transToPers(const TrackTruthCollection *transObj, Trk::TrackTruthCollection_p1 *persObj, MsgStream &msg)
Method creating the persistent representation TrackTruthCollection_p1 from its transient representati...
Definition
TrackTruthCollectionCnv_p1.cxx:42
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_p1
Definition
TrackTruthCollection_p1.h:21
Trk::TrackTruthCollection_p1::m_trackCollectionLink
DataLink_p1 m_trackCollectionLink
Definition
TrackTruthCollection_p1.h:24
Trk::TrackTruthCollection_p1::m_entries
CollectionType m_entries
Definition
TrackTruthCollection_p1.h:39
Trk::TrackTruthCollection_p1::Entry
Definition
TrackTruthCollection_p1.h:29
msg
MsgStream & msg
Definition
testRead.cxx:32
Generated on
for ATLAS Offline Software by
1.17.0