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개의 반응이 나오는데 이 반응 수를 더 키울 수 있는 방법으로 가중치나 혹은 다른 테크닉이 있는지 질문드린 것이었습니다.
1 번 질문 같은 경우에는 제가 방출되는 빔수에 따라 어떠한 지오메트리 (검출기) 내에 전부 잃는 에너지의 수, 즉 효율을 산출하고 있습니다. 그런데 메모리에 따라 억단위에서 메모리에 따라 값이 달라질 수 도 있는 것인가요?? 만약 메모리의 문제라면 굳이 억단위로 돌릴 필요는 없겠네요??
1. 없습니다. 어떤값이 작아지는 걸까요? 억 단위로 돌릴 시 할당된 메모리의 문제일수도 있습니다.
2. Geant4에서 자체 지원하는 Multithread의 경우는 댓글로 설명할 수 있는 정도는 아닙니다... 그리고 제가 시간이 없어서 토픽을 쓸 시간도 없네요. 일단은 http://geant4-userdoc.web.cern.ch......ing 에 기본 정보와 MT를 사용하는 example 을 알려주고 있으니 참고하시기 바랍니다.