| Summary: | Exception due to Energy Momentum for Bertini with Hydrogen | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | John Apostolakis <John.Apostolakis> |
| Component: | processes/hadronic/models/cascade | Assignee: | Michael Kelsey <kelsey> |
| Status: | RESOLVED FIXED | ||
| Severity: | major | CC: | dennis.herbert.wright, John.Apostolakis |
| Priority: | P2 | ||
| Version: | 9.4 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| URL: | https://savannah.cern.ch/bugs/?84065 | ||
This is found in 9.4 patch 1 which is being used in production. 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. 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. 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. |
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 ***