*-- Author : S.J. Maxfield SUBROUTINE FPFTUR *-----------------------------------------------------------* * Print output banks from Forward Pattern recognition * * in readable form. * *-----------------------------------------------------------* *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 ------ *KEEP,H1EVDT. COMMON /H1EVDT/ KEVENT,IDATA,MONTE,LCONF INTEGER KEVENT,IDATA,LCONF LOGICAL MONTE * * IDATA type of information (HEAD bank word 6) : * * 0 - real data H1 * 1 - MC data H1SIM * 2 - real data CERN tests * 3 - MC data ARCET * * MONTE = .TRUE. if IDATA=1 * KEVENT = event processed counter for H1REC * *KEND. * Diagnostic flag from FRCS BANK *KEEP,FDIFLG. COMMON/LDIAG/IDIAG,IDIAG2,MAXPRT,IDOHIS,PMCUT *KEND. DIMENSION COV(5,5) *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. * FTUR bank... NBN = 0 IND = NLINK('FTUR',NBN) IF(IND.EQ.0) THEN WRITE(6,*) ' FPFTUR>> FTUR Bank not found in event ',NEVENT RETURN ENDIF NROW = IW(IND+2) WRITE(6,'('' '')') WRITE(6,'(/,8X,'' ------- FTUR BANK: Event'',I10, + 2X,I4,'' tracks -------'')') + NEVENT,NROW WRITE(6,'(10X,'' Level zero track fits'')') WRITE(6, '( + ''Trk Cu Phi Theta'', + '' x y z'', + '' Ndf Chsq FPUR'')') DO 1 J= 1,NROW WRITE(6,'(I3,6(1X,F7.3),I4,F6.3,I5)') + J,(RBTAB(IND,K,J), K=1,6),IBTAB(IND,17,J), + RBTAB(IND,18,J),IBTAB(IND,21,J) 1 CONTINUE IF(IDIAG.GE.2) THEN DO 2 J=1,NROW * Track 4-momentum... CURV = RBTAB(IND,1,J) PHI = RBTAB(IND,2,J) THET = RBTAB(IND,3,J) IF(ABS(CURV) .GT. 0.0) THEN PTMEAS = ABS(0.0002998*12.0/CURV) PMEAS = PTMEAS/SIN(THET) PXMEAS = PTMEAS * COS(PHI) PYMEAS = PTMEAS * SIN(PHI) PZMEAS = PMEAS / TAN(THET) WRITE(6,'(/,'' Momentum of Track '',I4, + '' for 12 kG field'')') J WRITE(6, '('' Px Py Pz P'', + /, 4E10.3)') PXMEAS, PYMEAS, PZMEAS, PMEAS ELSE WRITE(6,'(/,'' Momentum of Track '',I4)') J WRITE(6, '('' ... is infinite'')') ENDIF * Decompress covariance matrix CALL COVCP(5,COV,RW(INDCR(IND,8,J)),1) WRITE(6,'(/,'' Covariance Matrix for Track '',I4)') J WRITE(6, '('' Cu Phi Theta'', + '' x y'',/, + (5E10.3) )' ) + COV 2 CONTINUE ENDIF RETURN END *