]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/neutron/n2nn3n.F
This commit was generated by cvs2svn to compensate for changes in r1018,
[u/mrichter/AliRoot.git] / GEANT321 / neutron / n2nn3n.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:58 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.48 by S.Giani
11*-- Author :
12 SUBROUTINE N2NN3N(D,LD,AWR,KZ,ID,FM,Q,IFLG)
13C THIS ROUTINE CALCULATES THE DIRECTIONAL COSINES FOR THE
14C NEUTRON AND RECOIL NUCLEUS FOR AN N2N OR N3N REACTION
15C USING THE ONE NEUTRON EMMISION MODEL. IT ALSO SETS ALL
16C EXIT PARAMETRS FOR THE RECOIL NUCLEUS.
17#include "geant321/minput.inc"
18#include "geant321/mconst.inc"
19#include "geant321/mnutrn.inc"
20#include "geant321/mrecoi.inc"
21#include "geant321/mapoll.inc"
22#include "geant321/mmass.inc"
23#include "geant321/mpstor.inc"
24 DIMENSION D(*),LD(*),FM(*)
25 SAVE
26 MT=0
27 IF(ID.EQ.8)MT=16
28 IF(ID.EQ.9)MT=17
29 IF(ID.EQ.12)MT=24
30C IFLG EQUAL TO ONE IMPLIES THE DIRECTION COSINES WERE
31C SELECTED ISOTROPICALLY IN THE LABORATORY COORDINATE SYSTEM
32C CALCULATE THE NEUTRON EXIT DIRECTIONAL COSINES
33 POX = 0.0
34 POY = 0.0
35 POZ = 0.0
36 DO 40 KN=1,INEU
37 IF(IFLG.EQ.1) THEN
38 CALL GTISO(UP,VP,WP)
39 ELSE
40 SINPSI=SQRT(1.0-FM(KN)**2)
41 CALL AZIRN(SINETA,COSETA)
42 STHETA=1.0-UOLD**2
43 IF(STHETA)20,20,10
44 10 STHETA=SQRT(STHETA)
45 COSPHI=VOLD/STHETA
46 SINPHI=WOLD/STHETA
47 GO TO 30
48 20 COSPHI=1.0
49 SINPHI=0.0
50 STHETA=0.0
51 30 UP = UOLD*FM(KN)-COSETA*SINPSI*STHETA
52 VP = VOLD*FM(KN)+UOLD*COSPHI*COSETA*SINPSI-SINPHI* SINPSI*
53 + SINETA
54 WP = WOLD*FM(KN)+UOLD*SINPHI*COSETA*SINPSI+COSPHI* SINPSI*
55 + SINETA
56 S=1.0/SQRT(UP*UP+VP*VP+WP*WP)
57 UP=UP*S
58 VP=VP*S
59 WP=WP*S
60 ENDIF
61 EP = ENE(KN)
62C use ONLY first neutron for recoil calculation in order the ensure
63C correct energy spectrum of recoil nucleus
64 IF(KN.EQ.1) THEN
65 PP = SQRT(EP**2 + 2.0*EP*ZN)
66 POX = POX + PP*UP
67 POY = POY + PP*VP
68 POZ = POZ + PP*WP
69 ENDIF
70 AGEP = AGE
71 MTP = MT
72 CALL STOPAR(IDNEU,NNEU)
73 40 CONTINUE
74C CALCULATE AND SET THE RECOIL NUCLEUS EXIT PARAMETERS
75 50 XR=X
76 YR=Y
77 ZR=Z
78 WATER=WTBC
79 NZR=KZ
80 ZMP = FLOAT(KZ)
81 AGER=AGE
82 AGEP = AGE
83 NCOLR=NCOL
84 MTNR=MT
85 MTP = MT
86 AR = (AWR*AN) - FLOAT(INEU-1)*AN
87 AMP = AR
88 ENIR=EOLD
89 UNIR=UOLD
90 VNIR=VOLD
91 WNIR=WOLD
92 ENOR=E
93 UNOR=U
94 VNOR=V
95 WNOR=W
96 WTNR=WATE
97 QR=Q
98C CALCULATE THE NEUTRON MOMENTUM BEFORE AND AFTER COLLISION
99C NEUTRON MOMENTUM BEFORE COLLISION (PI) EQUALS TOTAL MOMENTUM
100 PI=SQRT(2.0*ZN*EOLD)
101C CALCULATE THE DIRECTIONAL MOMENTUM OF THE RECOIL NUCLEUS
102 PIX=PI*UOLD
103 PIY=PI*VOLD
104 PIZ=PI*WOLD
105 PRX = PIX - POX
106 PRY = PIY - POY
107 PRZ = PIZ - POZ
108C CALCULATE THE TOTAL MOMENTUM OF THE RECOIL NUCLEUS
109 PR=SQRT(PRX**2+PRY**2+PRZ**2)
110C CALCULATE THE RECOIL NUCLEUS DIRECTIONAL COSINES
111 UR=PRX/PR
112 VR=PRY/PR
113 WR=PRZ/PR
114 UP = UR
115 VP = VR
116 WP = WR
117C CALCULATE THE RECOIL NUCLEUS EXIT ENERGY
118 XM = AR*931.075E6
119 ER= SQRT(PR**2 + XM**2) - XM
120 EP = ER
121 MTP = MT
122C IF MT=24, DO NOT STORE THE RECOIL HEAVY ION IN THE BANK
123 IF(MT.EQ.24)RETURN
124C STORE THE RECOIL HEAVY ION IN THE RECOIL BANK
125 CALL STOPAR(IDHEVY,NHEVY)
126 RETURN
127 END