|Message: Re: Crazy Point in G4Field::GetFieldValue()||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)|
On Sat, 17 Dec 2005, Tom Roberts wrote: > *** Discussion title: Fields: Magnetic and Otherwise > Email replies to PublicHyperNews@slac.stanford.edu must include: > In-Reply-To: <"/emfields/90"@geant4-hn.slac.stanford.edu> > Subject: ...change this to be about your reply. > > In Geant4 7.1, my program occasionally crashes with a segment fault in > my GetFieldValue(). This is caused by its argument Point being an > array of 4 NaN-s. That's crazy -- why should the Geant4 tracking ever > generate a Point that is four not-a-number? > > This is quite rare, occuring a few times out of 400 million events (800 > 500k-event jobs on a cluster). I can trace it to tracking a pi+ inside > an Al beam pipe (much of the rarity is because most particles don't hit > the beam pipes). As I am not interested in particles that hit beam > pipes, I have a workaround by killing any particle inside a beam pipe. > But soon I will be looking at backgrounds from that.... > > I am using the physics use case LHEP_BIC. > > When I compile and run with G4DEBUG=1, the problem does not occur. This > implies that Point is probably not initialized when this fault > happens; that is deep inside Geant4 code. My program seeds the random > number generator with the event# and resets RanGauss(), so I can > reliably re-run specific events. I put check code in GetFieldValue() to > print "NaN" and force a coredump whenever Point != Point (i.e. > Point is NaN); the backtrace below did that. > > With G4DEBUG=0 all I can get is the stack traceback from the core file > (levels 0,14,15 are mine): > > (gdb) backtrace > > #0 0x080ad57e in BLGlobalField::GetFieldValue () > #1 0x08a29768 in G4ClassicalRK4::DumbStepper () > #2 0x08a2a65f in G4MagErrorStepper::Stepper () > #3 0x08a2c764 in G4MagInt_Driver::QuickAdvance () > #4 0x08a28881 in G4ChordFinder::FindNextChord () > #5 0x08a2826b in G4ChordFinder::AdvanceChordLimited () > #6 0x08a3a9c4 in G4PropagatorInField::ComputeStep () > #7 0x08327e17 in G4Transportation::AlongStepGetPhysicalInteractionLength () > #8 0x082fda88 in G4SteppingManager::DefinePhysicalStepLength () > #9 0x082fbded in G4SteppingManager::Stepping () > #10 0x082f027d in G4TrackingManager::ProcessOneTrack () > #11 0x082e3ee6 in G4EventManager::DoProcessing () > #12 0x082cd9ee in G4RunManager::DoEventLoop () > #13 0x082cd4c1 in G4RunManager::BeamOn () > #14 0x080c239e in BLManager::trackBeam () > #15 0x0805ee07 in main () > > Please, try to use G4 7.1 patch 01 - in this patch the bug was fixed, which provided nans with some probability. VI
|Inline Depth:||Outline Depth:||Add message:|