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
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
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.