5 * Revision 1.1.1.1 1995/10/24 10:20:58 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.38 by S.Giani
14 C *** MOMENTUM GENERATION FOR COHERENT ELASTIC SCATTERING ***
15 C *** NVE 13-JUL-1988 CERN GENEVA ***
17 C ORIGIN : H.FESEFELDT (03-DEC-1986)
19 C APPROXIMATION OF BESSEL FUNCTION FOR TETA(LAB)<=20 DEG.
20 C IS USED . THE NUCLEAR RADIUS IS TAKEN AS R=1.25*E-13*(A)**1/3FM
22 #include "geant321/s_defcom.inc"
23 #include "geant321/s_coscom.inc"
24 #include "geant321/s_kginit.inc"
27 DIMENSION FF(20),ATNOX(3)
30 DATA ATNOX/9.,56.,207./
32 C --- INITIALIZATION INDICATED BY KGINIT(14) ---
33 IF (KGINIT(14) .NE. 0) GO TO 10
36 IF(.NOT.NPRT(10)) GOTO 10
38 2001 FORMAT(1H0,'DS/DT FOR COHERENT ELASTIC SCATTERING')
40 WRITE(NEWBCD,2003) ATNOX(L),P
41 2003 FORMAT(1H0,'CALCULATED CROSS SECTIONS FOR A=',F5.1,' AND P=',F8.2)
44 T=2.*P**2*(1.-COS(TETA*1.D0))
45 IF(ATNOX(L).GT.62.) GOTO 4
46 FF(I)=TWPI*ATNOX(L)**1.63*EXP(-14.5D0*ATNOX(L)**0.65*T)
47 * +TWPI*1.4*ATNOX(L)**0.33*EXP(-10.D0*T)
49 4 FF(I)=TWPI*ATNOX(L)**1.33*EXP(-60.0D0*ATNOX(L)**0.33*T)
50 * +TWPI*0.4*ATNOX(L)**0.40*EXP(-10.D0*T)
53 2004 FORMAT(1H ,10E12.3)
55 10 IF(P.LT.0.01) GO TO 9999
56 IF(ATNO2.LT.0.5) GO TO 9999
59 CALL VZERO(IPA(1),MXGKCU)
61 IF(ATNO2.GT.62.) GOTO 11
81 CALL RTMI(T,VAL,FCTCOS,T1,T2,EPS,IND1,IER1)
90 * SINT=SQRT(MAX((1.-COST)*(1.+COST),0.))
91 SINT=SQRT(MAX(RR*(2.-RR),0.))
100 PV( 8,MXGKPV-1)=IPART
102 PV(10,MXGKPV-1)=USERW
103 PV(1,1)=P*SINT*SIN(PHI)
104 PV(2,1)=P*SINT*COS(PHI)
113 CALL DEFS1(1,MXGKPV-1,1)
126 *WRITE(NEWBCD,1004) AMAS,P,SINL1,COSL1,SINP1,COSP1,SINL,COSL,
127 * SINP,COSP,T1,T,T2,IER1
129 1004 FORMAT(1H ,'COHERENT ELASTIC SCATTERING MASS ',F8.3,' MOMENTUM
130 * ',F8.3/1H ,'DIRECTION ',4F10.4,' CHANGED TO ',4F10.4/
131 *1H ,'T1,T,T2 ',3E10.3,' IER1 ',I2)