簡介
本文來源於意大利國家核物理研究院INFN的08年的slides。原文名稱simulation techniques using geant4,原文主要講述的是開發geant4用戶程序的方法。這里做個筆記包括個人感想
GEANT4介紹------工具包+用戶程序
GEANT4提供的是用戶程序和工具包,以及若干文檔。
GEANT4是一個工具包
這里強調他是一種工具包,英文是TOOLKIT,也就是說,提供的是一些庫文件、計算核心以及數據庫。而不是提供特定的程序。這樣可以帶來很強的靈活性, 還能保證G4本身的開發的高度可維護性,這個可維護性是我想的,暫時沒找到合適的、強大的根據。由於是工具包, 因此,用戶運行程序不能獨立於G4內核以及數據庫,雖然也有人將模擬的程序集成到其他軟件, 可以部分提取G4內核和部分數據庫, 但是不如將整個內核與部分數據庫提取,經過壓縮后, 體積並不大。另外一個關鍵問題是,由於G4是只提供庫文件、內核以及數據庫的, 所以用戶必須寫出自己的代碼來, 唯有如此,才能完成特地的任務。
導致的結果
- 不存在G4的默認值
這句話我不太贊同, 現在新版本已經將一些物理過程打包, 具體可以參考心版本的一些例子,他們的調用方式可以看出來這一點。
- 必須提供必要的信息來設置自己的模擬
所謂的必要信息其實就是探測器幾何、源粒子發射以及物理模型的構造。
- 必須仔細謹慎選擇用哪種工具來使用
指導---提供了許多例子
例子包括novice 和 advance,其實這是老版本的說法,對於新版本,例子novice其實已經刪除了,正如文章所說,novice的作用僅僅是幫助用於了解g4。而關鍵的是advanced,這一部分才是實際應用。因此對於每個學習G4的人,至少都要看看ADVANCED例子。
基本概念
必須做的
- 描述實驗設置
- 為模擬的輸入提供初始粒子
- 確定使用g4提供的哪些物理模型和粒子,確定模擬精度,
通過設定產生和追蹤次級粒子的截斷值。
也許想要做的
- 與內核進行交互,從而控制模擬
- 可視化模擬設置或結果
- 產生柱狀圖,元組tuples等,以便進行進一步分析。
與G4內核交互
geant4默認提供了一些工具可以使用
- 告訴內核關於你的模擬設置
- 單獨和內核本身交互
G4提供的用戶交互工具是基本類
- 用戶可以根據這個創建自己的具體類
- G4可以使用他自己的基本類透明的處理你的派生類,這叫多態性(polymorphism)
用戶交互的抽象基類
- 用戶派生具體類是強制性的,也就是說用戶必須根據這個派生出具體的類
用戶交互的具體基類---帶有virtual的虛方法
- 這種情況下,用戶派生類是可選的。
用戶類
初始化類
- G4VUserDetectorConstruction
- G4VUserPhysicsList
行為類
- G4VUserDetectorConstruction
- G4UserRunAction
- G4UserEventAction
- G4UserTrackingAction
- G4UserStackingAction
- G4UserSteppingAction
上述類中的強制類有
- G4VUserDetectorConstruction
用於描述實驗設置
- G4VUserPhysicsList
選擇想要激活的物理過程
- G4VUserPrimaryGeneratorAction
產生初級粒子