2、。对于一个粒子经历以下过程:1.源抽样:由于是点源,能量和位置的分布均为δ函数,抽样得到。抽样得:。2.到达闪烁体:如果1/2,无法到达闪烁体,丢弃,返回源抽样重新产生粒子。粒子进入闪烁体的瞬间,状态为:其他量不变。3.输运过程:抽样得到到下次碰撞的距离,根据当前粒子状态中的算出下次碰撞的坐标,如果不在闪烁体区域(0碰撞有两种可能:光电效应和康普顿散射。根据粒子当前的能量,(由NaI(Tl)闪烁体宏观界面数据)线性插值确定它的光电效应截面和康普顿散射界面。抽样得到本次反应的类型。如果光电效应,E=0,输运过程结束。如果康普顿效应,
3、抽样获取碰撞后的能量和运动方向(康普顿散射的能量分布密度函数知道,具体抽样方法参考讲义。)如果E<1KeV输运过程结束,反之,重复本过程直到输运过程结束。4.记录与统计:记录末态能量,计算沉积能量,考虑到测量系统分辨率,多道记录能量为沉积能量的高斯展宽。记录能量。其中,。由标准正态分布抽样得到。五:程序如下:count=input('inputthecount:');%输入模拟粒子数sigmaedata=[28370,13845,6908,2555,1223,2602,1925,905.3,479.7,164.5,74.24,23.86,66.60,36.62,22.29,9.978
4、,5.298,1.668,0.7378,0.2361,0.1099,0.06211,0.03939,0.02030];sigmacdata=[0.0220,0.0393,0.0568,0.0904,0.1209,0.1479,0.1722,0.2136,0.2480,0.3092,0.3486,0.3932,0.4153,0.4268,0.4319,0.4291,0.4215,0.3969,0.3691,0.3269,0.2944,0.2709,0.2512,0.2209];Edata=[1,1.5,2,3,4,5,6,8,10,15,20,30,40,50,60,80,100,15
5、0,200,300,400,500,600,800];%截面数据channel=zeros(1,ceil(662/5)+10);%多道数组nget=0;%探测到的总计数ntotal=0;%进入探测器的总计数forii=1:count%count个粒子循环collidetime=0;%当前粒子碰撞次数E0=input('inputtheenerg0:');%输入模拟面源的一个能量E1=input('inputtheenergy1:');%输入模拟面源的另一个能量E2=input('inputtheenergy2:')%输入模拟面源的另另一个能量%粒子状态初始化E0=622;E=E0;z
6、=-2;r=0;theta=2*pi*rand(1);%源抽样,z,r,theta坐标miu=2*rand(1)-1;fai=2*pi*rand(1);%方向角抽样ifmiu1%一个粒子在闪烁体中的输运过程sigmae=interp1(Edata,sigmaedata,E,'linear');sigmac=interp1(Edata,sigmacdata,E,'linear');sigmat=sigmae+sigmac;%线性插值
7、得到截面数据L=-log(rand(1))/sigmat;%下次碰撞的距离%计算下次碰撞位置坐标rnew=sqrt(r^2+L^2*(1-miu^2)+2*r*L*sqrt(1-miu^2)*cos(fai-theta));z=z+L*miu;cdth=(rnew^2+r^2-L^2*(1-miu^2))/2/r/rnew;sdth=L*sqrt(1-miu^2)*sin(fai-theta)/rnew;dtheta=asin(sdth);ifcdth<0