]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/neutron/cmlabe.F
New files for folders and Stack
[u/mrichter/AliRoot.git] / GEANT321 / neutron / cmlabe.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 CMLABE(D,LD,AWR,KZ,ID,FM,Q,IFLG)
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 ELASTIC 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/mupsca.inc"
26#include "geant321/mpstor.inc"
27 DIMENSION D(*),LD(*)
28 SAVE
29 MT=0
30 IF(ID.EQ.2)MT=2
31C 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
35C E EQUALS THE EXIT ENERGY IN THE LAB SYSTEM
36 E=0.5*EOLD*((1.0-ALPHA)*FM+1.0+ALPHA)
37C CALCULATE COSINE OF SCATTERING ANGLE (FM) IN LAB SYSTEM
38 FM=(1.0+AWR*FM)/SQRT(1.0+AWR**2+2.0*AWR*FM)
39C 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
58C CALCULATE AND SET THE RECOIL NUCLEUS EXIT PARAMETERS
59 50 ER=EOLD-E
60C 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
81C CALCULATE THE NEUTRON MOMENTUM BEFORE AND AFTER COLLISION
82C NEUTRON MOMENTUM BEFORE COLLISION (PI) EQUALS TOTAL MOMENTUM
83 PI=SQRT(2.0*ZN*EOLD)
84 PO=SQRT(2.0*ZN*E)
85C 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
89C CALCULATE THE TOTAL MOMENTUM OF THE RECOIL NUCLEUS
90 PR=SQRT(PRX**2+PRY**2+PRZ**2)
91C 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
101C 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