【G4基础02】2.2 How to Define a Detector Geometry

本文介绍如何在G4中定义探测器几何结构,包括世界体积World的设定,描述volume间的关系,以及volume的创建步骤,如创建实体solid、logical volume和physical volume。还提及了如何在world中放置多个volume,利用for循环和随机坐标实现。


基本概念

detector由多个volumes组成

  • World
    • 最大的volume是world volume,所有其他detector volumes都必须被包含在world里
    • 描述world最简单高效的形状是一个box
    • 必须创建为具有空母指针的G4PVPlacement
    • 必须是未旋转的,它必须放在全局坐标系的原点
  • volumes间关系
    • 有包含关系的volumes,内部的为子体daughter volume,外部的为母体mother volume
    • 子体与母体使用相同坐标系
    • world没有母体,它本身是最大的母体
  • volume构成
    • 描述形状的solid volume
    • 描述属性的logical volume
      • 物理特性、材料、有无sensitive detector、磁场,等等
    • 描述位置的physical volume

创建volume

如何创建volume

  • 创建一个实体solid
  • 使用该solid volume创建logical volume
  • 并添加其他属性

1. 选择solid

Listing 2.4:创建box

G4double world_hx = 3.0*m; //X轴范围-3m到3m
G4double world_hy = 1.0*m;//Y轴范围-1m到1m
G4double world_hz = 1.0*m;//Z轴范围-1m到1m
G4Box* worldBox
= new G4Box("World", //box命名为World
world_hx, world_hy, world_hz); //G4Box构造函数是box长度的半长

G4Tubs 类构造圆柱体

Listing 2.5:创建圆柱体

G4double innerRadius = 0.*cm;
G4double outerRadius = 60.*cm;//半径60cm
G4double hz = 25.*cm; //hz参数同样表示z轴的一半长度
G4double startAngle = 0.*deg;
G4double spanningAngle = 360.*deg;//完整圆柱体
G4Tubs* trackerTube
= new G4Tubs("Tracker", //圆柱体命名为Tracker
innerRadius,
outerRadius,
hz,
startAngle,
spanningAngle);

2. 创建logical volume
创建logical volume必须从solid和材料设置开始

//为填充氩气的六面体solid volume创建logical volume
G4LogicalVolume* worldLog
= new G4LogicalVolume(worldBox, Ar, "World");

//为填充铝的圆柱体solid volume创建logical volume
G4LogicalVolume* trackerLog
= new G4LogicalVolume(trackerTube, Al, "Tracker");

3. 创建physical volume

Listing 2.6 physical volume示例代码

G4double pos_x = -1.0*meter;
G4double pos_y = 0.0*meter;
G4double pos_z = 0.0*meter;
G4VPhysicalVolume* trackerPhys
= new G4PVPlacement(0, // no rotation
G4ThreeVector(pos_x, pos_y, pos_z), // translation position
trackerLog, // teaker的logical volume命名为了trackerLog
"Tracker", // its name 
worldLog, // its mother (logical) volume  world的logical volume命名为了worldLog
false, // no boolean operations 没有布尔操作(如和其他volume相交)
0); // its copy number 拷贝数为0

4. 坐标系和旋转

  • 与放置的physical volume相关的旋转,表示该volume相对母体的旋转

其他

如何快速创建一个volume并在world里出现多次,仅坐标不同

  • for循环+random随机坐标
  • copy+random
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值