|Message: Bumpy surfaces and the Geant4 geometry||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
I'm evaluating whether Geant4 could be used to implement an X-ray ray-tracer. I have already such a ray-tracer, but I see tentalizing advantages in using Geant4: I can concentrate on the physics instead of maintaining my own infrastructure code, use existing visualization facilities, better debugging facilities, the possibility to inject more physical processes in the simulation than just those I have coded myself, the ability to read CAD models and use GDML.
I have a clear idea of how to implement new physical processes, but it is not clear to me that the Geant4 geometry and tracking system can handle the kind of surface properties that one encounters in X-ray optic.
Below I describe how I would like to extend the geometry models in Geant4; I do not expect to find a ready-to-use solution, but I would like to hear from somebody close to the geometry and tracking parts of Geant4 if the issues I would have to tackle hit any fundamental limitation in the way Geant4 works.
X-rays for me go from 100eV to 50keV. At these energies reflection occurs only at grazing angles (less than 1deg), and no matter how polished a surface is, it is never polished enough: an X-ray sees bumps at the Angstrom level. These causes shadows, perturb the normal, and change the impact point with respect to an ideal surface. Also, given the production processes used to make X-ray mirrors, the surfaces can be distorted, and these distortions are modelled as a polynomial perturbation of the ideal surface. Many of the techniques involved are similar to those used in rendering programs like PovRay.
An X-ray tracer must then find the intersection point for an photon based on a primitive surface/volume that has been modified to reproduce the measured surface properties (see entries about bump and displacement mappings in the Wikipedia for a more eloquent explanation). An implementation of the properties of the surfaces based on a statistical approach is not sufficient: in some cases we have an interferogram of the surface, and one would like to define a primitive surface and slap the PNG interferogram image on it, and the ask the ray-tracer (Geant4?) to say where the interaction occurs, and what the normal is.
Would going down this road with Geant4 hit some fundamental limitation of the tookit? Is anybody doing anything similar (perhaps the people developing the vis/RayTracer functionality?
|Inline Depth:||Outline Depth:||Add message:|