Geant4

Randomize

랜덤 엔진은 보통 같은 시드를 사용했을 때 항상 같은 랜덤 수의 배열을 사용한다. 매 시뮬레이션을 마다 항상 같은 결과를 원하는 것이 아니라면 항상 다른 시드를 사용해야 한다. 예를 들어서 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()

참고자료

댓글

댓글 본문
작성자
비밀번호
버전 관리
ejungwoo
현재 버전
선택 버전
graphittie 자세히 보기