]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/neutron/labnf.F
FMD geometry with pad and SDigits
[u/mrichter/AliRoot.git] / GEANT321 / neutron / labnf.F
CommitLineData
fe4da5cc 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)
13C THIS ROUTINE CALCULATES THE DIRECTIONAL COSINES FOR THE
14C NEUTRON BORN FROM THE FISSION REACTION. THIS VERSION OF
15C THE PROGRAM WILL TREAT A FISSION REACTION AS A SCATTERING
16C EVENT WITH THE NEUTRON EMERGING WITH A MODIFIED WEIGHT OF
17C WATE*NU-BAR. NO PROVISIONS ARE MADE AT THIS TIME TO
18C CALCULATE THE FISSION FRAGMENTS PARAMETERS, HOWEVER A HEAVY
19C RECOIL ION WILL BE STORED (FOR ANALYSIS PURPOSES) WITH
20C 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
31C 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)
62C use only first neutron for recoil calculation in order to ensure
63C 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
73C 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
114C STORE THE RECOIL HEAVY ION IN THE RECOIL BANK
115 CALL STOPAR(IDHEVY,NHEVY)
116 RETURN
117 END