48 ATH_MSG_DEBUG(
"Looking up truth for pt " << particle->pt() <<
" eta " << particle->eta() <<
" phi " << particle->phi());
51 if( !particle->trackLink().isValid()){
53 ATH_MSG_WARNING(
"Found TrackParticle with Invalid element link, skipping");
57 particlesType(*particle) = 0;
58 particlesOrigin(*particle)= 0;
68 auto result = truthTrackColl.find(key);
71 if(
result != truthTrackColl.end() ){
73 link = truthParticleLinks.
find(
result->second.particleLink());
79 type = truthClass.first;
80 origin = truthClass.second;
81 ATH_MSG_VERBOSE(
"Got truth type " <<
static_cast<int>(
type) <<
" origin " <<
static_cast<int>(origin));
86 ATH_MSG_DEBUG(
"Found matching xAOD Truth: uniqueID " <<
HepMC::uniqueID(*link) <<
" pt " << (*link)->pt() <<
" eta " << (*link)->eta() <<
" phi " << (*link)->phi());
89 particlesLink(*particle)=link;
98 particlesType(partInd)=
static_cast<int>(
type);
99 particlesOrigin(partInd)=
static_cast<int>(origin);
103 return StatusCode::SUCCESS;
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_particlesOriginKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_particlesTypeKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trkKey
virtual StatusCode initialize() override
ToolHandle< IMCTruthClassifier > m_truthClassifier
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadHandleKey< TrackTruthCollection > m_truthTracksKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_particlesLinkKey
SG::ReadHandleKey< xAODTruthParticleLinkVector > m_truthParticleLinkVecKey
ElementLink< xAOD::TruthParticleContainer > find(const HepMcParticleLink &hepMCLink) const