diff --git a/Tracking/TrkFitter/TrkiPatFitter/src/MaterialAllocator.cxx b/Tracking/TrkFitter/TrkiPatFitter/src/MaterialAllocator.cxx index e30e877a3aec7fd46751ecc7d6e83c138f09334a..3bf2d972b2c15cd593d46d5865ae1713b91d87e2 100755 --- a/Tracking/TrkFitter/TrkiPatFitter/src/MaterialAllocator.cxx +++ b/Tracking/TrkFitter/TrkiPatFitter/src/MaterialAllocator.cxx @@ -546,9 +546,8 @@ MaterialAllocator::addLeadingMaterial (std::vector<FitMeasurement*>& measurement ++l) { leadingOutlier = leadingOutliers.back(); - measurements.erase(l); + measurements.erase(std::remove(measurements.begin(), measurements.end(), *l), measurements.end()); } - leadingMeas = new FitMeasurement((**r).materialEffectsOnTrack()->thicknessInX0(), -eLoss, ParticleMasses().mass[particleHypothesis], @@ -979,7 +978,8 @@ MaterialAllocator::orderMeasurements(std::vector<FitMeasurement*>& measurements, std::sort(measurementOrder.begin(), measurementOrder.end(), compareByDistance()); std::vector< std::pair<double, FitMeasurement*> >::const_iterator orig = originalOrder.begin(); bool shouldReorder = false; - if (m_allowReordering) measurements.erase(measurements.begin(),measurements.end()); + if (m_allowReordering) + measurements.erase(measurements.begin(),measurements.end()); for (std::vector< std::pair<double, FitMeasurement*> >::const_iterator order = measurementOrder.begin(); diff --git a/Tracking/TrkFitter/TrkiPatFitterUtils/src/FitProcedure.cxx b/Tracking/TrkFitter/TrkiPatFitterUtils/src/FitProcedure.cxx index 7174f7c057ff0bbbfa278f3affb4122557e757fe..03fc3f153efa0f2c5bf49823e757cae275c19cd4 100755 --- a/Tracking/TrkFitter/TrkiPatFitterUtils/src/FitProcedure.cxx +++ b/Tracking/TrkFitter/TrkiPatFitterUtils/src/FitProcedure.cxx @@ -192,6 +192,7 @@ FitProcedure::constructTrack (const std::vector<FitMeasurement*>& measurements, trackParameters = parameters.trackParameters(*m_log, *fitMeasurement, withCovariance); + if (! trackParameters) { *m_log << MSG::WARNING