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