Geant4 가이드

시뮬레이션 변수 가져오기

Step

  • G4StepStatus stat = step -> GetPostStepPoint() -> GetStepStatus();
  • G4double edep = step -> GetTotalEnergyDeposit();
  • G4String pre_volume = step -> GetPreStepPoint() -> GetPhysicalVolume() -> GetName();
  • G4double pre_time = step -> GetPreStepPoint() -> GetGlobalTime();
  • G4ThreeVector pre_pos = step -> GetPreStepPoint() -> GetPosition();
  • G4int pre_volumeID = step -> GetPreStepPoint() -> GetPhysicalVolume() -> GetCopyNo();
  • G4String process_name = step -> GetPostStepPoint() -> GetProcessDefinedStep() -> GetProcessName();

Track

  • G4int trackID = track -> GetTrackID();
  • G4int parentID = track -> GetParentID();
  • G4int pdg = track -> GetDefinition() -> GetPDGEncoding()
  • G4ThreeVector momentum = track -> GetMomentum();

Event

  • G4int eventID = event -> GetEventID();

Event Manager

  • G4EventManager::GetEventManager() -> GetUserEventAction();
  • G4EventManager::GetEventManager() -> GetUserStrackingAction();
  • G4EventManager::GetEventManager() -> GetUserTrackingAction();
  • G4EventManager::GetEventManager() -> GetUserSteppingAction();

댓글

댓글 본문
  1. ejungwoo
    사실 Geant4 자체가 ROOT 와 연관이 깊기도 하고 최근에는 어느 정도 ROOT를 분석프로그램으로 사용할 것을 염두에 두고 만들어졌습니다. 그래서 root 파일이 아니라 csv로 저장할 때 어느정도 제한이 있고, 하나의 파일에 두가지 종류의 데이터를 저장하는 것이 가능하지 않습니다. 아마 이런 점에서 문제를 발견했을 것 같네요.
    분석을 위한 프로그램을 따로 생각해 두신게 아니라면 조금 힘을 들여서 ROOT 를 설치하는 것을 권장 드립니다.
    대화보기
    • 이핑크
      답변 감사합니다 ㅎ
      Ntuple & Analysis Manager 토픽이 잘 이해가 안가서 드린 질문이었습니다. 실제 적용하려고 하니까 root 설치도 잘 안되고 csv로 하면 또 잘 안불려지더라구요.
      대화보기
      • ejungwoo
        1. 물질을 정의할 때 감약을 할지 안할지 따로 정의하지는 않습니다. 얇은 Al 이라면 gamma가 에너지를 잃지 않고 지나갈 확률이 높습니다. 제가 간단한 시뮬레이션으로 확인해 보니 0.5 MeV의 gamma가 0.25 cm 두께의 Al를 지나갈 때 반응할 확률은 10% 정도 입니다.

        2. 이벤트 마다 NaI 에서 잃은 에너지를 모은 다음 그 값들을 그리면 될 것 같네요. 예전에 어느 분이 이벤트 마다 잃은 에너지를 모으는 코드를 물어보신 적이 있는데 "Ntuple & Analysis Manager" 토픽에 댓글로 설명을 달아놨습니다. 코드는 아래와 같습니다.
        https://github.com......cac
        여기서 NaI의 volumeID를 1로 하거나, OTSteppingAction::UserSteppingAction(const G4Step* step) 함수 안에서 보고자 하는 볼륨의 volumeID(copyNo)를 바꿔서 보면 될 것 같습니다.
        대화보기
        • 이핑크
          Cs137 점선원에서 1 m 거리에서의 3x3 NaI를 모델링해서 효율을 구하고자 합니다.
          선원항은 GeneralParticleSource로 정의했습니다.
          간단한 모델링으로 3x3 인치 NaI를 모델링하고 바깥으로 Al 0.25 cm로 둘렀는데요.

          1. Al은 얇지만 나름 감약이 될 것으로 생각됩니다만 여기는 그냥 단순히 transportation 정도로만 되는 것 같더라구요. 따로 Al도 감약이 될 수 있는 물질로 정의를 해줘야하는 건가요??

          2. Cs137의 감마선이 결국 NaI 내에서 광전효과 및 컴트톤 산란 등으로 에너지를 잃어가면서 동시에 NaI에 흡수되는 것을 스펙트럼으로 얻고 싶습니다. 어떻게 NaI 내에 흡수된 에너지를 뽑아낼 수 있을까요??
        • ejungwoo
          네 댓글로 질문 주셔도 됩니다.
          대화보기
          • ejungwoo
            감사합니다.
            대화보기
            • 이핑크
              진짜 잘 봤습니다. 이제 Geant4 시작하는 초보입니다. 기본적인 설명이 진짜 잘되어있는 것 같습니다.

              하면서 진짜 난감하고 난해한 부분이 있는데 댓글로 질문 드려도 될런지요??
            버전 관리
            ejungwoo
            현재 버전
            선택 버전
            graphittie 자세히 보기