5 * Revision 1.1.1.1 1995/10/24 10:21:10 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.20 by S.Giani
12 SUBROUTINE GPDIGI(IUSET,IUDET)
14 C. **************************************************************************
16 C. * Print DIGIts in detector IUDET of set IUSET *
17 C. * (in case IUSET/IUDET = *, take all sets/detectors) *
19 C. * JDI=LQ(JDIGI-ISET) *
20 C. * JDID=LQ(JDI-IDET) *
21 C. * IQ(JDI+IDET)= pointer to LAST USED word in JDID *
23 C. * Each digit is packed in JDID in the following format *
24 C. * -- Track numbers packed *
25 C. * -- Volume numbers packed *
26 C. * -- Digits packed *
28 C. * ==>Called by : <USER>, GPRINT *
29 C. * Author W.Gebel ********* *
31 C. **************************************************************************
33 #include "geant321/gcbank.inc"
34 #include "geant321/gcunit.inc"
35 PARAMETER (NDEMX=100,NVMAX=20)
36 DIMENSION KDIGI(NDEMX),NUMBV(NVMAX),KWS(130),LTR(3)
37 EQUIVALENCE (WS(1),NUMBV(1)),(WS(101),KDIGI(1))
38 CHARACTER*4 IUSET,IUDET
39 C. ------------------------------------------------------------------
41 IF(JDIGI.LE.0)GO TO 999
45 IF(IUSET(1:1).NE.'*')THEN
46 CALL GLOOK(IUSET,IQ(JSET+1),NSET,ISET)
47 IF(ISET.LE.0)GO TO 999
52 C Loop on all selected sets
61 IF(IUDET(1:1).NE.'*')THEN
62 CALL GLOOK(IUDET,IQ(JS+1),NDET,IDET)
63 IF(IDET.EQ.0)GO TO 230
68 C Loop on selected detectors for this set
73 IF(JDID.LE.0)GO TO 220
76 WRITE(CHMAIL,1000)IQ(JS+IDET),IQ(JSET+ISET)
79 C Get volumes / digitisings names and print header line
82 IF(ILAST.EQ.0)GO TO 220
89 C Number of printed elements limited to 15
92 CALL UBLOW(IQ(JD+2*I+9),KWS(K),4)
98 IF(K.LE.101) CALL UBLOW(IQ(JDDI+2*I-1),KWS(K),4)
103 WRITE(CHMAIL,2000)(KWS(I),I=1,K)
106 C Now loop on all digits
107 C to get track numbers, volume numbers and digits
115 IF(I.GE.ILAST)GO TO 220
118 CALL VZERO (LTR(1),3)
120 C Get unpacked (first 3) tracks producing this digit
121 C (2 tracks packed in 1 word; 1st half of 1st word: NTRA-1)
124 NTRM1=IBITS(IQ(JDID+I+NK), 0,16)
126 IF(NTRA.GE.1)LTR(1)=IBITS(IQ(JDID+I+NK),16,16)
128 IF(NTRA.GE.2)LTR(2)=IBITS(IQ(JDID+I+NK), 0,16)
129 IF(NTRA.GE.3)LTR(3)=IBITS(IQ(JDID+I+NK),16,16)
133 C Get unpacked volume numbers
143 NUMBV(IV)=IQ(JDID+I+NK)
151 NUMBV(IV)=IBITS(IQ(JDID+I+NK),K-1,NB)
158 C Get unpacked digits
168 IF(ID.LE.NDEMX) KDIGI(ID)=IQ(JDID+I+NK)
176 IF(ID.LE.NDEMX) KDIGI(ID)=IBITS(IQ(JDID+I+NK),K-1,NB)
183 C (fitting in 1 line of 128 characters per each digit)
187 GO TO (101,102,103,104,105,106,107,108,109,110
188 +, 111,112,113,114,115), NV
191 WRITE(CHMAIL,3001)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
192 +, (KDIGI(L),L=1,NDP)
196 WRITE(CHMAIL,3002)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
197 +, (KDIGI(L),L=1,NDP)
201 WRITE(CHMAIL,3003)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
202 +, (KDIGI(L),L=1,NDP)
206 WRITE(CHMAIL,3004)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
207 +, (KDIGI(L),L=1,NDP)
211 WRITE(CHMAIL,3005)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
212 +, (KDIGI(L),L=1,NDP)
216 WRITE(CHMAIL,3006)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
217 +, (KDIGI(L),L=1,NDP)
221 WRITE(CHMAIL,3007)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
222 +, (KDIGI(L),L=1,NDP)
226 WRITE(CHMAIL,3008)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
227 +, (KDIGI(L),L=1,NDP)
231 WRITE(CHMAIL,3009)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
232 +, (KDIGI(L),L=1,NDP)
236 WRITE(CHMAIL,3010)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
237 +, (KDIGI(L),L=1,NDP)
241 WRITE(CHMAIL,3011)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
242 +, (KDIGI(L),L=1,NDP)
246 WRITE(CHMAIL,3012)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
247 +, (KDIGI(L),L=1,NDP)
251 WRITE(CHMAIL,3013)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
252 +, (KDIGI(L),L=1,NDP)
256 WRITE(CHMAIL,3014)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
257 +, (KDIGI(L),L=1,NDP)
261 WRITE(CHMAIL,3015)IDIG,(LTR(J),J=1,3),(NUMBV(L),L=1,NV)
262 +, (KDIGI(L),L=1,NDP)
266 WRITE(CHMAIL,3000)IDIG,(LTR(J),J=1,3)
267 +, (KDIGI(L),L=1,NDP)
275 1000 FORMAT(' =====>DIGITS OF DETECTOR ** ',A4,
276 +' ** OF SET ** ',A4,' **')
277 2000 FORMAT(' DIGIT TR1 TR2 TR3 ',104A1)
278 3000 FORMAT(1X,I5,2X,3I5,3X, 12(1X,I7))
279 3001 FORMAT(1X,I5,2X,3I5,3X, 1(1X,I4),2X,12(1X,I7))
280 3002 FORMAT(1X,I5,2X,3I5,3X, 2(1X,I4),2X,11(1X,I7))
281 3003 FORMAT(1X,I5,2X,3I5,3X, 3(1X,I4),2X,10(1X,I7))
282 3004 FORMAT(1X,I5,2X,3I5,3X, 4(1X,I4),2X,10(1X,I7))
283 3005 FORMAT(1X,I5,2X,3I5,3X, 5(1X,I4),2X, 9(1X,I7))
284 3006 FORMAT(1X,I5,2X,3I5,3X, 6(1X,I4),2X, 8(1X,I7))
285 3007 FORMAT(1X,I5,2X,3I5,3X, 7(1X,I4),2X, 8(1X,I7))
286 3008 FORMAT(1X,I5,2X,3I5,3X, 8(1X,I4),2X, 7(1X,I7))
287 3009 FORMAT(1X,I5,2X,3I5,3X, 9(1X,I4),2X, 7(1X,I7))
288 3010 FORMAT(1X,I5,2X,3I5,3X,10(1X,I4),2X, 6(1X,I7))
289 3011 FORMAT(1X,I5,2X,3I5,3X,11(1X,I4),2X, 5(1X,I7))
290 3012 FORMAT(1X,I5,2X,3I5,3X,12(1X,I4),2X, 5(1X,I7))
291 3013 FORMAT(1X,I5,2X,3I5,3X,13(1X,I4),2X, 4(1X,I7))
292 3014 FORMAT(1X,I5,2X,3I5,2X,14(1X,I4),2X, 4(1X,I7))
293 3015 FORMAT(1X,I5,2X,3I5,3X,15(1X,I4),2X, 3(1X,I7))