ChinaNet
标题:
DetectorConstruction函数运行过程详解
[打印本页]
作者:
鸿飞冥冥
时间:
2015-4-8 10:12
标题:
DetectorConstruction函数运行过程详解
/%
把整个类的运行过程都整理出来了,整理得好辛苦啊……
此贴对照着程序来阅读更有效果~~~
个人觉得很有用,会很好地帮助理解程序~~~~
做完很有成就感 Yeah :) 希望这个资料可以帮助和我一样的初学者~~~
copyright@丁紫寒
2008年11月6日 18点48分
%/
step 1.必须定义构成几何的体积
ü
Geant4
用固体体(
solid
)、物理体(
physical
)、逻辑体(
logical
)的体积概念
ü
固体提是指具有固定形状和确定尺寸、维数的几何对象。如边长为
10
厘米的立方体就是一个
Solid
。
ü
物理体
:
为了定位几何体的空间位置和各几何体之间的逻辑关系,需要使用物理体。物理体可以通过准确的坐标定位把逻辑体放到另外一个几何体中。
ü
在
Geant4
中,所有的几何都必须放在世界体中
ü
所以第一件要做的是定义世界体的固体体、物理体、逻辑体
----------------------------------------------------------
step 2.
ü
为了定义世界体,首先我们先定一个指向
G4Box
对象的指针,它是世界体的固体体
ü
为了初始化,我们向构造函数传以下参数:名称、维数
ü
注意,有无数的形状可供使用。(
G4Shere
等等)
ü
然后定义一个指向
G4LogicalVolume
的指针
ü
向构造函数传以下参数:
l
指向它的固体体的指针
l
指向对象的指针,这个指针代表构成体积的材料
l
它的名字
l
其他参数
------------------------------------------------------------
step 3.
ü
然后构造物理体,把它放入几何中
ü
放置体积时,我们必须指明它的“母体积”,也就是包含着这个体积的体积
ü
构造函数的参数有(按顺序):
l
旋转矩阵(
rotation matrix
)
l
相对于“母体积”的位置
l
用
G4ThreeVector
类来说明细节
l
指向逻辑体的指针
l
它的名字
l
指向“母体积”的指针
l
一个布尔操作符
l
一个复制序号(如果多次用到这个体积时才用到)
-------------------------------------------
step 4.
把特定的模体放入体积中(例如水)
ü
再进行过程相同的模体定义:定义固体体、逻辑体、物理体
ü
当定义模体的物理体时,我们必须指明它的“母体积”,所以现在往世界体的逻辑体中传一个指针
ü
现在你应该已经意识到从世界体开始的所有体的层次结构了吧
ü
这个层次结构是用一个指针进行连接的,这个指针指向世界体中的物理体
ü
G4RunManager
为了知道材料(用于初始化物理属性)和体积(为了跟踪),必须对指针有读取的权限
ü
所以,在函数的最后,构造方法向
G4RunManager
返回这个指针
转自
www.52mc.net
欢迎光临 ChinaNet (http://www.nuclear.net.cn/)
Powered by Discuz! X3.1