]>
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 CMLABI(D,LD,AWR,KZ,ID,FM,Q,IFLG,LIFLAG,LRI) | |
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 INELASTIC 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/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 | |
35 | C IFLG EQUAL TO ONE IMPLIES LABORATORY COORDINATE SYSTEM | |
36 | IF(LIFLAG.EQ.1)GO TO 60 | |
37 | IF(IFLG.EQ.1)GO TO 20 | |
38 | C E1 EQUALS THE EXIT ENERGY IN THE COM SYSTEM | |
39 | E1=((AWR/(AWR+1.0))**2)*EOLD+Q*(AWR/(AWR+1.0)) | |
40 | C re-sample in COLISN E1<0.0 (Q-value = -EOLD) !!! | |
41 | IF(E1.LT.0.0) THEN | |
42 | IFLG = -1 | |
43 | RETURN | |
44 | ENDIF | |
45 | C 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) | |
47 | C 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 | |
50 | C 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 | |
73 | C 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 | |
94 | C CALCULATE THE NEUTRON MOMENTUM BEFORE AND AFTER COLLISION | |
95 | C NEUTRON MOMENTUM BEFORE COLLISION (PI) EQUALS TOTAL MOMENTUM | |
96 | PI=SQRT(2.0*ZN*EOLD) | |
97 | PO=SQRT(2.0*ZN*E) | |
98 | C 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 | |
102 | C CALCULATE THE TOTAL MOMENTUM OF THE RECOIL NUCLEUS | |
103 | PR=SQRT(PRX**2+PRY**2+PRZ**2) | |
104 | C CALCULATE THE RECOIL NUCLEUS DIRECTIONAL COSINES | |
105 | UR=PRX/PR | |
106 | VR=PRY/PR | |
107 | WR=PRZ/PR | |
108 | C 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 | |
113 | C 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 | |
117 | C 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 |