Вы находитесь на странице: 1из 9

%--------------------------------------------------------------------------

% ����� ����� - ���������


%-----------------------------����������� ����������� ��������
������---------------------------
% clear;
Nmk=1000; %����� ���������� �� ����� � �������
%EnergyP=zeros(1,Nmk);% ������� ������� ���������� �� ������ ����������
ugolG=zeros(1,181);% ������������� ���������� �� ������ ���������� �� ���� gamma
ugolA=zeros(1,181);% ������������� ���������� �� ������ ���������� �� ���� alpha

ugolB=zeros(1,181);% ������������� ���������� �� ������ ���������� �� ���� betha


%--------------------------------------------------------------------------
% ����� ����� - ���������
%-----------------------------����������� ���������
���������---------------------------
% -------- ������ ��������� ��� ������� �� �������� ������������� [���]
Eporogovoe=0.05;
% -------- ��������� ����������
Z=82; %���� ���� Pb
A0=207.2; %������ ����� ������
ro=11.4; %��������� ������ �/��3
% Z=13; %���� ���� Pb
% A0=27; %������ ����� ������
% ro=3; %��������� ������ �/��3
I=9.1*Z*(1+1.9*Z^(-2/3))/1000; % ��������� ��������� � ��� ???
Me=0.511; %����� ��������� ���
%Bl=log(Me*1000/I^2);
x0=0;y0=0;z0=0; %���������� �������, ��� ��� �������
zmax=1; ymax=1; xmax=0.5;%�����, ������, ������� ������ [��]
% % -------- �� �������� ������������ ������ ��������� ��� ��������
% % sigma=pi/30; % ����� �� ��������� ��� teta_�������=0
% %---- ������ ����� ������� Eg ������ � ���
% Eg= [1.022, 1.2, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5 , 5.5, 6,
6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10];
% %---- sigma total � sigma ������� ��� ������� � �������� ���������
% %---- ������������ ��������� 1/��
% %������ ������� ������������� (��-1) �� ������
% sigmaT=[0.8, 0.6, 0.53, 0.5, 0.475, 0.47, 0.46, 0.47, 0.475, 0.48, 0.485,
0.49, 0.495, 0.5, 0.52, 0.53, 0.54, 0.55, 0.555, 0.56];
% %������� ���������� ��� �� ������ (�������� �� �������� ��� �������)
% sigmaP=[0, 0.001, 0.01, 0.03, 0.065, 0.112, 0.155, 0.19, 0.22, 0.245, 0.265,
0.283, 0.30, 0.32, 0.345, 0.362, 0.38, 0.39, 0.398, 0.405];
% %---- h=(6.626*10^-34)/(1.6*10^-19)/10^6; %�������� ������, �eV/c
h=(6.582)/(1.6*10^21);
%---- �������� �����, �/�
c=3*10^8;
%--------------------------------------------------------------------------
%------- computation of Uniform distribution of radial angle teta ---------
%--------------------------------------------------------------------------
% teta1=rand(1)*pi; % this is incorrect assumption
teta0=1:180;
FUN0(teta0)=sin(teta0.*pi/180); % probability is proportional to the length
% of the circle observed under angle of teta
FUN0=FUN0/sum(FUN0);
FUN_teta0(1)=0;
FUN_teta0(2)=FUN0(1);
for i=1:179 FUN_teta0(i+1)=FUN_teta0(i)+FUN0(i); end
%-------------------------------------------------------------------------
%-- �����.�����. ����� ������� �� Cd � ������ ������.�����.(���������) --
%-- �����.����� ������������ ���������� �� �����.gamma ������ (�� �����) --
%-------------------------------------------------------------------------
% load Cd_n_g.mat %��������� �����.�����. ����� ������� �� �����
% Eng=Cd_n_gamma(291:491,1)/1000;% ����� Egamma>1.022 ���
% Nng=Cd_n_gamma(291:491,2);% ������������� �������������� �����
% %plot(Eng,Nng,'.')%---- ����� �� ������ �������� ���������.�����.
% sigT=interp1(Eg,sigmaT,Eng);
% sigP=interp1(Eg,sigmaP,Eng);
% % for j=1:201
% % N(j)=Nng(j)*(1-exp(-sigT(j)*zmax))*(sigP(j)/sigT(j));
% % end
% % plot(Eng,Nng,'.',Eng,)
% % plot(Eng,N)
% %hist(N,50)

%-------------------------------------------------------------------------
%----- ������������� �� ���� ������������� ������� ��������� theta -----
%-------------------------------------------------------------------------
B=5; % ����������� �������� B (������������� ����� ������� �� �
% ��� Xc*B^(1/2)=const {phi=teta/(Xc*B^(1/2))}�� ����� ����������� �����
% � ��� �� �������������� �� ����������� ���������.
% ��� ����������� ������� ���������. ����� ������ �� ������� �������
% ������� (E=E����-�) ��������� ��������� ������� ��� t.
% ����� �������������� ������� ������������ �� t ( Xc*B^0.5 ������ ���� < 1.
% �������� ����� ��������� ����������� tmax=(E), ��� ������� ��� �������
% ���������: tmax=c1*E^c2 ; � ����������� �1=25 �� Pb � �2=1.8, � ���
% ���������� �1=16 �� Pb � �2=1.4 (���� t � [���], � E � [���]).
% ��������, ����� Xc*B^0.5=0.5 ����� ����� t=0.55*E^2+8.9*E ��� t=7*E^1.3,
% ��� t � [���], � E � [���].
teta=(0.01:0.01:1)*pi; % ���� theta
for as=1:100
% phi(as)=teta(as)/(Xc*B^(0.5));% ���� t=tmax=C*E^1.8(������), �� Xc^2*B=1
phi(as)=teta(as)/0.5;
F0(as)=2*exp(-phi(as)^2);
F1(as)=-4*phi(as)*exp(-phi(as)^2); %� ������ ������� ��� ������� �� F1 ???

g1=1;
if phi(as)<1
if phi(as)>0
g2(as)=(phi(as)/4.1509)*(5*F0(as)+F1(as));
end
else
g2(as)=0;
end
if phi(as)>1
g3(as)=(1/2)*(1/2.1946)*(5*F0(as)+F1(as));
else
g3(as)=0;
end

if phi(as)>0
f1(as)=2*phi(as)*exp(-phi(as)^2);
else
f1(as)=0;
end

if phi(as)<1
if phi(as)>0
f2(as)=1;
end
else
f2(as)=0;
end

if phi(as)>1
f3(as)=2/phi(as)^3;
else
f3(as)=0;
end

a1=1-5/B;
a2=4.1509/B;
a3=2.1946/B;

FUN(as)=sqrt(abs((sin(teta(as))/teta(as))))*(a1*f1(as)+a2*g2(as)
+a3*f3(as)*g3(as));
% FUN(as)=sqrt(a1*f1(as)+a2*g2(as)+a3*f3(as)*g3(as));
end
% figure
% plot(teta,FUN);
% xlabel('0 \leq \theta \leq \pi')
% ylabel('f(\theta)')
% title('Distribution density of positron dispersion angle (\theta)')

%==== ������ ������������ �� ����������� ������� ���� �������.����.


FUN=FUN/sum(FUN);
FUN1(1)=0;
FUN1(2)=FUN(1);
tetam1(1)=teta(1);
i=1;
while (FUN(i)>0.001 & i+1<100)
i=i+1;
FUN1(i+1)=FUN1(i)+FUN(i);
tetam1(i+1)=teta(i+1);
end
%=========================================================================
%======= ������ ����������� ========
%=========================================================================
jj=0; % ������ ������� ���������������� ����������
ind=0; %ind - ����� � �������� ������� ��������� �� ���������� ���������

% ----- ����� ����� ��������


for index=1:Nmk % Nmk - ���� ������� ����������
index
nn=0;
n1=0;out=false;exit=false;% ��������� ������ ��������� �� ����������
n=0;
n2=0;termolized=false;% ��������� ������������ ��������� � < E �����.
%--------------------------------------------------------------------------
%----- ����� ����� - ����� ������� �����-������ �� ������������ -------
%--------------------------------------------------------------------------

% Energy=1.2; % ������ ��������

%--------------------------------------------------------------------------
%-------- ����� ����� - ����������� ��������� ������� ���� ----------
%--------------------------------------------------------------------------

%������. ���������� ����� �������������� gamma-������ � ������������ ����


kX=0; %���������� �, �� (����� �������)
% kX=rand(1)*xmax; %���������� �, �� (�� 0 �� 0,01 ��)
kY=rand*ymax; %���������� y, �� (�� 0 �� 1 �� )
kZ=rand*zmax; %���������� z, �� (�� 0 �� 1 �� )

% %���� � ������� ������������� � ����������� �� �������


% mu = interp1(Eg,sigmaP,Energy,'linear');
% di=0:.1:1; % ������� (�� ��� Z) �� 0 �� 1 ��
% % ��������� ������������ ������� �� ������� pi(z) �� Eg=Energy
% Pi=exp(-mu*di);
% Sy=sum(Pi);
% Pi=Pi/Sy; %���������� ������������
% %------- ������� ������ ������������ P(z)
% P(1)=0;
% for i=1:10
% P(i+1)=P(i)+Pi(i+1);
% end
% % plot(zi,P)
% %----- ����������� ����������
% dD = interp1(P,di,rand(1),'linear'); % ������� � c�
% if dD<xmax/sin(teta_g) % ���� ����� ����� �� ��������� ������ �������
% kX=kX+dD*sin(teta_g);
% kZ=kZ+dD*cos(teta_g)*cos(fi_g);
% kY=kY+dD*cos(teta_g)*sin(fi_g);
% end
if kZ<zmax & kZ>0 & kY<ymax & kY>0
%--------------------------------------------------------------------------
%------ ����� �������� - ����������� ������� ��������� � ���� ������ -----
%--------------------------------------------------------------------------

Emax=0.545; %����������� ������ � ����-������� (Na-22)


EnergyP1=Emax/3+randn*Emax/5+Me; %����� ������ ����������� ����-�������
%EnergyP1=0.8;% ������ ������������ �������� �������
zs=rand*0.5+zmax/2; ys=rand*0.5+ymax/2; %���������� ������ ��������� �� ���������
ls=1; %��������� �� ���������
dsz=zs-kZ; dsy=ys-kY;
teta1=atan(sqrt(dsz^2+dsy^2)/ls); % ���� � ��� ��������������� �����������
����������
fi=acos(dsz/sqrt(dsz^2+dsy^2)); % ������������ ���� � ��������� ����������
%--------------------------------------------------------------------------
%--- computation of Uniformly distributed random space angle ------
%--- ���� ���������� ����� ������� ���������� ������������ � 4pi ------
%--------------------------------------------------------------------------
% % teta1=rand(1)*pi; % this is incorrect assumption
% % teta1=interp1(FUN_teta0,1:180,rand*max(FUN_teta0))*pi/180;
% teta1=acos(1-2*rand(1));% ������������� ������������ ������������ � 4pi
% %--------------------------------------------------------------------------
% fi = rand(1)*2*pi; % fi is realy uniformly distributed
% %--------------------------------------------------------------------------
%
%--------------------------------------------------------------------------
%=========== ����� ��� - ����������� ����� ������� ============
%--------------------------------------------------------------------------
Bl=log(Me*1000/I^2);
m0=3;
A=0.1536*Z/A0;
%Cc=0.0025; % �� Pb
%Cc=0.04; % �� Al
t=0.0007*(EnergyP1-Me)^1.3; % ������� ��� � [��] �� Xc*B^(1/2)=0.5.
% ��� �������� �������������� tmin<t<tmax
dx=t*cos(teta1);
dz=t*sin(teta1)*cos(fi);
dy=t*sin(teta1)*sin(fi);
out=false;
exit=false;
while not(exit | termolized)%nn==0 % ������ ����� ���������� ������� ���������

%-------------------------------------------------------------------
%------- ����� ������ ������� -----------
%-------------------------------------------------------------------
% ����������
p=sqrt((EnergyP1)^2-(Me)^2); %������� ��������� � ���
beta=p/EnergyP1 ;
X=log10(p/Me); % X=log10(p/m*c), p - ������� � ���

%------- ������ ������ ������ ������ ������� (�� �����������) -----------


x=log(EnergyP1-Me);
dE_dx = exp(0.0072*x^3+0.1263*x^2-0.1304*x-1.1515);% �� ������
% ����� dE/dx � [���/���], � EnergyP1 � [���]
% ��������� ������ 2,33 �/��3
S1=dE_dx*10*ro/2.33; % ����� S1 � [���/��]
%====== ���� ������
%% EnergyP1=EnergyP1-S*t*ro; %t ������ ���� � �/��2 0,001��*11�/��3
EnergyP1=EnergyP1-S1*t; %t ������ ���� � ��
% if S1*t>0.2
% [ t, S1, EnergyP1, kX]
% end
if EnergyP1<Eporogovoe+Me %�������� ����������
termolized=true;
% n2=n2+1;
else

%--------------------------------------------------------------------
% ���������� ���� �������
%--------------------------------------------------------------------
if not(out)
t=0.0007*(EnergyP1-Me)^1.3;% ������� ��� � [��] �� Xc*B^(1/2)=0.5(��. ����)
%tmax=Cc*(EnergyP1-Me)^1.8; % ����������� ������� ��� � [��] (��. ������.)
%Cc=0.0025; �� Pb, Cc=0.04; �� Al
%� ��� ����������, ��� �� Pb tmax=0.0016*(EnergyP1-Me)^1.4
% B=5; %Omega0=30 �������������� � �����������
dteta = interp1(FUN1,tetam1,rand(1)*max(FUN1),'linear');%*(-1)^randint;
else
clear FUN FUN2 tetam2
% tmin (���������� ������� ��� ������� ����� ��� ��������) ��������
% ����� 0,0001 �� (1���) �� Pb
% ���� ����� ����������� ����� ������������ Omega0=10, ��
tmin = 10*A0*beta^2*(1+3.33/(137*beta)^2)/7830/Z^(1/3)/(Z+1)/ro;% [��]
if t>tmin
pc=p*1000; % ������ pc ����� ����� � [���] (�������� � ���������)

%----------
% ���������� ������������ �� ���� ������������� ������� teta
%----------
Xc=((515*t*ro*Z*(Z+1))/A0)^0.5/(pc*beta);
Omega0=7830*(Z+1)*Z^(1/3)*t*ro/(A0*(beta^2+3.33*(1/137)^2));
% B=2.6+2.386*log(Omega0)-3.234*log(Omega0+0.994) ������� �� �����������
B= -0.61846*sqrt(log(Omega0))^4+5.1346*sqrt(log(Omega0))^3-
14.889*sqrt(log(Omega0))^2+22.545*sqrt(log(Omega0))-10.983;
% [EnergyP1, Omega0, B, Xc*B^(0.5)]
teta=(0.01:0.01:1)*pi/4; % ���� theta
for as=1:100
phi(as)=teta(as)/(Xc*B^(0.5));
% phi(as)=teta(as); % ���� t=tmax=C*E^1.8(??? ��. ����), �� Xc*B^2=1
F0(as)=2*exp(-phi(as)^2);
F1(as)=-4*phi(as)*exp(-phi(as)^2); %� ������ ������� � ���������� ���
������� �� F1 ???

g1=1;
if phi(as)<1
if phi(as)>0
g2(as)=(phi(as)/4.1509)*(5*F0(as)+F1(as));
end
else
g2(as)=0;
end
if phi(as)>1
g3(as)=(1/2)*(1/2.1946)*(5*F0(as)+F1(as));
else
g3(as)=0;
end

if phi(as)>0
f1(as)=2*phi(as)*exp(-phi(as)^2);
else
f1(as)=0;
end

if phi(as)<1
if phi(as)>0
f2(as)=1;
end
else
f2(as)=0;
end

if phi(as)>1
f3(as)=2/phi(as)^3;
else
f3(as)=0;
end

a1=1-5/B;
a2=4.1509/B;
a3=2.1946/B;

FUN(as)=sqrt(abs((sin(teta(as))/teta(as))))*(a1*f1(as)+a2*g2(as)
+a3*f3(as)*g3(as));
% FUN(as)=sqrt(a1*f1(as)+a2*g2(as)+a3*f3(as)*g3(as));
end
% figure
% plot(teta,FUN);
%====== ������������ ������� ���� �������.����.
for i=1:size(FUN)
if FUN(i)>0 FUN(i)=FUN(i); else FUN(i)=0; end
end
FUN=FUN/sum(FUN);
FUN2(1)=0; FUN2(2)=FUN(1);
tetam2(1)=teta(1); tetam2(2)=teta(2);
i=1;
% for i=2:99
while (FUN(i)>0.001 & i+1<100)
i=i+1;
FUN2(i+1)=FUN2(i)+FUN(i);
tetam2(i+1)=teta(i+1);
end
% end

% FUN=FUN/sum(FUN);
% FUN2(1)=0;
% FUN2(2)=FUN(1);
% for i=2:99
% FUN2(i+1)=FUN2(i)+FUN(i);
% end
% % end
if size(FUN)>2
dteta = interp1(FUN2,tetam2,rand(1)*max(FUN2),'linear');%*(-1)^randint;
end
clear FUN2 tetam2;
end% ����� if t > tmin
end% ����� if not(out)
%---------- ��������� ���� tetha
%dteta = dteta*pi/180; % ???????????????????????????????????
%----------
%����������� ����� ��������� � �������
%----------
%====== ����������

fi1=rand(1)*2*pi;
R=abs(t*cos(dteta));
dx0=R*cos(teta1);
dz0=R*sin(teta1)*cos(fi);
dy0=R*sin(teta1)*sin(fi);
r=abs(t*sin(dteta));
% r1=r/sqrt(1+(cos(fi1)*dz/dx+sin(fi1)*dy/dx)^2);
% dx=dx0-r1*(cos(fi1)*dz/dx+sin(fi1)*dy/dx);
r1=r/sqrt(1+(cos(fi1)*dz/dx+sin(fi1)*dy/dx)^2);
dx=dx0-r1*(cos(fi1)*dz/dx+sin(fi1)*dy/dx);
dz=dz0+r1*cos(fi1);
dy=dy0+r1*sin(fi1);
%teta1=teta1+dteta*cos(fi1);% ------------- ����� ���� ����
%dfi=sin(dteta)*sin(fi1)/sin(teta1);
%fi=fi+dfi; % ----------------------------- ����� ���� ��
%dx=t*cos(teta1)-t*sin(dteta)*cos(fi1)*sin(teta1);
kX=kX+dx;
%dy=t*sin(teta1)*sin(fi);
kY=kY+dy;
%dz=t*sin(teta1)*cos(fi);
kZ=kZ+dz;
% [sin(fi), dy0*10000, dz0*10000]

if (kX<xmax & kX>0)&(kY>0 & kY<ymax)&(kZ>0 & kZ<zmax)


n1=n1+1;
koordX(ind+1,n1)=kX;
koordY(ind+1,n1)=kY;
koordZ(ind+1,n1)=kZ;
FI(ind+1,n1)=fi;
TETA(ind+1,n1)=teta1;
% --- ����� ���� ����
teta1=acos(dx/sqrt(dx^2+dy^2+dz^2));
% --- ����� ���� ��
cosfi=dz/sqrt(dy^2+dz^2);
if dy<0 fi=2*pi-acos(cosfi);
else fi=acos(cosfi);
end
else
% �������� �� ����������� ���������� ���
if out |(kY>ymax & kY<0)|(kZ<0 & kZ>zmax)
% �.�. ������ �����, �������� �������� ������ ���
% ������ ����� ������� �� X
exit=true;
else
out=true;
if kX>xmax t=abs((xmax-kX+dx)/cos(teta1)); end
if kX<0 t=abs((kX+dx)/cos(teta1)); end
end
end
end
%EnergyP1
end %����� ����� WHILE �������� ����� �� ���������� ��� ����������
if n1 > 2 plot(koordY(ind+1,1:n1),koordX(ind+1,1:n1)); end

if out
ind=ind+1
if EnergyP1<Me EnergyP(ind)=0;
else EnergyP(ind)=EnergyP1-Me;
end
dr=sqrt(dx^2+dy^2+dz^2);
%======% ���� �����
gamma(ind)=acos(dx/dr)*180/pi;
g1=ceil(gamma(ind));
ugolG(g1)=ugolG(g1)+1;

%======% ���� �����


alpha(ind)=acos(dz/dr)*180/pi;
g1=ceil(alpha(ind));
ugolA(g1)=ugolA(g1)+1;

%======% ���� ����


betha(ind)=acos(dy/dr)*180/pi;
g1=ceil(betha(ind));
ugolB(g1)=ugolB(g1)+1;
else
if kX>0
jj=jj+1;
depth(jj)=kX;
end
end

end %����� if kZ<zmax


end %����� FOR
figure
hist(depth,40)
xlabel('depth of annihilition, cm')
ylabel('number of positrons')
title('Depth distribution of termolized positrons')
% hist(EnergyP,40)
% xlabel('Energy of positron')
% ylabel('f(E)')
% title('Enrgy distribution of output positrons')
% figure
% %hist(alpha,50)
% plot(1:181, ugolA)
% xlabel('0 \leq \alpha \leq \pi')
% ylabel('f(\alpha)')
% title('Distribution of positron output angle \alpha')
% figure
% %hist(betha,50)
% plot(1:181, ugolB)
% xlabel('0 \leq \beta \leq \pi')
% ylabel('f(\beta)')
% title('Distribution of positron output angle \beta')
% figure
% %hist(gamma,50)
% plot(1:181, ugolG)
% xlabel('0 \leq \gamma \leq \pi')
% ylabel('f(\gamma)')
% title('Distribution of positron output angle \gamma')
% %plot(gamma, EnergyP)