*-- Author : Stephen J. Maxfield 21/11/92 SUBROUTINE FILHTS(ITRK, ILIST, + NMRAD, IRPNT, IRSGN, IFRP, + NMPLA, IPPNT, IPSGN, IFPP, + ZBEG) * * Builds lists of pointers into FRRE and FRPE banks for * hits on the track ITRK. ILIST tells which pointers to go * for (rad-based tracks or pla-based tracks. * * The first radial and planar hit is found and the Z of the * first hit (radial or planar) on the track (where the track * parameters will be given) * * * *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,FRDIMS. PARAMETER (MAXHTS=200) PARAMETER (NUMWPL=36) PARAMETER (MAXTRK=200) PARAMETER (MXTTRK=900) PARAMETER (MAXTR3=200) PARAMETER (MAXHPW=2) PARAMETER (MAXDIG=2000) PARAMETER (NUMRWR=1727) PARAMETER (NUMPWR=1151) *KEEP,FH1WORK. COMMON/FGMIOS/ * Planar geometry + ZPP(140),C(140),S(140),ITYPE(140),WZERO(140),WSPACE, * * Radial geometry + ZP(36),PHW(36),WS(36) * COMMON/H1WORK/ * Radial data... + WW(MAXHTS,36),DRI(MAXHTS,36),RM(MAXHTS,36), + NDP(36), NW(MAXHTS,36), DWS(MAXHTS,36), * * Planar Data + NDPW(NUMWPL),DW(MAXHTS,NUMWPL), + DRIW(MAXHTS,NUMWPL),NDW(MAXHTS,NUMWPL), + WWP(MAXHTS,NUMWPL), + IPHOLE(MAXHTS,NUMWPL), * * Pointers into DIGI bank for IOS labelled hits + IPFRRE(MAXHTS,36),IPFRPE(MAXHTS,36),NFRRE,NFRPE, + IRPIOS(MAXDIG,2), IPPIOS(MAXDIG,2), * * Track segment data + NTRAKS(3),IRPT(12,MAXTRK,3),SDRFT(12,MAXTRK,3), * * Fit data + PCOSL(MAXTRK,3),PSINL(MAXTRK,3),PHZL(MAXTRK,3), + DPCOSL(MAXTRK,3),DPSINL(MAXTRK,3), + DPHZL(MAXTRK,3),CHSQ(MAXTRK,3),RZI(MAXTRK,3), + RPCOSG(MAXTRK),RPSING(MAXTRK), + PHZG(MAXTRK),CC(3,MAXTRK),ZIG(MAXTRK), + IRADG(36,MAXTRK),PHIG(36,MAXTRK), + IG,SDRADG(36,MAXTRK), + R1,Z1,RFIT(MAXTRK,3), + CHG(MAXTRK), + PPA(MAXTRK,3), ZZA(MAXTRK,3), + GPA(MAXTRK,3),GZA(MAXTRK,3) * * *KEEP,FRH3FT. * Common for RETRAC results (SJM) COMMON/FRH3FT/ IRN(36,MAXTRK),SDN(36,MAXTRK), + IRP(36,MAXTRK),SDP(36,MAXTRK), + IG2,IGTTRK(MAXTRK), + CHISQ(MAXTRK),NUMDF(MAXTRK), + FITX(MAXTRK),FITY(MAXTRK),FITZ(MAXTRK), + FITTH(MAXTRK),FITPH(MAXTRK), + FITCU(MAXTRK),FTCOV(15,MAXTRK) *KEND. COMMON/FTPPBK/NPP,IPP(36,100),CHPP(100),LP(3,100) COMMON/FTPPBS/SPP(36,100) COMMON/FTRRBK/IRR(36,MAXTRK),SRR(36,MAXTRK),LRR(3,MAXTRK) COMMON/FPLNK/KTIP(3,50),LPP(3,100) COMMON/FKLOC/KLOC(100) DIMENSION IRPNT(36), IPPNT(36) DIMENSION IRSGN(36), IPSGN(36) IFPP = 0 NMPLA= 0 IFRP = 0 NMRAD= 0 ZBEGR = 1000. ZBEGP = 1000. KFPWIR = 1000 KFRWIR = 1000 DO 200 KMOD=0, 2 DO 300 IWIR=1,12 * Planars KWIR = IWIR + KMOD*12 IF(ILIST.EQ.1) THEN JP = IRP(KWIR,ITRK) SIGP = SDP(KWIR, ITRK) ELSE JP = IPP(KWIR,ITRK) SIGP = SPP(KWIR, ITRK) ENDIF IF( SIGP .GT. 0) THEN JPSIGN = 0 ELSE JPSIGN = 1 ENDIF IF( JP .NE. 0) THEN IF(IPFRPE(JP,KWIR) .NE. 0) THEN NMPLA = NMPLA + 1 IF(IFPP.EQ.0) THEN IFPP = IPFRPE(JP,KWIR) ZBEGP= ZPP(KWIR) KFPWIR = KWIR ENDIF IPPNT(NMPLA) = IPFRPE(JP,KWIR) IPSGN(NMPLA) = JPSIGN ELSE CALL ERRLOG(125,'S:FILHTS: Planar pointer list corrupted') ENDIF ENDIF 300 CONTINUE DO 400 IWIR=1,12 * Radials KWIR = IWIR + KMOD*12 IF(ILIST.EQ.1) THEN JR = IRN(KWIR,ITRK) SIGR = SDN(KWIR, ITRK) ELSE JR = IRR(KWIR,ITRK) SIGR = SRR(KWIR, ITRK) ENDIF IF( SIGR .GT. 0) THEN JRSIGN = 0 ELSE JRSIGN = 1 ENDIF IF( JR .NE. 0) THEN IF(IPFRRE(JR,KWIR) .NE. 0) THEN NMRAD = NMRAD + 1 IF(IFRP.EQ.0) THEN IFRP = IPFRRE(JR,KWIR) ZBEGR = ZP(KWIR) KFRWIR = KWIR ENDIF IRPNT(NMRAD) = IPFRRE(JR,KWIR) IRSGN(NMRAD) = JRSIGN ELSE CALL ERRLOG(126,'S:FILHTS: Radial pointer list corrupted') ENDIF ENDIF 400 CONTINUE 200 CONTINUE ZBEG = ZBEGP IF(ZBEGR.LT.ZBEGP)ZBEG=ZBEGR RETURN END *