Geant4不完全学习指南8(物理列表的使用)
前面簡單總結了探測器的定義及其相應相關的入門知識,通過前面的學習,基本了解了探測器相關類的知識。在前面提到過,有三個必須的類由用戶自己定義,一個是探測器相關的定義,一個是物理列表的使用,包括指定粒子和物理過程的選擇,在一個就是初始粒子的產生,現在繼續學習第二個內容,物理列表的選擇與構造。我整理的邏輯是結合例子看G4學習手冊,簡單學習一些常見的類,準備把例子中的一些實例都簡單的過一遍。
write by jack in hubei 2019.7.28 9:17
如何指定粒子
G4VuserPhysicsList 是用戶必要的基類,在這個類中,所有將被用于模擬的粒子和物理過程必須定義。截斷范圍參數也應該在這個類中定義。
用戶必須創建一個由G4VuserPhysicsList 派生的類并實現下列純虛方法:
ConstructParticle() : 粒子構造
ConstructProcess() : 物理過程構造并向相關粒子注冊這些過程
SetCuts() : 為所有粒子設定一個截斷值
ConstructParticle()是一個純虛方法,所有在模擬中的需要的粒子的靜態成員函數應在這個方法中調用。這保證了那些粒子的對象將被建立。注意用戶必須定義初級粒子和其他所有可能出現的次級粒子。
粒子定義
Geant4 為用戶提供了各種類型的粒子:
普通粒子,如電子,質子,gamma
短壽命共振粒子,如矢量介子和 delta 重子
原子核,如氚核,α粒子和重離子
夸克,底夸克,膠子
每個粒子都由各自的類來描述,這些類都是由 G4ParticleDefinition 派生的。這些粒子主要分為 6 類:輕子,介子,重子,玻色子,短壽命粒子,離子。
G4ParticleDefinition中有用于區分每個粒子的屬性,如,名字,質量,電荷,自旋,等等。這些屬性中,大部分是“只讀”的,用戶要對這些屬性進行更改,就必須重建庫。
每個粒子類代表一個獨立的粒子,并且,每個類都有一個唯一的靜態對象 ,例如, G4Electron 代表電子,它的唯一對象是 G4Electron::theElectron 。指向這個對象的指針可以通過靜態方法 G4Electron::ElectronDefinition() 獲取。
缺省情況下,Geant4 提供了超過 100 種粒子用于各種物理過程。在通常的應用程序中,用戶不需要定義他自己的粒子。
由于粒子是 singleton 粒子類的靜態對象,這些對象在 main() 函數執行之前自動被實例化。然而,你必須顯式的聲明那些將被你的應用程序使用的粒子類,否則,編譯程序不能識別哪些類是你需要的,結果將是沒有粒子將被實例化。
粒子字典
截斷范圍
為了避免紅外發散,一些電磁過程要求設定一份低閾,在閾值以下,將不產生任何次級粒子。因此,gamma,電子和正電子要求設定一個閾值。閾值的定義為距離,或者截斷范圍,它將自動的轉化為對應于不同介質的截斷能量。這個閾值應該在用戶初始化部分用G4VUserPhysicsList 的 SetCuts() 方法定義。
產物的閾值應在SetCuts()中定義,它是 G4VUserPhysicsList 類中的純虛方法。粒子,材料,物理過程的構造應在SetCuts()之前。在通常的應用程序中,G4RunManager關心這個順序。
“唯一截斷范圍值”的思想是G4 中的一個重要特性,它用一個一致的方法處理截斷值。對于多數應用來說,用戶只要確定一個截斷范圍值,這個值將以同樣的方式用于gamma,電子,正電子。在這種情況下,可以用SetCutsWithDefault() 方法,它由基類 G4VuserPhysicsList 提供,它有一個 defaultCutValue 成員作為缺省截斷范圍值。 SetCutsWithDefault() 使用這個值。
可以對 gamma,電子和正電子設定不同的截斷范圍值,并且對不同的幾何區域設置不同的截斷范圍值。在這種情況下,必須非常小心,因為 Geant4 進程(特別是能量損失)是遵循“唯一截斷范圍值”的模式設計的。
制定物理過程
物理過程描述粒子如何與物質相互作用。G4中提供了7個大類描述這些過程
(1)電磁相互作用 (2)強相互作用 (3)輸運 (4)衰變 (5)可見光 (6)photolepton (7)參數化相互作用
所有這些物理過程的基類都是G4VProcess。他的虛方法:
所有這些物理過程的基類都是 G4VProcess 。他的虛方法AtRestDoIt , AlongStepDoIt ,和PostStepDoIt和對應的方法
?AtRestGetPhysicalInteractionLength , AlongStepGetPhysicalInteractionLength ,PostStepGetPhysicalInteractionLength
和在它們的派生類中描述了這些物理過程的行為。
G4VUserPhysicsList 是"必要的用戶類"的一個基類,在這個類中,所有模擬中需要的物理過程和粒子必須被注冊。用戶必須構造一個從 G4VUserPhysicsList 類派生的類,并且實現它的純虛方法 ConstructProcess()。
下面是為光子注冊電磁作用過程的實例:
上面內容是G4用戶手冊和源碼中歸納總結的,關于物理列表的使用,等后續遇到實際的例子在進行分析總結!
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Geant4不完全学习指南8(物理列表的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实验二利用自动机理论实现词法分析器
- 下一篇: DNA序列的编码