乱数シードを取得したい(G4Event::GetRandomNumberStatus

1void MyEventAction::BeginOfEventAction(const G4Event* aEvent) {
2    G4String status = aEvent->GetRandomNumberStatus();
3    G4debug << "Random number status at the start of the event: " << status << G4endl;
4}

G4Event::GetRandomNumberStatusで、それぞれのイベントの乱数状態を取得できます。 この状態値を使うと、同じシミュレーション結果を再現できます。

1void MyEventAction::EndOfEventAction(const G4Event* aEvent) {
2    G4String status = aEvent->GetRandomNumberStatus();
3
4    // ファイルに追記
5    std::ofstream fout("randomStatus.txt", std::ios::app);
6    fout << "EventID," << aEvent->GetEventID() << "," << status << "\n";
7    fout.close();
8}

EndOfEventActionで、この状態値を保存するのが一般的です。