Geant4 가이드

실행 및 결과

두번째 프로그램에서 두개의 액션 클래스가 추가되었으므로 메인 프로그램(example.cc)에 추가하자. 

...
#include "OTRunAction.hh"
#include "OTSteppingAction.hh"

int main(int argc, char** argv)
{
  ...
  runManager -> SetUserAction(new OTRunAction());
  runManager -> SetUserAction(new OTSteppingAction());
  ...
}

첫번쨰 프로그램과 마찬가지로 실행을 하나의 이벤트를 생헝한 후 종료해보자. 참고자료를 그대로 따라했다면 프로그램을 실행한 폴더에 data_step.csv 라는 파일이 생성되었을 것이다. 파일의 내용은 사용자마다 다르겠지만 아래와 비슷한 형태일 것이다.

0,0,0.00248006
0,0,0.00157859
0,0,0.0158474
0,1,4.88893
0,1,4.54503
0,1,3.78098
0,1,3.5075
0,1,3.15937
0,1,2.7111
0,1,2.72209
0,1,2.20127
0,1,2.21164
0,1,2.09431
0,1,1.9277
0,1,1.94583
0,1,2.08068
0,1,2.17639
0,1,0.0191356
0,0,0.00112518
0,0,0.0070382

끝!

댓글

댓글 본문
  1. 이핑크
    아 그렇군요. 답변 감사합니다.
    대화보기
    • ejungwoo
      실험의 경우 실험세팅, 검출기, Electronics, 분석에서 발생하는 효율 등 많은 요인에 의해서 효율이 내려가게 됩니다. 시뮬레이션에서 이런 과정을 고려하지 않는다면 효율이 실험값에 비해서 높게 나오는 것은 당연합니다. 어디까지 고려할지는 유저가 어떤 목적으로 시뮬레이션을 하고 있는지에 따라서 다르겠죠.
      대화보기
      • ejungwoo
        1. 문제되지 않습니다.

        2. Geant4 는 Monte-Carlo simulation입니다. 즉, 확률적인 계산을 하기 때문에 매번 결과가 달라지는 것은 맞습니다. 하지만 통계적으로 접근했을 때 물리량의 분포는 같겠죠. 따라서 보고자 하는 물리량 분포의 편차가 불확실한 정도에 해당이 되겠네요.
        대화보기
        • 이핑크
          모르는게 많아서 계속 질문 드리네요..
          제가 검출기 하나 모델링해서 어떤 볼륨 선원에서 방출되는 1460 keV의 방사선을 가지고 효율을 구하고 있습니다. 그런데 효율값이 실험값에 비해서 생각보다 높게 나오더라구요. 코드는 몇 번을 봐도 괜찮은 것 같은데 궁금한게 있더라구요..

          1. 지금 윈도우를 쓰고 있는 컴퓨터에 우분투를 가상 pc로 쓰고 있는데요. 위의 코드를 다른 컴퓨터로 옮길 때, 우분투 -> 윈도우 -> 다른 컴퓨터 윈도우 -> 다른 컴퓨터 우분투 로 옮겼습니다. 이게 문제가 될까요??

          2. 몇 번씩 돌릴 때마다 값이 달라지는데 생각??보다 좀 크게 달라지는 것 같더라구요. 이것에 대한 불확도?? 편차를 구할 수 있는 방법이 있을까요??
        • 이핑크
          그렇군요 감사합니다 ㅎ
          대화보기
          • ejungwoo
            달라지지 않습니다.
            대화보기
            • 이핑크
              Ntuple에 질문 하나 드리겠습니다.

              Ntuple을 쓰려면 steppingAction.cc 등을 이용해서 얻었는데요.

              이것과 중복으로 SensitiveDetector를 같이 혼용해서 사용하면 결과가 달라질까요??
            • 이핑크
              BeamOn 수가 너무 많아서 도중에 끊고 결과를 확인하고 싶을 때 어떻게 하는지 아시나요??
              대화보기
              • ㅁㄴㅇㄹ
                안녕하세요. 해당 코드를 돌려서 데이터를 받아보려 하고 있는데, beamOn으로 많은 입자를 쏘았을 때, 메모리 사용량이 계속 상승하여 계산하는 컴퓨터의 ram할당량의 한계에 도달하면 더이상 root파일의 크기가 증가하지 않는 것(더이상 data가 받아지지 않는 것) 같습니다.
                메모리 릭이 있는 것 같은데, 해당 문제는 어떻게 해결하는 것이 좋을까요?

                *해결했습니다. gui터미널에서 /tracking/verbose 0으로 터미널쪽 출력을 없애면 되는군요.