猪头Geant4讲座(9)
时间:2025-04-20
时间:2025-04-20
Geometry,我习惯翻译为组合几何模型,CG模型顾名思义就是整个模型由一块块小模块组合而成,打个不恰当的比方就是搭积木。这种模型的要求就是“不交不空”,既不能有相交的部分,也不能有空白的地方。CG模型是粒子输运蒙卡模拟中非常常用的一种。
Geant4采用的模型则不同,目前我没看到有关此模型的确切名称,但我习惯将之称为嵌套模型或盒子模型,因为其建模的方式就如往大盒子里放小盒子。在Geant4中首先我们要建立一个最大的盒子,称为World Volume,然后往这个大盒子里面放各种各样的小盒子(部件),然后每个小盒子(部件)里面还可以放更小的盒子(零件),放入的小盒子将自动代替大盒子原有部分。在Geant4中,将大盒子称为Mother Volume(母体),小盒子称为Daughter Volume(子体)。
除了World Volume之外,每个Volume(体)都必须且只能有一个母体,但可以没有子体,也可以有多个子体。
Geant4的这种盒子模型的要求是:“不交不超”。“不交”就是要求同一个大盒子里面的小盒子,即同一等级的子体不能有相交的部分;“不超”就是要求小盒子不能超过大盒子的范围,即子体不能超出母体。用集合的语言描述就是
Volume i(level n)∩Volume j(level n)=Ф; Daughter Volume∈Mother Volume.
下面就可以讲如何设置这些盒子(Volume)。
Geant4中每个这样的盒子的安放又分为两步。第一步是构建盒子,称为Logical Volume(逻辑体);第二步是将盒子摆放到正确位置,变为Physical Volume(物理体)。
构建盒子又分为两步,第一步是确定盒子形状,第二步是确定盒子的材料等属性。
形状在Geant4中被称为Solid。在Geant4中提供了多种固有的形状,如球形、长方体、锥体等,可以在$G4INSTALL/source/geometry/solids里面查找。
用
此外,对于一些复杂的形状,用户也可以利用基本形状通过交并补等布尔运算方式完成,布尔运算的方式请参考$G4INSTALL/source/geometry/solids/Boolean。
确定了盒子形状后,就是设置盒子的材料、磁场等属性。
这些属性的设置通过G4LogicalVolume类来完成,设置方法如下:
G4LogicalVolume(G4VSolid* pSolid, //形状
G4Material* pMaterial, //材料
const G4String& name, //逻辑体名字 户也可以通过G4VSolid类构建自己的形状,请参见$G4INSTALL/source/geometry/management/include/G4VSolid.hh。
上一篇:日常工作准则