diff --git a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMeasurementUpdator.cxx b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMeasurementUpdator.cxx index bc984b9e41c1d7bffaa5494379372e1f5a46fc4d..f678263f6fed227949a8ab3b6683ce93d684e71c 100644 --- a/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMeasurementUpdator.cxx +++ b/Tracking/TrkFitter/TrkGaussianSumFilter/src/GsfMeasurementUpdator.cxx @@ -218,39 +218,33 @@ Trk::GsfMeasurementUpdator::calculateFilterStep( std::abs(component.first->parameters()[Trk::qOverP]) > 0.033333) { continue; } - auto componentFitQuality = std::make_unique<Trk::FitQualityOnSurface>(); + Trk::FitQualityOnSurface componentFitQuality; /// Update the component in place bool updateSuccess = m_updator.filterStep(*(component.first), - *componentFitQuality, + componentFitQuality, measurement.localParameters(), measurement.localCovariance(), 1); if (!updateSuccess) { - if (componentFitQuality) { - componentFitQuality.reset(); - } continue; } if (invalidComponent(component.first.get())) { - componentFitQuality.reset(); continue; } - if (!componentFitQuality || componentFitQuality->chiSquared() <= 0.) { - componentFitQuality.reset(); + if (componentFitQuality.chiSquared() <= 0.) { continue; } - double componentChi2 = componentFitQuality->chiSquared(); + double componentChi2 = componentFitQuality.chiSquared(); chiSquared += component.second * componentChi2; // The same measurement is included in each update // so we can update the degree of freedom only if (degreesOfFreedom == 0.0) { - degreesOfFreedom = componentFitQuality->numberDoF(); + degreesOfFreedom = componentFitQuality.numberDoF(); } - componentFitQuality.reset(); // Add component to state being prepared for assembly MultiComponentStateAssembler::addComponent(cache, std::move(component));