castor-GATERootToCastor \ -i mouse001-total100.root \ -o mouse1 \ -m main.mac \ -s mobymouse200
它的作用是: 把 GATE 输出的 ROOT → 转成 CASToR 可用的 .cdh/.cdf 数据
只要以下任何一个条件发生变化,必须重新生成 .cdh
否则可以直接用旧的。
不需要重新生成 .cdh 的情况
可以直接复用 .cdh,如果:
✅ 1. ROOT 数据没变
-
同一个
.root文件 -
没重新跑 GATE
-
没合并/裁剪数据
数据源没变 → .cdh 不用重做
✅ 2. 只是改重建参数(CASToR重建阶段)
比如只是改:
-
iteration 数
-
subset 数
-
滤波参数
-
正则项
-
重建算法(MLEM / OSEM)
这些 都在 reconstruction 阶段 ,不影响 .cdh
✅ 3. 只是改输出路径/文件名
这个不影响数据内容
❗ 必须重新生成 .cdh 的情况(重点)
只要下面任意一条成立,就必须重新跑 GATERootToCastor
🚨 1. ROOT 文件变了(最常见)
比如:
-
重新模拟了 GATE
-
改了统计量(100 → 200 million events)
-
改了 source / phantom
-
合并了多个 root
.cdh 是从 ROOT 解析出来的 → 必须重做
🚨 2. 改了 system model(-s mobymouse200)
-s mobymouse200
这个非常关键!!
👉 它定义了:
-
探测器结构
-
晶体排布
-
LOR 几何
如果改了:
mobymouse200 → mobymouse400
👉 ❌ 旧 .cdh 完全不能用
🚨 3. 改了 macro 文件(-m main.mac)
这个也很关键:
-m main.mac
如果改了里面这些:
-
能量窗口
-
coincidence 设置
-
时间窗口
-
digitizer 参数
👉 ❌ 必须重新生成 .cdh
🚨 4. 改了数据筛选方式(事件选择)
比如:
-
加了能量筛选
-
去掉 scatter/random
-
改 coincidence policy
👉 .cdh 记录的是"事件级数据结构"
→ 改筛选规则就必须重做
🚨 5. 改了 TOF / 非TOF设置
如果你:
-
开启/关闭 TOF
-
改 TOF resolution
👉 .cdh 格式会变 → 必须重做
🚨 6. 改了 list-mode / histogram 模式
CASToR 支持:
-
list-mode
-
histogram
👉 模式不同 → .cdh 不通用
对当前命令的具体判断
castor-GATERootToCastor \ -i mouse001-total100.root \ -o mouse1 \ -m main.mac \ -s mobymouse200
只要这 3 个没变:
-
mouse001-total100.root -
main.mac -
mobymouse200
✅ 就不需要重新生成 .cdh