Geant4 가이드

Geant4 Coding Convension

Coding convention 이란 비공식적으로 약속된 코딩 스타일을 의미한다. Geant4 와 이 모듈의 경우 아래와 같은 convention을 사용하므로 참고하자.

  • globals.hh 를 include 하면 아래와 같은 타입을 사용할 수 있다.
    • Geant4 데이터 타입.
      • G4int
      • G4long
      • G4float
      • G4double
      • G4bool
    • Geant4 입출력 함수 사용. Geant4 G4UImanger 를 통해서 관리된다.
      • G4cout
      • G4cerr
      • G4endl
  • Geant4 의 대부분의 클래스는 G4로 시작한다. 예) G4RunManager
  • Geant4 는 CLHEP (A Class Library For High Energy Physics) 를 인용하여 코드의 많은 부분에서 CLHEP 을 볼 수 있다. 아래에 그 일부분을 적는다.
    • Geant4 는 아래와 같이 기본 설정 단위가 존재하지만 G4SystemOfUnits.hh 에 정의 되어있는 CLEHP 단위를 사용하여 코딩하는 것을 권장한다. 기본 설정 단위는 프로그램 상에서 그 값이 1 이다.
      • 길이: mm (milimeter)
      • 시간: ns (nanosecond)
      • 에너지: MeV (Mega electron Volt)
      • 온도: kelvin
      • 물질의 양: mole
      • 각도: radian
    • 기본 물리 상수는 CLEHP 에서 가져와서 G4PhysicalConstants.hh 에 정의 되어있다.
  • 이 모듈에서 만들어 볼 클래스는 OT(OpenTutorials)로 시작하는 이름을 사용한다.
  • 모든 소스파일은 .cc, 헤더파일은 .hh의 확장자를 사용한다.
  • Geant4 매크로는 .mac 확장자를 사용한다.
  • 모든 함수는 대문자로 시작한다.
  • 모든 로컬 변수는 소문자로 시작한다.
  • 모든 멤버 변수는 field를 의미하는 "f"로 시작한다.
  • 함수 또는 변수의 이름이 하나 이상의 단어로 이루어질 때 첫 단어를 제외한 각 단어의 첫글자를 대문자로, 나머지는 소문자로 사용한다. 예) mySpecialVariable, fMemberVariable, WhatToDoWithThisFunction() etc.

댓글

댓글 본문
  1. ejungwoo
    저도 자세히 알지 못하는 부분이라서 알려드릴 수가 없을 것 같습니다. ㅜㅜ
    대화보기
    • geant4 입문
      안녕하세요, gean4에서 어떻게 매번충돌마다 충돌환경이 바뀌는지 궁금합니다.
      문헌을 찾아본결과 자유행로수(number of mean free path)를 구하고 NMFP를 HEPJamesRandom이라는 random함수를 통해 매번 얻는 것으로 알고 있습니다.

      사용자가 정해진 물리모델에 따라 NMFP를 매번 계산하고, NMFP를 주어진 물질에서의 산란단면적을 통해 실제로 진행하는 물리적 거리로 환산합니다. 그다음 geant4에서는 이렇게 나온 NMFP중 가장 짧은 단계를 진행단계로 간주하고 입자를 그거 리만큼 이동시키면서 충돌을 한다고 문헌에서 확인하였는데...........

      이과정이 쉽게 머리속에 떠올려지지않아 문의 드립니다........
      질문을 드리면1) NMFP의 물리적의미?
      2) NMFP와 cross section과의 관계
      3) geant4에서 실제 충돌이 일어나는 과정이 어떻게 되는지?

      답변해주시면 감사하겠습니다.
    버전 관리
    ejungwoo
    현재 버전
    선택 버전
    graphittie 자세히 보기