| Summary: | Abnormal behaviour of /geometry/test/recursive_test | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | Vlasios Vasileiou <vlasisva> |
| Component: | geometry | Assignee: | davidw |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | Gabriele.Cosmo |
| Priority: | P2 | ||
| Version: | 6.1 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| URL: | http://umdgrb.umd.edu/vlasisva/g4_02.wrl | ||
|
Description
Vlasios Vasileiou
2004-04-13 19:27:40 CEST
It looks like a problem of round-off error in the calculation of the distances. Can you please provide the source code of your detector-description class which reproduces the geometry you're showing ? Please, add the information (URL address) to this problem report. Thanks. Ok Here is some sample code that produces the error message. Try to double pond_top_dx and pond_top_dy. The problem disappears. The problem seems originated by the placement of the tiny semisphere within the cone-shell, it is not easy to understand if an overlap is indeed existing, given that the semisphere is very close to the inner surface of the cone shell. The test however seems to tell so. The fact that by enlarging the dimensions of the relatively big mother 'pond' volume makes the warning disappear, is eventually due to a round-off approximation in the calculation of the distances, which in such case may go off the tolerance... However, it is also true that by reducing the max-radius of the tiny sphere by 1*nanometer the overlap's warning gets resolved... One should carefully check the positioning of the volumes, eventually getting used to coherently specify also the units for dimensions, translations and angles. The semisphere isn't close to the cone. Take note that it is not a perfect hemisphere. There is a maxtheta angle=70 degrees. Please check the file baffle.wrl that has just one PMT to see that there is a clear separation between the two volumes (more than centimeters). DAVID gives no errors. The user is right.
The problem seems related to (schematically) a similar case below:
---------------------
| A |
| |---------| |
| | | |
| | |---| | |
| | | B | | |
| | | | | |
| | x------x |
| | | | | |
| | |---| | |
------ ------
where volume B is the hemisphere and A the cone shell.
Segment points of the grid are both outside B and the right end of the
segment lies on A's inner surface.
I checked the responses from the solids are correct also for another error
case reported for the mother trapezoid:
GeomTest Error: SolidProblem
Spurious entering intersection point
Solid name = InBaffle
Local position = 11.3919 0.123745 -5.56829 cm
Solid response:
Where the point is located on its surface.
Both cases seem not handled correctly in GeomTestVolume::TestOneLine()
and GeomTestSegment::FindSomePoints().
The analysis of the problem is now assigned to the original author of
those classes in Geant4.
I want to thank Vlasios for taking the time to report this problem and provide a code example for study. I was able to reproduce this problem and have studied the corresponding geometry and solid code. This issue appears to be due to round off errors. Specifically, the user has placed a conical solid into a mother volume of relatively large dimensions. The geometry testing code attempts to calculate an intersection with this solid from a long distance away. The round off error in this calculation is larger than the "tolerance" value assumed in the solid. This is a design problem in geant4 and is not something that is easy to fix here. I will attempt to install addition error tolerance into the testing code to try to fix this. For running simulations using this geometry, I suggest the user install step limits of modest size (say, the dimensions of each PMT). This will avoid similar roundoff problems effecting the geant4 tracking. Gabriele mentions an issue considering the error message "Spurious intersection point." This could be related to another bug not directly associated with the other types of errors mentioned in this report. I refer him to Problem #652. Code changes, after testing, have been submitted to the geant4 code respository. See revision 1.3 of geometry/navigation/src/G4GeomTestSegment.cc |