Geant4

Geant4 커맨드 라인과 매크로

Geant4는 자체 커맨드 라인을 가지고 있다. 메인 프로그램에서 G4UIExecutive를 만들어서 SesseionStart() 함수를 실행하면 프로그램을 시작할 때 커맨드 라인을 실행하며 다름과 같은 입력칸이 나타나다.

Idle>

여기서 사용할 수 있는 명령어는 (Commands in /) 에 잘 설명되어 있다. 혹은 다음과 같이 커맨드 라인에서 'help' 명령어를 사용해서 볼 수 있다.

Idle> help
Command directory path : /
 Sub-directories : 
 1) /control/   UI control commands.
 2) /units/   Available units.
 3) /process/   Process Table control commands.
 4) /geometry/   Geometry control commands.
 5) /tracking/   TrackingManager and SteppingManager control commands.
 6) /event/   EventManager control commands.
 7) /cuts/   Commands for G4VUserPhysicsList.
 8) /run/   Run control commands.
 9) /random/   Random number status control commands.
 10) /particle/   Particle control commands.
 11) /material/   Commands for materials
 12) /physics_engine/   commands related to the physics simulation engine.
 13) /gun/   Particle Gun control commands.
 14) /heptst/   Controls for the hadronic energy/momentum test
 15) /vis/   Visualization commands.
 Commands : 

Type the number ( 0:end, -n:n level back ) : 

하고자 하는 일에 따라 다른 항목이 있고 각 항목안에 명령어, 또는 또 다른 항목이 들어있는 형식이다. 터미널에서 처럼 "cd"와 "ls" 명령어도 사용 가능하다. 가장 대표적으로 "/run/beamOn [숫자]" 명령은 [숫자] 만큼의 이벤트를 시뮬레이션 한다. 커맨드 라인을 끝내려면 'exit' 이라고 치면 된다.

앞서 메인 프로그램 토픽에서 설명하였듯이 이 명령어들은 파일에 미리 써 두고 프로그램을 시작할 때 사용할 수도 있다. 이 파일들을 매크로 파일이라고 한다. 파일의 이름은 중요하지 않으며 보통 매크로임을 강조해서 ".mac" 확장자를 사용한다. 주석은 "#"을 사용한다.

# this is comment line
/run/beamOn 10       # run 10 simulation

몇가지 명령만 간단하게 알아보고 넘어가도록 하자.

1. verbose

verbose 설정은 해당 항목에 대해서 진행상황을 화면에 얼마나 자세하게 표시할지를 결정한다. 거의 모든 항목은 verbose 설정을 가지고 있다. 아마도 우리가 가장 관심있는 항목은 tracking 이다. tracking 항목의 verbose에 대한 설명은 다음과 같다.

verbose [verbose_level]

Set Verbose level of tracking category.
-1 : Silent.
0 : Silent.
1 : Minium information of each Step.
2 : Addition to Level=1, info of secondary particles.
3 : Addition to Level=1, pre/postStepoint information after all AlongStep/PostStep process executions.
4 : Addition to Level=3, pre/postStepoint information at each AlongStepPostStep process execuation.
5 : Addition to Level=4, proposed Step length information from each AlongStepPostStep process.

Range : verbose_level >=-1

Available at all Geant4 states.

Parameters
verbose_level type i Omittable : default value = 0

우리가 tracking 항목에 관심 있는 이유는 verbose 설정에 따라서 시뮬레이션의 가장 작은 단계인 스텝 단계를 볼 수 있기 때문이다.

/tracking/verbose 1

위 설정은 시뮬레이션 상의 입자들이 만들어내는 스텝 정보를 출력한다. 스텝 정보는 위치, 에너지, 잃어버린 에너지, 트랙의 진행 길이, 현위치의 물질, 프로세스 이름 등이 있다. 잘 사용하면 시뮬레이션 상황을 아주 자세하게 체크 할 수 있다.

2. 이벤트 디스플레이

이벤트 디스플레이는 Geant4에서 또 다른 큰 항목이다. 딱히 정해진 그래픽 인터페이스가 없으며 보편적으로 아래 예제 처럼 OpenGL(OGL)을 사용한다.

/vis/open OGL 600x600-0+0
/vis/viewer/set/autoRefresh false
/vis/verbose errors
/vis/drawVolume

/vis/viewer/set/viewpointVector -1 0 0
/vis/viewer/set/lightsVector -1 0 0
/vis/viewer/set/style wireframe
/vis/viewer/set/auxiliaryEdge true
/vis/viewer/set/lineSegmentsPerCircle 100

/vis/scene/add/trajectories smooth
/vis/modeling/trajectories/create/drawByCharge
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2

/vis/scene/endOfEventAction accumulate

/vis/scene/add/scale   50 mm
/vis/scene/add/axes    -50 -50 0 50 mm
/vis/scene/add/eventID
/vis/scene/add/frame
/vis/set/colour
/vis/set/lineWidth

/vis/geometry/set/visibility World 0 false
/vis/geometry/set/colour Detector 1 0.8 0.8 1 0.3

/vis/viewer/set/style surface
/vis/viewer/set/hiddenMarker true
/vis/viewer/set/viewpointThetaPhi 100 160
/vis/viewer/set/autoRefresh true

위 예제는 보는 방향, 트랙, 축과 스케일, 물질에 대해서 다루고 있다. 직접 무엇이 어떻게 바뀌는지 확인해 보자.

OpenGL은 디스플레이를 띄우고 3차원 회전을 할 수 없다. QT를 설치하면 가능하나 여기서는 다루지 않겠다.

참고

댓글

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