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