From 9c423fc086752441033009f925ce0d8aac8c63d9 Mon Sep 17 00:00:00 2001 From: swagata87 Date: Thu, 27 Oct 2022 15:08:59 +0200 Subject: [PATCH] require states to be pos-def --- .../src/TsosGaussianStateConversions.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/TrackingTools/GsfTracking/src/TsosGaussianStateConversions.cc b/TrackingTools/GsfTracking/src/TsosGaussianStateConversions.cc index d4c6e1b11d244..1692614f23389 100644 --- a/TrackingTools/GsfTracking/src/TsosGaussianStateConversions.cc +++ b/TrackingTools/GsfTracking/src/TsosGaussianStateConversions.cc @@ -40,12 +40,15 @@ namespace GaussianStateConversions { std::vector components; components.reserve(singleStates.size()); for (auto const& ic : singleStates) { - components.emplace_back((*ic).weight(), - LocalTrajectoryParameters((*ic).mean(), pzSign, charged), - LocalTrajectoryError((*ic).covariance()), - surface, - field, - side); + //require states to be positive-definite + if (double det = 0; (*ic).covariance().Det2(det) && det > 0) { + components.emplace_back((*ic).weight(), + LocalTrajectoryParameters((*ic).mean(), pzSign, charged), + LocalTrajectoryError((*ic).covariance()), + surface, + field, + side); + } } return TrajectoryStateOnSurface((BasicTrajectoryState*)new BasicMultiTrajectoryState(components)); }