*-- Author : SUBROUTINE FPHITZ(IPRT) *-----------------------------------------------------------* * Print output banks from Forward Pattern recognition * * in readable form. FRHC hit multiplicity/pointer bank * *-----------------------------------------------------------* *KEEP,BCS. INTEGER NHROW,NHCOL,NHLEN PARAMETER (NHROW = 2, NHCOL = 1, NHLEN=2) INTEGER NBOSIW PARAMETER (NBOSIW=1000000) INTEGER IW(NBOSIW) REAL RW(NBOSIW) COMMON /BCS/ IW EQUIVALENCE (RW(1),IW(1)) SAVE /BCS/ *KEEP,BOSMDL. C ------BOSMDL LOGICAL BEGJOB,ENDRUN,BEGRUN,REVENT,ENDJOB,OTHDAT COMMON/BOSMDL/BEGJOB,ENDRUN,BEGRUN,REVENT,ENDJOB,OTHDAT, + LCCRUN,NCCRUN,NEVENT, + IHA,IBS,IDB,IDATEL,LUP,ISN,JSN SAVE /BOSMDL/ C ------ *KEND. DIMENSION NUMR(36) , NUMP(36) COMMON/FRSTAT/IEVRAD, IEVR12, IEVPLA, IEVP12 LOGICAL FIRST DATA FIRST / .TRUE. / *KEEP,STFUNCT. * index of element before row number IROW INDR(IND,IROW)=IND+2+IW(IND+1)*(IROW-1) * index of L'th element of row number IROW INDCR(IND,L,IROW)=INDR(IND,IROW) + L * L'th integer element of the IROW'th row of bank with index IND IBTAB(IND,L,IROW)=IW(INDCR(IND,L,IROW)) * L'th real element of the IROW'th row of bank with index IND RBTAB(IND,L,IROW)=RW(INDCR(IND,L,IROW)) *KEND. IF(FIRST) THEN FIRST = .FALSE. IEVRAD = 0 IEVR12 = 0 IEVPLA = 0 IEVP12 = 0 ENDIF NBN = 0 IND = NLINK('FRHC',NBN) IF(IND.EQ.0 .AND. IPRT .EQ. 1) THEN WRITE(6,*) ' FPHITZ>> FRHC Bank not found in event ',NEVENT RETURN ENDIF IPLANE = 0 IRTOT = 0 DO 2 I = 0, 2 DO 1 J = 1, 12 IPLANE = IPLANE + 1 NUMR(IPLANE) = 0 DO 3 K=0, 23 NUM = IBTAB(IND,1,I*12*24 + J + K*12) NUMR(IPLANE) = NUMR(IPLANE) + NUM IRTOT = IRTOT + NUM 3 CONTINUE 1 CONTINUE 2 CONTINUE NBN = 0 IND = NLINK('FPHC',NBN) IF(IND.EQ.0 .AND. IPRT .EQ. 1) THEN WRITE(6,*) ' FPHITZ>> FPHC Bank not found in event ',NEVENT RETURN ENDIF IPLANE = 0 IPTOT = 0 DO 6 IJK=0,3*3*4-1 I=IJK/12 IREST=IJK-I*12 J=IREST/4 K=IREST-J*4+1 * DO 4 I = 0, 2 * DO 5 J = 0, 2 * DO 6 K = 1, 4 IPLANE = IPLANE + 1 NUMP(IPLANE) = 0 DO 7 L = 0, 31 NUM = IBTAB(IND,1,I*4*3*32 + J*4*32 + K + L*4) NUMP(IPLANE) = NUMP(IPLANE) + NUM IPTOT = IPTOT + NUM 7 CONTINUE 6 CONTINUE * 5 CONTINUE * 4 CONTINUE IF(IRTOT .GT. 0) IEVRAD = IEVRAD + 1 IF(IRTOT .GT.12) IEVR12 = IEVR12 + 1 IF(IPTOT .GT. 0) IEVPLA = IEVPLA + 1 IF(IPTOT .GT.12) IEVP12 = IEVP12 + 1 CALL HFILL(40401,FLOAT(IPTOT)+0.5,0.0,1.0) CALL HFILL(40402,FLOAT(IRTOT)+0.5,0.0,1.0) IF(IPRT .EQ. 1) THEN WRITE(6,'(/,8X,'' ---- Radial hits: Event'',I10,'' Num='',I4)') + NEVENT, IRTOT WRITE(6,'(3(4I3,2X,4I3,2X,4I3,/))') (NUMR(IPL), IPL = 1,36) WRITE(6,'(/,8X,'' ---- Planar Hits: Event'',I10,'' Num='',I4)') + NEVENT, IPTOT WRITE(6,'(3(4I3,2X,4I3,2X,4I3,/))') (NUMP(IPL), IPL = 1,36) ENDIF RETURN END *