]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gkine/gskine.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gkine / gskine.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.2 1998/02/10 16:04:19 japost
6* Comments are correctly redistributed.
7*
8* Revision 1.1.1.1 1995/10/24 10:21:19 cernlib
9* Geant
10*
11*
12#include "geant321/pilot.h"
13*CMZ : 3.21/02 28/03/94 01.30.59 by S.Giani
14*-- Author :
15 SUBROUTINE GSKINE(PLAB,IPART,NV,BUF,NWBUF,NT)
16C.
17C. ******************************************************************
18C. * *
19C * Store kinematics of track NT into data structure *
20C * Track is coming from vertex NV *
21C. * *
22C. * *
23C. * In detail: *
24C. * *
25C. * Stores long life track parameters. *
26C. * *
27C. * Input: *
28C. * PLAB components of momentum *
29C. * IPART type of particle (see GSPART) *
30C. * NV vertex number origin of track *
31C. * UBUF array of NUBUF floating point user parameters *
32C. * NUBUF *
33C. * *
34C. * Output: *
35C. * NT track number (if=0 error). *
36C. * *
37C. * ==>Called by : <USER>, GUKINE,GUSTEP *
38C. * Authors R.Brun, F.Carena, M.Hansroul ********* *
39C. * *
40C. ******************************************************************
41C.
42#include "geant321/gcbank.inc"
43#include "geant321/gcnum.inc"
44#include "geant321/gcpush.inc"
45 DIMENSION PLAB(3),BUF(1)
46 SAVE JV
47C.
48C. ------------------------------------------------------------------
49C.
50 IF(NV.LE.0)GO TO 10
51 IF(NV.GT.NVERTX)GO TO 90
52 JV = LQ(JVERTX- NV)
53 IF(JV.LE.0)GO TO 90
54C
55 10 NT = NTRACK + 1
56 IF (JKINE.EQ.0)THEN
57 CALL MZBOOK(IXDIV,JKINE,JKINE,1,'KINE',NCKINE,NCKINE,1,2,0)
58 IQ(JKINE-5)=0
59 ENDIF
60 IF(NT.GT.IQ(JKINE-2)) CALL MZPUSH(IXDIV,JKINE,NPKINE,0,'I')
61C
62 CALL MZBOOK(IXDIV,JK,JKINE,-NT,'KINE',1,1,8,3,0)
63C
64 IF (JPART.LE.0) GO TO 90
65 IF (IPART.GT.IQ(JPART-2)) GO TO 90
66 JPA = LQ(JPART- IPART)
67 IF (JPA.LE.0) GO TO 90
68 P2 = PLAB(1)**2 + PLAB(2)**2 + PLAB(3)**2
69 AMASS = Q(JPA + 7)
70 E = SQRT(P2 + AMASS*AMASS)
71C
72C Store kinematics in JKINE
73C
74 Q(JK + 1) = PLAB(1)
75 Q(JK + 2) = PLAB(2)
76 Q(JK + 3) = PLAB(3)
77 Q(JK + 4) = E
78 Q(JK + 5) = IPART
79 Q(JK + 6) = NV
80C
81C Copy user words
82C
83 IF(NWBUF.GT.0)THEN
84 CALL MZBOOK(IXDIV,JUK,JK,-1,'KINU',0,0,NWBUF,3,0)
85 IQ(JUK-5)=NT
86C
87 DO 15 I=1,NWBUF
88 Q(JUK+I)=BUF(I)
89 15 CONTINUE
90 ENDIF
91C
92C
93C Connect track NT to vertex NV
94C
95 IF(NV.GT.0)THEN
96 JV = LQ(JVERTX- NV)
97 NTG = Q(JV + 7)
98 NFREE=IQ(JV-1)-7-NTG
99 IF(NFREE.LE.0)CALL MZPUSH(IXDIV,JV,0,2,'I')
100 Q(JV + NTG + 8) = NT
101 Q(JV + 7) = NTG + 1
102 ENDIF
103C
104 NTRACK = NT
105 IQ(JKINE+1)=NTRACK
106 GO TO 99
107C
108C Error
109C
110 90 NT = 0
111 99 RETURN
112 END