本記事には広告が含まれています。
This article contains advertisements.

GATE

GATEの使い方 7 ~Geometry 1~

How to use GATE 7

admin_bear

今回はGeometryについてです。
Today I ’ll talk about Geometry.

GATEの使い方 3」ではPET装置を構築しました。
We built a PET device in “How to use GATE 3”.

その際、構造物(ジオメトリ, Geometry)に関しては説明してなかったので、今回はそのことについて説明していきます。
I didn’t talk about geometry in that article, so I’ll talk about it this time.

これを読めばGATEのGeometryの基礎について理解できます!
Read this to understand the basics of GATE Geometry!

GATEの使い方 7
How to use the GATE

Geometryとは何か
   What is geometry ?

World

GATEではシミュレーション体系に構造物を配置しておく必要があります。
In GATE, it is necessary to place objects for simulation.

その中でも最も大きく、必ず配置しなければならない構造物が「World」です。
The “World” is the object that must be placed and is the largest.

モンテカルロの計算はWorldの内部でのみ行われます。
Monte Carlo calculations are done only within World.

Worldの外側に粒子(光子)が飛び出すと、次の粒子の計算に移ります。
When a particle ( or photon) escapes out of the world, move on to the next particle calculation.

構造物は全て「入れ子」の関係になります。
外側のVolumeを親Volume(またはmother volume)、内側のVolumeを娘Volume(daughter volume)といいます。
All structures have a “nested” relationship.
The outer volume is called the parent volume (or mother volume) and the inner volume is called the daughter volume.

下の図の場合、中間のVolumeはworldを親Volumeとしており、かつ、内側のVolumeの親Volumeでもあります。
In the example below, the parent Volume of the middle Volume is “World”. The middle Volume is also the parent Volume of the inner Volume.

娘volumeは親volumeからはみ出すことはできません。
はみ出していないかチェックするコマンドがあります。
The daughter volume cannot extend beyond the parent volume.
There is a command to check if it is protruding.

/geometry/test/run

もし、親volumeからはみ出していたり、娘volume同士が重なっていた場合警告がでます。
If the daughter Volume is protruding from the parent volume or the daughter volumes overlap, a warning will be issued.

ちなみに、親volumeと娘volumeが完全に重なることはOKです。
By the way, it is OK for the parent volume and daughter volume to completely overlap.

このコマンドがWorldを配置する(サイズを決める)コマンドです。
#はコメントアウトなので、上の3行は無視されます。
This is the command to place (to determine size) the World.
Since “#” menas “comment out”, the above 3 lines are ignored.

#
#     W O R L D
#
/gate/world/geometry/setXLength                          400. cm
/gate/world/geometry/setYLength                          400. cm
/gate/world/geometry/setZLength                          400. cm

それぞれX軸、Y軸、Z軸の一辺の長さが400 cmとなります。
Each side of the X-axis, Y-axis, and Z-axis has a length of 400 cm.

※WorldはBox形となります。また、配置する座標は原点(0,0,0)です。
P.S. World is Box type. Also, the coordinates to place are the origin (0,0,0).

当てはめる物質
   Material

Volumeの物質を決める必要があります。
You need to decide the material of the placed Volume.

デフォルトはAirになっていますが、GateMaterials.dbに記載された物質を割り当てることができます。
The default is air. However, you can select the materials listed in GateMaterials.db.

もし、このファイルに記載されていない物質を使用したい場合は、このGateMaterials.dbを編集することで、その物質が使用可能になります。
If you want to use materials not listed in this file, edit this GateMaterials.db. The material is then ready for use.

GateMaterials.dbの中身はこんなことが書いてあります。
The contents of GateMaterials.db are written like this.

マクロファイルの中で、GateMaterials.dbがどこにあるのかをGateに教える必要があり、以下のコマンドを打ちます。
You need to tell Gate where GateMaterials.db is. Write the following command in the macro file.

/gate/geometry/setMaterialDatabase    ../../misc/GateMaterials.db

「../../」の意味はGateを実行したディレクトリから考えて、2つ上の階層の中身を示します。
“../../” indicates the hierarchy two levels above (../../) starting from the directory where the Gate was executed.

Gateを実行する場所によって../misc/GateMaterials.dbなどに変更しなければならない時があるので、エラーメッセージが出たらマクロファイルを編集してください。
ここはよくエラーが出る場所です。
Depending on where you run Gate, you may need to change it to ../misc/GateMaterials.db etc. If you get an error message, edit the macro file.
This is a place where errors often occur.

娘Volumeを作る
   Make a daughter Volume

娘Volumeは母親Volumeの内部に配置する必要があります。
以下が、娘Volumeを作成・配置するコマンド例です。
The daughter Volume should be placed inside the mother Volume.
The following is an example command to create and place a daughter Volume.

# phantom
/gate/world/daughters/name         my_phantom
/gate/world/daughters/insert         cylinder
/gate/my_phantom/placement/setTranslation         0. 0. 0. mm
/gate/my_phantom/setMaterial        Water
/gate/my_phantom/vis/setColor       green
/gate/my_phantom/geometry/setRmax       100.0 mm
/gate/my_phantom/geometry/setRmin        40.0 mm
/gate/my_phantom/geometry/setHeight      200.0 mm

これを実行すると以下のようなvolumeが作られます。
When you execute this, the following volume will be created.

直径20cmで直径8cmの穴が開いている、長さ20cmの円柱です。
A 20 cm long cylinder with a diameter of 20 cm and a hole of 8 cm in diameter.

コマンドの意味を下の図にまとめてみました。
I summarized the meaning of the command in the diagram below diagram.

作成できる形状は以下の通りです
The shapes you can make are as follows:

my_phantomの内部に娘volume(box)を作成する場合には最初の2行は以下のようになります。
If you’re going to create a daughter volume inside my_phantom, the first two lines are like this.

/gate/my_phantom/daughters/name         my_phantom2
/gate/my_phantom/daughters/insert         box

配置する座標は親volume中心からの位置(local座標)を指定します。Worldからの座標をglobal座標、各volumeの座標はlocal座標といいます。
When you place an object, you specify the position (local coordinates) from the center of the parent volume.The coordinates from World are called global coordinates, and the coordinates of each volume are called local coordinates.

例えばvolume1がworldの中で(100cm, 0cm, 0cm)の位置に配置されており、volume2をvolume1に対して(0cm, 100cm, 0cm)に配置した場合、volume2中心のglobal座標は(100cm, 100cm, 0cm)になります。
Volume1 is located at (100cm, 0cm, 0cm) in the world. Place volume2 (daughter) in volume1 (parent) (0cm, 100cm, 0cm). The global coordinate of the center of volume2 is (100cm, 100cm, 0cm).

さまざまな形状の配置例
   Example of placement (various shapes)

Box


/gate/world/daughters/name        my_phantom
/gate/world/daughters/insert        box
/gate/my_phantom/setMaterial     Water
/gate/my_phantom/vis/forceWireframe
/gate/my_phantom/vis/setColor      blue
/gate/my_phantom/geometry/setXLength       100. mm
/gate/my_phantom/geometry/setYLength       200. mm
/gate/my_phantom/geometry/setZLength       300. mm

Sphere

/gate/world/daughters/name      my_phantom
/gate/world/daughters/insert       sphere
/gate/my_phantom/setMaterial      Water
/gate/my_phantom/vis/forceWireframe
/gate/my_phantom/vis/setColor           blue
/gate/my_phantom/geometry/setRmin      100. mm
/gate/my_phantom/geometry/setRmax	 200. mm
/gate/my_phantom/geometry/setPhiStart      0. deg
/gate/my_phantom/geometry/setDeltaPhi       360. deg
/gate/my_phantom/geometry/setThetaStart      0. deg
/gate/my_phantom/geometry/setDeltaTheta     180. deg						     

直径400mmの球で、中に直径200mmの球(空洞)があります。
It is a sphere with a diameter of 400 mm, and there is a cavity inside it (a sphere with a diameter of 200 mm).

PhiとThetaがややこしいのですが、変更すると以下のような感じになります。
Phi and Theta are complicated, but when I change them, it looks like the following.

/gate/my_phantom/geometry/setPhiStart 0. deg
/gate/my_phantom/geometry/setDeltaPhi 360. deg
/gate/my_phantom/geometry/setThetaStart 0. deg
/gate/my_phantom/geometry/setDeltaTheta 180. deg

普通に球を作るのであれば、変更なしでいいです。
If you make a sphere normally, you don’t have to change it.

Cylinder


/gate/world/daughters/name     my_phantom
/gate/world/daughters/insert     cylinder
/gate/my_phantom/setMaterial       Water
/gate/my_phantom/vis/forceWireframe
/gate/my_phantom/vis/setColor       blue
/gate/my_phantom/geometry/setRmin     0. mm
/gate/my_phantom/geometry/setRmax    200. mm
/gate/my_phantom/geometry/setHeight       400 mm
/gate/my_phantom/geometry/setPhiStart        0 deg
/gate/my_phantom/geometry/setDeltaPhi       360 deg

円柱はZ軸に沿って、作られます。方向を変える場合には、rotateさせるコマンドを打ちます。rotateに関しては後述します。
A cylinder is created along the Z axis. To change the direction, type the rotate command. I will write about rotate later.

Cone

/gate/world/daughters/name        my_phantom
/gate/world/daughters/insert         cone
/gate/my_phantom/setMaterial          Water
/gate/my_phantom/vis/forceWireframe
/gate/my_phantom/vis/setColor        blue
/gate/my_phantom/geometry/setRmin1   10. mm
/gate/my_phantom/geometry/setRmax1    20. mm
/gate/my_phantom/geometry/setRmin2    60. mm
/gate/my_phantom/geometry/setRmax2     120. mm
/gate/my_phantom/geometry/setHeight       500 mm
/gate/my_phantom/geometry/setPhiStart     0 deg
/gate/my_phantom/geometry/setDeltaPhi     360 deg

曲線のGeometryを表示する際は、以下のコマンドを打つといいです。
The following commands are valid for displaying curves.

 /vis/viewer/set/auxiliaryEdge 

Ellipsoid

/gate/world/daughters/name         my_phantom
/gate/world/daughters/insert         ellipsoid
/gate/my_phantom/setMaterial       Water
/gate/my_phantom/vis/forceWireframe
/gate/my_phantom/vis/setColor      blue
/gate/my_phantom/geometry/setXLength   50 mm
/gate/my_phantom/geometry/setYLength   100 mm
/gate/my_phantom/geometry/setZLength   300 mm
/gate/my_phantom/geometry/setZBottomCut   -100 mm
/gate/my_phantom/geometry/setZTopCut  150 mm

Elliptical tube


/gate/world/daughters/name        my_phantom
/gate/world/daughters/insert        eltub
/gate/my_phantom/setMaterial        Water
/gate/my_phantom/vis/forceWireframe
/gate/my_phantom/vis/setColor       blue
/gate/my_phantom/geometry/setLong    200 mm
/gate/my_phantom/geometry/setShort   100 mm
/gate/my_phantom/geometry/setHeight  600 mm

Hexagone

/gate/world/daughters/name       my_phantom
/gate/world/daughters/insert       hexagone
/gate/my_phantom/setMaterial        Water
/gate/my_phantom/vis/forceWireframe
/gate/my_phantom/vis/setColor      blue
/gate/my_phantom/geometry/setRadius   100 mm
/gate/my_phantom/geometry/setHeight   300 mm

HexagoneはSPECT装置のコリメータなどに使用します。
鉛の板(mother volume)に空気のhexagone(daughter volume)を配置することでコリメータが作成可能です。
Hexagon is used as a collimator for SPECT equipment.
A collimator can be created by placing a hexagonal object (daughter volume) made of air on a lead plate (mother volume).

Geometryの移動
   Rotation, Translation, Orbiting

Rotation

配置した円柱の向きを変える場合などに使用します
物体が自分を中心にして、その場で回転します。
It can be used if you want to turn a cylinder around.
The object revolves around itself.

/gate/XXXXXXX/placement/setRotationAxis       1 0 0
/gate/XXXXXXX/placement/setRotationAngle       90 deg

※ XXXXXXは動かすvolume名が入る
P.S. XXXXXX is volume name that you want to move.

setRotationAxis:どの軸に対して回転させるかを指定する (X, Y, Z)
setRotationAngle:何度(deg)回転させるか
setRotationAxis : specify the axis of rotation
setRotationAxis : specify the angle of rotation

シミュレーション計算中に動かす場合は以下のように書く
If you want to move an object during simulation calculations, write as follow.

/gate/XXXXXXX/moves/insert         rotation
/gate/XXXXXXX/rotation/setSpeed    10 deg/s
/gate/XXXXXXX/rotation/setAxis     1 0 0

※ XXXXXXは動かすvolume名が入る
P.S. XXXXXX is volume name that you want to move.

Translation

物体を平行移動します。
Translate an object

/gate/Name_Volume/placement/setTranslation 0. 0. -15. cm
/gate/Name_Volume/placement/setTranslation 0. 0. 15. cm

シミュレーション計算中に動かす場合は以下のように書く
If you want to move an object during simulation calculations, write as follow.

/gate/XXXXXXX/moves/insert   translation
/gate/XXXXXXX/translation/setSpeed   0  0  2. cm/s

Orbiting

軸を中心に回転させる際に使用します。
SPECT収集の際の検出器の動きを模擬します。
Simulates the movement of the detector during SPECT examination.

/gate/XXXXXXX/moves/insert   orbiting
/gate/XXXXXXX/orbiting/setSpeed  30 deg/s
/gate/XXXXXXX/orbiting/setPoint1  0  0  0 cm
/gate/XXXXXXX/orbiting/setPoint2  0  0  1 cm

cmはいらないような・・・・?
Do we need to write “cm” ?

動く速度は「/gate/XXXXXX/orbiting/setSpeed 30 deg/s」で指定されstep and shoot modeとなります。ただし、continuous modeとしたい場合は、シミュレーションのtime sliceを小さくします。
The speed of movement is specified by “/gate/XXXXXX/orbiting/setSpeed 30 deg/s”. You can use the “step and shoot” mode. If you want to use “continuous” mode, you have to use small value of “time slice”.

上の2つはHitsの起こった座標(XY平面)を示しています。
time slice以外は同じ条件です。
The two figures (above) show the coordinates (XY plane) where the ”Hits” information was collected.
The conditions are the same except for time slice.

楕円軌道収集
   Move in elliptical orbit

外部ファイルに「時間」「角度」「軸」「位置」を書いたものを読み込みます。
例えば、1秒毎にZ軸を中心に-20度回転しながら楕円(短軸:30cm, 長軸:50cm)軌道で回転させる場合は以下のようなファイルを作成し、同じディレクトリに保存しておきます。
Load the file in which “time”, “angle”, “axis”, and “position” are written.
For example, to rotate in an elliptical (minor axis: 30 cm, major axis: 50 cm) orbit while rotating about the Z axis by -20 degrees every second, create the following file and save it in the same directory.

/gate/XXXXXXX/moves/insert        genericMove
/gate/XXXXXXX/genericMove/setPlacementsFilename      mov.placements

楕円軌道(短軸a, 長軸b)の座標は以下の式で計算されます
The coordinates of the elliptic orbit (short axis a, long axis b) are calculated by the following formula:
X = b × cos( ang × pai/180 )
Y = a × sin( ang × pai/180 )

admin_bear

短いですが、今日はこれまでにします。
Geometryに関することはまだ続きを書きます。
There are many topics about “geometry”, but I will cover them in another article.

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA