*-- 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
*