From f11af45494f09cccf6c8354b74be51699979249b Mon Sep 17 00:00:00 2001 From: Martin Beyer <martin.beyer@physik.uni-giessen.de> Date: Thu, 4 Jul 2024 09:53:37 +0000 Subject: [PATCH] Rich: Ring track match index fix for timebased data --- .../rich/tracks/CbmRichRingTrackAssignClosestD.cxx | 13 +++++++------ reco/littrack/cbm/utils/CbmLitConverter.h | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/reco/detectors/rich/tracks/CbmRichRingTrackAssignClosestD.cxx b/reco/detectors/rich/tracks/CbmRichRingTrackAssignClosestD.cxx index 6220ef845e..ea32c6319d 100644 --- a/reco/detectors/rich/tracks/CbmRichRingTrackAssignClosestD.cxx +++ b/reco/detectors/rich/tracks/CbmRichRingTrackAssignClosestD.cxx @@ -1,6 +1,6 @@ -/* Copyright (C) 2006-2021 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt +/* Copyright (C) 2006-2024 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt SPDX-License-Identifier: GPL-3.0-only - Authors: Claudia Hoehne [committer], Semen Lebedev */ + Authors: Claudia Hoehne [committer], Semen Lebedev, Martin Beyer */ /** * \file CbmRichRingTrackAssignClosestD.cxx @@ -88,7 +88,7 @@ void CbmRichRingTrackAssignClosestD::DoAssignRingTrack(CbmEvent* event, TClonesA for (Int_t iR0 = 0; iR0 < nofRings; iR0++) { Int_t iR = event ? event->GetIndex(ECbmDataType::kRichRing, iR0) : iR0; - if (trackIndex[iR] != -1) continue; + if (trackIndex[iR0] != -1) continue; CbmRichRing* ring = static_cast<CbmRichRing*>(rings->At(iR)); if (ring == nullptr) continue; if (ring->GetNofHits() < fMinNofHitsInRing) continue; @@ -119,8 +119,8 @@ void CbmRichRingTrackAssignClosestD::DoAssignRingTrack(CbmEvent* event, TClonesA iTrackMin = iT; } } // loop tracks - trackIndex[iR] = iTrackMin; - trackDist[iR] = rMin; + trackIndex[iR0] = iTrackMin; + trackDist[iR0] = rMin; } //loop rings for (UInt_t i1 = 0; i1 < trackIndex.size(); i1++) { @@ -146,7 +146,8 @@ void CbmRichRingTrackAssignClosestD::DoAssignRingTrack(CbmEvent* event, TClonesA // cout << "trackIndex[i]:" << trackIndex[i] << " trackDist[i]:" << trackDist[i] << " r:" << pRing->GetRadius() << " x:" << pRing->GetCenterX() << " y:" << pRing->GetCenterY()<< endl; if (trackIndex[i] == -1) continue; CbmGlobalTrack* gTrack = (CbmGlobalTrack*) fGlobalTracks->At(trackIndex[i]); - gTrack->SetRichRingIndex(i); + Int_t ringIndex = event ? event->GetIndex(ECbmDataType::kRichRing, i) : i; + gTrack->SetRichRingIndex(ringIndex); } } diff --git a/reco/littrack/cbm/utils/CbmLitConverter.h b/reco/littrack/cbm/utils/CbmLitConverter.h index 46757b3c5f..56e9da37ca 100644 --- a/reco/littrack/cbm/utils/CbmLitConverter.h +++ b/reco/littrack/cbm/utils/CbmLitConverter.h @@ -208,7 +208,7 @@ public: for (Int_t i = 0; i < nofStsTracks; i++) { Int_t iTrack = event ? event->GetIndex(ECbmDataType::kStsTrack, i) : i; CbmGlobalTrack* globalTrack = new ((*globalTracks)[globalTrackNo++]) CbmGlobalTrack(); - globalTrack->SetStsTrackIndex(i); + globalTrack->SetStsTrackIndex(iTrack); if (event) event->AddData(ECbmDataType::kGlobalTrack, iTrack); } -- GitLab