diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx index c684643aacc647afc6d353779f55505b220f261b..e1fbde56c08150c846c8843ec5a25da2cd4206f7 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMaterialMixtureConvolution.cxx @@ -274,10 +274,10 @@ Trk::GsfMaterialMixtureConvolution::update( // Store component weight caches[i].weights[j] *= inputState[i].second; // Ensure weight of component is not too small to save us from potential - // FPE's Value chosen to be sufficiently small so that the final state - // will not be impacted - if (caches[i].weights[j] < 1e-12) { - caches[i].weights[j] = 1e-12; + // FPE's Value. Weights are double so the min of float should + // be small enough and should be handled + if (caches[i].weights[j] < std::numeric_limits<float>::min()) { + caches[i].weights[j] = std::numeric_limits<float>::min(); } } n += caches[i].weights.size();