Problem 394

Summary: Geant enters an infinite loop when a 20. MeV neutron is produced (G4NeutronHPInelastic).
Product: Geant4 Reporter: ersmark
Component: processes/hadronic/modelsAssignee: Hans-Peter.Wellisch
Status: CLOSED FIXED    
Severity: major    
Priority: P2    
Version: 4.0   
Hardware: PC   
OS: Linux   

Description ersmark 2002-07-26 08:36:42 CEST
Geant enters an infinite loop when a 20. MeV neutron is produced.

This happens only when using the model G4NeutronHPInelastic, or more precisely
when the dataset has been loaded(?).

Assume a simulation that runs fine for 20. MeV neutrons and has the neutron
models in "theNeutronInelasticProcess". Adding the following lines are will
break the simulation:

G4CrossSectionDataStore* theNeutronHPInelasticDataStore =
  ((G4HadronInelasticProcess*)theNeutronInelasticProcess)->
    GetCrossSectionDataStore();
theNeutronHPInelasticDataStore->AddDataSet(new G4NeutronHPInelasticData());

When I encountered the problem my physics list continued:

G4NeutronHPInelastic* theNeutronHPInelasticModel = new G4NeutronHPInelastic();
theNeutronHPInelasticModel->SetMaxEnergy(19.*MeV);
theNeutronInelasticProcess->RegisterMe(theNeutronHPInelasticModel);


Systems tested:
RedHat 7.3 (with gcc-2.95.3), also SuSe 8.0.
Geant4.4.0 with CLHEP 1.7, also Geant4.4.1 with CLHEP 1.8.
G4NDL3.5.
Comment 1 Hans-Peter.Wellisch 2002-08-08 07:35:59 CEST
Hi,

  I tried quite a number of materials, but seem not to be able to reproduce the
behaviour you see. Can you somehow provide me with your source code? I would
then debug 'in situ'.

Many greetings,

Hans-Peter.
Comment 2 Hans-Peter.Wellisch 2002-09-06 02:18:59 CEST
Hi,

  I found a semi-infivite situation in the doppler broadening, that I fixed. I
had to do with small cross-sections in a log-log interpolation scheme. They went
slightly negative, which the droadening code was not protected against.

I gave the fix to Bengt.

Many greetings,

Hans-Peter.
Comment 3 Hans-Peter.Wellisch 2003-03-13 02:12:59 CET
released in 5.0