diff --git a/core/base/CbmMatchRecoToMC.cxx b/core/base/CbmMatchRecoToMC.cxx index 87679fd35082499e11395bfb3878311c599b3061..a8d46e282d694cdfdae1fab717b4486ba1fb401a 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); + } + } + } } }