]> git.uio.no Git - u/mrichter/AliRoot.git/blob - GEANT321/neutron/labnf.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / neutron / labnf.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1995/10/24 10:21:57  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 LABNF(D,LD,FM,AWR,KZ,Q,LIFLAG)
13 C       THIS ROUTINE CALCULATES THE DIRECTIONAL COSINES FOR THE
14 C       NEUTRON BORN FROM THE FISSION REACTION.  THIS VERSION OF
15 C       THE PROGRAM WILL TREAT A FISSION REACTION AS A SCATTERING
16 C       EVENT WITH THE NEUTRON EMERGING WITH A MODIFIED WEIGHT OF
17 C       WATE*NU-BAR.  NO PROVISIONS ARE MADE AT THIS TIME TO
18 C       CALCULATE THE FISSION FRAGMENTS PARAMETERS, HOWEVER A HEAVY
19 C       RECOIL ION WILL BE STORED (FOR ANALYSIS PURPOSES) WITH
20 C       ENERGY AND DIRECTION COSINES EQUAL TO ZERO.
21 #include "geant321/minput.inc"
22 #include "geant321/mconst.inc"
23 #include "geant321/mnutrn.inc"
24 #include "geant321/mrecoi.inc"
25 #include "geant321/mapoll.inc"
26 #include "geant321/mmass.inc"
27 #include "geant321/mpstor.inc"
28       DIMENSION D(*),LD(*),FM(*)
29       SAVE
30       MT=18
31 C       CALCULATE THE NEUTRON EXIT DIRECTIONAL COSINES
32       POX = 0.0
33       POY = 0.0
34       POZ = 0.0
35       DO 40 KN=1,INEU
36          IF(LIFLAG.EQ.1) THEN
37             CALL GTISO(UP,VP,WP)
38          ELSE
39             SINPSI=SQRT(1.0-FM(KN)**2)
40             CALL AZIRN(SINETA,COSETA)
41             STHETA=1.0-UOLD**2
42             IF(STHETA)20,20,10
43    10       STHETA=SQRT(STHETA)
44             COSPHI=VOLD/STHETA
45             SINPHI=WOLD/STHETA
46             GO TO 30
47    20       COSPHI=1.0
48             SINPHI=0.0
49             STHETA=0.0
50    30       UP=UOLD*FM(KN)-COSETA*SINPSI*STHETA
51             VP=VOLD*FM(KN)+UOLD*COSPHI*COSETA*SINPSI-SINPHI* SINPSI*
52      +      SINETA
53             WP=WOLD*FM(KN)+UOLD*SINPHI*COSETA*SINPSI+COSPHI* SINPSI*
54      +      SINETA
55             S=1.0/SQRT(UP**2+VP**2+WP**2)
56             UP=UP*S
57             VP=VP*S
58             WP=WP*S
59          ENDIF
60          AGEP = AGE
61          EP = ENE(KN)
62 C use only first neutron for recoil calculation in order to ensure
63 C correct recoil nucleus energy spectrum
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          MTP = MT
71          CALL STOPAR(IDNEU,NNEU)
72    40 CONTINUE
73 C       SET THE HEAVY RECOIL ION PARAMETERS FOR ANALYSIS TAPE
74    50 PI=SQRT(2.0*ZN*EOLD)
75       PIX=PI*UOLD
76       PIY=PI*VOLD
77       PIZ=PI*WOLD
78       PRX=PIX-POX
79       PRY=PIY-POY
80       PRZ=PIZ-POZ
81       PR=SQRT(PRX**2+PRY**2+PRZ**2)
82       UR=PRX/PR
83       VR=PRY/PR
84       WR=PRZ/PR
85       AR=AWR*AN+AN-INEU*AN
86       XM=AR*931.075E6
87       ER=SQRT(PR**2+XM**2)-XM
88       EP = ER
89       UP = UR
90       VP = VR
91       WP = WR
92       AGEP = AGE
93       MTP = MT
94       XR=X
95       YR=Y
96       ZR=Z
97       WATER=WTBC
98       NZR=KZ
99       AGER=AGE
100       NCOLR=NCOL
101       MTNR=MT
102       AMP = AR
103       ZMP = FLOAT(KZ)
104       ENIR=EOLD
105       UNIR=UOLD
106       VNIR=VOLD
107       WNIR=WOLD
108       ENOR=E
109       UNOR=U
110       VNOR=V
111       WNOR=W
112       WTNR=WATE
113       QR=Q
114 C       STORE THE RECOIL HEAVY ION IN THE RECOIL BANK
115       CALL STOPAR(IDHEVY,NHEVY)
116       RETURN
117       END