From db6a19aa45effab1d84944d858a1cc610e47ac11 Mon Sep 17 00:00:00 2001 From: Davide Mancusi <davide.mancusi@cea.fr> Date: Wed, 12 Dec 2018 16:45:22 +0100 Subject: [PATCH] Apply fix from ddc88ff2 to voxelized navigation, too This commit fixes navigation in overlapping nodes when the point is close to the boundary. See also: https://root-forum.cern.ch/t/unexpected-navigation-behaviour-with-overlapping-nodes/26618 --- geom/geom/src/TGeoNavigator.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geom/geom/src/TGeoNavigator.cxx b/geom/geom/src/TGeoNavigator.cxx index d3fae795c96..6c0d7969774 100644 --- a/geom/geom/src/TGeoNavigator.cxx +++ b/geom/geom/src/TGeoNavigator.cxx @@ -1179,7 +1179,8 @@ TGeoNode *TGeoNavigator::FindNextDaughterBoundary(Double_t *point, Double_t *dir current->cd(); current->MasterToLocal(point, lpoint); current->MasterToLocalVect(dir, ldir); - if (current->IsOverlapping() && current->GetVolume()->Contains(lpoint)) continue; + if (current->IsOverlapping() && current->GetVolume()->Contains(lpoint) && + current->GetVolume()->GetShape()->Safety(lpoint, kTRUE) > gTolerance) continue; snext = current->GetVolume()->GetShape()->DistFromOutside(lpoint, ldir, 3, fStep); sumchecked++; // printf("checked %d from %d : snext=%g\n", sumchecked, nd, snext); -- GitLab