diff --git a/README.md b/README.md index af461f2..e9ee44b 100644 --- a/README.md +++ b/README.md @@ -206,10 +206,10 @@ $$ ### 质子与俘获辐射 由于模型较为复杂,且需要发射的粒子种类繁多,因此该部分的粒子使用`G4ParticleGun`生成,关键是生成各向同性(在球面上均匀分布)的位置、方向和符合能谱的能量分布。 -1. `Inverse Transform Method`(`ITM`) +1. `Inverse Transform Method`(`ITM`) 对于一个在$[a, b]$的分布,设其概率密度函数(PDF)为$F(x)$,对其积分可获得累积分布函数(CDF),记为$y=C(x)=\int_a^x F(u)\mathrm{d}u$,其反函数为$C^{-1}(y)$。设$y$为$[0, 1)$上均匀分布的随机数,则$x=C^{-1}(y)$满足$F(x)$的分布。 -2. `Acceptance-Rejection Method`(`ARM`) +2. `Acceptance-Rejection Method`(`ARM`) 对于一个在$[a, b]$的分布,设其概率密度函数(PDF)为$F(x)$,首先生成一个均匀分布随机数$X \sim U(x_{min}, x_{max})$,随后独立生成另一个均匀分布随机数$Y \sim U(y_{min}, y_{max})$,如果$Y \le F(X)$,则保留$X$,保留下来的$X$满足$F(x)$的分布。 `ITM`也被称为反演法,关键是需要获取累积分布函数的逆函数,效率较高;`ARM`本质上是一种模拟算法,效率较低,但是适应性更广,特别是对于一些复杂分布函数。`GCR`质子和俘获辐射粒子的模型有三类,其中`GCR`质子的函数较为简单,其余两类较为复杂,因此分别采用`ITM`和`ARM`。 @@ -222,6 +222,27 @@ $$ +1. 位置生成 +而发射位置要求在球面上均匀分布。由于球面的面积元$\mathrm{d}\Omega=\sin\theta\mathrm{d}\phi\mathrm{d}\theta$是$\theta$的函数,如果位置向量$\vec{r}(\rho, \phi, \theta)$的$\phi$和$\theta$是在$\phi\in[0, 2\pi)$和$\theta\in[0, \pi]$上均匀分布,选取的点将会在两极较为密集(即),因此可以采用`ITM`方法生成$\theta$:$C^{-1}(z)=\cos^{-1}(z)$。 + ```c + double u = rand(); + double v = rand(); + double phi = 2 * pi * u; + double theta = arccos(2 * v - 1); + double x = rho * sin(theta) * cos(phi); + double y = rho * sin(theta) * sin(phi); + double z = rho * cos(theta); + ``` + +2. 发射方向 +在`Geant4`中,假定粒子的位置矢量为$\vec{r}$,则以$\vec{r}$反方向作为$z$轴正方向建立右手坐标系,粒子的指向为: +$$ +P_x = -\sin\theta\cos\phi \\ +P_y = -\sin\theta\sin\phi \\ +P_z = -\cos\theta +$$ +为了保证发射方向是朝向球面内,因此需要限制$\theta$的最大角度为$90^{\circ}$。 + ## 空间站建模 1. 尺寸与分区[^6]