특정 볼륨에 컷을 줄때 G4UserLimits 클래스를 사용한다.
G4UserLimits(G4double uStepMax, G4double uTrackMax, G4double uTimeMax, G4double uEkinMin, G4double uRangeMin) |
---|
변수 | 설명 | 기본값 |
---|---|---|
uStepMax | 스텝의 최대 길이 | DBL_MAX |
uTrackMax | 트랙의 최대 길이 | DBL_MAX |
uTimeMax | 트랙의 최대 유지 시간 | DBL_MAX |
uEkinMin | 트랙이 유지되는 최소 에너지 | 0. |
uRangeMin | 트랙이 유지되는 최소 범위 | 0. |
(DBL_MAX는 double 타입의 최대값을 의미한다.)
적용은 Logical Volume에 하며 Geant4에서 제공하는 PhysicsList를 사용할 경우(아닌 겨우는 생략) 메인 프로그램에서 PhysicsList에 G4StepLimiterPhysics(스텝 컷)와 SpecialCutsBuilder(트랙 컷)를 등록 해야 한다.
DetectorConstruction:
G4LogicalVolume *logicalVolume = new ... logicalVolume -> SetUserLimits(new G4UserLimits(1*mm, 10*m));
main:
G4VModularPhysicsList* physicsList = new FTFP_BERT; // ex) FTFP_BERT physicsList -> RegisterPhysics(new G4StepLimiterPhysics()); // 스텝 컷 physicsList -> RegisterPhysics(new SpecialCutsBuilder()); // 트랙 컷 runManager -> SetUserInitialization(physicsList);