Geant4基礎(chǔ)知識資料_第1頁
Geant4基礎(chǔ)知識資料_第2頁
Geant4基礎(chǔ)知識資料_第3頁
Geant4基礎(chǔ)知識資料_第4頁
Geant4基礎(chǔ)知識資料_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Geant4基礎(chǔ)知識

G4模擬粒子過程:

建立一次模擬,在G4中稱為一次Run;Run建立后,需要對幾何結(jié)構(gòu)、物理

過程進行初始化;初始化完成后就開始模擬過程了,首先發(fā)射一個粒子。在G4

中,發(fā)射一個(或一系列)粒子到所有次級粒子死亡的過程成為一次Evento而

每次發(fā)射的初始粒子則有粒子發(fā)射器進行控制。而在每一個event過程中,粒子

與材料反應(yīng)后會可能生成多個次級粒子,每個粒子都會有一條徑跡,稱之為

track;而每一個粒子(初始的或次級的)的徑跡又是由很多步組成的,稱之為

stepo

G4模擬的基本算法:

ARunStart->初始化物理模型/幾何模型?>AnEventStart->調(diào)用粒子發(fā)射器

發(fā)射粒子

->ATrackStart

->AStepStart

->AStepEnd

->NextStepStart

->

->AllStepEnd

->ATrackEnd

->NextTrackStart

->AllTrackEnd

->AnEventEnd->NextEventStart

->??????

->AllEventEnd(AIIPrimariesShot)->ARunEnd->NextRunStart

->.......

1)main()中應(yīng)該包括的內(nèi)容

Geant4是一個探測器模擬工具,但它對于某個特定的模擬程序沒有固定的

main()函數(shù),用戶在建立模擬程序的過程中需要提供自己的main()函數(shù).一個最

基本的main()函數(shù)需要包括以下幾個方面:

G4RunManager(模擬整個過程)

G4VUserDetectorConstruction(定義探測器材料,幾何形狀,靈敏區(qū)和讀出

方案)

G4VUserPhysicsList(定義粒子種類和物理過程,還有截斷參數(shù))

G4VUserPHmaryGeneratorAction(定義了源粒子的種類,能量,出射方向等)

一個最簡單的main()函數(shù)如下:

//include"G4RunManager.hh"

#include"G4Ulmanager.hh"

#include"ExNOlDetectorConstruction.hh"

#include"ExNOlPhysicsList.hh"

//include"ExNOlPrimaryGeneratorAction.hh"

intmain()

(

//Constructthedefaultrunmanager

G4RunManager*runManager=newG4RunManager;

//setmandatoryinitializationclasses

runManager->SetUserlnitialization(newExNOlDetectorConstruction);

runManager->SetUserlnitialization(newExNOlPhysicsList);

//setmandatoryuseractionclass

runManager->SetUserAction(newExNOlPrimaryGeneratorAction);

//InitializeG4kernel

runManager->lnitialize();

//getthepointertotheUImanagerandsetverbosities

G4lllmanager*UI=G4Ulmanager::GetUlpointer();

UI->ApplyCommand('7run/verbose1");

UI->ApplyCommand("/event/verbose1");

UI->ApplyCommand('7tracking/verbose1");

//startarun

intnumberOfEvent=3;

runManager->BeamOninumberOfEvent);

//jobtermination

deleterunManager;

return0;

)

main()首先生成一個G4RunManager類,這個類是在主程序中用以初始化模擬

信息,用來連接子程序,連接方式是通過Set函數(shù)來完成。例如:

BDctcctorConstruction*detector=newBDctcctorCons:ruction;

runManager->SetUserlnitialization(detector);

先構(gòu)造一個探測器幾何,再用SET函數(shù)初始化。

用new申請的空間,在程序完成后需要釋放空間,否則出錯。注意:GEANT4

中,在「unManager上面說明的其他類會自動釋放。所以不需要一一釋放。

其他類按照重要性分為強制類和可選類。其中幾何結(jié)構(gòu)類

(DetectorConstruction)、物理設(shè)定類(PhysicsList)、源描述類

(PrimaryGenerator)都屬于強制類,缺少任一個程序都無法運行。而事件處理

類(EventAction)、步數(shù)據(jù)處理類(SteppingAction)、徑跡處理類

(TrackingAction)s運行處理類(RunAction)都屬于可選類,用戶可以通過設(shè)

定這些類來獲取感興趣的數(shù)據(jù),可以按照自己的需要添力口。

包含強制類之后程序就可以運行了,但只能檢驗幾何結(jié)構(gòu)的完備性,所以為了獲

得數(shù)據(jù)必須設(shè)定可選類。

1.Geant4的類結(jié)構(gòu)

Geant4程序代碼是根據(jù)這個類結(jié)構(gòu)建立起來的,類結(jié)構(gòu)如下圖所示.下面就

是Geant4中每個類的簡單說明.

1)Run和Event

這些類與模擬事件相關(guān),產(chǎn)生次級粒子,為粒子徑跡模擬器提供粒子.

2)Tracking和Track

根據(jù)粒子在探測器材料中的物理過程模擬粒子運行的軌跡,給出粒子特定

時間段在空間的位置,或者粒子空間時間的分布.

3)Geometry,MagneticField和CAD-Interface

這三個類就是用來描述探測器幾何結(jié)構(gòu)和探測器中電磁場的分布.為了使

探測器幾何結(jié)構(gòu)可以在CAD系統(tǒng)中進行修改,Geant4的幾何體模型完全與ISO

STEP標(biāo)準(zhǔn)一致.將來Geant4中幾何結(jié)構(gòu)的設(shè)計將從程序設(shè)計中獨立出來.面向

對象設(shè)計的方法可以讓用戶在不影響程序其他部分的同時改變幾何參數(shù)和場.

4)ParticleDefinition和Matter

這兩個類用于定義粒子和探測器材料.

5)Physics

它提供了粒子與探測器材料相互作用時所發(fā)生物理過程的模型,允許用戶

為每次反應(yīng)或每個反應(yīng)道添加物理模型.用戶根據(jù)粒子的種類,探測器材料和能

量范圍選擇不同的物理模型.Geant4有電磁物理過程和強子物理過程模型,同時

也提供了散射截面數(shù)據(jù)庫.

6)Hits和Digitization

這個兩個類用于對用戶定義的靈敏區(qū)內(nèi)的響應(yīng)進行采樣和分析.

7)Visualization

它顯示了探測器幾何形狀,粒子軌跡和碰撞過程.由于采用了面向?qū)ο笤O(shè)計

技術(shù)來設(shè)計可視化部分,這允許用戶獨立開發(fā)可視化工具,如:OpenGL和

Openinventor(為XII和Windows設(shè)計),DAWN,Postscript(viaDAWN)和VRML.

8)Interfaces

支持可視化用戶界面以及和外加程序的交流(OODBMS,reconstruction等).

①UserVerboseoutputclass,定義了一個verbosity變量;

②Runmanager,定義了一個運行管理器「unManager;

③UserInitializationclasses(mandatory),設(shè)置兩個強制類

ExN02DetectorConstruction和ExN02PhysicsList;

?UserActionclasses,設(shè)置用戶干涉類ExN02PrimaryGeneratorAction、

ExN02RunActionsExN02EventAction和ExN02SteppingAction;

⑤InitializeG4kernel,“runManager->Initialize?!?,初始化GEANT4內(nèi)核。構(gòu)

造探測器,生成物理過程,計算截面以及其他;

@GetthepointertotheUserInterfacemanager,獲取UI管理器的指針;

⑦batchmode,定義了批處理模式;

⑧interactivemode:definevisualizationandUIterminal;定義了交互模式的可

視化和UI終端;

2.構(gòu)建模型:

在Geant4中首先要建立一個最大的盒子,稱為WorldVolume,然后往這個大

盒子里面放各種各樣的小盒子(部件),然后每個小盒子(部件)里面還可以

放更小的盒子(零件),放入的小盒子將自動代替大盒子原有部分。

在Geant4中,將大盒子稱為MotherVolume(母體:,小盒子稱為Daughter

Volume(子體)。除了WorldVolume之外,每個Volume(體)都必須且只能

有一個母體,但可以沒有子體,也可以有多個子體。Geant4的這種盒子模型的

要求是:“不交不超”。

Geant4中每個這樣的盒子的安放又分為兩步。第一步是構(gòu)建盒子,稱為Logical

Volume(邏輯體);第二步是將盒子擺放到正確位置,變?yōu)镻hysicalVolume(物

理體)。

構(gòu)建盒子又分為兩步,笫一步是確定盒子形狀,第二步是確定盒子的材料等屬

性。形狀在Geant4中被稱為Solid0在Geant4中提供了多種固有的形狀,如

球形、長方體、錐體等,可以在$G4INSTALL/source/geometry/solids里面查找。

用戶也可以通過G4VSoliC類構(gòu)建自己的形狀,參見:

$G4INSTALL/source/georretry/management/include/G4VSolid.hho

此外,對于一些復(fù)雜的形狀,用戶也可以利用基本形狀通過交并補等布爾運算方

式完成,布爾運算的方式請參考$641耶丁人11/50113/9000^?/$0同$/800后3

確定了盒子形狀后,就是設(shè)置盒子的材料、磁場等屬性。這些屬性的設(shè)置通過

G4LogicalVolume類來完成,設(shè)置方法如下:

G4LogicalVolume(G4VSolid*pSolid,〃形狀

G4Material*pMaterial,〃材料

constG4String&name,〃邏輯體名字

G4FieldManager*pFieldMgr=0,〃場管理

G4VSensitiveDetector*pSDetector=Q〃是否SD探測器

G4UserLimits*pULimits=0,〃用戶限制

G4booloptimise二true);//是否優(yōu)化

盒子造完了就該擺放盒子了。擺放盒子也有兩種方法,一種是直接構(gòu)建物理體.

另一種是指定擺放方法。

直接構(gòu)建物理體是通過G4VPhysicalVolume類,其定義方法如下:

G4VPhysicalVolume(G4RotationMatrix*pRot,〃旋轉(zhuǎn)方式

constG4ThreeVector〃擺放坐標(biāo)

constG4String&pNomc,〃物理體名字

G4LogicalVolume*pLogical,//對應(yīng)的邏輯體

G4VPhysicalVolume*pMother);〃母體

如果pMother=0就表明這個體是一個WorldVolume,WorldVolume必須且只

能有一個。

在實際應(yīng)用中,我們通常采用指定擺放方法的方式來完成物理體的構(gòu)建。

指定擺放方法是通過G4PVPIacement類完成。G4PVPIacement類是

G4VPhysicalVolume的派生類,該類提供了多種方法描述LogicalVolume的擺

放方法。具體可以參考:

$G4INSTALL/source/geometry/volumes/include/G4PVPIacement.hho

用這種方法可以建立具有相同LogicalVolume的物理體,同時給可以給每個物

理體分配一個編號,以便區(qū)分具有相同LogicalVolume的物理體。這些編號在

UserSteppingAction等類中處理數(shù)據(jù)時有時會非常有用處。

需要注意的是,在Geant4中擺放坐標(biāo)都是指的相對坐標(biāo),是子體中心相對母體

中心的坐標(biāo)。而WorldVolume建立后就等于建立了幾何模型的絕對坐標(biāo)系。

3.定義材料

1)基本概念

自然界中,材料(化合物,混合物)一般是由元素組成,而元素由同位素組成.

Geant4中有三個類用來定義探測器材料的.

類G4Element描述了原子屬性:原子量,原子核中質(zhì)子數(shù),原子質(zhì)量,殼層能

量,還有每個原子的散射截面等.

類G4Material描述了材料的宏觀屬性:密度狀態(tài),溫度壓強,還有輻射長

度,平均自由程,dE/dx等.

2)定義單質(zhì)材料

如下例,給出材料名稱,密度,摩爾質(zhì)量和原子量,定義了液態(tài)氮.

G4doubledensity=1.390*g/cm3:

G4doublea=39.95*g/mole;

G4Material*lAr=newG4Material(name="liquidArgon",z=18.,a,density);

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

這就可以用來確定所定義的邏輯塊的材料:

G4LogicalVolume*myLbox=newG4LogicalVolume(abox,lAr,"Lbox",0,0,

0):

3)定義化合物

如例,定義水(H2O):

〃〃///〃//〃////////////〃//〃/〃//////////〃〃//////〃//〃////////////〃//〃////〃

a=1.01*g/mole;

G4Element*eIH=newG4日ement(name="Hydrogen”,symbol="H",z=l,a);

a=16.00*g/mole;

G4Element*elO=newG4Element("Oxygen","O",z=8,a);

density=1.0*g/cm3;

G4Material*H2O=newG4Material("water",density,ncomponents=2);

H2O->Add日ement(eH,natoms=2);

H2O->Add日ement(eO,natoms=l);

〃////〃/〃〃/〃//〃〃/〃////〃/〃〃/〃///〃//〃///〃〃〃/〃//〃//〃/〃〃/〃///〃〃/

4)定義混合物

如例,定義空氣(Air):

llllllllllinilllllllllllllllllllllllllllllinilllllllllllllllllllllllllllllllllllll

a=14.01*g/mole;

G4Element*elN=newG4日ement("NitrogerT,"N",z=7,a);

a-16.0*g/mole;

G4Element*elO=newG4Element("Oxygen","O",z=8.,a);

density=1.290*g/cm3;

G4Material*Air=newG4Material("Air",density,ncomponents=2);

Air->AddElement(elN,fractionmass=70*perCent);

Air->AddElement(elC,fractionmass=30*perCent);

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

/home/username/geant4.7.0/examples/novice/N03/ExN03DetectorConstruction.

cc文件中介紹了所有定義材料的方法.

4.指定粒子

1)一般概念

Geant4能夠模擬多種粒子.

基本粒子:電子,質(zhì)子,和gamma等.

短壽命的共振粒子:媒質(zhì)介子和delta重子.

核子:笊,alpha粒子和重離子等.

夸克,D夸克和膠子.

G4ParticleDefinition類提供了粒子的定義,而且每種粒子都有自己的類.粒

子主要分為6個大類:

輕子(lepton)

介子(meson)

強子(baryon)

波色子(boson)

短壽命粒子(shortlived)

離子(ion)

G4ParticleDefinition類包含了單個粒子的屬性:名稱,質(zhì)量,帶電電荷,自旋

等.其中大部分的屬性都不可修改,除非重新建立庫.Geant4定義了上百種粒子

用于不同的物理過程,在一般應(yīng)用中,用戶不需要自己定義粒子.粒子在連接的

過程中注冊啟用了,用戶不須要(也不能)自行執(zhí)行注冊粒子.

2)指定粒子和物理過程

G4VUserPhysicsList類讓用戶可以指定粒子以及它們的物理過程,用戶還可

以指定截斷參數(shù).

一個用戶從G4VUserPhysicsList中創(chuàng)建自己的類要利用以下幾個步驟:

ConstructParticleQ:調(diào)用粒子

ConstructPhysics():調(diào)用粒子的物理過程

SetCuts():設(shè)置粒子的截斷值

用戶利用ConstructParticle()來調(diào)用所需要的粒子的函數(shù),如用戶需要質(zhì)子

和geantino,代碼如下:

voidExN01PhysicsList::ConstructParticle()

(

G4Proton::ProtcnDefinition();

G4Geantino::GeantinoDefinition():

)

〃〃//〃/〃/〃〃〃〃//〃/〃〃〃/〃〃/〃〃〃///〃〃/〃//〃〃/〃〃〃///〃〃/〃//〃////

Geant4中預(yù)先定義的粒子有100多個,用戶不可能用這種方法來調(diào)用每一個

粒子的函數(shù),Geant4中有一些類可以讓用戶調(diào)用一類粒子,相對于6個粒子大類,

總共有6個類來調(diào)用這批粒子.他們是:

G4BusunCunslrucLur

G4LeptonConstructor

G4MesonConstructor

G4BarionConstructor

G4lonConstructor

G4ShortlivedConstructor

使用方法如下例:

IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIIHIIIIIIIIIIIIIIIIIIII

voidExN04PhysicsList::ConstructLeptons()

(

//Constructallleptons

G4LeptonConstructorpConstructor;

pConstructor.ConstructorParticle();

)

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

3)設(shè)定截斷值

用戶必須為每個粒子設(shè)定截斷值,所謂截斷值,就是程序在粒子輸運距離為

截斷值時記錄粒子位置,能量的信息.在一般的模擬程序中,用戶可以為所有的

粒子設(shè)定一個截斷值.如下:

voidExN04PhysicsList::SetCuts()

(

11theG4VUserPhysicsList::SetCutsWithDefault()methodsets

//thedefaultcutvalueforallparticletypes

SetCutsWithDefault();

)

//////〃/〃/////////〃///////〃////////////////////////////////////////////〃///////

系統(tǒng)默認的截斷值為l*mm,當(dāng)然用戶可以為自己調(diào)用的粒子和物理過程設(shè)

定不用的默認值.如下:

ExN04PhysicsList::ExN04PhysicsList():G4VUserPhysicsList()

(

//defaultcutvalue(1.0*mm)

defaultCutValue=l*mm;

)

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

用戶可以為gamma射線,電子,正電子,或者為不用的幾何區(qū)域設(shè)定不同的截

斷值.這種情況下,由于Geant4的物理過程(特別是計算能量損失的物理過程)是

根據(jù)特定的截斷值編寫的,它們輸出就會改變,所以用戶應(yīng)該特別小心.

為不同粒子設(shè)定不同截斷值的例子如下:

voidExN03PhysicsList::SetCuts()

(

〃setcutvaluesforgammaatfirstandfore-secondandnextfore+,

//becausesomeprocessesfore+/e-needcutvaluesforgamma

SetCutValue(defaultCutValue,"gamma");

SetCutValue(defaultCutValue,"e-");

SetCutValue(defaultCutValue,"e+");

//setcutvalueforprotonandanti_protonbeforeallotherhadrons

//becausesomeprocessesforhadronsneedcutvaluefor

proto/anti_proton

SetCutValue(cutForProton,"proton");

SetCutValue(cutForProton,"anti_proton");

//setcutvalueforotherparticles

SetCutValueForOthers(defaultCutValue);

)

///////////〃////////////〃//〃〃/////////////〃//////〃////〃//////////////〃//////

5.指定物理過程

1)物理過程

物理過程描述了粒子與材料的相互作用.Geant4中提供了電磁,強子和其他

的反應(yīng)過程.有7個物理過程大類:

電磁物理過程(electromagnetic)

強子物理過程(hadronic)

輸運過程(transportation)

衰減(decay)

光學(xué)過程(optical)

光輕子-強子過程(photolepton_hadron)

參數(shù)化過程(parameterisation)

G4VProcess是最基本的物理過程的類,每一個物理過程有三個”Dolt”方式來描

述:

AtRestDolt

AlongStepDolt

PostStepDolt

還有三個響應(yīng)方式:

AtRcstGctPhysicallntcractionLcngth

AlongStepGetPhysicallnteractionLength

PostStepGetPhysicallnteractionLength

下面給出了用于單個物理過程的基本的類:

G4VAtRestProcess(僅適合于"AtRestDolt”方式的物理過程)

G4VContinuousProcess(僅適合于"AlongStepDolt”方式的物理過程)

G4VDiscreteProcess(僅適合于"PostStepDolt"方式的物理過程)

另外4個類(如G4VContinuousDiscreteProcess)用于復(fù)雜的物理過程.

2)指定物理過程

用戶通過G4VUserPhysicsList來調(diào)用模擬程序中的粒子以及它們的物理過程.

用戶通過ConstructPhysics()方式利用G4VUserPhysicsList為每一個所調(diào)用的粒子

創(chuàng)建自己的物理過程類.

i)添加輸運方式

如果沒有添加粒子的瑜運方式,程序就不能描述粒子在時空的輸運,以及不

能記錄粒子輸運過程中的軌跡,所以用戶就必須為所有的粒子調(diào)用

G4Transportation.如下:

〃//〃///〃〃/〃/〃〃/〃〃/〃〃〃〃〃〃//〃〃/〃//〃/〃〃〃〃〃〃〃//〃//〃〃〃〃///

voidG4VUserPhysicsList::AddTransportation()

(

//createG4Transportation

G4Transportation*theTransportationProcess=new

G4Transportation();

//loopoverallparticlesinG4ParticleTableendregisterthe

//transportationprocess

theParticlelterator->reset();

while((*theParticlelterator)()){

G4ParticleDefinition*particle=theParticlelterator->value();

G4ProcessManager*pmanager=particle->GetProcessManager();

//addstransportationtoallparticlesexceptshortlivedparticles

if(!particle->lsShortLived()){

pmanager->AddProcess(theTransportatonProcess);

//setorderingtothefirstforAlongStepDolt

pmanager

SetProcessOrderingToFirst(theTransportationProcess,

idxAlongStep);

)

)

)

〃〃〃〃〃/〃〃/〃〃〃〃//〃/〃/〃〃〃/〃〃〃/〃〃〃/〃〃/〃/〃〃〃〃〃///〃/〃〃〃/

ii)調(diào)用物理過程

以Const「uctProcess()方式為G4Geantino類調(diào)用輸運物理過程如下:

〃////〃/〃〃/〃//〃〃/〃////〃/〃〃/〃///〃//〃///〃〃〃/〃//〃//〃/〃〃/〃///〃〃/

voidExN01PhysicsList::ConstructProcess()

(

//Definetransoortationprocess

AddTransportction();

)

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

為gamma射線添加物理過程如下:

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

voidMyPhysicsList::ConstructProcess()

//Definetransoortationprocess

AddTransportction();

//electromagreticprocess

ConstructEM();

)

voidMyPhysicsList::ConstructEM()

(

//Gettheprocessmanagerforgamma

G4ParticleDefinition*particle=G4Gamma二GammaDefinition。;

G4ProcessManager*pmanager=particle->GetProcessManager();

//Constructprocessforgamma

G4Photo日ectricEffect*thePhoto日ectricEffect=new

G4PhotoElectricEffect();

G4ComptonScatteringtheComptonScatteringnew

G4ComptonScattering();

G4GammaConversion*theGammaConversion=new

G4GammaConversion();

//Registerprocesstogamma'sprocessmanager

pmanage「->AddDiscreteP「ocess(thePhoto日ectricEffect);

pmanager->AddDiscreteProcess(theComptonScattering);

pmanager->AddDiscreteProcess(theGammaConversion);

)

llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

6.產(chǎn)生初始事件

1)初始事件

G4VUserPrimaryGeneratorAcrion可以讓用戶創(chuàng)建自己的初始事件類.用戶

提供初始事件的狀態(tài),如.出射粒子的種類,出射能量,方向等.如下:

#include"ExNOlPrimaryGeneratorAction.hh"

//include"G4Event.hh"

#include"G4ParticleGun.hh"

^include"G4ParticleTable.hh"

^include"G4ParticleDefinition.hh"

#include"globals.hh*

ExN01PrimaryGeneratorAction::ExN01PrimaryGeneratorAction()

(

G4intn_particle=1;〃設(shè)定每次事件出射粒子的數(shù)量

particleGun=newG4ParticleGun(nparticle);

G4ParticleTable*particleTable=G4ParticleTable::GetParticleTable();

G-StringparticleName;

particleGun->SetParticleDefinition(particleTable->FindParticle(particleName="g

eantino"));〃設(shè)定出射粒子的種類

partideGun->SetPartideEnergy(1.0*GeV);〃設(shè)定出射粒子的動能

particleGun->SetParticlePosition(G4ThreeVector(-2.0*m,0.0,0.0));〃設(shè)定出射粒

子的出射位置

)

ExN01PrimaryGeneratorAction::-ExN01PrimaryGeneratorAction()

(

deleteparticleGun;

)

voidExN01PrimaryGeneratorAction::GeneratePrimaries(G4Event*anEvent)

(

G4inti=anEvent->GetEventlD()%3;

G4ThreeVectorv(1.0,0.0,0.0);

switch(i)

case0:

break;

case1:

v.setY(O.l);

break;

case2:

v.setZ(O.l);

break;

)

particleGun->SetParticleK/omentumDirection(v);//設(shè)定出射粒子的方向

particleGun->GeneratePrimaryVertex(anEventi;

)

〃〃〃〃/〃〃〃/〃〃〃〃/〃〃〃〃/〃〃/〃〃〃〃/〃〃/〃〃〃〃〃〃〃//〃〃〃〃/〃〃〃

2)G4VPrimaryGenerator

Geant4中有兩個G4VPrimaryGenerator的獨立的類,一個是G4ParticleGun,

另一個是G4HEPEvtlnterface.G4ParicleGun用來給用戶確定出射粒子的動能和位

置.方式如下:

voidSetParticleDefinition(G4ParticleDefinition*)

voidSetParticleMomentum(G4ParticleMomentum)

voidSetParticleMomentumDirection(G4ThreeVector)

voidSetParticleEnergy(G4doule)

voidSetParticleTimeiG4double)

voidSetParticlePosition(G4ThreeVector)

voidSetParticlePolarization(G4ThreeVector)

voidSetNumberOfParticles(G4int)

執(zhí)行模擬程序

1.命令總目錄

/control/UI控制命令.

/units/單位

/geometry/幾何形狀控制命令.

/tracking/軌跡和步長控制命令.

/event/事件控制命令.

/run/運行控制命令

/random/隨機數(shù)狀態(tài)控制命令.

/particle/粒子控制命令.

/process/物理過程控制命令.

/hits/靈敏區(qū)和采樣

/gun/粒子源控制命令.

/vis/可視化命令.

2.一些常用命令

1)/control/execute

說明:執(zhí)行一個宏文件.

2)/control/loop

說明:多次執(zhí)行宏文件

3)/units/list

說明:列出所有存在的量綱.

4)/tracking/verbose

說明:設(shè)置記錄粒子軌跡信息的級別.

5)/run/beamOn

說明:開始運行模擬程序.如果沒有初始化G4內(nèi)核,它將自動初始化.默認運

行的事件數(shù)為1,第二第三個參數(shù)可以讓用戶在每次事件結(jié)束后執(zhí)行一個宏文件.

如果第二個參數(shù)(例:宏文件名)存在,但第三個參數(shù)不存在,這樣所有的事件都是

執(zhí)行這個宏文件.

6)/process/list

說明:列出所有的物理過程名稱.

7)/process/activate(inactivate)

說明:激活(停止)物理過程,激活(停止)粒子運行.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論