]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/neutron/thrmsc.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / neutron / thrmsc.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:59 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/04 28/02/95 17.12.29 by S.Giani
11*-- Author :
12 SUBROUTINE THRMSC(D,LD,ITHRMS,LTHRM,E,U,V,W,TEMP,FM,AWR,IIN,
13 + IFLG,IOUT)
14C THIS ROUTINE CONTROLS SELECTION OF THE NEUTRON EXIT ENERGY
15C IN THE THERMAL DATA RANGE
16#include "geant321/mupsca.inc"
17 DIMENSION D(*),LD(*),ITHRMS(*),LTHRM(*),AWR(*)
18 REAL HMASSN, SPI
19 DATA HMASSN, SPI/0.5044905, 1.1283792/
20
21C HMASSN EQUALS ONE-HALF THE NEUTRON MASS
22C SPI EQUALS TWO DIVIDED BY THE SQUARE ROOT OF PI
23C CONVERT TEMPERATURE FROM DEGREES KELVIN TO EV
24 DATA BK/8.6167E-5/
25 SAVE
26C
27 TDK=BK*TEMP
28 AAWR=AWR(IIN)
29 IFLG=0
30 NE=ITHRMS(IIN)
31 IF(NE.LE.0)GO TO 10
32 EO=E
33 NP7=ITHRMS(IIN+1)
34 NB7=ITHRMS(IIN+2)
35 CT=ITHRMS(IIN+3)
36 LENMD=ITHRMS(IIN+4)
37 N=NB7*NE
38 CALL THRSEL(NE,NP7,NB7,E,EOUT,FM,CT,ITHRMS(IIN+5),
39 + ITHRMS(IIN+5+NE),ITHRMS(IIN+5+NE+NP7),
40 + ITHRMS(IIN+5+NE+NP7+NB7),
41 + ITHRMS(IIN+5+2*NE+NP7+NB7),ITHRMS(IIN+5+2*NE+NP7+NB7+N),
42 + ITHRMS(IIN+5+2*NE+NP7+NB7+N+LENMD),AWR,IIN,
43 + ITHRMS(IIN+5+2*NE+NP7+NB7+N+LENMD+NP7*NB7),
44 + ITHRMS(IIN+5+2*NE+NP7+NB7+N),IOUT)
45 E=EOUT
46C IFLG EQUAL TO ONE IMPLIES (FM) IN LABORATORY SYSTEM
47 IFLG=1
48 RETURN
49C FREE GAS MODEL
50 10 CONTINUE
51C SPD IS THE SPEED OF THE INCIDENT NEUTRON
52 SPD=SQRT(E/HMASSN)
53 TAUN=SPI*SQRT(2.0*TDK/AAWR)
54 PTEST=SPD/(SPD+TAUN)
55C UO, VO, AND WO ARE THE VELOCITY COMPONENTS OF THE INCIDENT
56C NEUTRON IN TERMS OF THE NEUTRON SPEED
57 UO=SPD*U
58 VO=SPD*V
59 WO=SPD*W
60 20 CONTINUE
61 IF(PTEST.GT.FLTRNF(0))GO TO 30
62 ETA=-ALOG(FLTRNF(0)*FLTRNF(0))*TDK
63 GO TO 40
64 30 CONTINUE
65 ETA=RNMAXF(TDK)
66 40 CONTINUE
67C ERFGM IS THE INITIAL ENERGY OF THE TARGET NUCLEUS
68 ERFGM=ETA
69C ETA IS THE SPEED OF THE TARGET NUCLEUS
70 ETA=SQRT(2.0*ETA/AAWR)
71C UN, VN, AND WN ARE THE VELOCITY COMPONENTS OF THE TARGET
72C NUCLEUS IN TERMS OF THE TARGET NUCLEUS SPEED
73 CALL GTISO(UN,VN,WN)
74 UN=UN*ETA
75 VN=VN*ETA
76 WN=WN*ETA
77 VRELSQ=(UO-UN)**2+(VO-VN)**2+(WO-WN)**2
78 F2=FLTRNF(0)**2
79 V2=VRELSQ/(SPD+ETA)**2
80 IF(F2.GT.V2)GO TO 20
81 VREL=SQRT(VRELSQ)
82 ALPHA=1.0/(AAWR+1.0)
83 BETA=1.0-ALPHA
84 CALL GTISO(UA,VA,WA)
85 UO=UO*ALPHA+BETA*(UN+VREL*UA)
86 VO=VO*ALPHA+BETA*(VN+VREL*VA)
87 WO=WO*ALPHA+BETA*(WN+VREL*WA)
88 SPDSQ=UO*UO+VO*VO+WO*WO
89C E IS THE EXIT ENERGY OF THE NEUTRON
90 E=HMASSN*SPDSQ
91 SPD=1.0/SQRT(SPDSQ)
92 FM=(U*UO+V*VO+W*WO)*SPD
93C U, V, AND W ARE THE EXIT NEUTRON DIRECTION COSINES
94 U=UO*SPD
95 V=VO*SPD
96 W=WO*SPD
97C IFLG EQUAL TO TWO IMPLIES (U,V,W) IN LABORATORY SYSTEM
98 IFLG=2
99 RETURN
100 END