Message: Re: Question for G4VSolid::SurfaceNormal() Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Question for G4VSolid::SurfaceNormal() 

Forum: Geometry
Re: Question Question for G4VSolid::SurfaceNormal() (Yuefeng Qiu)
Re: None Re: Question for G4VSolid::SurfaceNormal() (John Apostolakis)
Date: 08 May, 2014
From: Yuefeng Qiu <Yuefeng Qiu>

Dear John,

Thanks for your clear and useful answer!

If the Point is mostly very near to the surface then it is easy to deal with. I can use a larger Tolerance, for example, 10*kCarTolerence or 100*kCarTolerence to check if on one of the surfaces. However, if the point is far from the surface, I can return the normal of the nearest surface.

In my case the surface are analytic surface therefore the normal will be accurate. The only approximation will happen if point are far from the surface.

Best regards, Yuefeng

On Thu, 08 May 2014 06:48:51 GMT, John Apostolakis wrote:

> Dear Yuefeng,
> 
> The point p should be on or near the surface.  By 'near' I mean points which are calculated to be on the surface, but due to inaccuracies are not within the 'kTolerance' distance which is Geant4's convention for a surface point.
> 
> However occasionally you may get calls for points which are not on it.  It is ok not to give a valid answer for points which are far from the surface, for example outside.
> 
> The importance of the function depends on the application.  In case you are doing transport of optical photons, the surface normal (determined from this method, and also from the 'DistanceToOut' method, matters - it is used for reflection and refraction.  So the accuracy of the normal could determine the accuracy of a simulation; it could have a larger or smaller effect depending on the magnitude (and sign) of the inaccuracy and on the optical properties of the surface (metal/dielectric, smooth or rough, .. )  Small inaccuracies (e.g. < 1e-4 or 1e-3 ) will almost certainly be irrelevant.
> 
> In addition the surface is used to help identify boundary crossing of a track in a magnetic field - but in this cause it is an auxiliary role.  Significant errors could confuse tracking; in this case too small inaccuracies (e.g. < 1e-4) will be irrelevant.
> 
> John
> ===================================================
> John Apostolakis,  PH Department, CERN
> 
> On May 7, 2014, at 4:49 PM, Yuefeng Qiu wrote:
> 
> > 
> > *** Discussion title: Geometry
> > 
> > Hello everyone!
> > 
> > I am going to implement a new kind of solid. In order to implement the
> > new class I have some questions about overloading the
> > G4VSolid::SurfaceNormal(const G4ThreeVector& p):
> > 
> > 1. whether the point p in always on the surface? I can handle situations
> > that the p is inside the solid or on the surface, but if it is outside
> > the solid then it is a bad new s for me;
> > 
> > 2. whether this function is very important? If I offer a approximate
> > solution, how large is the influence?
> > 
> > Thanks in advance!
> > 
> > Best regards,
> > 
> > Yuefeng
> > 
> > -------------------------------------------------------------
> > Visit this GEANT4 at hypernews.slac.stanford.edu message (to reply or unsubscribe) at: 
> > http://hypernews.slac.stanford.edu/HyperNews/geant4/get/geometry/1341.html 
> 

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

1 None: Re: Question for G4VSolid::SurfaceNormal()   (John Apostolakis - 08 May, 2014)
(_ None: RE: Question for G4VSolid::SurfaceNormal()   (Qiu, Yuefeng (INR - 08 May, 2014)
 Add Message Add Message
to: "Re: Question for G4VSolid::SurfaceNormal()"

 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 ]