This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / neutron / cmlabe.F
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 CMLABE(D,LD,AWR,KZ,ID,FM,Q,IFLG)
13 C       THIS ROUTINE CONVERTS THE EXIT NEUTRON SCATTERING ANGLE
14 C       FROM THE CENTER OF MASS COORDINATE SYSTEM TO THE LABORATORY
15 C       COORDINATE SYSTEM FOR AN ELASTIC SCATTERING REACTION. IT
16 C       ALSO CALCULATES THE EXIT ENERGIES AND DIRECTIONAL COSINES
17 C       FOR THE NEUTRON AND RECOIL NUCLEUS AS WELL AS SETTING ALL
18 C       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/mupsca.inc"
26 #include "geant321/mpstor.inc"
27       DIMENSION D(*),LD(*)
28       SAVE
29       MT=0
30       IF(ID.EQ.2)MT=2
31 C       IFLG EQUAL TO ONE IMPLIES LABORATORY COORDINATE SYSTEM
32       IF(IFLG.EQ.1)GO TO 10
33       IF(IFLG.EQ.2)GO TO 50
34       ALPHA=((AWR-1.0)/(AWR+1.0))**2
35 C       E EQUALS THE EXIT ENERGY IN THE LAB SYSTEM
36       E=0.5*EOLD*((1.0-ALPHA)*FM+1.0+ALPHA)
37 C       CALCULATE COSINE OF SCATTERING ANGLE (FM) IN LAB SYSTEM
38       FM=(1.0+AWR*FM)/SQRT(1.0+AWR**2+2.0*AWR*FM)
39 C       CALCULATE THE NEUTRON EXIT DIRECTIONAL COSINES
40    10 SINPSI=SQRT(1.0-FM**2)
41       CALL AZIRN(SINETA,COSETA)
42       STHETA=1.0-UOLD**2
43       IF(STHETA)30,30,20
44    20 STHETA=SQRT(STHETA)
45       COSPHI=VOLD/STHETA
46       SINPHI=WOLD/STHETA
47       GO TO 40
48    30 COSPHI=1.0
49       SINPHI=0.0
50       STHETA=0.0
51    40 U=UOLD*FM-COSETA*SINPSI*STHETA
52       V=VOLD*FM+UOLD*COSPHI*COSETA*SINPSI-SINPHI*SINPSI*SINETA
53       W=WOLD*FM+UOLD*SINPHI*COSETA*SINPSI+COSPHI*SINPSI*SINETA
54       S=1.0/SQRT(U**2+V**2+W**2)
55       U=U*S
56       V=V*S
57       W=W*S
58 C       CALCULATE AND SET THE RECOIL NUCLEUS EXIT PARAMETERS
59    50 ER=EOLD-E
60 C       PERFORM ENERGY BALANCE CONSIDERING TARGET NUCLEUS ENERGY
61       IF(IFLG.EQ.2)ER=ERFGM+EOLD-E
62       XR=X
63       YR=Y
64       ZR=Z
65       WATER=WTBC
66       NZR=KZ
67       AGER=AGE
68       NCOLR=NCOL
69       MTNR=MT
70       AR=AWR*AN
71       ENIR=EOLD
72       UNIR=UOLD
73       VNIR=VOLD
74       WNIR=WOLD
75       ENOR=E
76       UNOR=U
77       VNOR=V
78       WNOR=W
79       WTNR=WATE
80       QR=Q
81 C       CALCULATE THE NEUTRON MOMENTUM BEFORE AND AFTER COLLISION
82 C       NEUTRON MOMENTUM BEFORE COLLISION (PI) EQUALS TOTAL MOMENTUM
83       PI=SQRT(2.0*ZN*EOLD)
84       PO=SQRT(2.0*ZN*E)
85 C       CALCULATE THE DIRECTIONAL MOMENTUM OF THE RECOIL NUCLEUS
86       PRX=PI*UOLD-PO*U
87       PRY=PI*VOLD-PO*V
88       PRZ=PI*WOLD-PO*W
89 C       CALCULATE THE TOTAL MOMENTUM OF THE RECOIL NUCLEUS
90       PR=SQRT(PRX**2+PRY**2+PRZ**2)
91 C       CALCULATE THE RECOIL NUCLEUS DIRECTIONAL COSINES
92       IF(PR.GT.0.0) THEN
93          UR=PRX/PR
94          VR=PRY/PR
95          WR=PRZ/PR
96       ELSE
97          UR=0.0
98          VR=0.0
99          WR=0.0
100       ENDIF
101 C       STORE THE  RECOIL HEAVY ION IN THE RECOIL BANK
102       EP = ER
103       UP = UR
104       VP = VR
105       WP = WR
106       AGEP = AGE
107       MTP = MT
108       AMP = AR
109       ZMP = FLOAT(NZR)
110       CALL STOPAR(IDHEVY,NHEVY)
111       RETURN
112       END