geant4入門講解篇-2

文|?梁佐佐

讓我們繼續(xù)以B1例子為主,講解Geant4的模擬流程。如下圖所示,Run是由多個Event組成的,PrimaryGenerator每執(zhí)行一次,就會產(chǎn)生一個獨立的Event,每個Event又是由多個Step組成的。Step是物理過程反應的最小模擬單元,從長度上可以小到nm甚至fm,可以通過蒙卡抽樣得到當前傳輸粒子發(fā)生某種物理過程的信息,比如是否發(fā)生了光電效應,如果是,則會產(chǎn)生次級粒子即有動能的自由電子,然后繼續(xù)模擬抽樣該電子的物理過程,比如發(fā)生電離,沉積了多少能量等。

Geant4關(guān)鍵函數(shù)之間的流程關(guān)系

B1的物理過程列表用的是集成好的QBBC,包含了標準電磁相互作用過程和強子物理過程,只需要在主函數(shù)exampleB1.cc中聲明調(diào)用即可。在定義好幾何體之后,當又輻射粒子穿過幾何體時,Geant4會根據(jù)輻射粒子的特性和幾何體材料的特性進行物理過程的蒙卡抽樣,通過Step給出所可能發(fā)生的物理過程。

Geant4最需要注意的地方在于根據(jù)用戶的需求獲得想要的信息,B1是想獲得入射N個粒子后,Shape2獲得多少劑量。獲取信息,離不開SteppingAction.cc,step即G4Step,會給出幾乎所有真實實驗中可以給出的信息。

計算劑量,我們需要知道:

a.?每個粒子即Event會沉積多少能量,然后把所有粒子/Event的沉積能量相加,所有的沉積能量/Shape2質(zhì)量=劑量;

b.?每個粒子與幾何體相互作用時,Shape2中的每個Step沉積多少能量,然后把這些Step沉積能量相加給當前的Event。

在Geant4模擬中,我們通常是從小到大來獲取統(tǒng)計這些能量信息:

a.?詢問當前Step所處的位置是否屬于Shape2幾何體內(nèi),如果是,沉積能量edep相加給當前Event中的一個中間變量fEdep(在每個Event開始時,該變量fEdep初始化為0,用來統(tǒng)計當前Event下所有Step的沉積能量和)。

??if (!fScoringVolume) {

????const B1DetectorConstruction* detectorConstruction= static_cast<const B1DetectorConstruction*>(G4RunManager::GetRunManager()->GetUserDetectorConstruction());

fScoringVolume = detectorConstruction->GetScoringVolume();

// fScoringVolume=Shape2

??}


??// get volume of the current step

??G4LogicalVolume*volume= step->GetPreStepPoint()->GetTouchableHandle()->GetVolume()->GetLogicalVolume();


??// check if we are in scoring volume

if (volume != fScoringVolume) return;


??// collect energy deposited in this step

??G4double edepStep = step->GetTotalEnergyDeposit();

fEventAction->AddEdep(edepStep);

b.?在每個Event開始時,變量fEdep初始化為0,在結(jié)束時,將fEdep相加給Run中的變量“fEdep”,在Run結(jié)束時,當前所有入射粒子總的沉積能量也就得出來了。

void B1EventAction::BeginOfEventAction(const G4Event*)

{ ???

??fEdep = 0.;

}


//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......


void B1EventAction::EndOfEventAction(const G4Event*)

{

??// accumulate statistics in run action

??fRunAction->AddEdep(fEdep);

}

在接下來的教程系列中,我們將分別探究B1DetectorConstruction.cc、B1PrimaryGeneratorAction.cc、B1SteppingAction.cc?的實戰(zhàn)應用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 文|梁佐佐 Geant4,是模擬輻射粒子與物質(zhì)相互作用的可靠軟件工具,有著豐富的物理過程截面庫,涉及中子、伽瑪(X...
    人芳覓閱讀 11,036評論 2 10
  • 命令 新建項目: cocos new -l js projectname 運行項目:cocos run -p we...
    LIsPeri閱讀 4,873評論 0 2
  • 目錄 開場白 科學家的工作方式理論物理與實驗物理理論物理與數(shù)學物理與哲學物理與科幻 現(xiàn)代物理中所用的數(shù)學工具微分幾...
    LostAbaddon閱讀 3,799評論 13 12
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,251評論 0 38
  • 誰會記得無奈如愿 誰會記得曾經(jīng)無悔 在夢與夢醒時 在現(xiàn)世安穩(wěn)時 你的心動一瞬間 永遠不曾停留 只愿花開而美 不曾歷...
    廷若華年閱讀 290評論 0 4

友情鏈接更多精彩內(nèi)容