5 * Revision 1.1.1.1 1995/10/24 10:21:36 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.31 by S.Giani
12 SUBROUTINE GSSCAN(ISL,ID)
14 ************************************************************************
15 * Enter current point in the LSTEMP/LSCAN structure *
17 * Layout of the LSCAN data structure *
18 * ================================== *
24 * +-----------+---+--------+---------------------------------------- *
25 * | | . | | (1..5) nphi,nteta,modtet,nslist,free *
26 * | | . | | (6..10) phimin,phimax,tetmin,tetmax *
27 * | | . | | (11..) islist *
28 * +-----------+---+--------+---------------------------------------- *
33 * +-------------------------------------------------- *
34 * | IDES | List of (W1,W2) | *
35 * +-------------------------------------------------- *
38 * where IDES [ 1:16] = ISCUR pointer in LPHI to first (W1,W2) *
39 * [17:32] = NW Number of pairs (W1,W2) -1 *
42 * [18:22] = ISL number in ISLIST-1 *
43 * [23:32] = SABS*FACTL *
45 * W2 [ 1:17] = RIN*FACTR *
46 * [18:32] = SX0*FACTX0 *
48 * SX0 = Sum of rad lengths up to current R boundary *
50 * SABS = Sum of abs lengths up to current R boundary *
52 * RIN = SQRT(X**2+Y**2+Z**2) at current R boundary *
54 * FACTX0 = multiplication factor (default=100) *
56 * FACTL = multiplication factor (default=1000) *
58 * FACTR = multiplication factor (default=100) *
60 * Bits are numbered from 1 to 32 and the most significative *
61 * bit is bit number 2 (or 1 for unsigned integers) *
64 * ==>Called by : <USER>,GUKINE *
65 * Author R.Brun ********* *
66 ************************************************************************
68 #include "geant321/gcbank.inc"
69 #include "geant321/gcscal.inc"
70 #include "geant321/gcflag.inc"
71 #include "geant321/gctrak.inc"
72 #include "geant321/gcscan.inc"
74 C. ------------------------------------------------------------------
79 IF(IRIN.LE.0)GO TO 999
82 IQ(LSTEMP+ITETA)=ISCUR
85 NW=IBITS(IDES,16,16)+1
86 IDOLD=IBITS(IQ(LSTEMP+ISCUR-2),0,18)
87 IF(IDOLD.EQ.ID)GO TO 999
88 CALL MVBITS(NW,0,16,IQ(LSTEMP+ITETA),16)
91 CALL MVBITS(ISL,0,5,IW1,17)
92 CALL MVBITS(ISAB,0,10,IW1,22)
94 CALL MVBITS(ISX0,0,15,IW2,17)
95 IF(ISCUR+5.GT.IQ(LSTEMP-1))THEN
96 CALL MZPUSH(IXCONS,LSTEMP,0,1000,'I')
99 IQ(LSTEMP+ISCUR+1)=IW2
102 IF(ISWIT(3).GT.ITETA)THEN
104 IF(ISL.NE.0)NAME=ISLIST(ISL)
105 IF(NW.EQ.0)PRINT 10000,IPHI,ITETA
106 PRINT 10100,NW+1,NAME,ID,IRIN,ISX0,ISAB
107 10000 FORMAT(' IPHI =',I3,' ITETA =',I3,
108 + ' NW NAME ID IRIN ISX0 ISAB')
109 10100 FORMAT(21X,I3,3X,A4,2X,I6,2X,I8,2X,I7,2X,I7)