分享的源程序請點擊左下角的閱讀原文,提取密碼在文末。
GeneralParticleSource為通用粒子源,在Geant4可以通過宏文件來做複雜的放射源抽樣,最近幫人模擬伽馬刀(不懂的自行搜索什麼是伽馬刀),需要做多源抽樣且放射源的角度需要偏轉,查看手冊《BookForApplicationDevelopers.pdf》的第28頁,如下圖:
這個rot1和rot2的旋轉角度說的很玄乎,也可能是我的數學不好,空間思維不夠,沒能理解。在進行大量的搜索以後,發現在全世界的相關網站上也沒找到這兩個參數的具體解釋或者示意圖,最後我就打算自己寫個程序來測試一下rot1和rot2的具體含義。
測試程序部分
第一步
首先需要擁有一個可以運行GPS的程序,這個程序在以前的文章中講了如何修改,這裡就不贅述了,詳細可以參見:
GPS(通用粒子源)多個源設置及資料分享
第二步
擁有可以運行GPS的程序之後,我們需要對放射源發射的初始位置進行統計,找到G4GeneralParticleSource.hh文件,查看裡面定義的函數。
如圖所示GetParticlePostition函數,通過這個函數可以看出GPS可以對初始粒子的位置進行統計的,當然裡面還有其他函數,可以統計諸如:粒子運動方向,能量、電性等等,有興趣的可以自己研究一下。
第三步
在程序中增加獲取粒子初始位置的代碼,並將位置數據保存到文件中,假設已經改好了可以運行GPS的程序,如果不熟練,原文連結中的百度分享裡面提供了測試程序。
修改方法如下圖,加入紅色方框中的代碼,代碼比較簡單,不贅述了,直接將三個坐標輸出到position.txt中。
註:需要在開頭加上 #include 以及 #include 「G4ThreeVector.hh」
測試過程部分
數據分析使用matlab,程序見原文連結中百度雲盤分享。
GPS(通用粒子源)多個源設置及資料分享 中的
ex14.pdf這個例子中內容,如下圖所示
紅色框中箭頭注釋的數字為 -0.57735,隨便一看就知道,這是-√3/3(負號三分之根號3)。所以推測這個應該是與正切相關,但到底是哪兩個邊的正切值,不得而知。所以就進行大量測試及畫圖,簡單說明
Source X-Y distribution即沿著Z軸正方向,向Z軸負方向看,抽樣圓柱型體源在XOY面上的投影,其他兩個同理
圖1
圖2
圖3
圖4
圖5
說明及結論:
使用的放射源為圓柱形體源,半徑為5mm,半高為5mm,中心位於原點,各項同性發射,為了方便說明,定義rot1 Var1 Var2 Var3
1、圖1為手冊中默認的rot1坐標。
2、由圖2、圖3、圖4可知,rot1的偏轉角度為Var3/var1的反正切值。且此角度從X正方向開始,在XOZ面內沿著逆時針方向增大。
3、圖5、圖4驗證確定旋轉角為Var3/Var1反正切值。
下面繪圖解釋:
注意橫軸坐標為X軸
對於rot1 Var1 Var2 Var3,arctan(Var3/Var1) = θ
####################################################################################################################注意橫軸坐標為Y
按說明書上:
rot2的初始坐標為 0 .,1.,0.
經過對rot2的大量測試,過程與過程圖略過,結論為
rot2的偏轉角度為Var3/var2的反正切值。且此角度從Y正方向開始,在YOZ面內沿著逆時針方向增大。
對於rot2 Var1 Var2 Var3,arctan(Var3/Var2) = φ
大量測試見附件圖片,測試圖片中為了方便查看,有的更改了體源的尺寸,有興趣可以自己測試。測試程序使用宏文件運行,宏文件為runuser.mac
提取碼:6do1