1. 程式人生 > 實用技巧 >Geant4 最簡單的模擬程式

Geant4 最簡單的模擬程式

Geant4 最簡單的模擬程式


G4 執行至少需要 3 個最基本的 class :

  1. DetectorConstruction : 繼承自 G4VUserDetectorConstruction,必須實現的虛擬函式是 G4VPhysicalVolume* Construct(); 作用:定義空間中所有的物質(探測器,靶,磁場等)
  2. PrimaryGeneratorAction : 繼承自 G4VUserPrimaryGeneratorAction,必須實現的虛擬函式是 void GeneratePrimaries(G4Event* anEvent); 作用:定義待發射的初級粒子(粒子種類,能量,動量方向,初始位置等)
  3. PhysicsList : 繼承自 G4VModularPhysicsList;作用:為所有初級粒子和可能產生的次級粒子定義物理過程

在主函式中需要如下部分:

 1 //Run管理器
 2 G4RunManager* runManager = new G4RunManager();
 3 
 4 //Detector
 5 DetectorConstruction* detector = new DetectorConstruction();
 6 runManager->SetUserInitialization(detector);
 7 
 8 //PhysicsList
 9 PhysicsList* physics= new
PhysicsList(); 10 runManager->SetUserInitialization(physics); 11 12 //Action 13 PrimaryGeneratorAction* gen_action = new PrimaryGeneratorAction; 14 runManager->SetUserAction(gen_action); 15 16 //=============Initialize G4 kernel============// 17 runManager->Initialize(); 18 runManager->BeamOn(1
); // 一次Run