From 20324343e9d630b562f56796d8d137ab5cb577ab Mon Sep 17 00:00:00 2001
From: Dominik Smith <d.smith@gsi.de>
Date: Thu, 28 Apr 2022 10:16:57 +0200
Subject: [PATCH] Bugfix for CbmSeedFinderQa: Pure-noise triggers lead to
 accessing the -1 element of an array, when determining the matched triggers
 per MC event. Fixed.

---
 reco/eventbuilder/digis/CbmSeedFinderQa.cxx | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/reco/eventbuilder/digis/CbmSeedFinderQa.cxx b/reco/eventbuilder/digis/CbmSeedFinderQa.cxx
index 842e69ec18..e2a6ca41f5 100644
--- a/reco/eventbuilder/digis/CbmSeedFinderQa.cxx
+++ b/reco/eventbuilder/digis/CbmSeedFinderQa.cxx
@@ -202,17 +202,21 @@ void CbmSeedFinderQa::FillQaMCInfo()
 
   for (uint32_t iSeed = 0; iSeed < fvEventMatchesPerTs.size(); iSeed++) {
     const CbmMatch eventMatch = fvEventMatchesPerTs.at(iSeed);
+    const CbmLink matchedLink = eventMatch.GetMatchedLink();
+    if (fEventList->GetEventIndex(matchedLink) == -1) { continue; }
+
     for (int32_t iLink = 0; iLink < eventMatch.GetNofLinks(); iLink++) {
       const CbmLink eventLink = eventMatch.GetLink(iLink);
       vLinkedTriggersPerMCEvent[fEventList->GetEventIndex(eventLink)]++;
     }
-    const CbmLink matchedLink = eventMatch.GetMatchedLink();
     vMatchedTriggersPerMCEvent[fEventList->GetEventIndex(matchedLink)]++;
   }
 
   for (uint32_t iSeed = 0; iSeed < fvEventMatchesPerTs.size(); iSeed++) {
     const CbmMatch eventMatch = fvEventMatchesPerTs.at(iSeed);
     const CbmLink matchedLink = eventMatch.GetMatchedLink();
+    if (fEventList->GetEventIndex(matchedLink) == -1) { continue; }
+
     if (vMatchedTriggersPerMCEvent[fEventList->GetEventIndex(matchedLink)] == 1) {
       const double seedTime = fvSeedTimesPerTs[iSeed];
       const double timeDiff = seedTime - fEventList->GetEventTime(matchedLink.GetEntry(), matchedLink.GetFile());
-- 
GitLab