5 * Revision 1.1.1.1 1995/10/24 10:21:55 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/04 23/02/95 14.46.01 by S.Giani
12 SUBROUTINE CANGLE(D,LD,E,FM,LEN)
13 C THIS ROUTINE SELECTS THE SCATTERING ANGLE AT A COLLISION
26 IF(E.LE.EINCD)GO TO 30
33 C E IS GREATER THAN THE LAST INCIDENT ENERGY
34 C USE THE LAST DISTRIBUTION
38 C CHOOSE WHICH DISTRIBUTION TO SAMPLE FROM
39 C THE INTERPOLATION SCHEME IS ASSUMED LINEAR-LINEAR IF IT
40 C IS NOT EQUAL TO THREE (LINEAR-LOG). THIS IS GENERALLY TRUE
42 PROB=ALOG(EINCD/E)/ALOG(EINCD/D(IP1))
43 40 PROB=(EINCD-E)/(EINCD-D(IP1))
46 C SELECT FROM THE SECOND DISTRIBUTION
49 C SELECT FROM THE FIRST DISTRIBUTION
52 C E IS LESS THAN THE FIRST INCIDENT ENERGY
53 C USE THE FIRST DISTRIBUTION
66 90 FM=A1+(R-PROB1)*(D(N-1)-A1)/(D(N)-PROB1)
67 IF(ABS(FM).GT.1.) FM = 1.0