From f94aa51ef3ca7b83e35a00883f80db3811c740be Mon Sep 17 00:00:00 2001
From: "s.zharko@gsi.de" <s.zharko@gsi.de>
Date: Mon, 12 Jun 2023 15:34:34 +0200
Subject: [PATCH] Modification of official hit->cluster matching step for STS

---
 core/base/CbmMatchRecoToMC.cxx | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/core/base/CbmMatchRecoToMC.cxx b/core/base/CbmMatchRecoToMC.cxx
index 87679fd350..a8d46e282d 100644
--- a/core/base/CbmMatchRecoToMC.cxx
+++ b/core/base/CbmMatchRecoToMC.cxx
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2021 GSI/JINR-LIT, Darmstadt/Dubna
+/* Copyright (C) 2013-2023 GSI/JINR-LIT, Darmstadt/Dubna
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Andrey Lebedev [committer], Florian Uhlig, Volker Friese, Pierre-Alain Loizeau */
 
@@ -454,8 +454,17 @@ void CbmMatchRecoToMC::MatchHitsSts(const TClonesArray* cluMatches, const TClone
     CbmMatch* hitMatch                = new ((*hitMatches)[iHit]) CbmMatch();
     const CbmMatch* frontClusterMatch = static_cast<const CbmMatch*>(cluMatches->At(hit->GetFrontClusterId()));
     const CbmMatch* backClusterMatch  = static_cast<const CbmMatch*>(cluMatches->At(hit->GetBackClusterId()));
-    hitMatch->AddLinks(*frontClusterMatch);
-    hitMatch->AddLinks(*backClusterMatch);
+
+    for (int iLinkF = 0; iLinkF < frontClusterMatch->GetNofLinks(); ++iLinkF) {
+      const auto& linkF = frontClusterMatch->GetLink(iLinkF);
+      for (int iLinkB = 0; iLinkB < backClusterMatch->GetNofLinks(); ++iLinkB) {
+        const auto& linkB = backClusterMatch->GetLink(iLinkB);
+        if (linkB == linkF) {
+          hitMatch->AddLink(linkF);
+          hitMatch->AddLink(linkB);
+        }
+      }
+    }
   }
 }
 
-- 
GitLab