Problem 1228 - Exception due to Energy Momentum for Bertini with Hydrogen
Summary: Exception due to Energy Momentum for Bertini with Hydrogen
Status: RESOLVED FIXED
Alias: None
Product: Geant4
Classification: Unclassified
Component: processes/hadronic/models/cascade (show other problems)
Version: 9.4
Hardware: PC Linux
: P2 major
Assignee: Michael Kelsey
URL: https://savannah.cern.ch/bugs/?84065
Depends on:
Blocks:
 
Reported: 2011-07-13 09:35 CEST by John Apostolakis
Modified: 2011-07-26 05:50 CEST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this problem.
Description John Apostolakis 2011-07-13 09:35:15 CEST
During ATLAS production, the reproducible error below occurs.


>>> G4CascadeInterface::ApplyYourself()
 has non-conserving cascade after 100 attempts.
 Energy conservation violated by -0.288364 GeV (-0.185188)
 Momentum conservation violated by 0.111654 GeV/c (0.185188)

 Final event output, for debugging:
 Bullet:  
 px 0 py 0 pz 0.60292185971307 pmod 0.60292185971307 E 0.61886556030682 creator model 0
 Particle: pi+ type 3 mass 0.1395701 ekin 0.47929546030682

 Target:  
 px 0 py 0 pz 0 pmod 0 E 0.938272013 creator model 0
 Particle: proton type 1 mass 0.938272013 ekin 0
 Output: 
 Outgoing Particles: 2
 px 0 py 0 pz 0.27124867449982 pmod 0.27124867449982 E 0.30505025197813 creator model 3
 Particle: pi+ type 3 mass 0.1395701 ekin 0.16548015197813
 px 0 py 0 pz 0.22001899733687 pmod 0.22001899733687 E 0.96372336776079 creator model 3
 Particle: proton type 1 mass 0.938272013 ekin 0.025451354760786
 Outgoing Nuclei: 0
In src/G4CascadeInterface.cc, line 483: 
===> G4CascadeInterface::ApplyYourself() - EnergyMomentum non-conservation. More info in output.
Call for Bertini Cascade
Target element Hydrogen  Z= 1  A= 1
Unrecoverable error in the method ApplyYourself of PionPlusInelastic
TrackID= 1410300  ParentID= 36  pi+
Ekin(GeV)= 0.47929546030682;  direction= (0.029415204700998,-0.10924482395656,-0.99357954597058)
Position(mm)= (56.485628415656,158.91882363275,-3700.9245185166);  material BoratedPolyethelyne
PhysicalVolume  <LArMgr::ModeratorTube>

*** G4Exception : 007
      issued by : G4HadronicProcess
PostStepDoIt failed.
*** Fatal Exception *** core dump ***

*** G4Exception: Aborting execution ***
Comment 1 John Apostolakis 2011-07-13 09:36:30 CEST
This is found in 9.4 patch 1 which is being used in production.
Comment 2 Michael Kelsey 2011-07-19 05:54:00 CEST
The same crash was reported by Andrea Dotti in development releases of 9.4, and fixed in the trunk of the SVN repository, by doing a better job of zero-testing in G4LorentzConvertor::rotate().  I have copied the trunk version of G4LorentzConvertor.cc into the 9.4-patch series branch and created a tag, "hadr-casc-V09-03-91", which may be used on top of 9.4-patch02.

I will not marking this bug report resolved until this tag has been shown to eliminate the non-conservation exception by reproducing the same ATLAS event.
Comment 3 Michael Kelsey 2011-07-19 23:47:53 CEST
Better fix, avoiding elastic-scatter output entirely, is now at HEAD of SVN, tagged hadr-casc-V09-04-15.  In this tag, G4CascadeInterface "trivializes" the output for the case where no inelastic collision can be generated; that is, the input projectile and target are copied to the results vector as is.

This tag needs to be validated before I replicate it in the 9.4-patch branch.
Comment 4 Michael Kelsey 2011-07-26 05:50:10 CEST
Changes described in Comment #3 were not correct.  Per V.Ivantchenko, "do nothing" is reported back to hadronic process via empty G4HadFinalState, with status "isAlive."  Input should not be copied.

Correct behavior deployed in hadr-casc-V09-04-16 (and later tags).  Because this changes the physics, it will not be backported to a 9.4 patch build.