From 6e07bbd4a033c1b58f635e049968d34b200ac9b7 Mon Sep 17 00:00:00 2001
From: christos <christos@cern.ch>
Date: Mon, 2 Nov 2020 19:24:40 +0100
Subject: [PATCH] GsfMaterialMixtureConvolution, use std::array to keep track
 of which components are merged given we use std::array for the components
 per-se

---
 .../TrkGaussianSumFilter/KLGaussianMixtureReduction.h        | 5 +++++
 .../src/GsfMaterialMixtureConvolution.cxx                    | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/KLGaussianMixtureReduction.h b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/KLGaussianMixtureReduction.h
index da3dcc2e50f..3de2d3263c6 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/KLGaussianMixtureReduction.h
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/TrkGaussianSumFilter/KLGaussianMixtureReduction.h
@@ -107,6 +107,11 @@ struct Component1DArray
   int32_t numComponents = 0;
 };
 
+/* typedef tracking which component has been merged
+ */
+
+using IsMergedArray = std::array<bool,GSFConstants::maxComponentsAfterConvolution>; 
+
 /**
  * @brief Merge the componentsIn and return
  * which componets got merged
diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx
index 08a80612f46..a9fcc72aaa9 100644
--- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx
+++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx
@@ -349,7 +349,7 @@ Trk::GsfMaterialMixtureConvolution::update(
   // Merge components
   MultiComponentStateAssembler::Cache assemblerCache;
   int nMerges(0);
-  std::vector<bool> isMerged(n, false);
+  GSFUtils::IsMergedArray isMerged={};
   for (const auto& mergePair : merges) {
     const int8_t mini = mergePair.first;
     const int8_t minj = mergePair.second;
-- 
GitLab