In our Geant4 based program we are taking advantage of the Scoring Meshes functionality. When the number of meshes defined in the code becomes more than
G4PathFinder::fMaxNav (static const value of 16) then following exception is triggered:
-------- EEEE ------- G4Exception-START -------- EEEE ------- *** G4Exception : GeomNav0002 issued by : G4PathFinder::PrepareNewTrack() Too many active Navigators / worlds. Transportation Manager has 17 active navigators. This is more than the number allowed = 16 ! *** Fatal Exception *** core dump *** G4WT2 > G4Track (0x7f9ab06abe20) - track ID = 1, parent ID = 0 G4WT2 > Particle type : e- - creator process : not available G4WT2 > Kinetic energy : 1 GeV - Momentum direction : (0,0,1) G4WT2 > Step length : 0 fm - total energy deposit : 0 eV G4WT2 > Pre-step point : (0,0,-1010) - Physical volume : World (G4_AIR) G4WT2 > - defined by : not available G4WT2 > Post-step point : (0,0,-1010) - Physical volume : World (G4_AIR) G4WT2 > - defined by : not available G4WT2 > *** Note: Step information might not be properly updated. G4WT2 > -------- EEEE -------- G4Exception-END --------- EEEE -------
Instead of posting our program code here I reproduced the issue in one of Geant4 examples. Namely,
/extended/runAndEvent/RE03. Example takes advantage of a maximum of 3 scoring meshes. However, if we define more that 16 scoring meshes in the macro file the executable throws same exception.
I attach the modified macro file here:
run_my.txt (5.9 KB)
To reproduce the error please compile the above example and run
My questions are following:
- Is having a maximum of 16 scoring meshes is intended or is a Geant4 bug?
- If behavior is buggy can anyone suggest a workaround?
Issue reproduced on: Geant 4.10.07.p01, gcc 10.3.1, Fedora 33. Geant 4.10.06.p02, gcc 9.2.0, CentOS 7.7
P.S.: exception is fired from file
G4PathFinder.cc:367. I tried to debug this issue but the IDE is not hitting my breakpoints - probably because
G4TransportationManager has an inline definition file