]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1995/10/24 10:20:22 cernlib | |
6 | * Geant | |
7 | * | |
8 | * | |
9 | #include "geant321/pilot.h" | |
10 | *CMZ : 3.21/02 29/03/94 15.41.26 by S.Giani | |
11 | *-- Author : | |
12 | SUBROUTINE GDCXYZ | |
13 | C. | |
14 | C. ****************************************************************** | |
15 | C. * * | |
16 | C. * Online display of the track trajectory * | |
17 | C. * * | |
18 | C. * ==>Called by : <USER> * | |
19 | C. * Authors : R.Brun, P.Zanarini, S.Giani **** * | |
20 | C. * * | |
21 | C. ****************************************************************** | |
22 | C. | |
23 | #include "geant321/gcdraw.inc" | |
24 | #include "geant321/gckine.inc" | |
25 | #include "geant321/gcstak.inc" | |
26 | #include "geant321/gctrak.inc" | |
27 | PARAMETER (NTRTYP=8) | |
28 | DIMENSION UU(2),VV(2) | |
29 | DIMENSION MODE(NTRTYP),KCOLO(NTRTYP),VOLD(3) | |
30 | SAVE MODE,KCOLO,IFIRST,IOFF,ILINE,UU,VV | |
31 | DATA MODE /3, 1, 4, 1, 2, 1, 1, 1/ | |
32 | DATA KCOLO/4, 2, 1, 2, 3, 1, 6, 6/ | |
33 | DATA IFIRST/0/ | |
34 | C. | |
35 | C. ------------------------------------------------------------------ | |
36 | C. | |
37 | * IF(SLENG.GT.0..AND.STEP.LT.0.1)RETURN | |
38 | IF(IFIRST.EQ.0)THEN | |
39 | CALL UCTOH('OFF ',IOFF,4,4) | |
40 | CALL UCTOH('LINE',ILINE,4,4) | |
41 | IFIRST=1 | |
42 | ENDIF | |
43 | C | |
44 | C Set IOBJ to TRACK | |
45 | C | |
46 | IOBJ=2 | |
47 | C | |
48 | C Is THRZ option set on (R-Z projection) | |
49 | C and the cut lateral (vertical or horizontal) ? | |
50 | C | |
51 | IF (ITHRZ.NE.IOFF) THEN | |
52 | IF (ICUT.EQ.1.OR.ICUT.EQ.2) ITR3D=-ITRA | |
53 | ELSE | |
54 | ITR3D=0 | |
55 | ENDIF | |
56 | ICOL=KCOLO(ITRTYP) | |
57 | KCOL=LOOKTB(ICOL) | |
58 | C | |
59 | IF(NJTMAX.EQ.0)THEN | |
60 | * | |
61 | * Normal sequential tracking | |
62 | IF(SLENG.LE.0.)THEN | |
63 | CALL GDFR3D(VECT,1,UU(1),VV(1)) | |
64 | IF (ITRKOP.NE.ILINE) THEN | |
65 | CALL IGPID(1,'Kine',ITRA,' ') | |
66 | CALL IPM(1,UU,VV) | |
67 | ENDIF | |
68 | ELSE | |
69 | CALL GDFR3D(VECT,1,UU(2),VV(2)) | |
70 | IF (ITRKOP.EQ.ILINE) THEN | |
71 | CALL ISPLCI(KCOL) | |
72 | CALL ISLN(MODE(ITRTYP)) | |
73 | CALL IGPID(1,'Kine',ITRA,' ') | |
74 | CALL IPL(2,UU,VV) | |
75 | ELSE | |
76 | CALL IGPID(1,'Kine',ITRA,' ') | |
77 | CALL IPM(1,UU(2),VV(2)) | |
78 | ENDIF | |
79 | UU(1)=UU(2) | |
80 | VV(1)=VV(2) | |
81 | ENDIF | |
82 | ELSE | |
83 | * | |
84 | * Parallel tracking | |
85 | CALL GDFR3D(VECT,1,UU(2),VV(2)) | |
86 | IF (ITRKOP.NE.ILINE) THEN | |
87 | CALL IGPID(1,'Kine',ITRA,' ') | |
88 | CALL IPM(1,UU(2),VV(2)) | |
89 | ELSE | |
90 | CALL ISPLCI(KCOL) | |
91 | CALL ISLN(MODE(ITRTYP)) | |
92 | VOLD(1)=VECT(1)-STEP*VECT(4) | |
93 | VOLD(2)=VECT(2)-STEP*VECT(5) | |
94 | VOLD(3)=VECT(3)-STEP*VECT(6) | |
95 | CALL GDFR3D(VOLD,1,UU(1),VV(1)) | |
96 | CALL IGPID(1,'Kine',ITRA,' ') | |
97 | CALL IPL(2,UU,VV) | |
98 | IF (MODE(ITRTYP).NE.1) CALL ISLN(1) | |
99 | ENDIF | |
100 | ENDIF | |
101 | C | |
102 | C Reset ITR3D to 'standard projection' | |
103 | C | |
104 | ITR3D=0 | |
105 | IOBJ=0 | |
106 | C | |
107 | END |