Hi:
I’ve been learning some basic examples of G4 recently, but there is one place I don’t quite understand. In the B3b example I found that the data extracted by the G4MultiFunctionalDetector
needs to be merged using the transfer to the Run::Merge
function.
So I checked the manual and according to the official explanation, in multi-threaded mode and when dealing with values that need to be accumulated, you need to override two virtual functions in G4run. They are the virtual void RecordEvent(const G4Event*)
and void Merge(const G4Run*) functions
.
But when I saw the B5 example, it was obvious that the example was also a cumulative value in the edpt of the statistics, but at this time I noticed that the official example did not use the class G4run
.
So I would like to ask you guys when the virtual function in the class G4run is mandatory to be overridden. Also what do I need to pay attention to when processing experimental data in multi-threaded mode. Thank you for your replies.