In bug 1243 I reported problems with track weighting. It was accepted and resolved by implementing my suggestions, and the change is present in Geant4.9.4.p03. It made significant revisions to the handling of weights for secondary tracks. Unfortunately, this fix broke the basic track weighting -- standard processes such as Decay and delta-ray production now produce tracks with weight=1.0, independent of the weight of the parent track. They should have, and used to have, the weight of their parent. The problem is in this aspect of the fix to bug 1243: "C)SetSecondaryWeightByProcess() flag is set to true in default." This makes the process code responsible for setting the weights of secondaries, but most processes do not do so, and the secondaries they produce get the G4Track constructor's default of 1.0. I'm pretty sure this is an error: in Geant4.9.4, G4VParticleChange::fSetSecondaryWeightByProcess was initialized to false. That makes the parent's weight be transferred to secondaries by default, which many processes depend upon (and those that don't call SetSecondaryWeightByProcess(true)). Making this one-line change to G4VParticleChange.cc resolves the failures of several of my regression tests (they passed using Geant4.9.4 and Geant4.9.4.p02, and with this change now pass using Geant4.9.4.p03). This probably needs to be carried forward to Geant4.9.5 (which I have not yet tried).
Thank you for reporting the bug. It's my mistake to change the basic behavior of secondary weight. I'll fix it for 9.4 and 9.5 release.