]>
Commit | Line | Data |
---|---|---|
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) | |
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 |