diff --git a/Simulation/Tools/HitAnalysis/src/SiHitAnalysis.cxx b/Simulation/Tools/HitAnalysis/src/SiHitAnalysis.cxx index 058e006641e0c12cc52f181c7d8db4762244e1ad..f575fbb3dc944f60eb304190994948eca99b577e 100644 --- a/Simulation/Tools/HitAnalysis/src/SiHitAnalysis.cxx +++ b/Simulation/Tools/HitAnalysis/src/SiHitAnalysis.cxx @@ -294,13 +294,24 @@ StatusCode SiHitAnalysis::execute() { m_hits_barcode->push_back(i_hit->particleLink().barcode()); if (m_extraTruthBranches) { auto tpl = i_hit->particleLink(); - m_hits_pdgId->push_back(tpl->pdg_id()); - m_hits_pT->push_back(tpl->momentum().perp()); - m_hits_pT->push_back(tpl->momentum().eta()); - m_hits_pT->push_back(tpl->momentum().phi()); - m_hits_prodVtx_x->push_back(tpl->production_vertex()->position().x()); - m_hits_prodVtx_y->push_back(tpl->production_vertex()->position().y()); - m_hits_prodVtx_z->push_back(tpl->production_vertex()->position().z()); + if (tpl.isValid()) { + m_hits_pdgId->push_back(tpl->pdg_id()); + m_hits_pT->push_back(tpl->momentum().perp()); + m_hits_eta->push_back(tpl->momentum().eta()); + m_hits_phi->push_back(tpl->momentum().phi()); + m_hits_prodVtx_x->push_back(tpl->production_vertex()->position().x()); + m_hits_prodVtx_y->push_back(tpl->production_vertex()->position().y()); + m_hits_prodVtx_z->push_back(tpl->production_vertex()->position().z()); + } + else { + m_hits_pdgId->push_back(-9999); + m_hits_pT->push_back(-9999); + m_hits_eta->push_back(-9999); + m_hits_phi->push_back(-9999); + m_hits_prodVtx_x->push_back(-9999); + m_hits_prodVtx_y->push_back(-9999); + m_hits_prodVtx_z->push_back(-9999); + } } } // End while hits