COSMOS v7.655  COSMOSv7655
(AirShowerMC)
cinc_neutronEloss.f
Go to the documentation of this file.
1 ! move incident to a:
2  np=1
3  a(1) = pj
4 !
5  alpha =( (ia-1.0)/(ia+1.0) )**2
6 ! Elastic scattering: E1--> E2
7 ! E2/E1 = (A**2 + 2Acos + 1)/(A+1)**2 = 1/2 ((alpha+1) + (1-alpha)*cos)
8 ! we treat average loss. gzai=log(E1/E2) = 2/( A + 2/3)
9 ! i.e, E2 = E1*exp(-gzai). cos angle can be fixed by E2/E1
10 ! after that, cos is converted to lab angle by
11 ! cosL = (1+Acos)/sqrt(A^2+2Acos+1)
12  gzai = 2./(ia + 0.6666)
13  e2 = ek*exp(-gzai)
14  a(1).fm.p(4) = a(1).mass + e2
15  cosz =( e2/ek *2. -(alpha + 1) )/(1.0-alpha) ! cm angle
16 ! E2/ek*2 < 2 so -1-alpha <E2/ek*2 - alpha -1 <1-alpha
17 ! and -(1+alpha)/(1-alpah) < cosz < 1
18 ! since 0<= alpha <1, -1<cosz<1
19 ! in Lab; cosL =(1+Acos)/sqrt( A^2+2Acos+1)
20 ! = (1+Acos)/sqrt( (Acos+ 1)^2 +A^2(1-cos^2))<1
21  cosz = (1.0 + ia*cosz)/sqrt(ia**2 + 2*ia*cosz+1.) !lab angle
22 
23 ! azimuthal angel
24  sinz = sqrt(1.-cosz*cosz)
25  call kcossn(cs, sn)
26  p = sqrt( e2 * a(1).fm.p(4) )
27  a(1).fm.p(1) = p*cs*sinz
28  a(1).fm.p(2) = p*sn*sinz
29  a(1).fm.p(3) = p*cosz
********************block data cblkHeavy ********************integer j data *HeavyG2symbol p
Definition: cblkHeavy.h:7
nodes a
subroutine kcossn(cs, sn)
Definition: kcossn.f:13
*Zfirst p fm *Zfirst p mass
Definition: ZavoidUnionMap.h:1