I'm using the LHEP_PRECO 2.6 (Pack 2.2) physics list (with defaultCutValue set to 1 Angstroem). Simulating protons with kinetic energy 10 MeV hitting a thin "enriched" Si layer (Si-28 only), reproducible after some 1100000 primaries (using the default random number generator) the G4Exception: "G4PrecompoundModel::DeExcite: Excitation energy less than 0!" occurs. Cheers Hans-Herbert
Additional information Source code modification: // $Id: G4PreCompoundEmission.cc,v 1.17 2003/06/16 17:07:25 gunter Exp // GEANT4 tag $Name: geant4-05-02-patch-01 (...) // HHFB // if (anU < 0.0) G4Exception("G4PreCompoundModel::DeExcite: Excitation energy less than 0!"); if (anU < 0.0) { G4cout << G4endl << "G4PreCompoundModel::DeExcite: Excitation energy less than 0!" <<G4endl; G4cout << "aFragment="<<aFragment<<G4endl; G4cout << "momentum="<<momentum<<G4endl; G4cout << "KineticEnergyOfEmittedFragment="<<KineticEnergyOfEmittedFragment<<G4endl; G4cout << "EmittedMass="<<EmittedMass<<G4endl; G4cout << "EmittedMomentum="<<EmittedMomentum<<G4endl; G4cout << "anU="<< anU<<G4endl; G4cout << "RestMomentum.m()="<< RestMomentum.m()<<G4endl; G4cout << "theFragment->GetRestNuclearMass()="<< theFragment->GetRestNuclearMass()<<G4endl; G4cout << "EmittedMomentum="<<EmittedMomentum<<G4endl; G4cout << "ResidualEcm="<<ResidualEcm<<G4endl; G4cout << theFragment <<G4endl; G4Exception("G4PreCompoundModel::DeExcite: Excitation energy less than 0!"); } // HHFE (...) Output: G4PreCompoundModel::DeExcite: Excitation energy less than 0! aFragment=Fragment: A = 29, Z = 15, U = 1.232e+001 MeV P = (-1.368e+002,-2.962e-002,-1.407e-003) MeV E = 2.700e+004 MeV #Particles = 2, #Holes = 1, #Charged = 1 momentum=(-1.#IO,-1.#IO,-1.#IO) KineticEnergyOfEmittedFragment=9.232 EmittedMass=938.272 EmittedMomentum=(-1.#IO,-1.#IO,-1.#IO;-1.#IO) anU=1.#QO RestMomentum.m()=1.#QO theFragment->GetRestNuclearMass()=26053.202 EmittedMomentum=(-1.#IO,-1.#IO,-1.#IO;-1.#IO) ResidualEcm=26053.548 PreCompound Model Emitted Fragment: A = 1, Z = 1
I've not been able to reproduce the problem and I don't know what does it means 1.#QO or 1.#IO. As there are some changes in pre_equilibrium, plase, wait untill the new release (mid/end december) and if the problem is still there submit the bug report again.