猪头Geant4讲座(10)
时间:2025-04-20
时间:2025-04-20
G4FieldManager* pFieldMgr=0, //场管理
G4VSensitiveDetector* pSDetector=0, //是否SD探测器
G4UserLimits* pULimits=0, //用户限制
G4bool optimise=true); //是否优化
盒子造完了就该摆放盒子了。
摆放盒子也有两种方法,一种是直接构建物理体,另一种是指定摆放方法。
直接构建物理体是通过G4VPhysicalVolume类,其定义方法如下:
G4VPhysicalVolume(G4RotationMatrix *pRot, //旋转方式
const G4ThreeVector &tlate, //摆放坐标
const G4String &pName, //物理体名字
G4LogicalVolume *pLogical, //对应的逻辑体
G4VPhysicalVolume *pMother); //母体
如果pMother=0就表明这个体是一个World Volume,World Volume必须且只能有一个。
在实际应用中,我们通常采用指定摆放方法的方式来完成物理体的构建。
指定摆放方法是通过G4PVPlacement类完成。G4PVPlacement类是G4VPhysicalVolume的派生类,该类提供了多种方法描述
用这种方法可以建立具有相同Logical Volume的物理体,同时给可以给每个物理体分配一个编号,以便区分具有相同Logical Volume的物理体。这些编号在UserSteppingAction等类中处理数据时有时会非常有用处。
需要注意的是,在Geant4中摆放坐标都是指的相对坐标,是子体中心相对母体中心的坐标。而World Volume建立后就等于建立了几何模型的绝对坐标系。
下面简单地讲一下第一个novice例子中几何模型的建立。
G4double expHall_x = 3.0*m; Logical Volume的摆放方法。具体可以参考$G4INSTALL/source/geometry/volumes/include/G4PVPlacement.hh。
上一篇:日常工作准则