日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Geant4不完全学习指南8(物理列表的使用)

發布時間:2024/3/12 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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(物理列表的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。