# g4local **Repository Path**: graviton/g4local ## Basic Information - **Project Name**: g4local - **Description**: geant4 local test - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-20 - **Last Updated**: 2026-10-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # g4local — 本地自建 Geant4 11.3.2 单能应用 自编 Geant4 11.3.2(QGSP_BIC + em-standard_opt4 + ion-binarycascade + h-elastic + stopping + decay, 对齐 remote TOPAS 物理列),用于 inmc / PIMC 引擎的**独立第三方**单能水箱验证(IDD / 碎片分解 / LETd), 无远程 TOPAS 负载竞争。 git 只管**应用源码 + 运行脚本**;Geant4 源码/编译/安装/数据(`geant4-*`、`G4DATA`,合计 ~4G) 与生成的 CSV(`idd_out/`)由 `.gitignore` 排除,均可本地重建/复跑。 ## 布局 - `idd_app/main.cc` — 单能束水箱应用(命令行打分 IDD + 三个 env 门控诊断模式)。 - `idd_app/CMakeLists.txt` — 构建(`find_package(Geant4)`)。 - `env.sh` — G4 环境 + G4DATA 路径(`source` 后再跑)。 - `run_idd.py` — 批量单能 IDD(碳/质子/氦,`idd_out/idd__E.csv`)。用法 `python3 run_idd.py [carbon 200]`。 - `run_let.sh` — 单能碳 **dose-avg LETd(z)** 打分(`idd_out/letd_carbon_E.csv`)。用法 `run_let.sh [nhist]`。 ## 构建 ```bash source env.sh cmake --build idd_app/build # 或首次: cd idd_app && cmake -B build && cmake --build build ``` ## main.cc 的 env 门控模式(默认关 = 纯水 IDD) | env | 作用 | 输出 | |---|---|---| | (无) | 命令行打分 IDD(MT) | macro 里 `dumpQuantityToFile` | | `G4_SPECIES=1` | 按碎片种类分解 IDD(C12/C11_10/B/Be/Li/He/H/EM,Serial) | `G4_SPECIES_OUT` | | `G4_LET=1` | **dose-avg 水 LETd(z)**(unrestricted 电子阻止本领,dose 加权,仅离子步;total/primary/secondary,Serial) | `G4_LET_OUT` | | `G4_LUNG_RHO=ρ` | 异质密度水 slab 旁证(SPR≈密度,`G4_LUNG_Z0/Z1` 定深度区间) | — | | `G4_EMONLY` / `G4_NO_ELASTIC` / `G4_NO_INELASTIC` | 逐核过程隔离(诊断各模块对 IDD/侧向贡献) | — | `G4_SPECIES` / `G4_LET` 用全局累加数组 → 强制 Serial(自动)。 ## ionmc v1 的数据生成器(bench_app/) - `bench_app/`: `g4bench`(参考集)、`g4tables`(EM 表)、`g4nuclib`(核反应截面 + 事件库)、`g4probe`(跟踪 dE/dx 探针)、`g4thin`(跟踪中第一次非弹的末态, 写同格式 INL4, 对照事件库); 批量脚本 `run_bench.py` / `run_nuclib.py`。 - `g4bench --vox --beam x,y,z,ux,uy,uz`: CT 体素幻体(ionmc `v1-media` 导出的逐体素 (基材料, f))+ 逐体素 3D 沉积/LETd, 供 ionmc `analysis/vox_check.py` 做异质体素对比。`g4bench e- ...`: 电子笔形束(ionmc e± 输运对照); 诊断 env `G4BENCH_DELTADIAG`(初级 δ 能谱/角分布)、`G4BENCH_NOMSC_E`(关 e± 多次散射, 隔离射程歧离)、 `G4BENCH_RZG`(`_rzg.csv` 浅层径向剂量按组 × 强子/e±γ 拆分 + `_sec.csv` 初级非弹在 z < 4 mm 产生的带电次级角度/能量直方图, 对 ionmc `INMC_RZG`)。 - `g4nuclib` 写 INL4 格式(格点头带事件区字节数供 ionmc mmap 按需读; 产物 14 字节, 方向八面体编码; 参考读写/自检 `nlib.py`); `run_nuclib.py` 给 p/α/¹²C 每格点 24000 非弹 + 9600 弹性事件 (`G4NUCLIB_BIG`), 按能量格点分块并行(独立种子)后合并 —— 1500 事件的有限样本会冻结进单能束浅层侧向剂量(ionmc docs/v1-engine.md §13)。 - `g4tables` 另输出 `gs_grid.json` 与电子块的 GS/Mott 参数(ionmc 的 G4 GS e± 多次散射移植用)。 - 必须用打了 `patches/geant4-11.3.2-ionmc-fixes.patch` 的 G4(构建在 `geant4-install-fix`, 环境 `env_fix.sh`)。 - 从零开始的完整步骤: ionmc 仓库 `docs/g4-data-generation.md`。 ## 关联 - 引擎仓库 `/data/yangmy/ionmc`;对照工具 `/data/yangmy/trps2/tools/inmc_integration/` (`cmp_basis_g4.py` IDD 配对、`cmp_letd_g4.py` LETd 仲裁、`g4_species_breakdown.py` 碎片分解)。 - 文档 `/data/yangmy/trps2/docs/inmc/`、`/data/yangmy/trps2/docs/geant4/`。 - 记忆: `local-geant4-idd-build`、`topas-geant4-build-ref`、`26a-g4-carbon-fragmentation-two-population`。