5 * Revision 1.1.1.1 1999/05/18 15:55:21 fca
8 * Revision 1.1.1.1 1995/10/24 10:21:45 cernlib
12 #include "geant321/pilot.h"
13 *CMZ : 3.21/03 07/10/94 18.07.13 by S.Giani
15 SUBROUTINE GTREVE_ROOT
17 C. ******************************************************************
21 C. * Controls tracking of all particles belonging to the current *
24 C. * Called by : GUTREV, called by GTRIG *
25 C. * Authors : R.Brun, F.Bruyant *
27 C. ******************************************************************
29 #include "geant321/gcbank.inc"
30 #include "geant321/gcflag.inc"
31 #include "geant321/gckine.inc"
32 #include "geant321/gcnum.inc"
33 #include "geant321/gcstak.inc"
34 #include "geant321/gctmed.inc"
35 #include "geant321/gctrak.inc"
36 #include "geant321/gcunit.inc"
37 #include "geant321/sckine.inc"
39 EQUIVALENCE (UBUF(1),WS(1))
41 DIMENSION PMOM(3),VPOS(3)
43 C. ------------------------------------------------------------------
47 * Kick start the creation of the vertex
55 CALL GSVERT(VPOS,0,0,UBUF,0,NVTX)
56 CALL GSKINE(PMOM,IPART,NVTX,UBUF,0,NT)
60 CALL RXGTRAK(MTRACK,IPART,PMOM,E,VPOS,TTOF)
64 IF(MTRACK.LE.MPRIMA) THEN
65 IF(ISWIT(4).GT.0.AND.MTRACK.GT.0) THEN
66 IF(ISWIT(4).EQ.1.OR.MOD(MTRACK,ISWIT(4)).EQ.0) THEN
67 WRITE(CHMAIL,10200) MTRACK
72 C --- Output root hits tree only for each primary MTRACK
76 IF(MTRACK.LE.0) GOTO 999
96 * Normal Gtreve_root code
99 * *** For each vertex in turn ..
102 IF (NT.LE.0) GO TO 40
105 IF (NJTMAX.GT.0) THEN
106 CALL GMEDIA (Q(JV+1), NUMED)
108 WRITE (CHMAIL, 10000) (Q(JV+I), I=1,3)
114 * ** Loop over tracks attached to current vertex
118 IF (BTEST(IQ(LQ(JKINE-ITRA)),0)) GO TO 20
119 CALL GFKINE (ITRA, VERT, PVERT, IPART, IVERT, UBUF, NWBUF)
120 IF (IVERT.NE.IV) THEN
121 WRITE (CHMAIL, 10100) IV, IVERT
125 * * Store current track parameters in stack JSTAK
128 * ** Start tracking phase
129 30 IF (NALIVE.NE.0) THEN
131 * * Pick-up next track in stack JSTAK, if any
132 * * Initialize tracking parameters
134 IF (NUMED.EQ.0) GO TO 30
137 IF (IEOTRI.NE.0) GO TO 999
144 10000 FORMAT (' GTREVE_ROOT : Vertex outside setup, XYZ=',3G12.4)
145 10100 FORMAT (' GTREVE_ROOT : Abnormal track/vertex connection',2I8)
146 10200 FORMAT (' GTREVE_ROOT : Transporting primary track No ',I10)