diff --git a/README.md b/README.md
index ed60d72..5bd3802 100644
--- a/README.md
+++ b/README.md
@@ -137,7 +137,7 @@ $$
@@ -151,19 +151,19 @@ $$
## 辐射源设置
-使用`Geant4`的`General Particle Source`(`GPS`)生成源,考虑在`World`球面上均匀随机发射粒子(各向同性),保证入射方向为球内,则球面上的总通量为:
+使用`Geant4`的`General Particle Source`(`GPS`)生成源,考虑在`World`球面上均匀随机发射粒子(各向同性),保证入射方向为球内,则球面上的计数率为:
$$
F = A\int_{E_a}^{E_b} \phi(E)\mathrm{d}E,\ A=4\pi R^2
$$
-`GCR`的单位为$\mathrm{m^{-2}sr^{-1}s^{-1}}$,乘以$4\pi A$即可得到通量;俘获辐射的单位为$\mathrm{cm^{-2}s^{-1}}$,乘以$A$即可得到通量,最终结果如下表所述。
+`GCR`的单位为$\mathrm{m^{-2}sr^{-1}s^{-1}}$,乘以$4\pi A$即可得到计数率;俘获辐射的单位为$\mathrm{cm^{-2}s^{-1}}$,乘以$A$即可得到计数率。经过检验,模型中使用的外壳(3层,2mm 铝 + 10mm 芳纶 + 5mm 铝)能够抵挡能量在$50\ \mathrm{MeV}$以下的质子和能量在$100\ \mathrm{keV}$以下的电子,最终结果如下表所述。
| Partical | Model | $E_{min}(\mathrm{MeV})$ | $E_{max}(\mathrm{MeV})$ | Flux($\mathrm{s^{-1}}$) |
|:--------:|:--------------------------------------------------------------------:|:-----------------------:|:-----------------------:|:-----------------------:|
-| $e^{-}$ | $j=j_0e^{-\frac{E}{E_0}}$ | 0.04 | 10 | 1.91227E+12 |
-| `p` | $j=j_0(E-\beta)^{-\alpha}$ | 0.1 | 1000 | 5623595363 |
+| $e^{-}$ | $j=j_0e^{-\frac{E}{E_0}}$ | 0.1 | 10 | 9.23242E+11 |
+| `p` | $j=j_0(E-\beta)^{-\alpha}$ | 50 | 1000 | 42853994.15 |
| `H` | $\frac{C_1\beta^{\alpha-1}}{pc}\left(\frac{pc}{pc+C_2}\right)^{C_3}$ | 200 | 100000 | 12854310.92 |
| `He` | $C_1e^{-C_2E}(1-e^{-C_3E+C_4})$ | 200 | 100000 | 1718828.12 |
| `Li` | $C_1e^{-C_2E}(1-e^{-C_3E+C_5})$ | 200 | 100000 | 12982.36284 |
@@ -195,6 +195,41 @@ $$
+考虑到`GCR`和俘获辐射计数率相差太大,分为两部分分别进行模拟,同时按比例进行放缩。
+
+### GCR
+电子计数率与质子计数率之比约为`21544`,设置质子的源强为`1`,模拟`923285`个入射事件(数值上为$F\times10^{-6}\ \mathrm{s}$),因此最终的剂量需要乘以$10^6\ \mathrm{s^{-1}}\times30\ \mathrm{d}\times86400\ \mathrm{s/d}$倍。
+```macro
+/gps/source/add 21544
+/gps/particle e-
+/gps/pos/type Surface
+/gps/pos/shape Sphere
+/gps/pos/radius 15 m
+/gps/ene/type Exp
+/gps/ene/min 100 keV
+/gps/ene/max 10 MeV
+/gps/ene/ezero 0.0824
+/gps/ang/type iso
+/gps/ang/maxtheta 90 deg
+
+/gps/source/add 1
+/gps/particle proton
+/gps/pos/type Surface
+/gps/pos/shape Sphere
+/gps/pos/radius 15 m
+/gps/ene/type Pow
+/gps/ene/min 200 MeV
+/gps/ene/max 100 GeV
+/gps/ene/alpha 2.40873
+/gps/ang/type iso
+/gps/ang/maxtheta 90 deg
+
+/run/beamOn 923285
+```
+
+### 俘获辐射
+假定`Co`的计数率为1,设定其他粒子的计数率,模拟`707013`个入射事件,因此最终的剂量需要乘以$20.9\ \mathrm{s^{-1}}\times30\ \mathrm{d}\times86400\ \mathrm{s/d}$倍。
+
## 空间站建模
1. 尺寸与分区[^6]
diff --git a/debug.mac b/debug.mac
new file mode 100644
index 0000000..6ade0ff
--- /dev/null
+++ b/debug.mac
@@ -0,0 +1,28 @@
+# 多线程设置
+/run/numberOfThreads 1
+
+# verbose
+/control/verbose 1
+/run/verbose 0
+/event/verbose 0
+/tracking/verbose 0
+/gps/verbose 0
+
+# 初始化
+/run/initialize
+
+# 电子射程
+/gps/particle e-
+/gps/energy 100 keV
+/gps/position 0 0 5 m
+/gps/ang/type iso
+/gps/ang/maxphi 60 deg
+/gps/ang/maxtheta 20 deg
+
+# 质子射程
+/gps/particle proton
+/gps/energy 50 MeV
+/gps/position 0 0 5 m
+/gps/ang/type iso
+/gps/ang/maxphi 60 deg
+/gps/ang/maxtheta 20 deg
diff --git a/electron.mac b/electron.mac
index 78ba6b9..6a4376b 100644
--- a/electron.mac
+++ b/electron.mac
@@ -13,7 +13,7 @@
/gps/source/clear
# Trapped electron
-/gps/source/add 1
+/gps/source/add 21544
/gps/particle e-
/gps/pos/type Surface
/gps/pos/shape Sphere
@@ -25,5 +25,19 @@
/gps/ang/type iso
/gps/ang/maxtheta 90 deg
+/gps/source/add 1
+/gps/particle proton
+/gps/pos/type Surface
+/gps/pos/shape Sphere
+/gps/pos/radius 15 m
+/gps/ene/type Pow
+/gps/ene/min 200 MeV
+/gps/ene/max 100 GeV
+/gps/ene/alpha 2.40873
+/gps/ang/type iso
+/gps/ang/maxtheta 90 deg
+
+/run/beamOn 923285
+
# list
-/gps/source/list
\ No newline at end of file
+/gps/source/list
diff --git a/src/DetectorConstruction.cpp b/src/DetectorConstruction.cpp
index f662299..deedaa8 100644
--- a/src/DetectorConstruction.cpp
+++ b/src/DetectorConstruction.cpp
@@ -229,6 +229,19 @@ G4VPhysicalVolume* DetectorConstruction::Construct() {
G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, G4Material::GetMaterial("Vacuum"), "World");
G4VPhysicalVolume* physicsWorld = new G4PVPlacement(0, G4ThreeVector(), logicWorld, "World", 0, false, 0, true);
+ // Debug for particle range
+ // G4Box* solidPlane1 = new G4Box("Plane1", 10 * m, 10 * m, 2 * mm);
+ // G4LogicalVolume* logicPlane1 = new G4LogicalVolume(solidPlane1, G4Material::GetMaterial("AluminumAlloySeries5"), "Plane1");
+ // new G4PVPlacement(0, G4ThreeVector(), logicPlane1, "Plane1", logicWorld, false, 0, true);
+
+ // G4Box* solidPlane2 = new G4Box("Plane2", 10 * m, 10 * m, 10 * mm);
+ // G4LogicalVolume* logicPlane2 = new G4LogicalVolume(solidPlane2, G4Material::GetMaterial("Taparan"), "Plane2");
+ // new G4PVPlacement(0, G4ThreeVector(0, 0, -6), logicPlane2, "Plane2", logicWorld, false, 0, true);
+
+ // G4Box* solidPlane3 = new G4Box("Plane3", 10 * m, 10 * m, 5 * mm);
+ // G4LogicalVolume* logicPlane3 = new G4LogicalVolume(solidPlane3, G4Material::GetMaterial("AluminumAlloySeries5"), "Plane3");
+ // new G4PVPlacement(0, G4ThreeVector(0, 0, -14.5), logicPlane3, "Plane3", logicWorld, false, 0, true);
+
// 节点舱
ConstructSectionSphere(logicWorld, (5.18 + 0.33) * m);
// 过渡段 1