| Summary: | Frequent GeomNav0003 G4Exceptions | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | Krzysztof Genser <resnegfk> |
| Component: | geometry/navigation | Assignee: | John Apostolakis <John.Apostolakis> |
| Status: | RESOLVED WORKSFORME | ||
| Severity: | normal | CC: | jochem.snuverink |
| Priority: | P5 | ||
| Version: | 10.1 | ||
| Hardware: | All | ||
| OS: | All | ||
The problem seems to arise when distanceToOut of this G4Tubs is called from G4NormalNavigation::ComputeStep(). As a result of that call the projected exit point is at a radius of 2.50 mm -- which is clearly an error as the outer radius of the Tubs is 2.48502. The exit point explains the value of the normal which is calculated using the outer radius (for points on the outer cylindrical surface). The normal is obtained by dividing the vector of the position (restricted to the local X-Y plane) by the outer radius. The normal is longer than unity by exactly the ratio of 2.50 / 2.48502. To understand why this erroneous intersection point is found, we need to identify the parameters of the DistanceToOut call. I created a custom version of G4NormalNavigation and G4VoxelNavigation which include additional printout, and enabled the 'Check' mode by changing the default value in the constructor. The result of the run which included my changes was an early termination with a different error condition:
-------- EEEE ------- G4Exception-START -------- EEEE -------
*** G4Exception : GeomNav0003
issued by : G4NormalNavigation::ComputeStep()
Point is outside Current Volume -
Point (-64.7546,-47.6281,0.0230113) is outside current volume VirtualDetector_TT_FrontHollow
Estimated isotropic distance to solid (distToIn)= 0.0130113Point is far outside Current Volume !
*** Fatal Exception *** core dump ***
-------- EEEE -------- G4Exception-END --------- EEEE -------
-----------------------------------------------------------
*** Dump for solid - VirtualDetector_TT_FrontHollow ***
===================================================
Solid type: G4Tubs
Parameters:
inner radius : 0 mm
outer radius : 840 mm
half length Z: 0.01 mm
starting phi : 0 degrees
delta phi : 360 degrees
-----------------------------------------------------------
checkForOverlaps SurfaceArea is: 4433521, surfaceCheckPoints 44335 for VirtualDetector_TT_FrontHollow
Checking overlaps for volume VirtualDetector_TT_FrontHollow ... OK!
Further investigation using sub-navigators with extra verbosity did not yet reveal the source of the problem. Unrelated revisions in G4Tubs.cc though appear to have decreased significantly the incidence of the problem. Since the user no longer and we are unable to reproduce the problem, we are closing it. |
When using ShieldingM_MEV physicslist the following exceptions occur frequently. Observed for low energy (~0.3Mev) electrons. The exception and volume description follows: History depth=8 -------- WWWW ------- G4Exception-START -------- WWWW ------- *** G4Exception : GeomNav0003 issued by : G4Navigator::GetGlobalExitNormal() WARNING> Expected normal-global-frame to be valid, i.e. a unit vector! - but |normal| = 1.00602812 - and |normal|^2 = 1.012092579 which differs from 1.0 by 0.01209257923 n = (-0.3898221121,-0.1044525201,0.9215318612) ============================================================ State of Navigator: The current state of G4Navigator is: ValidExitNormal= 1 ExitNormal = (0.4036,0.9215,0) Exiting = 1 Entering = 0 BlockedPhysicalVolume= None BlockedReplicaNo = -1 LastStepWasZero = 1 Current Localpoint = (1.0028883,2.2900251,245.90264) PreviousSftOrigin = (-4471.4981,102.51648,11713.114) PreviousSafety = 0 Current History: Level=[0]: Phys Name=[World] Type=[N] Level=[1]: Phys Name=[HallAir] Type=[N] Level=[2]: Phys Name=[DS3Vacuum] Type=[N] Level=[3]: Phys Name=[TrackerMother] Type=[N] Level=[4]: Phys Name=[TTrackerDeviceEnvelope_43] Type=[N] Level=[5]: Phys Name=[SectorEnvelope] Type=[N] Level=[6]: Phys Name=[TTrackerStrawGas_0_0_0_22] Type=[N] Level=[7]: Phys Name=[TTrackerStrawWall_0_0_0_22] Type=[N] Level=[8]: Phys Name=[TTrackerStrawWallInnerMetal2_0_0_0_22] Type=[N] ============================================================ Value obtained from stored global-normal is not a unit vector. *** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW ------- ... The last volume has the following parameters: ----------------------------------------------------------- *** Dump for solid - TTrackerStrawWallInnerMetal2_0_0_0_22 *** =================================================== Solid type: G4Tubs Parameters: inner radius : 2.485 mm outer radius : 2.48502 mm half length Z: 472.6153133098842 mm starting phi : 0 degrees delta phi : 360 degrees -----------------------------------------------------------