Message: Re: G4VSolid::DistanceToOut(p,v,...) for p on surface? Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Feedback Re: G4VSolid::DistanceToOut(p,v,...) for p on surface? 

Keywords: distancetoout tracking geometry
Forum: Geometry
Re: Question G4VSolid::DistanceToOut(p,v,...) for p on surface? (Rickard Holmberg)
Date: 06 Mar, 2007
From: Vladimir Grichine <Vladimir Grichine>

Hi Rickard,

> When trying to debug the G4TessellatedSolid problems I reported in
> another thread here, I have run up against some other problems,
> concerning DistanceToOut(p,v,...) when p lies on a surface.
> The User's Guide for Toolkit developers states that DistanceToOut(p,v,...)
> should behave as follows:
> Return distance along the normalised vector v to the shape, from a point
> at an offset p inside or on the surface of the shape. Intersections with
> surfaces, when the point is not greater than kCarTolerance/2 from a
> surface, must be ignored.
> I interpret that so that if we are close to a surface like that, the
> function should return the distance to the next outgoing intersection,
> if there is one.

What is written in the user documents is correct.
When the distance from surface is not greater than kCarTolerance/2 means
that you are on the surface, therefore DistanceToOut(p,v,...) must return

> E.g, if the solid is U-shaped, and the function is called for a point
> with p on the inner surface of the left hook, and v pointing right,
> it should ignore the first surface and return the distance to the
> right-hand outgoing surface. However, looking at
> G4UnionSolid::DistanceToOut(p,v,...), that function seems to
> return 0.0 if p lies on the outside half of the surface, regardless
> of whether the ray intersects any other surfaces later.

If you consider the outer surface, the evaluation of
DistanceToOut(p,v,...) depends on the value of scalar product of the
direction and surface normal. When the surface is concave and the 
product is not negative, DistanceToOut(p,v,...) returns zero. 
Otherwise it returns the distance to next surface of that solid.

Cheers, Vladimir

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 None: Re: G4VSolid::DistanceToOut(p,v,...) for p on surface?   (Rickard Holmberg - 06 Mar, 2007)
 Add Message Add Message
to: "Re: G4VSolid::DistanceToOut(p,v,...) for p on surface?"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews

[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]