1 之前在提取step postpoint時出現了段錯誤,我的推測是step達到world的邊界,無法提取,出現了資訊提取的邏輯錯誤。加了判斷之後就好了。
2 還是提取資料出錯,我看有提取step postpoint 的process name的語句,我就寫了乙個提取前點的,發現不行,這個應該是前點就根本沒有process name。
3 使用addelement新增混合物的元素的時候也出錯了:
我想寫的是乙個nacl溶液,但是出現段錯誤,我只有乙個乙個找。
g4element* elh = man-
>
findelement(1
);g4element* elo = man-
>
findelement(8
);g4element* elna = man-
>
findelement(11
);g4element* elcl = man-
>
findelement(17
);g4double density =
1.0*g/cm3;
g4material* aqua1000 =
newg4material
("aqua1000"
,density,4)
; aqua1000-
>
addelement
(elh,
11.05618
*percent)
; aqua1000-
>
addelement
(elo,
88.44945
*percent)
; aqua1000-
>
addelement
(elna,
0.19437
*percent)
; aqua1000-
>
addelement
(elcl,
0.3*percent)
;
關於元素的定義,我用了nist材料管理器,在尋找na和cl元素的時候出現了問題,我把這兩個替換掉就好了:
g4element* elh = man-
>
findelement(1
);g4element* elo = man-
>
findelement(8
);g4element* elcl2 =
newg4element
("lv"
,"cl"
,17.
,35.5
*g/mole)
; g4element* elna2 =
newg4element
("na"
,"na"
,11.
,23.
*g/mole)
; g4double density =
1.*g/cm3;
g4material* aqua1000 =
newg4material
("aqua1000"
,density,4)
; aqua1000-
>
addelement
(elh,
11.05618
*percent)
; aqua1000-
>
addelement
(elo,
88.44945
*percent)
; aqua1000-
>
addelement
(elna2,
0.19437
*percent)
; aqua1000-
>
addelement
(elcl2,
0.3*percent)
;
這個我之後用 findorbuildelement這個函式就解決這個問題了 geant4構造粒子 Geant4基礎知識
geant4 基礎知識 g4模擬粒子過程 建立一次模擬,在 g4中稱為一次 runrun 建立後,需要對幾何結構 物理過 程進行初始化 初始化完成後就開始模擬過程了,首先發射乙個粒子。在g4 中,發射乙個 或一系列 粒子到所有次級粒子死亡的過程成為一次 event 而每次發射的初始粒子則有粒子發射器...
geant4構造粒子 Geant4基礎知識
可複製 編制,期待你的好評與關注!geant4 基礎知識 g4模擬粒子過程 建立一次模擬,在 g4中稱為一次 runrun 建立後,需要對幾何結構 物理過 程進行初始化 初始化完成後就開始模擬過程了,首先發射乙個粒子。在g4 中,發射乙個 或一系列 粒子到所有次級粒子死亡的過程成為一次 event ...
Geant4教程學習(一)
在前面的帖子中,獲取了geant4的lib和dll檔案,下面就是建立新的工程,學習geant4程式設計 在vs2010環境下 1.在vs2010下建立乙個空的工程名字為geant4test。2.在專案屬性,鏈結器中新增之前編譯過的lib檔案和openinventor 的lib,如果怕麻煩可以從例子的...