From 66cce52eb2987be50d5db54f31b96ccbff37921c Mon Sep 17 00:00:00 2001
From: Christian Ohm <christian.ohm@cern.ch>
Date: Tue, 8 Jun 2021 17:50:13 +0200
Subject: [PATCH] Finalizing additional truth info for SiHits

---
 .../Tools/HitAnalysis/src/SiHitAnalysis.cxx   | 25 +++++++++++++------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/Simulation/Tools/HitAnalysis/src/SiHitAnalysis.cxx b/Simulation/Tools/HitAnalysis/src/SiHitAnalysis.cxx
index 058e006641e..f575fbb3dc9 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
-- 
GitLab