Geant 4 單位系統

2021-09-28 23:21:52 字數 2495 閱讀 4362

geant 4 程式中,輸入資料時必須指定其單位,這是所有geant 4 **都要遵循的規範,這使得**與使用者選擇的單位系統無關。如果沒有指定,這些資料將被認為使用g4系統內部的隱含單位,這將導致**的移植性變差。

一、基本單位

geant 4核心在內部使用乙個統一的單位集合,其基於hepsystemofunits:

millimeter                  (mm)

nanosecond (ns)

mega electron volt (mev)

positron charge (eplus)

degree kelvin (kelvin)

the amount of substance (mole)

luminous intensity (candela)

radian (radian)

steradian (steradian)

所有其他的單位都是有這些基本單位匯出的。例如:

millimeter = mm = 1;

meter = m = 1000*mm;

...m3 = m*m*m;

...

基本單位定義:source/global/management/include/systemofunits.h,這個檔案是clhep的一部分。此外,使用者可以自由的改變核心所使用的單位系統。

二、輸入資料

for (int j=0, j2. 互動式命令:一些使用者介面的內建命令也要求指定單位。例如:

/gun/energy 15.2 kev

/gun/position 3 2 -7 meter

三、輸出資料

1. 以g4內部隱含單位輸出資料:

g4out << stepsize << "mm";
2. 以使用者規定的單位輸出資料:

g4out << stepsize/cm << "cm";
3. 以最合適的單位輸出資料:需要呼叫單位列表所在的標頭檔案

#include "g4unitstable.hh"

g4out << g4bestunit(stepsize, "length");// length is the category.

四、引入新的單位

1. 呼叫標頭檔案,定義新的單位:

#include "systemofunits.h"

static const g4double inch = 2.54*cm;

注:因為為將其加入到單位列表,所以需要定義靜態全域性常量

2. 使用者可以例項化乙個 g4unitdefinition 類的物件,這些物件在構造時由全域性 g4unitstable 擁有,並且不能由使用者刪除。

#include "g4unitstable.hh"

#include "systemofunits.h"

new g4unitdefinition ( name, symbol, category, value );

例如:

#include "g4unitstable.hh"

#include "systemofunits.h"

// add new units for dose

// const g4double milligray = 1.e-3*gray;

new g4unitdefinition("milligray", "milligy" , "dose", milligray);

//g4cout << g4bestunit(dose,"dose");

也可以定義復合單位,如速度:

new g4unitdefinition ( "km/hour" , "km/h", "speed", km/(3600*s) );

new g4unitdefinition ( "meter/ns", "m/ns", "speed", m/ns );

在 g4unitstable 中,"speed" 類的單位預設不存在,但是它將自動被建立。

g4unitdefinition 類所在目錄:source/global/management。

五、輸出單位列表

使用者可以使用靜態函式 g4unitdefinition::printunitstable() 輸出單位列表,或者使用互動式命令, /units/list 。

geant4構造粒子 Geant4基礎知識

geant4 基礎知識 g4模擬粒子過程 建立一次模擬,在 g4中稱為一次 runrun 建立後,需要對幾何結構 物理過 程進行初始化 初始化完成後就開始模擬過程了,首先發射乙個粒子。在g4 中,發射乙個 或一系列 粒子到所有次級粒子死亡的過程成為一次 event 而每次發射的初始粒子則有粒子發射器...

geant4構造粒子 Geant4基礎知識

可複製 編制,期待你的好評與關注!geant4 基礎知識 g4模擬粒子過程 建立一次模擬,在 g4中稱為一次 runrun 建立後,需要對幾何結構 物理過 程進行初始化 初始化完成後就開始模擬過程了,首先發射乙個粒子。在g4 中,發射乙個 或一系列 粒子到所有次級粒子死亡的過程成為一次 event ...

Geant4 模擬過程

g4中乙個典型的模擬演算法 1.建立一次模擬 在g4中稱為一次run 2.run建立後,需要對幾何結構detectorconstruction 物理過程plysiclists 進行初始化actioninitialization 3.初始化完成後就開始模擬過程了 event g4中發射乙個 一系列 粒...