From 774e586b4ca64c35d11e76f9663dbd045a7f1e3e Mon Sep 17 00:00:00 2001 From: Andrei Gheata Date: Fri, 21 Jan 2022 16:03:36 +0100 Subject: [PATCH] Fixed conversion factors for safety in scale transformations in case of reflections. --- VecGeom/base/Scale3D.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/VecGeom/base/Scale3D.h b/VecGeom/base/Scale3D.h index 29cb95d67..2c24baa44 100644 --- a/VecGeom/base/Scale3D.h +++ b/VecGeom/base/Scale3D.h @@ -96,10 +96,11 @@ public: { assert(((fScale[0] != 0) && (fScale[1] != 0) && (fScale[2] != 0))); fInvScale.Set(1. / fScale[0], 1. / fScale[1], 1. / fScale[2]); - fSclLocal = Min(fInvScale[0], fInvScale[1]); - fSclLocal = Min(fSclLocal, fInvScale[2]); - fSclMaster = Min(fScale[0], fScale[1]); - fSclMaster = Min(fSclMaster, fScale[2]); + // Keep into account that scale components may be negative for reflections + fSclLocal = Min(Abs(fInvScale[0]), Abs(fInvScale[1])); + fSclLocal = Min(fSclLocal, Abs(fInvScale[2])); + fSclMaster = Min(Abs(fScale[0]), Abs(fScale[1])); + fSclMaster = Min(fSclMaster, Abs(fScale[2])); } /** -- GitLab