]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1995/10/24 10:21:57 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 LABNF(D,LD,FM,AWR,KZ,Q,LIFLAG) | |
13 | C THIS ROUTINE CALCULATES THE DIRECTIONAL COSINES FOR THE | |
14 | C NEUTRON BORN FROM THE FISSION REACTION. THIS VERSION OF | |
15 | C THE PROGRAM WILL TREAT A FISSION REACTION AS A SCATTERING | |
16 | C EVENT WITH THE NEUTRON EMERGING WITH A MODIFIED WEIGHT OF | |
17 | C WATE*NU-BAR. NO PROVISIONS ARE MADE AT THIS TIME TO | |
18 | C CALCULATE THE FISSION FRAGMENTS PARAMETERS, HOWEVER A HEAVY | |
19 | C RECOIL ION WILL BE STORED (FOR ANALYSIS PURPOSES) WITH | |
20 | C ENERGY AND DIRECTION COSINES EQUAL TO ZERO. | |
21 | #include "geant321/minput.inc" | |
22 | #include "geant321/mconst.inc" | |
23 | #include "geant321/mnutrn.inc" | |
24 | #include "geant321/mrecoi.inc" | |
25 | #include "geant321/mapoll.inc" | |
26 | #include "geant321/mmass.inc" | |
27 | #include "geant321/mpstor.inc" | |
28 | DIMENSION D(*),LD(*),FM(*) | |
29 | SAVE | |
30 | MT=18 | |
31 | C CALCULATE THE NEUTRON EXIT DIRECTIONAL COSINES | |
32 | POX = 0.0 | |
33 | POY = 0.0 | |
34 | POZ = 0.0 | |
35 | DO 40 KN=1,INEU | |
36 | IF(LIFLAG.EQ.1) THEN | |
37 | CALL GTISO(UP,VP,WP) | |
38 | ELSE | |
39 | SINPSI=SQRT(1.0-FM(KN)**2) | |
40 | CALL AZIRN(SINETA,COSETA) | |
41 | STHETA=1.0-UOLD**2 | |
42 | IF(STHETA)20,20,10 | |
43 | 10 STHETA=SQRT(STHETA) | |
44 | COSPHI=VOLD/STHETA | |
45 | SINPHI=WOLD/STHETA | |
46 | GO TO 30 | |
47 | 20 COSPHI=1.0 | |
48 | SINPHI=0.0 | |
49 | STHETA=0.0 | |
50 | 30 UP=UOLD*FM(KN)-COSETA*SINPSI*STHETA | |
51 | VP=VOLD*FM(KN)+UOLD*COSPHI*COSETA*SINPSI-SINPHI* SINPSI* | |
52 | + SINETA | |
53 | WP=WOLD*FM(KN)+UOLD*SINPHI*COSETA*SINPSI+COSPHI* SINPSI* | |
54 | + SINETA | |
55 | S=1.0/SQRT(UP**2+VP**2+WP**2) | |
56 | UP=UP*S | |
57 | VP=VP*S | |
58 | WP=WP*S | |
59 | ENDIF | |
60 | AGEP = AGE | |
61 | EP = ENE(KN) | |
62 | C use only first neutron for recoil calculation in order to ensure | |
63 | C correct recoil nucleus energy spectrum | |
64 | IF(KN.EQ.1) THEN | |
65 | PP = SQRT(EP**2 + 2.0*EP*ZN) | |
66 | POX = POX + PP*UP | |
67 | POY = POY + PP*VP | |
68 | POZ = POZ + PP*WP | |
69 | ENDIF | |
70 | MTP = MT | |
71 | CALL STOPAR(IDNEU,NNEU) | |
72 | 40 CONTINUE | |
73 | C SET THE HEAVY RECOIL ION PARAMETERS FOR ANALYSIS TAPE | |
74 | 50 PI=SQRT(2.0*ZN*EOLD) | |
75 | PIX=PI*UOLD | |
76 | PIY=PI*VOLD | |
77 | PIZ=PI*WOLD | |
78 | PRX=PIX-POX | |
79 | PRY=PIY-POY | |
80 | PRZ=PIZ-POZ | |
81 | PR=SQRT(PRX**2+PRY**2+PRZ**2) | |
82 | UR=PRX/PR | |
83 | VR=PRY/PR | |
84 | WR=PRZ/PR | |
85 | AR=AWR*AN+AN-INEU*AN | |
86 | XM=AR*931.075E6 | |
87 | ER=SQRT(PR**2+XM**2)-XM | |
88 | EP = ER | |
89 | UP = UR | |
90 | VP = VR | |
91 | WP = WR | |
92 | AGEP = AGE | |
93 | MTP = MT | |
94 | XR=X | |
95 | YR=Y | |
96 | ZR=Z | |
97 | WATER=WTBC | |
98 | NZR=KZ | |
99 | AGER=AGE | |
100 | NCOLR=NCOL | |
101 | MTNR=MT | |
102 | AMP = AR | |
103 | ZMP = FLOAT(KZ) | |
104 | ENIR=EOLD | |
105 | UNIR=UOLD | |
106 | VNIR=VOLD | |
107 | WNIR=WOLD | |
108 | ENOR=E | |
109 | UNOR=U | |
110 | VNOR=V | |
111 | WNOR=W | |
112 | WTNR=WATE | |
113 | QR=Q | |
114 | C STORE THE RECOIL HEAVY ION IN THE RECOIL BANK | |
115 | CALL STOPAR(IDHEVY,NHEVY) | |
116 | RETURN | |
117 | END |