The new code in Geant4.9.1 to support different types of energy deposits has not been propagated to all modules which need changes. In particular, doing a ProposeNonIonizingEnergyDeposit from a process results in nonsense in the resulting energy deposition fetched in the end-of-step action. In G4SteppingManager.cc, the code starting near line 135 need this: // Store last PostStepPoint to PreStepPoint, and swap current and nex // volume information of G4Track. Reset total energy deposit in one Step. fStep->CopyPostToPreStepPoint(); fStep->ResetTotalEnergyDeposit(); fStep->ResetNonIonizingEnergyDeposit(); // THIS MUST BE ADDED TO INITIALIZE PROPERLY This results in the non-ionizing loss mechanism working correctly in the main (mass) world. However, it still does not work in parallel worlds, apparently also due to either failure to initialize something or to copy the values. I noticed that the G4Step object being handed around the parallel world detectors is a copy (different address) of the main G4Step, so I suspect the copy is incomplete.
Thank you very much for reporting the problem. I discussed with Hisaya and Makoto, and the problem was in the their category. The bug fix has been provided already in CVS. Please try the following tags: track-V09-01-01 and procscore-V09-01-00