Problem 472

Summary: program crash in G4LENeutronInelastic
Product: Geant4 Reporter: ol.hartmann
Component: processes/hadronic/models/low_energyAssignee: Hans-Peter.Wellisch
Status: CLOSED FIXED    
Severity: normal CC: A.Sokolov, c.schwarz
Priority: P2    
Version: other   
Hardware: PC   
OS: Linux   

Description ol.hartmann 2003-03-26 11:32:49 CET
Simulating a reaction channel with two phi mesons decaying each in two muons
after 9800 events GEANT4 (4.5.0_p01) crashes with the following exception:

G4LENeutronInelastic: should be capture process!

*** G4Exception: Aborting execution ***
Comment 1 Hans-Peter.Wellisch 2003-04-04 04:04:59 CEST
Hi,

  this one turns out to be significantly harder than expected. I verified the
cross-sections and the condition under which the exception occures in the final
state generator. I find that this condition should indeed never occure for all
elements I tested...
What I would to progress from here are the values for the 4-momentum of the
incident neutron, and the characteristics of the material, where the problem
occures.
Can you please run the program in the debugger, and break in G4Exception, to get
at this information (or just put some printout in from of the exception in the
source file - G4LENeutronInelastic.cc, blocks starting at lines 54, and 56)?

Many greetings,

Hans-Peter.
Comment 2 Hans-Peter.Wellisch 2003-04-08 12:31:59 CEST
Archiving for the record.....

This was a tough one. What you have there is a neutron with a 1meV (1
milli electron volt) kinetic energy.

As it turns out, the inelastic cross-section for iron (the 56 isotope)
is indeed non-zero down to the lowest energies. This is a extremely rare
case, but all is correct. It is the exception that is misplaced. It
occures in two places in the same file. I'll comment this in the next
release.

I would still be happy, if you could verify this in the debugger, and
print for me the value of the 'theLastCrossSection' variable? This is a
data member of the G4HadronInelasticProcess, that the process using
G4LENeutronInelastic (G4NeutronInelasticProcess) derives from. It was
put there for no other reason than for being able to check things in
circumstances like these.

Many greetings,

Hans-Peter.


Olaf Hartmann wrote:
>
> + Can you please run the program in the debugger, and break in
> G4Exception, to get
> + at this information (or just put some printout in from of the
> exception in the
> + source file - G4LENeutronInelastic.cc, blocks starting at lines 54,
> and 56)?
>
> Hi Hans-Peter,
>
> it was tried with debug version of G4.5.0_p01, but under this
> circumstances it never
> came to the exception. So, the idea with the printout was checked, here
> the result:
>
> 4-momentum (-0.000599026,-0.00142241,-0.000165049;939.566)
> material  Material: Iron            density:  7.780 g/cm3  temperature:
> 273.15 K  pressure:   1.00 atm  RadLength:   1.779 cm
>     --->  Element: Iron    Z = 26.0   N =  55.8   A =  55.84 g/mole
> fractionMass: 100.00 %  Abundance 100.00 %
> G4LENeutronInelastic: should be capture process!
>
> *** G4Exception: Aborting execution ***
>
> Cheers,
> Olaf.