diff --git a/benchmarks/rich/src/ReconstructedParticleAnalysis.cc b/benchmarks/rich/src/ReconstructedParticleAnalysis.cc
index b645be2888366fae54e0bdc20b852057ef540b50..974551701976825d134d6766dae8c73c46a227f3 100644
--- a/benchmarks/rich/src/ReconstructedParticleAnalysis.cc
+++ b/benchmarks/rich/src/ReconstructedParticleAnalysis.cc
@@ -43,13 +43,13 @@ namespace benchmarks {
       if(!simpart.isAvailable()) { m_log->warn("simulated particle not available for this association");     continue; }
 
       // get PDG values
-      auto simpart_pdg = simpart.getPDG(); // from MC truth
-      auto recpart_pdg = recpart.getPDG(); // PDG member of ReconstructedParticle
-      auto pid_pdg     = recpart_pdg; // ReconstructedParticle::particleIDUsed::PDG, if available (otherwise use `recpart_pdg`)
-      auto recpart_pid = recpart.getParticleIDUsed();
-      if(recpart_pid.isAvailable()) pid_pdg = recpart_pid.getPDG();
-      else m_log->warn("reconstructed particle does not have particleIDUsed relation; using PDG member instead");
-      m_log->trace("PDGs: sim | rec | pid = {:^6} | {:^6} | {:^6}", simpart_pdg, recpart_pdg, pid_pdg);
+      auto simpart_pdg      = simpart.getPDG(); // from MC truth
+      auto recpart_pdg      = recpart.getPDG(); // PDG member of ReconstructedParticle
+      auto recpart_pid_used = recpart.getParticleIDUsed();
+      auto pid_pdg          = recpart_pid_used.isAvailable() ? recpart_pid_used.getPDG() : 0;
+      if(!recpart_pid_used.isAvailable())
+        m_log->error("reconstructed particle does not have particleIDUsed relation");
+      m_log->trace("PDGs: sim.PDG | rec.PDG | PDG from PID  =  {:^6} | {:^6} | {:^6}", simpart_pdg, recpart_pdg, pid_pdg);
 
       // check goodness of PID: if near zero, assume PID was not used for this particle and skip
       if(recpart.getGoodnessOfPID()<0.01) {