]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/neutron/cmlabi.F
More details on installation pre-requisites
[u/mrichter/AliRoot.git] / GEANT321 / neutron / cmlabi.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:55 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 CMLABI(D,LD,AWR,KZ,ID,FM,Q,IFLG,LIFLAG,LRI)
13C THIS ROUTINE CONVERTS THE EXIT NEUTRON SCATTERING ANGLE
14C FROM THE CENTER OF MASS COORDINATE SYSTEM TO THE LABORATORY
15C COORDINATE SYSTEM FOR AN INELASTIC SCATTERING REACTION. IT
16C ALSO CALCULATES THE EXIT ENERGIES AND DIRECTIONAL COSINES
17C FOR THE NEUTRON AND RECOIL NUCLEUS AS WELL AS SETTING ALL
18C EXIT PARAMETERS FOR THE RECOIL NUCLEUS.
19#include "geant321/minput.inc"
20#include "geant321/mconst.inc"
21#include "geant321/mnutrn.inc"
22#include "geant321/mrecoi.inc"
23#include "geant321/mapoll.inc"
24#include "geant321/mmass.inc"
25#include "geant321/mpstor.inc"
26 DIMENSION D(*),LD(*)
27 SAVE
28 MT=0
29 IF((ID.GE.14).AND.(ID.LE.54))MT=51
30 IF(MT.NE.51)GO TO 10
31 IMT=ID-14
32 MT=MT+IMT
33 10 IF(ID.EQ.11)MT=22
34 IF(ID.EQ.13)MT=28
35C IFLG EQUAL TO ONE IMPLIES LABORATORY COORDINATE SYSTEM
36 IF(LIFLAG.EQ.1)GO TO 60
37 IF(IFLG.EQ.1)GO TO 20
38C E1 EQUALS THE EXIT ENERGY IN THE COM SYSTEM
39 E1=((AWR/(AWR+1.0))**2)*EOLD+Q*(AWR/(AWR+1.0))
40C re-sample in COLISN E1<0.0 (Q-value = -EOLD) !!!
41 IF(E1.LT.0.0) THEN
42 IFLG = -1
43 RETURN
44 ENDIF
45C E2 EQUALS THE EXIT ENERGY IN THE LAB SYSTEM
46 E2=E1+(EOLD+2.0*FM*(AWR+1.0)*SQRT(EOLD*E1))/((AWR+1.0)**2)
47C CALCULATE COSINE OF SCATTERING ANGLE FM IN LAB SYSTEM
48 FM=(SQRT(E1/E2))*FM+(SQRT(EOLD/E2))*(1.0/(AWR+1.0))
49 E=E2
50C CALCULATE THE NEUTRON EXIT DIRECTIONAL COSINES
51 20 SINPSI=SQRT(1.0-FM**2)
52 CALL AZIRN(SINETA,COSETA)
53 STHETA=1.0-UOLD**2
54 IF(STHETA)40,40,30
55 30 STHETA=SQRT(STHETA)
56 COSPHI=VOLD/STHETA
57 SINPHI=WOLD/STHETA
58 GO TO 50
59 40 COSPHI=1.0
60 SINPHI=0.0
61 STHETA=0.0
62 50 U=UOLD*FM-COSETA*SINPSI*STHETA
63 V=VOLD*FM+UOLD*COSPHI*COSETA*SINPSI-SINPHI*SINPSI*SINETA
64 W=WOLD*FM+UOLD*SINPHI*COSETA*SINPSI+COSPHI*SINPSI*SINETA
65 S=1.0/SQRT(U**2+V**2+W**2)
66 U=U*S
67 V=V*S
68 W=W*S
69 IF(MT.EQ.91)LIFLAG=1
70 IF(MT.EQ.22)LIFLAG=1
71 IF(MT.EQ.28)LIFLAG=1
72 IF(LIFLAG.EQ.1)GO TO 60
73C CALCULATE AND SET THE RECOIL NUCLEUS EXIT PARAMETERS
74 ER=EOLD-E+Q
75 60 XR=X
76 YR=Y
77 ZR=Z
78 WATER=WTBC
79 NZR=KZ
80 AGER=AGE
81 NCOLR=NCOL
82 MTNR=MT
83 AR=AWR*AN
84 ENIR=EOLD
85 UNIR=UOLD
86 VNIR=VOLD
87 WNIR=WOLD
88 ENOR=E
89 UNOR=U
90 VNOR=V
91 WNOR=W
92 WTNR=WATE
93 QR=Q
94C CALCULATE THE NEUTRON MOMENTUM BEFORE AND AFTER COLLISION
95C NEUTRON MOMENTUM BEFORE COLLISION (PI) EQUALS TOTAL MOMENTUM
96 PI=SQRT(2.0*ZN*EOLD)
97 PO=SQRT(2.0*ZN*E)
98C CALCULATE THE DIRECTIONAL MOMENTUM OF THE RECOIL NUCLEUS
99 PRX=PI*UOLD-PO*U
100 PRY=PI*VOLD-PO*V
101 PRZ=PI*WOLD-PO*W
102C CALCULATE THE TOTAL MOMENTUM OF THE RECOIL NUCLEUS
103 PR=SQRT(PRX**2+PRY**2+PRZ**2)
104C CALCULATE THE RECOIL NUCLEUS DIRECTIONAL COSINES
105 UR=PRX/PR
106 VR=PRY/PR
107 WR=PRZ/PR
108C CALCULATE THE RECOIL HEAVY ION ENERGY FOR MT-91
109 IF(LIFLAG.EQ.0)GO TO 70
110 XM = AR*931.075E6
111 ER= SQRT(PR**2 + XM**2) - XM
112 70 CONTINUE
113C IF LR-FLAG IS USED, DO NOT STORE RECOIL ION AT THIS TIME
114 IF(LRI.EQ.22)RETURN
115 IF(LRI.EQ.23)RETURN
116 IF(LRI.EQ.28)RETURN
117C STORE THE RECOIL HEAVY ION IN THE RECOIL BANK
118 EP = ER
119 UP = UR
120 VP = VR
121 WP = WR
122 AGEP = AGE
123 MTP = MT
124 AMP = AR
125 ZMP = FLOAT(NZR)
126 CALL STOPAR(IDHEVY,NHEVY)
127 RETURN
128 END