使用GEANT4的模擬技術1


簡介

本文來源於意大利國家核物理研究院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

產生初級粒子


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM