From 14dd69ed3ec138fde322bef8bd4e18ecb334fd23 Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Wed, 28 May 2025 13:24:25 +0200 Subject: [PATCH 1/3] Fix out of bounds erase and throw an exception if out of bounds --- k4Reco/ConformalTracking/components/ConformalTracking.cpp | 2 +- k4Reco/ConformalTracking/include/KDTrack.h | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/k4Reco/ConformalTracking/components/ConformalTracking.cpp b/k4Reco/ConformalTracking/components/ConformalTracking.cpp index 8fbabf13..3d75d8a6 100644 --- a/k4Reco/ConformalTracking/components/ConformalTracking.cpp +++ b/k4Reco/ConformalTracking/components/ConformalTracking.cpp @@ -1761,7 +1761,7 @@ void ConformalTracking::extendTracksPerLayer(UniqueKDTracks& conformalTracks, Sh deltaChi2zs = newchi2zs - chi2zs; debug() << "-- hit was fitted and has a delta chi2 of " << deltaChi2 << " and delta chi2zs of " << deltaChi2zs << endmsg; - tempTrack.remove(tempTrack.m_clusters.size()); + tempTrack.remove(tempTrack.m_clusters.size() - 1); debug() << "-- tempTrack has now " << tempTrack.m_clusters.size() << " hits " << endmsg; double chi2cut = parameters.m_chi2cut; diff --git a/k4Reco/ConformalTracking/include/KDTrack.h b/k4Reco/ConformalTracking/include/KDTrack.h index 24ccd10c..4085e3c7 100644 --- a/k4Reco/ConformalTracking/include/KDTrack.h +++ b/k4Reco/ConformalTracking/include/KDTrack.h @@ -50,7 +50,12 @@ class KDTrack { //--- Functions to add and remove clusters void add(SKDCluster cluster) { m_clusters.push_back(cluster); } void insert(SKDCluster cluster) { m_clusters.insert(m_clusters.begin(), cluster); } - void remove(int clusterN) { m_clusters.erase(m_clusters.begin() + clusterN); } + void remove(int clusterN) { + if (clusterN < 0 || clusterN >= static_cast(m_clusters.size())) { + throw std::out_of_range("KDTrack::remove: clusterN out of range"); + } + m_clusters.erase(m_clusters.begin() + clusterN); + } //--- Fit functions double calculateChi2(); From 800cb52a13f5858c605332d57342a1fa66f20c3f Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Wed, 28 May 2025 13:26:08 +0200 Subject: [PATCH 2/3] Remove unused include --- k4Reco/ConformalTracking/include/KDTrack.h | 1 - 1 file changed, 1 deletion(-) diff --git a/k4Reco/ConformalTracking/include/KDTrack.h b/k4Reco/ConformalTracking/include/KDTrack.h index 4085e3c7..adef49a1 100644 --- a/k4Reco/ConformalTracking/include/KDTrack.h +++ b/k4Reco/ConformalTracking/include/KDTrack.h @@ -22,7 +22,6 @@ #include "KDCluster.h" #include "Parameters.h" -#include #include #include From f963e7769f1f4ecbddabc42f86e4f6d0f6ea723c Mon Sep 17 00:00:00 2001 From: jmcarcell Date: Wed, 28 May 2025 16:35:27 +0200 Subject: [PATCH 3/3] Add a missing include --- k4Reco/ConformalTracking/include/KDTrack.h | 1 + 1 file changed, 1 insertion(+) diff --git a/k4Reco/ConformalTracking/include/KDTrack.h b/k4Reco/ConformalTracking/include/KDTrack.h index adef49a1..08d9b059 100644 --- a/k4Reco/ConformalTracking/include/KDTrack.h +++ b/k4Reco/ConformalTracking/include/KDTrack.h @@ -23,6 +23,7 @@ #include "Parameters.h" #include +#include #include class TH2F;