Simulation result with /score/ or not

Dear Geant4 experts,
When I simulate the energy deposited in water from alpha particles with 5.87 MeV, I got different simulation results.
I use SteppingAction::UserSteppingAction(const G4Step* step) and SensitiveDetector::ProcessHits(G4Step* step, G4TouchableHistory*) to get the deposited energy in every step, and translate the result to Run::AddEdep(G4double pos, G4double edep), and finally merge the result.
When I employed the “/socre/” method in run.mac or not, I got two different result. Here are the results of them with score or not.

And also, when I use SteppingAction methods, I find the results of multi-threads can’t be merged.

So there are four simulation results.

  1. SensitiveDetector and /score/: the result I thinks the result is right, as shown in figure with score.
  2. SensitiveDetector without /score/: the Bragg Peak was in the front and more high than 1, as shown in figure without score.
  3. SteppingAction and /score/: the result is same as 1, but result can’t be more merged in Run::Merge(const G4Run*).
  4. SteppingAction without /score/: the result is same as 2, and result can’t be more merged in Run::Merge(const G4Run*).

Could you help me for my problem? Thanks a lot.

Geant4 Version: 11
Operating System: Windows and Ubuntu
Compiler/Version: 11.4
_CMake Version:_3.22


Our references are examples/extended/electromagnetic/TestEm7 or TestEm11 or hadronic/Hadr07
They do not use SensitiveDetector nor scorer
Here, a macro for TestEm11 and corresponding histogram 1

alpha.mac.txt (653 Bytes)