]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/giface/ghstop.F
Added the address of GCBANK, not for Zebra stores, but to get access to
[u/mrichter/AliRoot.git] / GEANT321 / giface / ghstop.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:15 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/02 29/03/94 15.41.38 by S.Giani
11*-- Author :
12 SUBROUTINE GHSTOP
13C
14C *** HANDLING OF STOPPING PARTICLES ***
15C *** NVE 18-MAY-1988 CERN GENEVA ***
16C
17C CALLED BY : GHEISH
18C ORIGIN : H.FESEFELDT (ROUTINE CALIM 16-SEP-1987)
19C
20#include "geant321/gcbank.inc"
21#include "geant321/gckine.inc"
22#include "geant321/gcking.inc"
23#include "geant321/gctrak.inc"
24#include "geant321/gccuts.inc"
25C --- GHEISHA COMMONS ---
26#include "geant321/s_prntfl.inc"
27C
28C --- "IPART" CHANGED TO "KPART" IN COMMON /RESULT/ DUE TO CLASH ---
29C --- WITH VARIABLE "IPART" IN GEANT COMMON ---
30C
31 COMMON/RESULT/XEND,YEND,ZEND,RCA,RCE,AMAS,NCH,TOF,PX,PY,PZ,
32 $ USERW,INTCT,P,EN,EK,AMASQ,DELTN,ITK,NTK,KPART,IND,
33 $ LCALO,ICEL,SINL,COSL,SINP,COSP,
34 $ XOLD,YOLD,ZOLD,POLD,PXOLD,PYOLD,PZOLD,
35 $ XSCAT,YSCAT,ZSCAT,PSCAT,PXSCAT,PYSCAT,PZSCAT
36 REAL NCH,INTCT
37C
38 IF (NPRT(2) .OR. NPRT(9))
39 $ WRITE(NEWBCD,8801) AMAS,NCH,P,EN,EK,XEND,YEND,ZEND,ISTOP
40 8801 FORMAT(' *GHSTOP* STOPPING TRACK M,CH,P,EN,EK = ',5(G12.5,1X)/
41 $ 1H ,9X,'POSITION (X,Y,Z) = ',3(G12.5,1X),' ISTOP = ',I3)
42C
43C --- IN CASE OF ENERGY DEPOSITION ALL THE EKIN WILL BE DEPOSITED ---
44 EDEP=EK
45C
46C --- CALCULATE TIME TO STOP ---
47 TOF1=0.0
48 IF (P .GT. 1.0E-10) TOF1=STEP*EN*0.666667/P
49C
50C --- UPDATE MOMENTUM VECTOR AND ENERGIES FOR STOPPING PARTICLE ---
51 P=0.0
52 EN=ABS(AMAS)
53 EK=0.0
54 GETOT=EN
55 GEKIN=EK
56 ISTOP=2
57C --- NEXT 2 STMTS. COMMENTED TO AVOID DOUBLE SETTING (NVE 15-AUG-88)
58C%%% NMEC=NMEC+1
59C%%% LMEC(NMEC)=30
60C
61C --- UPDATE TIME OF FLIGHT AND CHECK FOR LIMIT ---
62 TOF=TOF+TOF1
63 TEST1=TOF-0.5*TOF1
64 TEST2=(TOFMAX-TOFG)*2.0E10
65 IF (TEST1 .GT. TEST2) GO TO 9999
66C
67C *** SELECT PROCESS FOR CURRENT PARTICLE ***
68C
69C
70C --- SKIP NEUTRINOS ---
71 IF (IPART .EQ. 4) GO TO 9999
72C
73C --- LOOK FOR PARTICLES WITH SPECIAL TREATMENT ---
74 IF (IPART .EQ. 9) GO TO 90
75 IF (IPART .EQ. 12) GO TO 120
76 IF (IPART .EQ. 13) GO TO 130
77 IF (IPART .EQ. 15) GO TO 150
78 IF (IPART .EQ. 25) GO TO 250
79C
80C --- ONLY DEPOSIT ALL KINETIC ENERGY FOR P AND HEAVY FRAGMENTS ---
81 IF (IPART .EQ. 14) GO TO 140
82 IF (IPART.GE.45 .AND. IPART.LE.48) GO TO 140
83C
84C --- LET ALL OTHER PARTICLES DECAY ---
85 CALL GDECAY
86 IF(NGKINE.GT.0) THEN
87 NMEC=NMEC+1
88 LMEC(NMEC)=5
89 ISTOP=1
90 GO TO 9999
91 ELSE
92C
93C --- FOR SOME REASON PARTICLE DID NOT DECAY ---
94 GOTO 140
95 ENDIF
96C
97C --- PI- ABSORBED BY NUCLEUS ---
98 90 CONTINUE
99 DESTEP=DESTEP+EDEP
100 CALL PIMABS(NOPT)
101 NMEC=NMEC+1
102 LMEC(NMEC)=16
103 ISTOP=1
104 GO TO 9999
105C
106C --- K- ABSORBED BY NUCLEUS ---
107 120 CONTINUE
108 DESTEP=DESTEP+EDEP
109 CALL KMABS(NOPT)
110 NMEC=NMEC+1
111 LMEC(NMEC)=16
112 ISTOP=1
113 GO TO 9999
114C
115C --- NEUTRON CAPTURED BY NUCLEUS ---
116 130 CONTINUE
117 IF (EDEP .GE. 1.E-9) GO TO 9999
118 CALL CAPTUR(NOPT)
119 NMEC=NMEC+1
120 LMEC(NMEC)=18
121 ISTOP=1
122 GO TO 9999
123C
124C --- ANTI-PROTON ==> ANNIHILATION ---
125 150 CONTINUE
126 DESTEP=DESTEP+EDEP
127 CALL PBANH(NOPT)
128 NMEC=NMEC+1
129 LMEC(NMEC)=17
130 ISTOP=1
131 GO TO 9999
132C
133C --- ANTI-NEUTRON ==> ANNIHILATION ---
134 250 CONTINUE
135 CALL NBANH(NOPT)
136 NMEC=NMEC+1
137 LMEC(NMEC)=17
138 ISTOP=1
139 GO TO 9999
140C
141C --- P OR HEAVY FRAGMENT ==> ONLY DEPOSIT KINETIC ENERGY ---
142 140 CONTINUE
143 DESTEP=DESTEP+EDEP
144C --- REMOVE HADR FLAG BECAUSE THERE HAS BEEN NO HADRONIC INTERACTION
145 DO 180 MMEC=1,NMEC
146 IF(LMEC(MMEC).EQ.12) THEN
147 DO 160 M=MMEC,NMEC-1
148 LMEC(M)=LMEC(M+1)
149 160 CONTINUE
150 NMEC=NMEC-1
151 GOTO 170
152 ENDIF
153 180 CONTINUE
154 170 ISTOP=2
155C
156 9999 CONTINUE
157 TOF=TOF-TOF1*0.5
158 IF (NPRT(9))
159 $ PRINT 8802,AMAS,NCH,P,EN,EK,XEND,YEND,ZEND,ISTOP
160 8802 FORMAT(' *GHSTOP* AFTER STOP : M,CH,P,EN,EK = ',5(G12.5,1X)/
161 $ 1H ,9X,'POSITION (X,Y,Z) = ',3(G12.5,1X),' ISTOP = ',I3)
162C
163 END