From ec1afecc6a5178940b84708780f8be82baf674ea Mon Sep 17 00:00:00 2001
From: Savanna Marie Shaw <savanna.marie.shaw@cern.ch>
Date: Fri, 30 Jul 2021 15:43:38 +0200
Subject: [PATCH] MuonTrackSegmentTool: prevent divide by zero

Adding some protection to avoid dividing by zero (from zero weights).
---
 .../MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx
index d17c6ae00a2..077548df8df 100644
--- a/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx
+++ b/MuonSpectrometer/MuonReconstruction/MuonTrackMakers/MuonTrackMakerTools/MuonTrackFinderTools/src/MuonTrackToSegmentTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "MuonTrackToSegmentTool.h"
@@ -117,7 +117,7 @@ namespace Muon {
         }
         if (!surfaceTransform) surfaceTransform = backupTransform;
         // calculate distance new reference point, shift it 100 mm towards the start of the segment
-        double refDistance = weightedDistanceSquared / weightSquared - 100;
+        double refDistance = (weightSquared > 0 ? weightedDistanceSquared / weightSquared : 1) - 100;
         ATH_MSG_DEBUG(" weighted distance " << refDistance);
 
         Amg::Vector3D refPos = perigee->position() + refDistance * dir;
-- 
GitLab