랜덤 엔진은 보통 같은 시드를 사용했을 때 항상 같은 랜덤 수의 배열을 사용한다. 매 시뮬레이션을 마다 항상 같은 결과를 원하는 것이 아니라면 항상 다른 시드를 사용해야 한다. 예를 들어서 c의 time 함수를 이용해서 메인 프로그램에 다음과 같이 적용할 수 있다.
G4Random::setTheSeed(time(0));
헤더는 Randomize.hh와 time.h를 사용한다.
G4Random의 랜덤 엔진은 다음과 같이 지원한다.
- HepJamesRandom (기본)
- DRand48Engine
- RandEngine
- RanluxEngine
- RanecuEngine
자세한 내용은 아래 참고자료를 참고 하자. 엔진 세팅은 다음과 같이 한다.
G4Random::setTheEngine(new CLHEP::RanecuEngine);
균일하게 랜덤한 숫자를 꺼내오고 싶을 때는 flat() 함수를 사용한다.
G4Random::getTheGenerator() -> flat()