Geant4 가이드

자주 묻는 질문들

  • G4cout, G4endl을 사용하기 위해서 추가해야 하는 헤더 파일은 무엇인가요?
    •  globals.hh
  • 이벤트 디스플레이에서 3차원 회전을 하려면 어떻게 해야하나요?
    • Geant4와 함께 QT를 설치하고 QT를 이용해서 이벤트 디스플레이를 열면 됩니다.
  • 이벤트 디스플레이 배경 색을 변경하는 명령어는 무엇인가요? (Link)
    • /vis/viewer/set/background [string]
      • example : /vis/viewer/set/background white
      • [string] : "white", "black", "grey","red"...
    • /vis/viewer/set/background [red] [green] [blue] [opacity]
      • [red] [green] [blue] : RGB triplet, 0 ~ 1
      • [opacity] : 0 ~ 1
      • example : /vis/viewer/set/background .3 .4 .5 .6
    • /vis/viewer/set/background [string] !! [opacity]
      • example : /vis/viewer/set/background blue !! .5
  • Geant4를 이용하여 electron drift 시뮬레이션을 할 수 있나요?
    • 아니요. 현제 버전(Geant4.10.00.02) 까지는 불가능 합니다.
  • Geant4에서 입자, 혹은 핵 사이 충돌 시뮬레이션을 할 수 있나요?
    • ​​아니요. Geant4는 입자나 핵이 깨지는 시뮬레이션을 할 수 없습니다. 충돌 지점에 타겟 볼륨을 생성하여 타겟 볼륨과의 상호작용으로 인한 효과는 볼 수 있습니다.
  • CMake 공부를 해야 하나요?
    • 아니요.

댓글

댓글 본문
작성자
비밀번호
  1. 체리하나
    안녕하세요. Geant4 막 입문한 초보입니다.geant4를 설치하고 GATE 프로그램을 쓰는 경우를 보았는데요, 이유가 무엇인지 궁금합니다
  2. 이핑크
    디스플레이 색에 대해서 질문 하나 드리겠습니다.

    혹시 디스플레이 색을 전체적으로 흑백처럼 할 수 있는 명령어가 있나요??

    배경 뿐만이 아니라 실제 world까지도 흑백처럼 하는데 우리가 모델링한 것들은 구별할 수 있는 그런 명령어가 있는지 궁금합니다.
  3. 이핑크
    답변 감사합니다^^
    대화보기
    • ejungwoo
      조금 늦은감이 있지만...

      Primary Generator Action 클래스를 구체적으로 짜는 것이 좋아보입니다.
      클래스 안에서 매 이벤트 마다 시작점인 원기둥에서 랜덤한 위치를 생성하고,
      검출기의 cross section에 해당하는 solid angle 혹은 위치를 랜덤하게 생성하면
      (시작 위치 + solid angle) 혹은 (시작 위치 + 검출기 정면 위치)
      를 이용하여 무조건 검출기와 반응하는 빔의 방향을 생성할 수 있을 것 같습니다.
      대화보기
      • 이핑크
        제가 질문을 이상하게 드렸었네요..

        제가 현재

        661.6 keV의 방사선이 isotropic하게 방출하는 직경 20 m 높이 60 cm의 원기둥 체적 선원을 모델링 했습니다.

        여기에다가 거리 1 m 위치에서 2인치 NaI(Tl) 검출기를 두고 선원으로부터 방출되는 beam에 대해 검출기에 응답하는 정도, 효율을 구하고자 합니다.

        그런데 선원 체적에 비해 거리 및 검출기 크기가 너무 차이가 나다 보니 검출기에 반응하는 수는 9억개에 대해 30~40개밖에 안들어오더라구요. 그래서 이 반응을 좀 더 키우기 위해서 어떻게 해야하는지에 대한 질문이었습니다. 보통 12시간 걸려서 30~40개의 반응이 나오는데 이 반응 수를 더 키울 수 있는 방법으로 가중치나 혹은 다른 테크닉이 있는지 질문드린 것이었습니다.
        대화보기
        • ejungwoo
          가중치를 주는것이 어떤 것을 의미하는지 구체적으로 알려주실 수 있나요?
          대화보기
          • 이핑크
            답변 감사합니다. 그런데 검출기 주위에 오는 beam에 가중치를 주는 방법은 없는건가요??

            충분한 계수가 되기를 바라는데 검출기의 크기가 너무 작다보니까 만족할만한 계수가 나오지를 않습니다.
            대화보기
            • ejungwoo
              추가로, 분석에 영향을 미치지 않는 선에서 스텝, 트랙 컷 (https://opentutorials.org......402) 을 조절하는 방법도 있겠네요
              대화보기
              • ejungwoo
                제가 생각했을 때 아래 정도의 옵션이 있을 것 같습니다.
                1. 그래픽을 사용 X
                2. 화면 출력 최소화
                3. Output 이 있다면 최소한의 데이터만 저장
                4. 컴퓨터 사양이 된다면 Multithread 혹은 기타 일 분배 프로그램 사용
                5. 코딩 최적화

                빔이 검출기를 지나가지 않는 경우도 시뮬레이션하는 것이 아니라면 항상 검출기쪽으로 오도록 시뮬레이션을 만드는 것도 방법입니다.
                대화보기
                • 이핑크
                  아래와 비슷한 질문인데요.

                  그럼 만약에 원하는 반응을 보기 위해서 Beam수를 늘리거나 했을 때, 시간을 빠르게 하는 테크닉이 있을까요??

                  가령 importance 라던지, 아니면 따로 Geant4만의 테크닉이 있는건지요??

                  방사선을 방출하는 체적에 비해 검출기 체적이 너무 작아서 Beam수를 늘렸는데 시간이 꽤 오래 걸리네요.
                • 이핑크
                  아 그렇군요. 답변 감사합니다.
                  대화보기
                  • ejungwoo
                    메모리가 감당할 수 있는 범위를 넘어가서 정상적인 계산을 하지 못하는 경우를 말한 것입니다. 만약에 메모리 문제라면 억단위로 돌릴 필요가 없는게 아니라 돌리면 안됩니다.
                    대화보기
                    • 이핑크
                      딥변 감사합니다.

                      1 번 질문 같은 경우에는 제가 방출되는 빔수에 따라 어떠한 지오메트리 (검출기) 내에 전부 잃는 에너지의 수, 즉 효율을 산출하고 있습니다. 그런데 메모리에 따라 억단위에서 메모리에 따라 값이 달라질 수 도 있는 것인가요?? 만약 메모리의 문제라면 굳이 억단위로 돌릴 필요는 없겠네요??
                      대화보기
                      • ejungwoo
                        1. 없습니다. 어떤값이 작아지는 걸까요? 억 단위로 돌릴 시 할당된 메모리의 문제일수도 있습니다.

                        2. Geant4에서 자체 지원하는 Multithread의 경우는 댓글로 설명할 수 있는 정도는 아닙니다... 그리고 제가 시간이 없어서 토픽을 쓸 시간도 없네요. 일단은 http://geant4-userdoc.web.cern.ch......ing 에 기본 정보와 MT를 사용하는 example 을 알려주고 있으니 참고하시기 바랍니다.
                        대화보기
                        • 이핑크
                          이 질문은 여기에다 올리는게 맞을거 같아서 여기에서 질문 올려봅니다.

                          1. Geant4를 돌리는데 최대 Beam 수의 제한이 있나요?? 왜 이 질문을 하냐면 똑같은 코드를 8억개, 9억개까지 돌려도 결과값이 비슷하게 나오다가 10억개가 넘어가면 갑자기 결과값이 작아지더라구요.

                          2. Multithread를 돌리려면 따로 무언가를 설치해야하는건가요??
                        • 이핑크
                          아.. 그렇군요 ㅋㅋ 감사합니다
                          대화보기
                          • ejungwoo
                            NaI에 축적된 에너지에 분해능 만큼의 에러를 더하면 될 것 같습니다.
                            대화보기
                            • 이핑크
                              한가지 더 질문 드리겠습니다.

                              NaI(Tl)을 모델링해서 Cs137의 661.6 keV 에너지에 대한 스펙트럼을 얻으려고 하는데요,

                              NaI(Tl)의 분해능을 생각해서 broad한 피크가 그려지도록 얻고 싶은데 분해능을 넣는 방법이 있을까요??
                            • 이핑크
                              아.. 그렇군요.. 감사합니다 ㅠㅠ
                              대화보기
                              • ejungwoo
                                시뮬레이션을 돌리다가 인위적으로 멈추고 데이터를 살릴 수 있는 방법은 없습니다.
                                시뮬레이션이 끝날 때 까지 기다리거나 빠르게 종료시키고 다시 돌리는 방법 밖에 없습니다.
                                대화보기
                                • 이핑크
                                  제가 모델링해서 시뮬을 돌렸는데 Beam 수를 너무 많이 돌려서 계산하는데 하루 넘게 걸리고 있습니다.

                                  도중에 돌아가고 있는 시뮬을 종료하거나 멈추고 결과를 확인하려면 어떻게 해야하는지 알 수 있을까요??
                                버전 관리
                                ejungwoo
                                현재 버전
                                선택 버전
                                graphittie 자세히 보기