| Summary: | Non reproducibility | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | Alberto.Ribon |
| Component: | processes/hadronic | Assignee: | dennis.herbert.wright |
| Status: | RESOLVED FIXED | ||
| Severity: | critical | CC: | dennis.herbert.wright, Gabriele.Cosmo, Gunter.Folger, marcus.h.mendenhall |
| Priority: | P5 | ||
| Version: | 9.1 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
Several issues have been identified, in which caching of values in different classes results in different results for "out-of-order" running of events. Fixes for the issues identified by January have been included in patch 1 for release 9.1. Several of these fixes were also included in patch 2 for 9.0 and patch 2 for 8.3 As of 10 October, 2008, running 4.9.2beta-01, I am still seeing an inability to reproduce events by resetting the random seeds, which appears to be related to this. If I run events with no hadronic physics turned on, I can reset the random seed and exactly reproduce sequences of events. If I turn on HadronPhysicsQGSP_BIC or QGSP_BERT, events are different on each run, even with the seeds reset. This appears to be true on both MacOSX and Linux. Added note: for some reason, this bug is assigned to the 'bugzilla' category, instead of the Geant4 category, so advanced searches of the Geant4 category under hadronics cannot find it. Can it be moved to the right place? I retract my comment from 11 October about this bug still being visible in 4.9.2b01. I found an error in my code, which was not apparent under 4.8.x, which became apparent now. As far as I can tell, the hadronics are reproducing fine. The problem reported appears to have been resolved. |
I have found few violations of reproducibility, running G4 9.1.cand03, on SLC4 on a 32-bit machine. The cases where I have detected such a violation are the following: 1) QGSP_BERT, 100 GeV neutron on PbWO4-Sci calorimeter; 2) FTFP, 100 GeV proton on Fe-Sci calorimeter; 3) QGSP_BIC, 100 GeV proton on W-Sci calorimeter. The test that detects the reproducibility violation is the following. a) Run 20 events, starting from a given initial seed b) Run 10 events, starting from the same initial seed; then set the seed to currentEvent.rndm (as produced by running the first 10 events) then run further 11 events. If the reproducibility holds, then the final random number, at the end of the execution, should be the same for a) and b). These violations were initially much more frequent, but then they have been heavily reduced by replacing Starkov's elastic scattering with the LEP elastic scattering.