[Prev][Next][Index][Thread]

FIDARC: two cradles to get detectors info



Attached please find two new cradles for FIDARC. They update the graphic
routines UDPIXY and UZPIXY to allow the user to extract the information
from detectors by clicking on "Pick Info" in the interactive
reconstruction menu.
The news is that now the "Pick Info" tool works for every trigger type
selected (HYPE, BHABHA, BABA or COSM), while until today it could be
used implemented for the COSM trigger only.
I think these cradles should be useful, now that data reconstruction
analysis from collisions started.

Ciao.


Maurizio.
+PATCH,$CORR.
+DECK,CORR1.
+ADD,FIGRAPH,UDPIXY,0.
*CMZ :          10/11/2003  16.25.51  by  M. Palomba
+REP,FIGRAPH,UDPIXY,54-73.
        CALL IGLOC (ICURS, NTRAS, IBUTT, XNDC, YNDC, XWC, YWC)
C
C           Check which detector has been selected
C
        IF (IBUTT .EQ. 1) THEN
           RADIUS = SQRT (XWC**2 + YWC**2)
	  ELSE
	     RADIUS = 0.0
	  END IF
C
	  IF (RADIUS .GT. 35.0 .AND. RADIUS .LT. 55.0) THEN
C
C              Look for the nearest hit to the point selected
C              on the screen, ...
C
          LDCH1 = 0	
C
C     Hypernuclear trigger:
C
	    IF (HYPE) THEN
C	
C                 ... first among the DCH1 hits,
C                     associated to the K- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
             I = 0
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	       DO WHILE (LNEGT .NE. 0)
                LDCH1 = LQ(LNEGT - 2)
		    DO WHILE (LDCH1 .NE. 0)
		       CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))		
     &                .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	             CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))		
     &                .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
                      I = I + 1
			    LADDR(I) = LDCH1
                   END IF
		       LDCH1 = LQ(LDCH1)
		    END DO
                LNEGT = LQ(LNEGT)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL DCHINF (LADDR)
             ELSE	
C	
              CHECKX = .FALSE.
  	        CHECKY = .FALSE.
	        FOUND  = .FALSE.
              I = 0
	        CALL VZERO (LADDR, 2)
	        LKMIN = LQ(JFDST - 1)
              IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	        DO WHILE (LNEGT .NE. 0)
                 LDCH1 = LQ(LNEGT - 3)
		     DO WHILE (LDCH1 .NE. 0)
		        CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))		
     &                 .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	              CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))		
     &                 .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	              IF (CHECKX .AND. CHECKY) THEN
	                 FOUND = .TRUE.
                       I = I + 1
			     LADDR(I) = LDCH1
                    END IF
		        LDCH1 = LQ(LDCH1)
		     END DO
                 LNEGT = LQ(LNEGT)
              END DO
C
C                 Output the relevant information
C
              IF (FOUND) THEN
                CALL DCHINF (LADDR)
              ELSE	
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
                I = 0
	          CALL VZERO (LADDR, 2)
	          LKMIN = LQ(JFDST - 1)
                IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	          DO WHILE (LPOST .NE. 0)
                  LDCH1 = LQ(LPOST - 2)
		      DO WHILE (LDCH1 .NE. 0)
		         CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))		
     &                  .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	               CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))		
     &                  .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	               IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
                         I = I + 1
			       LADDR(I) = LDCH1
                     END IF
	               LDCH1 = LQ(LDCH1)
		      END DO
                  LPOST = LQ(LPOST)
                END DO
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                  CALL DCHINF (LADDR)
                ELSE	
C	
                 CHECKX = .FALSE.
  	           CHECKY = .FALSE.
	           FOUND  = .FALSE.
                 I = 0
	           CALL VZERO (LADDR, 2)
	           LKMIN = LQ(JFDST - 1)
                 IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	           DO WHILE (LPOST .NE. 0)
                  LDCH1 = LQ(LPOST - 3)
		      DO WHILE (LDCH1 .NE. 0)
		        CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))		
     &                 .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	              CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))		
     &                 .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	              IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
                      I = I + 1
			    LADDR(I) = LDCH1
                    END IF
		        LDCH1 = LQ(LDCH1)
		      END DO
                  LPOST = LQ(LPOST)
                 END DO
C
C                 Output the relevant information
C
                 IF (FOUND) THEN
                   CALL DCHINF (LADDR)
                 ELSE	
C	
C                 ... else among the DCH1 hits,
C                     associated to the K+ track (if any), ...
C	
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
                   I = 0
	             CALL VZERO (LADDR, 2)
	             LKPLU = LQ(JFDST - 2)
                   IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	             DO WHILE (LNEGT .NE. 0)
                     LDCH1 = LQ(LNEGT - 2)
		         DO WHILE (LDCH1 .NE. 0)
		            CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))		
     &                     .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	                  CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))		
     &                     .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	                  IF (CHECKX .AND. CHECKY) THEN
	                    FOUND = .TRUE.
                          I = I + 1
			        LADDR(I) = LDCH1
                        END IF
		            LDCH1 = LQ(LDCH1)
		         END DO
                     LNEGT = LQ(LNEGT)
	             END DO	     	
C
C                 Output the relevant information
C
                  IF (FOUND) THEN
                     CALL DCHINF (LADDR)
                  ELSE	
C	
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
                   I = 0
	             CALL VZERO (LADDR, 2)
	             LKPLU = LQ(JFDST - 2)
                   IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	             DO WHILE (LNEGT .NE. 0)
                     LDCH1 = LQ(LNEGT - 3)
		         DO WHILE (LDCH1 .NE. 0)
		            CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))		
     &                     .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	                  CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))		
     &                     .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	                  IF (CHECKX .AND. CHECKY) THEN
	                    FOUND = .TRUE.
                          I = I + 1
			        LADDR(I) = LDCH1
                        END IF
		            LDCH1 = LQ(LDCH1)
		         END DO
                     LNEGT = LQ(LNEGT)
	             END DO	     	
C
C                 Output the relevant information
C
                   IF (FOUND) THEN
                      CALL DCHINF (LADDR)
                   ELSE	
C	
                     CHECKX = .FALSE.
  	               CHECKY = .FALSE.
	               FOUND  = .FALSE.
                     I = 0
	               CALL VZERO (LADDR, 2)
	               LKPLU = LQ(JFDST - 2)
                     IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	               DO WHILE (LPOST .NE. 0)
                        LDCH1 = LQ(LPOST - 2)
		            DO WHILE (LDCH1 .NE. 0)
		               CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))		
     &                        .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	                     CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))		
     &                        .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	                     IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
                              I = I + 1
			            LADDR(I) = LDCH1
                           END IF
		               LDCH1 = LQ(LDCH1)
		            END DO
                        LPOST = LQ(LPOST)
                     END DO
C
C                 Output the relevant information
C
                     IF (FOUND) THEN
C
                        CALL DCHINF (LADDR)
C
                     ELSE	
C	
                      CHECKX = .FALSE.
  	                CHECKY = .FALSE.
	                FOUND  = .FALSE.
                      I = 0
	                CALL VZERO (LADDR, 2)
	                LKPLU = LQ(JFDST - 2)
                      IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	                DO WHILE (LPOST .NE. 0)
                        LDCH1 = LQ(LPOST - 3)
		            DO WHILE (LDCH1 .NE. 0)
		               CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))		
     &                        .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	                     CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))		
     &                        .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	                     IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
                              I = I + 1
			            LADDR(I) = LDCH1
                           END IF
		               LDCH1 = LQ(LDCH1)
		            END DO
                        LPOST = LQ(LPOST)
                      END DO
C
C                 Output the relevant information
C
                      IF (FOUND) THEN
                         CALL DCHINF (LADDR)
                      ELSE	
C	
C                    ... else among the residual DCH1 hits
C
                        CHECKX = .FALSE.
  	                  CHECKY = .FALSE.
	                  FOUND  = .FALSE.
                        I = 0
	                  CALL VZERO (LADDR, 2)
		            LNOIS = LQ(JFDST - 3)
   	                  IF (LNOIS .NE. 0) LDCH1 = LQ(LNOIS - 5)
			      DO WHILE (LDCH1 .NE. 0)
	   	               CHECKX = (Q(LDCH1 +  4) .GT. (XWC - UCLEAS))	
     &                        .AND. (Q(LDCH1 +  4) .LT. (XWC + UCLEAS))
	                     CHECKY = (Q(LDCH1 +  5) .GT. (YWC - UCLEAS))	
     &                        .AND. (Q(LDCH1 +  5) .LT. (YWC + UCLEAS))
	                     IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
                              I = I + 1
			            LADDR(I) = LDCH1
			         END IF
			         LDCH1 = LQ(LDCH1)
			      END DO
C
C                    Output the relevant information
C
                        IF (FOUND) THEN
	                     CALL DCHINF (LADDR)	
	                  ELSE
                           CALL ERRINF
	                  END IF
C
                     END IF
C
                    END IF
C
                   END IF
C
                  END IF
C
                 END IF
C
                END IF
C
               END IF
C
             END IF		
C
C     Cosmic ray trigger:
+REP,FIGRAPH,UDPIXY,79-98.
C
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
  	       CALL VZERO (LADDR, 2)
	       I = 0
C	
	       LCOSM = LQ(JFDST - 1)
	       IF (LCOSM .NE. 0) LDCH1 = LQ(LCOSM - 4)
             DO WHILE (LDCH1 .NE. 0)
	          CHECKX = (Q(LDCH1 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                   (Q(LDCH1 + 4) .LT. (XWC + UCLEAS))
                CHECKY = (Q(LDCH1 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                   (Q(LDCH1 + 5) .LT. (YWC + UCLEAS))
                IF (CHECKX .AND. CHECKY) THEN
   	             FOUND = .TRUE.
                   I = I + 1
	             LADDR(I) = LDCH1
                END IF
                LDCH1 = LQ(LDCH1)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL DCHINF (LADDR)
             ELSE
C
C                    ... else among the residual DCH1 hits
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
                FOUND  = .FALSE.
                CALL VZERO (LADDR, 2)
                I = 0
C
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LDCH1 = LQ(LNOIS - 3)
                DO WHILE (LDCH1 .NE. 0)
	             CHECKX = (Q(LDCH1 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                      (Q(LDCH1 + 4) .LT. (XWC + UCLEAS))
                   CHECKY = (Q(LDCH1 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                      (Q(LDCH1 + 5) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUND = .TRUE.
                      I = I + 1
	                LADDR(I) = LDCH1
                   END IF
                   LDCH1 = LQ(LDCH1)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL DCHINF (LADDR)
                ELSE
                   CALL ERRINF
                END IF
C
             END IF
C
C     Bhabha trigger:
C
	    ELSE IF (BHABHA) THEN
C
C                 ... first among the DCH1 hits,
C                     associated to the e- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
  	       CALL VZERO (LADDR, 2)
	       I = 0
	       LBHAB = LQ(JFDST - 1)
	       IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
                IF (LELEC .NE. 0) LDCH1 = LQ(LELEC - 4)
                DO WHILE (LDCH1 .NE. 0)
	             CHECKX = (Q(LDCH1 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                      (Q(LDCH1 + 4) .LT. (XWC + UCLEAS))
                   CHECKY = (Q(LDCH1 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                      (Q(LDCH1 + 5) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUND = .TRUE.
                      I = I + 1
	                LADDR(I) = LDCH1
                   END IF
                   LDCH1 = LQ(LDCH1)
                END DO
             END IF
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL DCHINF (LADDR)
             ELSE
C
C                 ... else among the DCH1 hits,
C                     associated to the e+ track (if any), ...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
  	          CALL VZERO (LADDR, 2)
	          I = 0
C
	          LBHAB = LQ(JFDST - 1)
	          IF (LBHAB .NE. 0) THEN
                   LPOSI = LQ(LBHAB - 2)
                   IF (LPOSI .NE. 0) LDCH1 = LQ(LPOSI - 4)
                   DO WHILE (LDCH1 .NE. 0)
	                CHECKX = (Q(LDCH1 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                         (Q(LDCH1 + 4) .LT. (XWC + UCLEAS))
                      CHECKY = (Q(LDCH1 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                         (Q(LDCH1 + 5) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
   	                   FOUND = .TRUE.
                         I = I + 1
	                   LADDR(I) = LDCH1
                      END IF
                      LDCH1 = LQ(LDCH1)
                   END DO
                END IF
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                   CALL DCHINF (LADDR)
                ELSE
C
C                    ... else among the residual DCH1 hits
C
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
                  FOUND  = .FALSE.
                  CALL VZERO (LADDR, 2)
                  I = 0
C
                  LNOIS = LQ(JFDST - 2)
                  IF (LNOIS .NE. 0) LDCH1 = LQ(LNOIS - 3)
                  DO WHILE (LDCH1 .NE. 0)
	               CHECKX = (Q(LDCH1 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                        (Q(LDCH1 + 4) .LT. (XWC + UCLEAS))
                     CHECKY = (Q(LDCH1 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                        (Q(LDCH1 + 5) .LT. (YWC + UCLEAS))
                     IF (CHECKX .AND. CHECKY) THEN
   	                  FOUND = .TRUE.
                        I = I + 1
	                  LADDR(I) = LDCH1
                     END IF
                     LDCH1 = LQ(LDCH1)
                  END DO
C
C                    Output the relevant information
C
                  IF (FOUND) THEN
	               CALL DCHINF (LADDR)
                  ELSE
                     CALL ERRINF
                  END IF
C
                END IF
C
             END IF
C
C     Simplified Bhabha trigger:
C
	    ELSE IF (BABA) THEN
C
C                 ... first among the DCH1 hits,
C                     associated to a track (if any), ...
C
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
  	       CALL VZERO (LADDR, 2)
	       I = 0
C	
	       LBABA = LQ(JFDST - 1)
	       IF (LBABA .NE. 0) LDCH1 = LQ(LBABA - 2)
             DO WHILE (LDCH1 .NE. 0)
	          CHECKX = (Q(LDCH1 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                   (Q(LDCH1 + 4) .LT. (XWC + UCLEAS))
                CHECKY = (Q(LDCH1 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                   (Q(LDCH1 + 5) .LT. (YWC + UCLEAS))
                IF (CHECKX .AND. CHECKY) THEN
   	             FOUND = .TRUE.
                   I = I + 1
	             LADDR(I) = LDCH1
                END IF
                LDCH1 = LQ(LDCH1)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL DCHINF (LADDR)
             ELSE
C
C                    ... else among the residual DCH1 hits
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
                FOUND  = .FALSE.
                CALL VZERO (LADDR, 2)
                I = 0
C
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LDCH1 = LQ(LNOIS - 5)
                DO WHILE (LDCH1 .NE. 0)
	             CHECKX = (Q(LDCH1 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                      (Q(LDCH1 + 4) .LT. (XWC + UCLEAS))
                   CHECKY = (Q(LDCH1 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                      (Q(LDCH1 + 5) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUND = .TRUE.
                      I = I + 1
	                LADDR(I) = LDCH1
                   END IF
                   LDCH1 = LQ(LDCH1)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL DCHINF (LADDR)
                ELSE
                   CALL ERRINF
                END IF
C
             END IF
C
          END IF	
C
        ELSE IF (RADIUS .GT. 70.0 .AND. RADIUS .LT. 90.0) THEN
C
C              Look for the nearest hit to the point selected
C              on the screen, ...
C	
          LDCH2 = 0
C
C	Hypernuclear trigger:
C
	    IF  (HYPE) THEN
C	
C                 ... first among the DCH2 hits,
C                     associated to the K- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
             I = 0
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	       DO WHILE (LNEGT .NE. 0)
                LDCH2 = LQ(LNEGT - 4)
		    DO WHILE (LDCH2 .NE. 0)
		       CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))		
     &                .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	             CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))		
     &                .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
                      I = I + 1
			    LADDR(I) = LDCH2
                   END IF
		       LDCH2 = LQ(LDCH2)
		    END DO
                LNEGT = LQ(LNEGT)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL DCHINF (LADDR)
             ELSE	
C	
              CHECKX = .FALSE.
  	        CHECKY = .FALSE.
	        FOUND  = .FALSE.
              I = 0
	        CALL VZERO (LADDR, 2)
	        LKMIN = LQ(JFDST - 1)
              IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	        DO WHILE (LNEGT .NE. 0)
                LDCH2 = LQ(LNEGT - 5)
		    DO WHILE (LDCH2 .NE. 0)
		       CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))		
     &                .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	             CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))		
     &                .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
                      I = I + 1
			    LADDR(I) = LDCH2
                   END IF
		       LDCH2 = LQ(LDCH2)
		    END DO
                LNEGT = LQ(LNEGT)
              END DO
C
C                 Output the relevant information
C
              IF (FOUND) THEN
                CALL DCHINF (LADDR)
              ELSE	
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
                I = 0
	          CALL VZERO (LADDR, 2)
	          LKMIN = LQ(JFDST - 1)
                IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	          DO WHILE (LPOST .NE. 0)
                  LDCH2 = LQ(LPOST - 4)
		      DO WHILE (LDCH2 .NE. 0)
		        CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))		
     &                 .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	              CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))		
     &                 .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	              IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
                      I = I + 1
			    LADDR(I) = LDCH2
                    END IF
		        LDCH2 = LQ(LDCH2)
		      END DO
                  LPOST = LQ(LPOST)
+REP,FIGRAPH,UDPIXY,104-129.
                  CALL DCHINF (LADDR)
               ELSE	
C	
                 CHECKX = .FALSE.
  	           CHECKY = .FALSE.
	           FOUND  = .FALSE.
                 I = 0
	           CALL VZERO (LADDR, 2)
	           LKMIN = LQ(JFDST - 1)
                 IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	           DO WHILE (LPOST .NE. 0)
                  LDCH2 = LQ(LPOST - 5)
		      DO WHILE (LDCH2 .NE. 0)
		        CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))		
     &                 .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	              CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))		
     &                 .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	              IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
                      I = I + 1
			    LADDR(I) = LDCH2
                    END IF
		        LDCH2 = LQ(LDCH2)
		      END DO
                  LPOST = LQ(LPOST)
                END DO
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                   CALL DCHINF (LADDR)
                ELSE	
C	
C                 ... else among the DCH2 hits,
C                     associated to the K+ track (if any), ...
C	
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
	            FOUND  = .FALSE.
                  I = 0
	            CALL VZERO (LADDR, 2)
	            LKPLU = LQ(JFDST - 2)
                  IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	            DO WHILE (LNEGT .NE. 0)
                     LDCH2 = LQ(LNEGT - 4)
		         DO WHILE (LDCH2 .NE. 0)
		            CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))		
     &                     .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	                  CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))		
     &                     .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	                  IF (CHECKX .AND. CHECKY) THEN
	                    FOUND = .TRUE.
                          I = I + 1
			        LADDR(I) = LDCH2
                        END IF
		            LDCH2 = LQ(LDCH2)
		         END DO
                     LNEGT = LQ(LNEGT)
	            END DO	     	
C
C                 Output the relevant information
C
                  IF (FOUND) THEN
                     CALL DCHINF (LADDR)
                  ELSE	
C	
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
                   I = 0
	             CALL VZERO (LADDR, 2)
	             LKPLU = LQ(JFDST - 2)
                   IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	             DO WHILE (LNEGT .NE. 0)
                     LDCH2 = LQ(LNEGT - 5)
		         DO WHILE (LDCH2 .NE. 0)
		            CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))		
     &                     .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	                  CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))		
     &                     .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	                  IF (CHECKX .AND. CHECKY) THEN
	                    FOUND = .TRUE.
                          I = I + 1
			        LADDR(I) = LDCH2
                        END IF
		            LDCH2 = LQ(LDCH2)
		         END DO
                     LNEGT = LQ(LNEGT)
	             END DO	     	
C
C                 Output the relevant information
C
                   IF (FOUND) THEN
                      CALL DCHINF (LADDR)
                   ELSE	
C	
                     CHECKX = .FALSE.
  	               CHECKY = .FALSE.
	               FOUND  = .FALSE.
                     I = 0
	               CALL VZERO (LADDR, 2)
	               LKPLU = LQ(JFDST - 2)
                     IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	               DO WHILE (LPOST .NE. 0)
                        LDCH2 = LQ(LPOST - 4)
		            DO WHILE (LDCH2 .NE. 0)
		               CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))		
     &                        .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	                     CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))		
     &                        .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	                     IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
                              I = I + 1
			            LADDR(I) = LDCH2
                           END IF
		               LDCH2 = LQ(LDCH2)
		            END DO
                        LPOST = LQ(LPOST)
                     END DO
C
C                 Output the relevant information
C
                     IF (FOUND) THEN
C
                        CALL DCHINF (LADDR)
C
                     ELSE	
C	
                      CHECKX = .FALSE.
  	                CHECKY = .FALSE.
	                FOUND  = .FALSE.
                      I = 0
	                CALL VZERO (LADDR, 2)
	                LKPLU = LQ(JFDST - 2)
                      IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	                DO WHILE (LPOST .NE. 0)
                        LDCH2 = LQ(LPOST - 5)
		            DO WHILE (LDCH2 .NE. 0)
		               CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))		
     &                        .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	                     CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))		
     &                        .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	                     IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
                              I = I + 1
			            LADDR(I) = LDCH2
                           END IF
		               LDCH2 = LQ(LDCH2)
		            END DO
                        LPOST = LQ(LPOST)
                      END DO
C
C                 Output the relevant information
C
                      IF (FOUND) THEN
                         CALL DCHINF (LADDR)
                      ELSE	
C	
C                    ... else among the residual DCH2 hits
C		
                        CHECKX = .FALSE.
  	                  CHECKY = .FALSE.
	                  FOUND  = .FALSE.
                        I = 0
	                  CALL VZERO (LADDR, 2)
		            LNOIS = LQ(JFDST - 3)
   	                  IF (LNOIS .NE. 0) LDCH2 = LQ(LNOIS - 6)
			      DO WHILE (LDCH2 .NE. 0)
	   	               CHECKX = (Q(LDCH2 +  4) .GT. (XWC - UCLEAS))	
     &                        .AND. (Q(LDCH2 +  4) .LT. (XWC + UCLEAS))
	                     CHECKY = (Q(LDCH2 +  5) .GT. (YWC - UCLEAS))	
     &                        .AND. (Q(LDCH2 +  5) .LT. (YWC + UCLEAS))
	                     IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
                              I = I + 1
			            LADDR(I) = LDCH2
			         END IF
			         LDCH2 = LQ(LDCH2)
			      END DO
C
C                    Output the relevant information
C
                        IF (FOUND) THEN
	                     CALL DCHINF (LADDR)	
	                  ELSE
                           CALL ERRINF
	                  END IF
C
                     END IF
C
                    END IF
C
                   END IF
C
                  END IF
C
                 END IF
C
                END IF
C
               END IF
C
             END IF		
C
C     Cosmic ray trigger:
C
	    ELSE IF (COSM) THEN
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
             I = 0
C	
             LCOSM = LQ(JFDST - 1)
             IF (LCOSM .NE. 0) LDCH2 = LQ(LCOSM - 3)
             CALL VZERO (LADDR, 2)
             DO WHILE (LDCH2 .NE. 0)
                CHECKX = (Q(LDCH2 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                   (Q(LDCH2 + 4) .LT. (XWC + UCLEAS))
	          CHECKY = (Q(LDCH2 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                   (Q(LDCH2 + 5) .LT. (YWC + UCLEAS))		
                IF (CHECKX .AND. CHECKY) THEN
   	             FOUND = .TRUE.
	             I = I + 1
	             LADDR(I) = LDCH2
	          END IF
                LDCH2 = LQ(LDCH2)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL DCHINF (LADDR)
             ELSE
C
C                    ... else among the residual DCH2 hits
C
                CHECKX = .FALSE.
                CHECKY = .FALSE.
                FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
                I = 0
C
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LDCH2 = LQ(LNOIS - 4)
                DO WHILE (LDCH2 .NE. 0)
                     CHECKX = (Q(LDCH2 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                        (Q(LDCH2 + 4) .LT. (XWC + UCLEAS))
                     CHECKY = (Q(LDCH2 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                        (Q(LDCH2 + 5) .LT. (YWC + UCLEAS))		
                     IF (CHECKX .AND. CHECKY) THEN
                        FOUND = .TRUE.
                        I = I + 1
                        LADDR(I) = LDCH2
                     END IF
                     LDCH2 = LQ(LDCH2)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
                   CALL DCHINF (LADDR)	
                ELSE
	             CALL ERRINF
                END IF
C
             END IF
C
C     Bhabha trigger:
C
	    ELSE IF (BHABHA) THEN
C
C                 ... first among the DCH2 hits,
C                     associated to the e- track (if any), ...
C
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
  	       CALL VZERO (LADDR, 2)
	       I = 0
C	
	       LBHAB = LQ(JFDST - 1)
	       IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
                IF (LELEC .NE. 0) LDCH2 = LQ(LELEC - 5)
                DO WHILE (LDCH2 .NE. 0)
	             CHECKX = (Q(LDCH2 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                      (Q(LDCH2 + 4) .LT. (XWC + UCLEAS))
                   CHECKY = (Q(LDCH2 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                      (Q(LDCH2 + 5) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUND = .TRUE.
                      I = I + 1
	                LADDR(I) = LDCH2
                   END IF
                   LDCH2 = LQ(LDCH2)
                END DO
             END IF
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL DCHINF (LADDR)
             ELSE
C
C                 ... else among the DCH2 hits,
C                     associated to the e+ track (if any), ...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
  	          CALL VZERO (LADDR, 2)
	          I = 0
C
	          LBHAB = LQ(JFDST - 1)
	          IF (LBHAB .NE. 0) THEN
                   LPOSI = LQ(LBHAB - 2)
                   IF (LPOSI .NE. 0) LDCH2 = LQ(LPOSI - 5)
                   DO WHILE (LDCH2 .NE. 0)
	                CHECKX = (Q(LDCH2 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                         (Q(LDCH2 + 4) .LT. (XWC + UCLEAS))
                      CHECKY = (Q(LDCH2 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                         (Q(LDCH2 + 5) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
   	                   FOUND = .TRUE.
                         I = I + 1
	                   LADDR(I) = LDCH2
                      END IF
                      LDCH2 = LQ(LDCH2)
                   END DO
                END IF
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                   CALL DCHINF (LADDR)
                ELSE
C
C                    ... else among the residual DCH2 hits
C
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
                  FOUND  = .FALSE.
                  CALL VZERO (LADDR, 2)
                  I = 0
C
                  LNOIS = LQ(JFDST - 2)
                  IF (LNOIS .NE. 0) LDCH2 = LQ(LNOIS - 4)
                  DO WHILE (LDCH2 .NE. 0)
	               CHECKX = (Q(LDCH2 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                        (Q(LDCH2 + 4) .LT. (XWC + UCLEAS))
                     CHECKY = (Q(LDCH2 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                        (Q(LDCH2 + 5) .LT. (YWC + UCLEAS))
                     IF (CHECKX .AND. CHECKY) THEN
   	                  FOUND = .TRUE.
                        I = I + 1
	                  LADDR(I) = LDCH2
                     END IF
                     LDCH2 = LQ(LDCH2)
+REP,FIGRAPH,UDPIXY,135-199.
	               CALL DCHINF (LADDR)
                  ELSE
                     CALL ERRINF
                  END IF
C
                END IF
C
             END IF
C
C     Simplified Bhabha trigger:
C
	    ELSE IF (BABA) THEN
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
             CALL VZERO (LADDR, 2)
             I = 0
C	
             LBABA = LQ(JFDST - 1)
             IF (LBABA .NE. 0) LDCH2 = LQ(LBABA - 3)
             DO WHILE (LDCH2 .NE. 0)
                CHECKX = (Q(LDCH2 + 4) .GT. (XWC - UCLEAS)) .AND.		
     &                   (Q(LDCH2 + 4) .LT. (XWC + UCLEAS))
	          CHECKY = (Q(LDCH2 + 5) .GT. (YWC - UCLEAS)) .AND.		
     &                   (Q(LDCH2 + 5) .LT. (YWC + UCLEAS))		
                IF (CHECKX .AND. CHECKY) THEN
   	             FOUND = .TRUE.
	             I = I + 1
	             LADDR(I) = LDCH2
	          END IF
                LDCH2 = LQ(LDCH2)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL DCHINF (LADDR)
             ELSE
C
C                    ... else among the residual DCH2 hits
C
                CHECKX = .FALSE.
                CHECKY = .FALSE.
                FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
                I = 0
C
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LDCH2 = LQ(LNOIS - 6)
                DO WHILE (LDCH2 .NE. 0)
+REP,FIGRAPH,UDPIXY,210-233.
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
                   CALL DCHINF (LADDR)	
                ELSE
	             CALL ERRINF
                END IF
C
             END IF
C
          END IF	
C
        ELSE IF (RADIUS .GE. RISTRW .AND. RADIUS .LE. RMSTRW) THEN
C
C              Look for the nearest hit to the point selected
C              on the screen, ...
C
          LLOST = 0	
C
C     Hypernuclear trigger:
C
	    IF (HYPE) THEN
C	
C                 ... first among the LOST hits, belonging to a triplet,
C                     associated to the K- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	       DO WHILE (LNEGT .NE. 0)
                LTRIT = LQ(LNEGT - 6)
                DO WHILE (LTRIT .NE.0)
                   LLOST = LQ(LTRIT - 1)
		       DO WHILE (LLOST .NE. 0)
		          CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                  FOUND = .TRUE.
			      LADDR(1) = LLOST
                      END IF
		          LLOST = LQ(LLOST)
                   END DO
                   LTRIT = LQ(LTRIT)
		    END DO
                LNEGT = LQ(LNEGT)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL STRINF (LADDR)
             ELSE	
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LKMIN = LQ(JFDST - 1)
                IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	          DO WHILE (LPOST .NE. 0)
                   LTRIT = LQ(LPOST - 6)
                   DO WHILE (LTRIT .NE. 0)
                      LLOST = LQ(LTRIT - 1)
		          DO WHILE (LLOST .NE. 0)
		             CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))		
     &                      .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                   CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))		
     &                      .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                   IF (CHECKX .AND. CHECKY) THEN
	                      FOUND = .TRUE.
			          LADDR(1) = LLOST
                         END IF
		             LLOST = LQ(LLOST)
                      END DO
                      LTRIT = LQ(LTRIT)
		       END DO
                   LPOST = LQ(LPOST)
                END DO
C
C                 Output the relevant information
C
               IF (FOUND) THEN
                  CALL STRINF (LADDR)
               ELSE	
C	
C                 ... else among the LOST hits, belonging to a triplet,
C                     associated to the K+ track (if any), ...
C	
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
	            FOUND  = .FALSE.
	            CALL VZERO (LADDR, 2)
	            LKPLU = LQ(JFDST - 2)
                  IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	            DO WHILE (LNEGT .NE. 0)
                     LTRIT = LQ(LNEGT - 6)
                     DO WHILE (LTRIT .NE.0)
                        LLOST = LQ(LTRIT - 1)
		            DO WHILE (LLOST .NE. 0)
		              CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))		
     &                       .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                    CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))		
     &                       .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                    IF (CHECKX .AND. CHECKY) THEN
	                      FOUND = .TRUE.
			          LADDR(1) = LLOST
                          END IF
		              LLOST = LQ(LLOST)
                        END DO
                        LTRIT = LQ(LTRIT)
		         END DO
                     LNEGT = LQ(LNEGT)
                  END DO	     	
C
C                 Output the relevant information
C
                  IF (FOUND) THEN
                     CALL STRINF (LADDR)
                  ELSE	
C		
                     CHECKX = .FALSE.
  	               CHECKY = .FALSE.
	               FOUND  = .FALSE.
	               CALL VZERO (LADDR, 2)
	               LKPLU = LQ(JFDST - 2)
                     IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	               DO WHILE (LPOST .NE. 0)
                        LTRIT = LQ(LPOST - 6)
                        DO WHILE (LTRIT .NE.0)
                           LLOST = LQ(LTRIT - 1)
		               DO WHILE (LLOST .NE. 0)
		                 CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))
     &                          .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))
     &                          .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                       IF (CHECKX .AND. CHECKY) THEN
	                         FOUND = .TRUE.
			             LADDR(1) = LLOST
                             END IF
		                 LLOST = LQ(LLOST)
                           END DO
                           LTRIT = LQ(LTRIT)
		            END DO
                        LPOST = LQ(LPOST)
                     END DO
C
C                 Output the relevant information
C
                     IF (FOUND) THEN
                        CALL STRINF (LADDR)
                     ELSE	
C		
C                    ... else among the LOST hits, belonging to
C                        an "isolated" triplet...
C
                        CHECKX = .FALSE.
  	                  CHECKY = .FALSE.
	                  FOUND  = .FALSE.
	                  CALL VZERO (LADDR, 2)
		            LNOIS = LQ(JFDST - 3)
   	                  IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 10)
                        DO WHILE (LTRIT .NE. 0)
                           LLOST = LQ(LTRIT - 1)
			         DO WHILE (LLOST .NE. 0)
	   	                 CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))	
     &                          .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))	
     &                          .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                        IF (CHECKX .AND. CHECKY) THEN
	                          FOUND = .TRUE.
			              LADDR(1) = LLOST
			            END IF
			            LLOST = LQ(LLOST)
                           END DO
                           LTRIT = LQ(LTRIT)
			      END DO
C
C                    Output the relevant information
C
                        IF (FOUND) THEN
C
	                     CALL STRINF (LADDR)	
C
	                  ELSE
C
C                    ... else among the residual LOST hits
C
                          CHECKX = .FALSE.
  	                    CHECKY = .FALSE.
	                    FOUND  = .FALSE.
	                    CALL VZERO (LADDR, 2)
		              LNOIS = LQ(JFDST - 3)
   	                    IF (LNOIS .NE. 0) LLOST = LQ(LNOIS - 7)
			        DO WHILE (LLOST .NE. 0)
	   	                CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))	
     &                         .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))	
     &                         .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
			            LADDR(1) = LLOST
			          END IF
			          LLOST = LQ(LLOST)
			        END DO
C
C                    Output the relevant information
C
                          IF (FOUND) THEN
	                       CALL STRINF (LADDR)	
	                    ELSE
                             CALL ERRINF
	                    END IF
C
                       END IF
C
                    END IF
C
                  END IF
C
                END IF
C
             END IF		
C
C     Cosmic ray trigger:
+REP,FIGRAPH,UDPIXY,240-334.
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LCOSM = LQ(JFDST - 1)
	       IF (LCOSM .NE. 0) LTRIT = LQ(LCOSM - 2)
             DO WHILE (LTRIT .NE. 0)
                LLOST = LQ(LTRIT - 1)
                DO WHILE (LLOST .NE. 0)
	             CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))
     &                .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))		
                   CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))
     &                .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUND = .TRUE.
	                LADDR(1) = LLOST
                   END IF
                   LLOST = LQ(LLOST)
		    END DO
		    LTRIT = LQ(LTRIT)
		 END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL STRINF (LADDR)
             ELSE
C
C                    ... else among the residual LOST hits,
C                        belonging to an "isolated" triplet, ...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 8)
                DO WHILE (LTRIT .NE. 0)
                   LLOST = LQ(LTRIT - 1)
                   DO WHILE (LLOST .NE. 0)
	                CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))
     &                   .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))
     &                   .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
                         FOUND = .TRUE.
                         LADDR(1) = LLOST
                      END IF
                      LLOST = LQ(LLOST)
                   END DO
                   LTRIT = LQ(LTRIT)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
                   CALL STRINF (LADDR)
                ELSE
C
C                       ... else among the residual LOST hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
                   FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)	
                   LNOIS = LQ(JFDST - 2)
                   IF (LNOIS .NE. 0) LLOST = LQ(LNOIS - 5)
                   DO WHILE (LLOST .NE. 0)
	                CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))
     &                    .AND.(Q(LLOST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))
     &                    .AND.(Q(LLOST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
                         FOUND = .TRUE.
  	                   LADDR(1) = LLOST
                      END IF
                      LLOST = LQ(LLOST)
                   END DO
C
C                       Output the relevant information
C
                   IF (FOUND) THEN
	                CALL STRINF (LADDR)
	             ELSE
                      CALL ERRINF
	             END IF
C
                END IF
C
             END IF
C
C     Bhabha trigger:
C
	    ELSE IF (BHABHA) THEN
C	
C                 ... first among the LOST hits, belonging to a triplet,
C                     associated to the e- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBHAB = LQ(JFDST - 1)
             IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
	          IF (LELEC .NE. 0) LTRIT = LQ(LELEC - 6)
                DO WHILE (LTRIT .NE.0)
                   LLOST = LQ(LTRIT - 1)
		       DO WHILE (LLOST .NE. 0)
		          CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                  FOUND = .TRUE.
			      LADDR(1) = LLOST
                      END IF
		          LLOST = LQ(LLOST)
                   END DO
                   LTRIT = LQ(LTRIT)
		    END DO
             END IF
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL STRINF (LADDR)
             ELSE	
C	
C                 ... else among the LOST hits, belonging to a triplet,
C                     associated to the K+ track (if any), ...
C	
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
	            FOUND  = .FALSE.
	            CALL VZERO (LADDR, 2)
	            LBHAB = LQ(JFDST - 1)
                  IF (LBHAB .NE. 0) THEN
                     LPOSI = LQ(LBHAB - 2)
	               IF (LPOSI .NE. 0) LTRIT = LQ(LPOSI - 6)
                     DO WHILE (LTRIT .NE.0)
                        LLOST = LQ(LTRIT - 1)
		            DO WHILE (LLOST .NE. 0)
		               CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))		
     &                        .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                     CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))		
     &                        .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                     IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
			            LADDR(1) = LLOST
                           END IF
		               LLOST = LQ(LLOST)
                        END DO
                        LTRIT = LQ(LTRIT)
		         END DO
	            END IF	     	
C
C                 Output the relevant information
C
                  IF (FOUND) THEN
                     CALL STRINF (LADDR)
                  ELSE	
C		
C                    ... else among the LOST hits, belonging to
C                        an "isolated" triplet...
C
                        CHECKX = .FALSE.
  	                  CHECKY = .FALSE.
	                  FOUND  = .FALSE.
	                  CALL VZERO (LADDR, 2)
		            LNOIS = LQ(JFDST - 2)
   	                  IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 8)
                        DO WHILE (LTRIT .NE. 0)
                           LLOST = LQ(LTRIT - 1)
			         DO WHILE (LLOST .NE. 0)
	   	                 CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))	
     &                          .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))	
     &                          .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                        IF (CHECKX .AND. CHECKY) THEN
	                          FOUND = .TRUE.
			              LADDR(1) = LLOST
			            END IF
			            LLOST = LQ(LLOST)
                           END DO
                           LTRIT = LQ(LTRIT)
			      END DO
C
C                    Output the relevant information
C
                        IF (FOUND) THEN
	                     CALL STRINF (LADDR)	
	                  ELSE
C
C                    ... else among the residual LOST hits
C
                          CHECKX = .FALSE.
  	                    CHECKY = .FALSE.
	                    FOUND  = .FALSE.
	                    CALL VZERO (LADDR, 2)
		              LNOIS = LQ(JFDST - 2)
   	                    IF (LNOIS .NE. 0) LLOST = LQ(LNOIS - 5)
			        DO WHILE (LLOST .NE. 0)
	   	                CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))	
     &                         .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))	
     &                         .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
			            LADDR(1) = LLOST
			          END IF
			          LLOST = LQ(LLOST)
			        END DO
C
C                    Output the relevant information
C
                          IF (FOUND) THEN
	                       CALL STRINF (LADDR)	
	                    ELSE
                             CALL ERRINF
	                    END IF
C
                       END IF
C
                  END IF
C
             END IF		
C
C     Simplified Bhabha trigger:
C
	    ELSE IF (BABA) THEN
C
C                 ... first among the LOST hits, belonging to a triplet,
C                     associated to a track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBABA = LQ(JFDST - 1)
	       IF (LBABA .NE. 0) LTRIT = LQ(LBABA - 4)
             DO WHILE (LTRIT .NE. 0)
                LLOST = LQ(LTRIT - 1)
                DO WHILE (LLOST .NE. 0)
	             CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))
     &                .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))		
                   CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))
     &                .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUND = .TRUE.
	                LADDR(1) = LLOST
                   END IF
                   LLOST = LQ(LLOST)
		    END DO
		    LTRIT = LQ(LTRIT)
		 END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL STRINF (LADDR)
             ELSE
C
C                    ... else among the residual LOST hits,
C                        belonging to an "isolated" triplet, ...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 10)
                DO WHILE (LTRIT .NE. 0)
                   LLOST = LQ(LTRIT - 1)
                   DO WHILE (LLOST .NE. 0)
	                CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))
     &                   .AND. (Q(LLOST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))
     &                   .AND. (Q(LLOST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
                         FOUND = .TRUE.
                         LADDR(1) = LLOST
                      END IF
                      LLOST = LQ(LLOST)
                   END DO
                   LTRIT = LQ(LTRIT)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
                   CALL STRINF (LADDR)
                ELSE
C
C                       ... else among the residual LOST hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
                   FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)
                   LNOIS = LQ(JFDST - 2)
                   IF (LNOIS .NE. 0) LLOST = LQ(LNOIS - 7)
                   DO WHILE (LLOST .NE. 0)
	                CHECKX = (Q(LLOST + 5) .GT. (XWC - UCLEAS))
     &                    .AND.(Q(LLOST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LLOST + 6) .GT. (YWC - UCLEAS))
     &                    .AND.(Q(LLOST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
                         FOUND = .TRUE.
  	                   LADDR(1) = LLOST
                      END IF
                      LLOST = LQ(LLOST)
                   END DO
C
C                       Output the relevant information
C
                   IF (FOUND) THEN
	                CALL STRINF (LADDR)
	             ELSE
                      CALL ERRINF
	             END IF
C
                END IF
C
             END IF
C
          END IF
C
        ELSE IF (RADIUS .GE. RMSTRW .AND. RADIUS .LE. RESTRW) THEN
C
C
C              Look for the nearest hit to the point selected
C              on the screen, ...
C
C     Hypernuclear trigger:
C
	    IF (HYPE) THEN
C	
C                 ... first among the RIST hits, belonging to a triplet,
C                     associated to the K- track (if any), ...
C	
             LRIST = 0
             LLEST = 0
C		
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUNDR  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	       DO WHILE (LNEGT .NE. 0)
                LTRIT = LQ(LNEGT - 6)
                DO WHILE (LTRIT .NE.0)
                   LRIST = LQ(LTRIT - 2)
		       DO WHILE (LRIST .NE. 0)
		          CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                  FOUNDR = .TRUE.
			      LADDR(1) = LRIST
                      END IF
		          LRIST = LQ(LRIST)
                   END DO
                   LTRIT = LQ(LTRIT)
		    END DO
                LNEGT = LQ(LNEGT)
             END DO
C
C                 Output the relevant information
C
             IF (FOUNDR) THEN
                CALL STRINF (LADDR)
             ELSE	
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUNDR  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LKMIN = LQ(JFDST - 1)
                IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	          DO WHILE (LPOST .NE. 0)
                   LTRIT = LQ(LPOST - 6)
                   DO WHILE (LTRIT .NE. 0)
                      LRIST = LQ(LTRIT - 2)
		          DO WHILE (LRIST .NE. 0)
		            CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))		
     &                     .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                  CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))		
     &                     .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                  IF (CHECKX .AND. CHECKY) THEN
	                    FOUNDR = .TRUE.
			        LADDR(1) = LRIST
                        END IF
		            LRIST = LQ(LRIST)
                     END DO
                     LTRIT = LQ(LTRIT)
		      END DO
                  LPOST = LQ(LPOST)
                END DO
C
C                 Output the relevant information
C
                IF (FOUNDR) THEN
                   CALL STRINF (LADDR)
                ELSE	
C	
C                 ... else among the RIST hits, belonging to a triplet,
C                     associated to the K+ track (if any), ...
C	
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
	            FOUNDR  = .FALSE.
	            CALL VZERO (LADDR, 2)
	            LKPLU = LQ(JFDST - 2)
                  IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	            DO WHILE (LNEGT .NE. 0)
                     LTRIT = LQ(LNEGT - 6)
                     DO WHILE (LTRIT .NE.0)
                        LRIST = LQ(LTRIT - 2)
		            DO WHILE (LRIST .NE. 0)
		              CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))		
     &                       .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                    CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))		
     &                       .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                    IF (CHECKX .AND. CHECKY) THEN
	                      FOUNDR = .TRUE.
			          LADDR(1) = LRIST
                          END IF
		              LRIST = LQ(LRIST)
                       END DO
                       LTRIT = LQ(LTRIT)
		        END DO
                    LNEGT = LQ(LNEGT)
	            END DO	     	
C
C                 Output the relevant information
C
                  IF (FOUNDR) THEN
                     CALL STRINF (LADDR)
                  ELSE	
C		
                     CHECKX = .FALSE.
  	               CHECKY = .FALSE.
	               FOUNDR  = .FALSE.
	               CALL VZERO (LADDR, 2)
	               LKPLU = LQ(JFDST - 2)
                     IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	               DO WHILE (LPOST .NE. 0)
                        LTRIT = LQ(LPOST - 6)
                        DO WHILE (LTRIT .NE.0)
                           LRIST = LQ(LTRIT - 2)
		               DO WHILE (LRIST .NE. 0)
		                 CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))
     &                          .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))
     &                          .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                       IF (CHECKX .AND. CHECKY) THEN
	                         FOUNDR = .TRUE.
			             LADDR(1) = LRIST
                             END IF
		                 LRIST = LQ(LRIST)
                          END DO
                          LTRIT = LQ(LTRIT)
		           END DO
                       LPOST = LQ(LPOST)
                     END DO
C
C                 Output the relevant information
C
                     IF (FOUNDR) THEN
C
                        CALL STRINF (LADDR)
C
                     ELSE	
C		
C                    ... else among the RIST hits, belonging to
C                        an "isolated" triplet...
C
                        CHECKX = .FALSE.
  	                  CHECKY = .FALSE.
	                  FOUNDR  = .FALSE.
	                  CALL VZERO (LADDR, 2)
		            LNOIS = LQ(JFDST - 3)
   	                  IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 10)
                        DO WHILE (LTRIT .NE. 0)
                           LRIST = LQ(LTRIT - 2)
			         DO WHILE (LRIST .NE. 0)
	   	                 CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))	
     &                          .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))	
     &                          .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                       IF (CHECKX .AND. CHECKY) THEN
	                         FOUNDR = .TRUE.
			             LADDR(1) = LRIST
			           END IF
			           LRIST = LQ(LRIST)
                           END DO
                           LTRIT = LQ(LTRIT)
			      END DO
C
C                    Output the relevant information
C
                        IF (FOUNDR) THEN
	                     CALL STRINF (LADDR)	
	                  ELSE
C
C                    ... else among the residual RIST hits
C
                          CHECKX = .FALSE.
  	                    CHECKY = .FALSE.
	                    FOUNDR  = .FALSE.
	                    CALL VZERO (LADDR, 2)
		              LNOIS = LQ(JFDST - 3)
   	                    IF (LNOIS .NE. 0) LRIST = LQ(LNOIS - 8)
			        DO WHILE (LRIST .NE. 0)
	   	                CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))	
     &                         .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))	
     &                         .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUNDR = .TRUE.
			            LADDR(1) = LRIST
			          END IF
			          LRIST = LQ(LRIST)
			        END DO
C
C                    Output the relevant information
C
                          IF (FOUNDR) CALL STRINF (LADDR)	
C
                        END IF
C
                     END IF
C
                  END IF
C
                END IF
C
             END IF		
C
C                 ... first among the LEST hits, belonging to a triplet,
C                     associated to the K- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUNDL  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	       DO WHILE (LNEGT .NE. 0)
                LTRIT = LQ(LNEGT - 6)
                DO WHILE (LTRIT .NE.0)
                   LLEST = LQ(LTRIT - 3)
		       DO WHILE (LLEST .NE. 0)
		          CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                  FOUNDL = .TRUE.
			      LADDR(1) = LLEST
                      END IF
		          LLEST = LQ(LLEST)
                   END DO
                   LTRIT = LQ(LTRIT)
		    END DO
                LNEGT = LQ(LNEGT)
             END DO
C
C                 Output the relevant information
C
             IF (FOUNDL) THEN
                CALL STRINF (LADDR)
             ELSE	
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUNDL  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LKMIN = LQ(JFDST - 1)
                IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	          DO WHILE (LPOST .NE. 0)
                   LTRIT = LQ(LPOST - 6)
                   DO WHILE (LTRIT .NE. 0)
                      LLEST = LQ(LTRIT - 3)
		          DO WHILE (LLEST .NE. 0)
		            CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))		
     &                     .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                  CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))		
     &                     .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                  IF (CHECKX .AND. CHECKY) THEN
	                    FOUNDL = .TRUE.
			        LADDR(1) = LLEST
                        END IF
		            LLEST = LQ(LLEST)
                     END DO
                     LTRIT = LQ(LTRIT)
		      END DO
                  LPOST = LQ(LPOST)
                END DO
C
C                 Output the relevant information
C
               IF (FOUNDL) THEN
                  CALL STRINF (LADDR)
               ELSE	
C	
C                 ... else among the LEST hits, belonging to a triplet,
C                     associated to the K+ track (if any), ...
C	
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
	            FOUNDL  = .FALSE.
	            CALL VZERO (LADDR, 2)
	            LKPLU = LQ(JFDST - 2)
                  IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	            DO WHILE (LNEGT .NE. 0)
                     LTRIT = LQ(LNEGT - 6)
                     DO WHILE (LTRIT .NE.0)
                        LLEST = LQ(LTRIT - 3)
		            DO WHILE (LLEST .NE. 0)
		              CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))		
     &                       .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                    CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))		
     &                       .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                    IF (CHECKX .AND. CHECKY) THEN
	                      FOUNDL = .TRUE.
			          LADDR(1) = LLEST
                          END IF
		              LLEST = LQ(LLEST)
                       END DO
                       LTRIT = LQ(LTRIT)
		        END DO
                    LNEGT = LQ(LNEGT)
	            END DO	     	
C
C                 Output the relevant information
C
                  IF (FOUNDL) THEN
                     CALL STRINF (LADDR)
                  ELSE	
C		
                     CHECKX = .FALSE.
  	               CHECKY = .FALSE.
	               FOUNDL  = .FALSE.
	               CALL VZERO (LADDR, 2)
	               LKPLU = LQ(JFDST - 2)
                     IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	               DO WHILE (LPOST .NE. 0)
                        LTRIT = LQ(LPOST - 6)
                        DO WHILE (LTRIT .NE.0)
                           LLEST = LQ(LTRIT - 3)
		               DO WHILE (LLEST .NE. 0)
		                 CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))
     &                          .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))
     &                          .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                       IF (CHECKX .AND. CHECKY) THEN
	                         FOUNDL = .TRUE.
			             LADDR(1) = LLEST
                             END IF
		                 LLEST = LQ(LLEST)
                          END DO
                          LTRIT = LQ(LTRIT)
		           END DO
                       LPOST = LQ(LPOST)
                     END DO
C
C                 Output the relevant information
C
                     IF (FOUNDL) THEN
                        CALL STRINF (LADDR)
                     ELSE	
C		
C                    ... else among the LEST hits, belonging to
C                        an "isolated" triplet...
C		
                        CHECKX = .FALSE.
  	                  CHECKY = .FALSE.
	                  FOUNDL  = .FALSE.
	                  CALL VZERO (LADDR, 2)
		            LNOIS = LQ(JFDST - 3)
   	                  IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 10)
                        DO WHILE (LTRIT .NE. 0)
                           LLEST = LQ(LTRIT - 3)
			         DO WHILE (LLEST .NE. 0)
	   	                 CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))	
     &                          .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))	
     &                          .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                       IF (CHECKX .AND. CHECKY) THEN
	                         FOUNDL = .TRUE.
			             LADDR(1) = LLEST
			           END IF
			           LLEST = LQ(LLEST)
                           END DO
                           LTRIT = LQ(LTRIT)
			      END DO
C
C                    Output the relevant information
C
                        IF (FOUNDL) THEN
	                     CALL STRINF (LADDR)	
	                  ELSE
C
C                    ... else among the residual LEST hits
C		
                          CHECKX = .FALSE.
  	                    CHECKY = .FALSE.
	                    FOUNDL  = .FALSE.
	                    CALL VZERO (LADDR, 2)
		              LNOIS = LQ(JFDST - 3)
   	                    IF (LNOIS .NE. 0) LLEST = LQ(LNOIS - 9)
			        DO WHILE (LLEST .NE. 0)
	   	                CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))	
     &                         .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))	
     &                         .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUNDL = .TRUE.
			            LADDR(1) = LLEST
			          END IF
			          LLEST = LQ(LLEST)
			        END DO
C
C                    Output the relevant information
C
                          IF (FOUNDL) CALL STRINF (LADDR)	
C
                       END IF
C
                    END IF
C
                  END IF
C
                END IF
C
             END IF		
C
C     Cosmic ray trigger:
C
	    ELSE IF (COSM) THEN
C
C              ... first among the RIST hits, belonging to a triplet,
C                  associated to a track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUNDR = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LCOSM = LQ(JFDST - 1)
	       IF (LCOSM .NE. 0) LTRIT = LQ(LCOSM - 2)
		 DO WHILE (LTRIT .NE. 0)
                LRIST = LQ(LTRIT - 2)
		    DO WHILE (LRIST .NE. 0)
	             CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))
     &                .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))		
                   CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))
     &                .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUNDR = .TRUE.
	                LADDR(1) = LRIST
                   END IF
                   LRIST = LQ(LRIST)
		    END DO
                LTRIT = LQ(LTRIT)
		 END DO
C
C                 Output the relevant information
C
             IF (FOUNDR) THEN
                CALL STRINF (LADDR)
             ELSE
C
C                 ... else among the residual RIST hits,
C                     belonging to an "isolated" triplet, ...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
  	          FOUNDR = .FALSE.
	          CALL VZERO (LADDR, 2)
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 8)
                DO WHILE (LTRIT .NE. 0)
                   LRIST = LQ(LTRIT - 2)
                   DO WHILE (LRIST .NE. 0)
	                CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))
     &                   .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))
     &                   .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
   	                   FOUNDR = .TRUE.
	                   LADDR(1) = LRIST
                      END IF
                      LRIST = LQ(LRIST)
                   END DO
                   LTRIT = LQ(LTRIT)
                END DO
C
C                    Output the relevant information
C
                IF (FOUNDR) THEN
                   CALL STRINF (LADDR)
                ELSE
C
C                       ... else among the residual RIST hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUNDR = .FALSE.
	             CALL VZERO (LADDR, 2)
                   LNOIS = LQ(JFDST - 2)
                   IF (LNOIS .NE. 0) LRIST = LQ(LNOIS - 6)
                   DO WHILE (LRIST .NE. 0)
	                CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))
     &                   .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))
     &                   .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
   	                   FOUNDR = .TRUE.
	                   LADDR(1) = LRIST
                      END IF
                      LRIST = LQ(LRIST)
                   END DO
C
C                       Output the relevant information
C
                   IF (FOUNDR) CALL STRINF (LADDR)
C	
                END IF
C
             END IF
C
C                 ... then among the LEST hits, belonging to a triplet,
C                     associated to a track (if any), ...
C
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUNDL = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LCOSM = LQ(JFDST - 1)
	       IF (LCOSM .NE. 0) LTRIT = LQ(LCOSM - 2)
		 DO WHILE (LTRIT .NE. 0)
		    LLEST = LQ(LTRIT - 3)
		    DO WHILE (LLEST .NE. 0)
	             CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))
     &                .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))		
                   CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))
     &                .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUNDL = .TRUE.
	                LADDR(1) = LLEST
                   END IF
                   LLEST = LQ(LLEST)
		    END DO
                LTRIT = LQ(LTRIT)
		 END DO
C
C                 Output the relevant information
C
             IF (FOUNDL) THEN
                CALL STRINF (LADDR)
             ELSE
C
C                 ... else among the residual LEST hits,
C                     belonging to an "isolated" triplet, ...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
  	          FOUNDL = .FALSE.
	          CALL VZERO (LADDR, 2)
                   LNOIS = LQ(JFDST - 2)
                   IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 8)
                   DO WHILE (LTRIT .NE. 0)
                      LLEST = LQ(LTRIT - 3)
		          DO WHILE (LLEST .NE. 0)
	                   CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))
     &                      .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))		
                         CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))
     &                      .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
                         IF (CHECKX .AND. CHECKY) THEN
   	                      FOUNDL = .TRUE.
	                      LADDR(1) = LLEST
                         END IF
                         LLEST = LQ(LLEST)
		          END DO
                      LTRIT = LQ(LTRIT)
		       END DO
C
C                    Output the relevant information
C
                   IF (FOUNDL) THEN
                      CALL STRINF (LADDR)
                   ELSE
C
C                       ... else among the residual LEST hits
C
                     CHECKX = .FALSE.
  	               CHECKY = .FALSE.
	               FOUNDL = .FALSE.
                     CALL VZERO (LADDR, 2)
                     LNOIS = LQ(JFDST - 2)
	               IF (LNOIS .NE. 0) LLEST = LQ(LNOIS - 7)
                     DO WHILE (LLEST .NE. 0)
	                  CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))
     &                     .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))		
                        CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))
     &                     .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
                        IF (CHECKX .AND. CHECKY) THEN
                           FOUNDL = .TRUE.
                           LADDR(1) = LLEST
                        END IF
                        LLEST = LQ(LLEST)
		         END DO
C
C                       Output the relevant information
C
                     IF (FOUNDL) CALL STRINF (LADDR)
+REP,FIGRAPH,UDPIXY,340-572.
C     Bhabha trigger:
C
	    ELSE IF (BHABHA) THEN
C	
C                 ... first among the RIST hits, belonging to a triplet,
C                     associated to the e- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUNDR  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBHAB = LQ(JFDST - 1)
             IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
	          IF (LELEC .NE. 0) LTRIT = LQ(LELEC - 6)
                DO WHILE (LTRIT .NE.0)
                   LRIST = LQ(LTRIT - 2)
		       DO WHILE (LRIST .NE. 0)
		          CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                  FOUNDR = .TRUE.
			      LADDR(1) = LRIST
                      END IF
		          LRIST = LQ(LRIST)
                   END DO
                   LTRIT = LQ(LTRIT)
		    END DO
             END IF
C
C                 Output the relevant information
C
             IF (FOUNDR) THEN
                CALL STRINF (LADDR)
             ELSE	
C	
C                 ... else among the RIST hits, belonging to a triplet,
C                     associated to the e+ track (if any), ...
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUNDR  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LBHAB = LQ(JFDST - 1)
                IF (LBHAB .NE. 0) THEN
                   LPOSI = LQ(LBHAB - 2)
	             IF (LPOSI .NE. 0) LTRIT = LQ(LPOSI - 6)
                   DO WHILE (LTRIT .NE.0)
                      LRIST = LQ(LTRIT - 2)
		          DO WHILE (LRIST .NE. 0)
		             CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))		
     &                      .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                   CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))		
     &                      .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                   IF (CHECKX .AND. CHECKY) THEN
	                      FOUNDR = .TRUE.
                            LADDR(1) = LRIST
                         END IF
                         LRIST = LQ(LRIST)
                      END DO
                      LTRIT = LQ(LTRIT)
		       END DO
	          END IF	     	
C
C                 Output the relevant information
C
                IF (FOUNDR) THEN
                   CALL STRINF (LADDR)
                ELSE	
C		
C                    ... else among the RIST hits, belonging to
C                        an "isolated" triplet...
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUNDR  = .FALSE.
	             CALL VZERO (LADDR, 2)
		       LNOIS = LQ(JFDST - 2)
   	             IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 8)
                   DO WHILE (LTRIT .NE. 0)
                      LRIST = LQ(LTRIT - 2)
			    DO WHILE (LRIST .NE. 0)
	   	             CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))	
     &                      .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                   CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))	
     &                      .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                   IF (CHECKX .AND. CHECKY) THEN
	                      FOUNDR = .TRUE.
			          LADDR(1) = LRIST
			       END IF
			       LRIST = LQ(LRIST)
                      END DO
                      LTRIT = LQ(LTRIT)
                   END DO
C
C                    Output the relevant information
C
                   IF (FOUNDR) THEN
	                CALL STRINF (LADDR)	
	             ELSE
C
C                    ... else among the residual RIST hits
C
                      CHECKX = .FALSE.
  	                CHECKY = .FALSE.
	                FOUNDR  = .FALSE.
	                CALL VZERO (LADDR, 2)
		          LNOIS = LQ(JFDST - 2)
   	                IF (LNOIS .NE. 0) LRIST = LQ(LNOIS - 6)
			    DO WHILE (LRIST .NE. 0)
	   	             CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))	
     &                      .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))
	                   CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))	
     &                      .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
	                   IF (CHECKX .AND. CHECKY) THEN
	                      FOUNDR = .TRUE.
			          LADDR(1) = LRIST
			       END IF
			       LRIST = LQ(LRIST)
			    END DO
C
C                    Output the relevant information
C
                      IF (FOUNDR) CALL STRINF (LADDR)	
C
                   END IF
C
                END IF
C
             END IF		
C
C                 ... first among the LEST hits, belonging to a triplet,
C                     associated to the e- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUNDL  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBHAB = LQ(JFDST - 1)
             IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
	          IF (LELEC .NE. 0) LTRIT = LQ(LELEC - 6)
                DO WHILE (LTRIT .NE.0)
                   LLEST = LQ(LTRIT - 3)
		       DO WHILE (LLEST .NE. 0)
		          CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                  FOUNDL = .TRUE.
			      LADDR(1) = LLEST
                     END IF
		         LLEST = LQ(LLEST)
                  END DO
                  LTRIT = LQ(LTRIT)
		    END DO
             END IF
C
C                 Output the relevant information
C
             IF (FOUNDL) THEN
                CALL STRINF (LADDR)
             ELSE	
C	
C                 ... else among the LEST hits, belonging to a triplet,
C                     associated to the e+ track (if any), ...
C	
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
	            FOUNDL  = .FALSE.
	            CALL VZERO (LADDR, 2)
	            LBHAB = LQ(JFDST - 1)
                  IF (LBHAB .NE. 0) THEN
                    LPOSI = LQ(LBHAB - 2)
	              IF (LPOSI .NE. 0) LTRIT = LQ(LPOSI - 6)
                    DO WHILE (LTRIT .NE.0)
                       LLEST = LQ(LTRIT - 3)
		           DO WHILE (LLEST .NE. 0)
		              CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))		
     &                       .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                    CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))		
     &                       .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                    IF (CHECKX .AND. CHECKY) THEN
	                       FOUNDL = .TRUE.
			           LADDR(1) = LLEST
                          END IF
		              LLEST = LQ(LLEST)
                       END DO
                       LTRIT = LQ(LTRIT)
		        END DO
	            END IF	     	
C
C                 Output the relevant information
C
                  IF (FOUNDL) THEN
                     CALL STRINF (LADDR)
                  ELSE	
C		
C                    ... else among the LEST hits, belonging to
C                        an "isolated" triplet...
C		
                     CHECKX = .FALSE.
  	               CHECKY = .FALSE.
	               FOUNDL  = .FALSE.
	               CALL VZERO (LADDR, 2)
		         LNOIS = LQ(JFDST - 2)
   	               IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 8)
                        DO WHILE (LTRIT .NE. 0)
                           LLEST = LQ(LTRIT - 3)
			         DO WHILE (LLEST .NE. 0)
	   	                 CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))	
     &                          .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))	
     &                          .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                       IF (CHECKX .AND. CHECKY) THEN
	                         FOUNDL = .TRUE.
			             LADDR(1) = LLEST
			           END IF
			           LLEST = LQ(LLEST)
                           END DO
                           LTRIT = LQ(LTRIT)
			      END DO
C
C                    Output the relevant information
C
                        IF (FOUNDL) THEN
	                     CALL STRINF (LADDR)	
	                  ELSE
C
C                    ... else among the residual LEST hits
C		
                          CHECKX = .FALSE.
  	                    CHECKY = .FALSE.
	                    FOUNDL  = .FALSE.
	                    CALL VZERO (LADDR, 2)
		              LNOIS = LQ(JFDST - 2)
   	                    IF (LNOIS .NE. 0) LLEST = LQ(LNOIS - 7)
			        DO WHILE (LLEST .NE. 0)
	   	                CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))	
     &                         .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))	
     &                         .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUNDL = .TRUE.
			            LADDR(1) = LLEST
			          END IF
			          LLEST = LQ(LLEST)
			        END DO
C
C                    Output the relevant information
C
                          IF (FOUNDL) CALL STRINF (LADDR)	
C
                       END IF
C
                  END IF
C
             END IF		
C
C     Simplified Bhabha trigger:
C
	    ELSE IF (BABA) THEN
C
C              ... first among the RIST hits, belonging to a triplet,
C                  associated to a track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUNDR = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBABA = LQ(JFDST - 1)
	       IF (LBABA .NE. 0) LTRIT = LQ(LBABA - 4)
		 DO WHILE (LTRIT .NE. 0)
                LRIST = LQ(LTRIT - 2)
		    DO WHILE (LRIST .NE. 0)
	             CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))
     &                .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))		
                   CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))
     &                .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUNDR = .TRUE.
	                LADDR(1) = LRIST
                   END IF
                   LRIST = LQ(LRIST)
		    END DO
                LTRIT = LQ(LTRIT)
             END DO
C
C                 Output the relevant information
C
             IF (FOUNDR) THEN
                  CALL STRINF (LADDR)
             ELSE
C
C                 ... else among the residual RIST hits,
C                     belonging to an "isolated" triplet, ...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
  	          FOUNDR = .FALSE.
	          CALL VZERO (LADDR, 2)
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 10)
                DO WHILE (LTRIT .NE. 0)
                   LRIST = LQ(LTRIT - 2)
                   DO WHILE (LRIST .NE. 0)
	                CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))
     &                   .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))
     &                   .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
   	                   FOUNDR = .TRUE.
	                   LADDR(1) = LRIST
                      END IF
                      LRIST = LQ(LRIST)
                   END DO
                   LTRIT = LQ(LTRIT)
                END DO
C
C                    Output the relevant information
C
                IF (FOUNDR) THEN
                   CALL STRINF (LADDR)
                ELSE
C
C                       ... else among the residual RIST hits
C	
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUNDR = .FALSE.
	             CALL VZERO (LADDR, 2)
                   LNOIS = LQ(JFDST - 2)
                   IF (LNOIS .NE. 0) LRIST = LQ(LNOIS - 8)
                   DO WHILE (LRIST .NE. 0)
	                CHECKX = (Q(LRIST + 5) .GT. (XWC - UCLEAS))
     &                   .AND. (Q(LRIST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LRIST + 6) .GT. (YWC - UCLEAS))
     &                   .AND. (Q(LRIST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
   	                   FOUNDR = .TRUE.
	                   LADDR(1) = LRIST
                      END IF
                      LRIST = LQ(LRIST)
                   END DO
C
C                       Output the relevant information
C
                   IF (FOUNDR) CALL STRINF (LADDR)
C	
                END IF
C
             END IF
C
C                 ... then among the LEST hits, belonging to a triplet,
C                     associated to a track (if any), ...
C
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUNDL = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBABA = LQ(JFDST - 1)
	       IF (LBABA .NE. 0) LTRIT = LQ(LBABA - 4)
		 DO WHILE (LTRIT .NE. 0)
		    LLEST = LQ(LTRIT - 3)
		    DO WHILE (LLEST .NE. 0)
	             CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))
     &                .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))		
                   CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))
     &                .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
                   IF (CHECKX .AND. CHECKY) THEN
   	                FOUNDL = .TRUE.
	                LADDR(1) = LLEST
                   END IF
                   LLEST = LQ(LLEST)
                END DO
                LTRIT = LQ(LTRIT)
		 END DO
C
C                 Output the relevant information
C
             IF (FOUNDL) THEN
                CALL STRINF (LADDR)
             ELSE
C
C                 ... else among the residual LEST hits,
C                     belonging to an "isolated" triplet, ...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
  	          FOUNDL = .FALSE.
	          CALL VZERO (LADDR, 2)
                LNOIS = LQ(JFDST - 2)
                IF (LNOIS .NE. 0) LTRIT = LQ(LNOIS - 10)
                DO WHILE (LTRIT .NE. 0)
                   LLEST = LQ(LTRIT - 3)
		       DO WHILE (LLEST .NE. 0)
	                CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))
     &                   .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))
     &                   .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
   	                   FOUNDL = .TRUE.
	                   LADDR(1) = LLEST
                      END IF
                      LLEST = LQ(LLEST)
		       END DO
                   LTRIT = LQ(LTRIT)
                END DO
C
C                    Output the relevant information
C
                IF (FOUNDL) THEN
                   CALL STRINF (LADDR)
                ELSE
C
C                       ... else among the residual LEST hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUNDL = .FALSE.
                   CALL VZERO (LADDR, 2)
                   LNOIS = LQ(JFDST - 2)
	             IF (LNOIS .NE. 0) LLEST = LQ(LNOIS - 9)
                   DO WHILE (LLEST .NE. 0)
	                CHECKX = (Q(LLEST + 5) .GT. (XWC - UCLEAS))
     &                   .AND. (Q(LLEST + 5) .LT. (XWC + UCLEAS))		
                      CHECKY = (Q(LLEST + 6) .GT. (YWC - UCLEAS))
     &                   .AND. (Q(LLEST + 6) .LT. (YWC + UCLEAS))
                      IF (CHECKX .AND. CHECKY) THEN
                           FOUNDL = .TRUE.
                           LADDR(1) = LLEST
                      END IF
                      LLEST = LQ(LLEST)
		       END DO
C
C                       Output the relevant information
C
                   IF (FOUNDL) CALL STRINF (LADDR)
C
                END IF
C
             END IF
C
	    END IF
C
          IF (.NOT. FOUNDR .AND. .NOT. FOUNDL) CALL ERRINF
C
C
        ELSE IF (RADIUS .GE. RIETOF .AND. RADIUS .LE. REETOF) THEN
C
C              Look for the nearest hit to the point selected
C              on the screen, ...
C
          LESLB = 0
C
C     hypernuclear trigger:
C
	    IF (HYPE) THEN
C	
C                 ... first among the TOFONE hits,
C                     associated to the K- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	       DO WHILE (LNEGT .NE. 0)
                LESLB = LQ(LNEGT - 7)
		    DO WHILE (LESLB .NE. 0)
		       CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))		
     &                .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	             CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))		
     &                .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
			    LADDR(1) = LESLB
                   END IF
		       LESLB = LQ(LESLB)
		    END DO
                LNEGT = LQ(LNEGT)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL TOFINF (LADDR)
             ELSE	
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LKMIN = LQ(JFDST - 1)
                IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	          DO WHILE (LPOST .NE. 0)
                   LESLB = LQ(LPOST - 7)
		       DO WHILE (LESLB .NE. 0)
		          CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))		
     &                   .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	                CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))		
     &                   .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
			       LADDR(1) = LESLB
                      END IF
		          LESLB = LQ(LESLB)
		       END DO
                   LPOST = LQ(LPOST)
                END DO
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                  CALL TOFINF (LADDR)
                ELSE	
C	
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
	            FOUND  = .FALSE.
	            CALL VZERO (LADDR, 2)
	            LKMIN = LQ(JFDST - 1)
                  IF (LKMIN .NE. 0) LNEUT = LQ(LKMIN - 4)
	            DO WHILE (LNEUT .NE. 0)
                     LESLB = LQ(LNEUT - 1)
		         DO WHILE (LESLB .NE. 0)
		            CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))		
     &                     .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	                  CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))		
     &                     .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	                  IF (CHECKX .AND. CHECKY) THEN
	                     FOUND = .TRUE.
			         LADDR(1) = LESLB
                        END IF
		            LESLB = LQ(LESLB)
		         END DO
                     LNEUT = LQ(LNEUT)
                  END DO
C
C                 Output the relevant information
C
                  IF (FOUND) THEN
                     CALL TOFINF (LADDR)
                  ELSE	
C	
C                 ... else among the TOFONE hits,
C                     associated to the K+ track (if any), ...
C	
                    CHECKX = .FALSE.
  	              CHECKY = .FALSE.
	              FOUND  = .FALSE.
	              CALL VZERO (LADDR, 2)
	              LKPLU = LQ(JFDST - 2)
                    IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	              DO WHILE (LNEGT .NE. 0)
                      LESLB = LQ(LNEGT - 7)
		          DO WHILE (LESLB .NE. 0)
		            CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))		
     &                     .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	                  CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))		
     &                     .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	                  IF (CHECKX .AND. CHECKY) THEN
	                    FOUND = .TRUE.
			        LADDR(1) = LESLB
                        END IF
		            LESLB = LQ(LESLB)
		          END DO
                      LNEGT = LQ(LNEGT)
	              END DO	     	
C
C                 Output the relevant information
C
                    IF (FOUND) THEN
                       CALL TOFINF (LADDR)
                    ELSE	
C	
                      CHECKX = .FALSE.
  	                CHECKY = .FALSE.
	                FOUND  = .FALSE.
	                CALL VZERO (LADDR, 2)
	                LKPLU = LQ(JFDST - 2)
                      IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	                DO WHILE (LPOST .NE. 0)
                         LESLB = LQ(LPOST - 7)
		             DO WHILE (LESLB .NE. 0)
		                CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))
     &                         .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	                      CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))
     &                        .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
			            LADDR(1) = LESLB
                            END IF
		                LESLB = LQ(LESLB)
		             END DO
                         LPOST = LQ(LPOST)
                      END DO
C
C                 Output the relevant information
C
                      IF (FOUND) THEN
                         CALL TOFINF (LADDR)
                      ELSE	
C	
C                    ... else among the residual TOFONE hits
C
                        CHECKX = .FALSE.
  	                  CHECKY = .FALSE.
	                  FOUND  = .FALSE.
	                  CALL VZERO (LADDR, 2)
		            LNOIS = LQ(JFDST - 3)
   	                  IF (LNOIS .NE. 0) LESLB = LQ(LNOIS - 11)
			      DO WHILE (LESLB .NE. 0)
	   	               CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))	
     &                        .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	                     CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))	
     &                        .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	                     IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
			            LADDR(1) = LESLB
			         END IF
			         LESLB = LQ(LESLB)
			      END DO
C
C                    Output the relevant information
C
                        IF (FOUND) THEN
	                     CALL TOFINF (LADDR)	
	                  ELSE
                           CALL ERRINF
	                  END IF
C
                      END IF
C
                    END IF
C
                  END IF
C
                END IF
C
             END IF		
C
C     Cosmic ray trigger:
+REP,FIGRAPH,UDPIXY,579-600.
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LCOSM = LQ(JFDST - 1)
             IF (LCOSM .NE. 0) THEN
                LSLCL = LQ(LCOSM - 1)
		    DO WHILE (LSLCL .NE.0)		
                   LESLB = LQ(LSLCL - 1)
                   DO WHILE (LESLB .NE. 0)
    	                CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))		
     &                   .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	                CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))		
     &                   .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
		             LADDR(1) = LESLB
	                END IF
	                LESLB = LQ(LESLB)
	             END DO
		       LSLCL = LQ(LSLCL)		
                END DO
+REP,FIGRAPH,UDPIXY,606-627.
             IF (FOUND) THEN
                CALL TOFINF (LADDR)
             ELSE	
C	
C                    ... else among the residual ETOF hits
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
                LNOIS = LQ(JFDST - 2)
   	          IF (LNOIS .NE. 0) LESLB = LQ(LNOIS - 9)
                DO WHILE (LESLB .NE. 0)
    	             CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB)) .AND.		
     &                      (Q(LESLB + 15) .LT. (XWC + UCLEAB))
                   CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB)) .AND.		
     &                      (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
		          LADDR(1) = LESLB
+REP,FIGRAPH,UDPIXY,634-648.
                IF (FOUND) THEN
	             CALL TOFINF (LADDR)	
	          ELSE
                   CALL ERRINF
	          END IF
C
             END IF
C
C     Bhabha trigger:
C
	    ELSE IF (BHABHA) THEN
C	
C                 ... first among the TOFONE hits,
C                     associated to the e- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBHAB = LQ(JFDST - 1)
             IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
	          IF (LELEC .NE. 0) LESLB = LQ(LELEC - 7)
		    DO WHILE (LESLB .NE. 0)
		       CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))		
     &                .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	             CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))		
     &                .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
			    LADDR(1) = LESLB
                   END IF
		       LESLB = LQ(LESLB)
		    END DO
             END IF
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL TOFINF (LADDR)
             ELSE	
C	
C                 ... else among the TOFONE hits,
C                     associated to the e+ track (if any), ...
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LBHAB = LQ(JFDST - 1)
                IF (LBHAB .NE. 0) THEN
                  LPOSI = LQ(LBHAB - 2)
	            IF (LPOSI .NE. 0) LESLB = LQ(LPOSI - 7)
		      DO WHILE (LESLB .NE. 0)
		        CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))		
     &                 .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
	              CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))		
     &                 .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	              IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
			    LADDR(1) = LESLB
                    END IF
		        LESLB = LQ(LESLB)
		      END DO
                END IF
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                  CALL TOFINF (LADDR)
                ELSE	
C	
C                    ... else among the residual TOFONE hits
C		
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
                   FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)
		       LNOIS = LQ(JFDST - 2)
   	             IF (LNOIS .NE. 0) LESLB = LQ(LNOIS - 9)
			 DO WHILE (LESLB .NE. 0)
	   	          CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB))	
     &                   .AND. (Q(LESLB + 15) .LT. (XWC + UCLEAB))
                      CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB))	
     &                   .AND. (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
			       LADDR(1) = LESLB
	                END IF
	                LESLB = LQ(LESLB)
			 END DO
C
C                    Output the relevant information
C
                   IF (FOUND) THEN
                      CALL TOFINF (LADDR)	
	             ELSE
                      CALL ERRINF
	             END IF
C
                END IF
C
             END IF		
C
C     Simplified Bhabha trigger:
C
	    ELSE IF (BABA) THEN
C	
C                    ... among the residual ETOF hits
C
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
             LNOIS = LQ(JFDST - 2)
   	       IF (LNOIS .NE. 0) LESLB = LQ(LNOIS - 11)
             DO WHILE (LESLB .NE. 0)
    	          CHECKX = (Q(LESLB + 15) .GT. (XWC - UCLEAB)) .AND.		
     &                   (Q(LESLB + 15) .LT. (XWC + UCLEAB))
                CHECKY = (Q(LESLB + 16) .GT. (YWC - UCLEAB)) .AND.		
     &                   (Q(LESLB + 16) .LT. (YWC + UCLEAB))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
                   LADDR(1) = LESLB
	          END IF
	          LESLB = LQ(LESLB)
	       END DO
C
C                    Output the relevant information
C
             IF (FOUND) THEN
	          CALL TOFINF (LADDR)	
	       ELSE
                CALL ERRINF
	       END IF
C
	    END IF
C
	  ELSE
C
	    CALL ERRINF
C
	  END IF
+PATCH,$CORR.
+DECK,CORR1.
+ADD,FIGRAPH,UZPIXY,0.
*CMZ :          11/11/2003  10.56.44  by  M. Palomba
+REP,FIGRAPH,UZPIXY,29.
      PARAMETER         (UCLEAS = 0.1,   ! cm
+REP,FIGRAPH,UZPIXY,49-68.
        CALL IGLOC (ICURS, NTRAS, IBUTT, XNDC, YNDC, XWC, YWC)
C
C           Check which detector has been selected
C
        IF (IBUTT .EQ. 1) THEN
           RADIUS = SQRT (XWC**2 + YWC**2)
	  ELSE
	     RADIUS = 0.0
	  END IF
C
	  IF (RADIUS .GT. RIITOF .AND. RADIUS .LT. REITOF) THEN
C
C              Look for the nearest hit to the point selected
C              on the screen, ...
C
          LISLB = 0
C
C     Hypernuclear trigger:
C
	    IF (HYPE) THEN
C	
C                 ... first among the ITOF hits,
C                     associated to the K- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LISLB = LQ(LKMIN - 1)
             DO WHILE (LISLB .NE. 0)
    	          CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB))		
     &             .AND. (Q(LISLB + 15) .LT. (XWC + UCLEAB))
                CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB))		
     &             .AND. (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
                   LADDR(1) = LISLB
	          END IF
	          LISLB = LQ(LISLB)
	       END DO
C	
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL TOFINF (LADDR)
             ELSE	
C	
C                 ... else among the ITOF hits,
C                     associated to the K+ track (if any), ...
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LKPLU = LQ(JFDST - 2)
                IF (LKPLU .NE. 0) LISLB = LQ(LKPLU - 1)
                DO WHILE (LISLB .NE. 0)
    	             CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB))		
     &                .AND. (Q(LISLB + 15) .LT. (XWC + UCLEAB))
	             CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB))		
     &                .AND. (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
		          LADDR(1) = LISLB
	             END IF
	             LISLB = LQ(LISLB)
	          END DO
C	
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL TOFINF (LADDR)	
	          ELSE
C
C                    ... else among the residual ITOF hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)
                   LNOIS = LQ(JFDST - 3)
   	             IF (LNOIS .NE. 0) LISLB = LQ(LNOIS - 1)
                   DO WHILE (LISLB .NE. 0)
    	               CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB)) .AND.		
     &                        (Q(LISLB + 15) .LT. (XWC + UCLEAB))
                     CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB)) .AND.		
     &                        (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	               IF (CHECKX .AND. CHECKY) THEN
	                  FOUND = .TRUE.
		            LADDR(1) = LISLB
	               END IF
	               LISLB = LQ(LISLB)
	             END DO
C
C                    Output the relevant information
C
                   IF (FOUND) THEN
	                CALL TOFINF (LADDR)	
	             ELSE
                      CALL ERRINF
	             END IF
C
                END IF
C
             END IF
C
C      Cosmic ray trigger
+REP,FIGRAPH,UZPIXY,75-89.
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LCOSM = LQ(JFDST - 1)
             IF (LCOSM .NE. 0) LISLB = LQ(LCOSM - 7)
             DO WHILE (LISLB .NE. 0)
    	          CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB))		
     &             .AND. (Q(LISLB + 15) .LT. (XWC + UCLEAB))
	          CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB))		
     &             .AND. (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
		       LADDR(1) = LISLB
	          END IF
	          LISLB = LQ(LISLB)
	       END DO
C	
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL TOFINF (LADDR)
             ELSE	
C	
C                    ... else among the residual ITOF hits
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
                LNOIS = LQ(JFDST - 2)
   	          IF (LNOIS .NE. 0) LISLB = LQ(LNOIS - 1)
                DO WHILE (LISLB .NE. 0)
    	             CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB)) .AND.		
     &                      (Q(LISLB + 15) .LT. (XWC + UCLEAB))
                   CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB)) .AND.		
     &                      (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
		          LADDR(1) = LISLB
	             END IF
	             LISLB = LQ(LISLB)
	          END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL TOFINF (LADDR)	
	          ELSE
                   CALL ERRINF
	          END IF
C
             END IF
C
C     Bhabha trigger:
C
	    ELSE IF (BHABHA) THEN
C	
C                 ... first among the ITOF hits,
C                     associated to the e- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBHAB = LQ(JFDST - 1)
             IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
                IF (LELEC .NE. 0) LISLB = LQ(LELEC - 1)
                DO WHILE (LISLB .NE. 0)
    	             CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB))		
     &                .AND. (Q(LISLB + 15) .LT. (XWC + UCLEAB))
	             CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB))		
     &                .AND. (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
		          LADDR(1) = LISLB
+REP,FIGRAPH,UZPIXY,97-144.
             IF (FOUND) THEN
                CALL TOFINF (LADDR)
             ELSE	
C	
C                 ... else among the ITOF hits,
C                     associated to the e+ track (if any), ...
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LBHAB = LQ(JFDST - 1)
                IF (LBHAB .NE. 0) THEN
                   LPOSI = LQ(LBHAB - 2)
                   IF (LPOSI .NE. 0) LISLB = LQ(LPOSI - 1)
                   DO WHILE (LISLB .NE. 0)
    	                CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB))		
     &                   .AND. (Q(LISLB + 15) .LT. (XWC + UCLEAB))
	                CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB))		
     &                   .AND. (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
		             LADDR(1) = LISLB
	                END IF
	                LISLB = LQ(LISLB)
	             END DO
	          END IF
C	
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL TOFINF (LADDR)	
	          ELSE
C                    ... else among the residual ITOF hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)
                   LNOIS = LQ(JFDST - 2)
   	             IF (LNOIS .NE. 0) LISLB = LQ(LNOIS - 1)
                   DO WHILE (LISLB .NE. 0)
    	                CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB)) .AND.
     &                         (Q(LISLB + 15) .LT. (XWC + UCLEAB))
                      CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB)) .AND.
     &                         (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
		             LADDR(1) = LISLB
	                END IF
	                LISLB = LQ(LISLB)
	             END DO
C
C                    Output the relevant information
C
                   IF (FOUND) THEN
	                CALL TOFINF (LADDR)	
	             ELSE
                      CALL ERRINF
	             END IF
C
                END IF
C
             END IF
C
C      Simplified Bhabha trigger:
C
	    ELSE IF (BABA) THEN
C
C                    ... among the residual ITOF hits
C
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
             LNOIS = LQ(JFDST - 2)
   	       IF (LNOIS .NE. 0) LISLB = LQ(LNOIS - 1)
             DO WHILE (LISLB .NE. 0)
    	          CHECKX = (Q(LISLB + 15) .GT. (XWC - UCLEAB)) .AND.		
     &                   (Q(LISLB + 15) .LT. (XWC + UCLEAB))
                CHECKY = (Q(LISLB + 16) .GT. (YWC - UCLEAB)) .AND.		
     &                   (Q(LISLB + 16) .LT. (YWC + UCLEAB))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
		       LADDR(1) = LISLB
	          END IF
	          LISLB = LQ(LISLB)
	       END DO
C
C                    Output the relevant information
C
             IF (FOUND) THEN
	          CALL TOFINF (LADDR)	
	       ELSE
                CALL ERRINF
	       END IF
C
	    END IF
C
        ELSE IF (RADIUS .GT. REITOF .AND. RADIUS .LT. DITSUP) THEN
C
C              Look for the nearest hit to the point selected
C              on the screen, ...
C
          LISIM = 0
          LISIH = 0
C
C     Hypernuclear trigger:
C
	    IF (HYPE) THEN
C	
C                 ... first among the ISIM hits,
C                     associated to the K- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LISIM = LQ(LKMIN - 2)
		 DO WHILE (LISIM .NE. 0)
                CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))		
     &             .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	          CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))		
     &             .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
	             LADDR(1) = LISIM
                END IF
	          LISIM = LQ(LISIM)
             END DO	     	
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL SILINF (LADDR)
             ELSE	
C	
C                 ... else among the ISIM hits,
C                     associated to the K+ track (if any), ...
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LKPLU = LQ(JFDST - 2)
                IF (LKPLU .NE. 0) LISIM = LQ(LKPLU - 2)
		    DO WHILE (LISIM .NE. 0)
		       CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))		
     &                .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	             CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))		
     &                .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
			    LADDR(1) = LISIM
                   END IF
		       LISIM = LQ(LISIM)
		    END DO     	
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                   CALL SILINF (LADDR)
                ELSE	
C	
C                 ... else among the ISIM hits, connected to the negative
C                     track associated to the K- track (if any), ...
C	
                  CHECKX = .FALSE.
  	            CHECKY = .FALSE.
	            FOUND  = .FALSE.
	            CALL VZERO (LADDR, 2)
	            LKMIN = LQ(JFDST - 1)
                  IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
                  DO WHILE (LNEGT .NE. 0)
                     LISIM = LQ(LNEGT - 8)
		         DO WHILE (LISIM .NE. 0)
                        CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))		
     &                     .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	                  CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))		
     &                     .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	                  IF (CHECKX .AND. CHECKY) THEN
	                    FOUND = .TRUE.
	                    LADDR(1) = LISIM
                        END IF
	                  LISIM = LQ(LISIM)
                     END DO
                     LNEGT = LQ(LNEGT)
                  END DO
C
C                 Output the relevant information
C
                  IF (FOUND) THEN
                     CALL SILINF (LADDR)
                  ELSE	
C	
C                 ... else among the ISIM hits, connected to the positive
C                     track associated to the K- track (if any), ...
C	
                    CHECKX = .FALSE.
  	              CHECKY = .FALSE.
	              FOUND  = .FALSE.
	              CALL VZERO (LADDR, 2)
	              LKMIN = LQ(JFDST - 1)
                    IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
                    DO WHILE (LPOST .NE. 0)
                       LISIM = LQ(LPOST - 8)
		           DO WHILE (LISIM .NE. 0)
                          CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))		
     &                       .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	                    CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))		
     &                       .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	                    IF (CHECKX .AND. CHECKY) THEN
	                      FOUND = .TRUE.
	                      LADDR(1) = LISIM
                          END IF
	                    LISIM = LQ(LISIM)
                       END DO
                       LPOST = LQ(LPOST)
                    END DO
C
C                 Output the relevant information
C
                    IF (FOUND) THEN
                       CALL SILINF (LADDR)
                    ELSE	
C	
C                 ... else among the ISIM hits, connected to the negative
C                     track associated to the K+ track (if any), ...
C	
                      CHECKX = .FALSE.
  	                CHECKY = .FALSE.
	                FOUND  = .FALSE.
	                CALL VZERO (LADDR, 2)
	                LKPLU = LQ(JFDST - 2)
                      IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
                      DO WHILE (LNEGT .NE. 0)
                         LISIM = LQ(LNEGT - 8)
		             DO WHILE (LISIM .NE. 0)
                            CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))
     &                         .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))
     &                         .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
	                        LADDR(1) = LISIM
                            END IF
	                      LISIM = LQ(LISIM)
                         END DO
                         LNEGT = LQ(LNEGT)
                      END DO
C
C                 Output the relevant information
C
                      IF (FOUND) THEN
                         CALL SILINF (LADDR)
                      ELSE	
C	
C                 ... else among the ISIM hits, connected to the positive
C                     track associated to the K+ track (if any), ...
C	
                        CHECKX = .FALSE.
  	                  CHECKY = .FALSE.
	                  FOUND  = .FALSE.
	                  CALL VZERO (LADDR, 2)
	                  LKPLU = LQ(JFDST - 2)
                        IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
                        DO WHILE (LPOST .NE. 0)
                           LISIM = LQ(LPOST - 8)
		               DO WHILE (LISIM .NE. 0)
                            CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))
     &                         .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))
     &                         .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	                        IF (CHECKX .AND. CHECKY) THEN
	                          FOUND = .TRUE.
	                          LADDR(1) = LISIM
                              END IF
	                        LISIM = LQ(LISIM)
                           END DO
                           LPOST = LQ(LPOST)
                        END DO
C
C                 Output the relevant information
C
                        IF (FOUND) THEN
                           CALL SILINF (LADDR)
                        ELSE	
C	
C                ... else among the noise ISIM hits not used for P.R.
C
                          CHECKX = .FALSE.
  	                    CHECKY = .FALSE.
	                    FOUND  = .FALSE.
	                    CALL VZERO (LADDR, 2)
		              LNOIS = LQ(JFDST - 3)
   	                    IF (LNOIS .NE. 0) LISIM = LQ(LNOIS - 3)
			        DO WHILE (LISIM .NE. 0)
	   	                CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))
     &                         .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))
     &                         .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
			            LADDR(1) = LISIM
			          END IF
			          LISIM = LQ(LISIM)
			        END DO
C
C                    Output the relevant information
C
                          IF (FOUND) THEN
	                       CALL SILINF (LADDR)	
	                    ELSE
C
C                    ... else among the residual ISIM hits
C
                            CHECKX = .FALSE.
  	                      CHECKY = .FALSE.
	                      FOUND  = .FALSE.
	                      CALL VZERO (LADDR, 2)
		                LNOIS = LQ(JFDST - 3)
   	                      IF (LNOIS .NE. 0) LMSTR = LQ(LNOIS - 2)
                            DO WHILE (LMSTR .NE. 0)
                              LISIH = LQ(LMSTR - 3)
			            DO WHILE (LISIH .NE. 0)
	   	                CHECKX = (Q(LISIH + 4) .GT. (XWC - UCLEAS))
     &                         .AND. (Q(LISIH + 4) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LISIH + 5) .GT. (YWC - UCLEAS))
     &                         .AND. (Q(LISIH + 5) .LT. (YWC + UCLEAS))
	                          IF (CHECKX .AND. CHECKY) THEN
	                            FOUND = .TRUE.
			                LADDR(1) = LISIH
			              END IF
			              LISIH = LQ(LISIH)
                              END DO
                              LMSTR = LQ(LMSTR)
			          END DO
C
C                    Output the relevant information
C
                            IF (FOUND) THEN
	                         CALL SILINF (LADDR)	
	                      ELSE
                               CALL ERRINF
	                      END IF
C
                          END IF
C
                        END IF
C
                      END IF
C
                    END IF
C
                  END IF
C
                END IF
C
             END IF		
C
C     Cosmic ray trigger:
+REP,FIGRAPH,UZPIXY,151-217.
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LCOSM = LQ(JFDST - 1)
             IF (LCOSM .NE. 0) LISIM = LQ(LCOSM - 6)
		 DO WHILE (LISIM .NE. 0)
		    CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))		
     &             .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	          CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))		
     &             .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
			 LADDR(1) = LISIM
                END IF
		    LISIM = LQ(LISIM)
		 END DO	     	
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL SILINF (LADDR)
             ELSE	
C	
C                    ... else among the residual ISIM hits
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
		    LNOIS = LQ(JFDST - 2)
   	          IF (LNOIS .NE. 0) LMSTR = LQ(LNOIS - 2)
		    DO WHILE (LMSTR .NE. 0)
		       LISIH = LQ(LMSTR - 3)
			 DO WHILE (LISIH .NE. 0)
	   	          CHECKX = (Q(LISIH +  4) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LISIH +  4) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LISIH +  5) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LISIH +  5) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
			       LADDR(1) = LISIH
			    END IF
			    LISIH = LQ(LISIH)
			 END DO
		       LMSTR = LQ(LMSTR)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL SILINF (LADDR)	
	          ELSE
                   CALL ERRINF
	          END IF
C
             END IF		
C
C     Bhabha trigger:
C
	    ELSE IF (BHABHA) THEN
C	
C                 ... first among the ISIM hits,
C                     associated to the e- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBHAB = LQ(JFDST - 1)
             IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
                IF (LELEC .NE. 0) LISIM = LQ(LELEC - 2)
		    DO WHILE (LISIM .NE. 0)
                   CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))		
     &                .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	             CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))		
     &                .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
	                LADDR(1) = LISIM
                   END IF
	             LISIM = LQ(LISIM)
                END DO
             END IF	     	
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL SILINF (LADDR)
             ELSE	
C	
C                 ... else among the ISIM hits,
C                     associated to the K+ track (if any), ...
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LBHAB = LQ(JFDST - 1)
                IF (LBHAB .NE. 0) THEN
                   LPOSI = LQ(LBHAB - 2)
                   IF (LPOSI .NE. 0) LISIM = LQ(LPOSI - 2)
		       DO WHILE (LISIM .NE. 0)
		          CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
			       LADDR(1) = LISIM
                      END IF
		          LISIM = LQ(LISIM)
		       END DO
                END IF
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                   CALL SILINF (LADDR)
                ELSE	
C	
C                    ... else among the residual ISIM hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)
		       LNOIS = LQ(JFDST - 2)
   	             IF (LNOIS .NE. 0) LMSTR = LQ(LNOIS - 2)
                   DO WHILE (LMSTR .NE. 0)
                      LISIH = LQ(LMSTR - 3)
                      DO WHILE (LISIH .NE. 0)
	   	             CHECKX = (Q(LISIH +  4) .GT. (XWC - UCLEAS))
     &                      .AND. (Q(LISIH +  4) .LT. (XWC + UCLEAS))
	                   CHECKY = (Q(LISIH +  5) .GT. (YWC - UCLEAS))
     &                      .AND. (Q(LISIH +  5) .LT. (YWC + UCLEAS))
	                   IF (CHECKX .AND. CHECKY) THEN
                            FOUND = .TRUE.
			          LADDR(1) = LISIH
			       END IF
			       LISIH = LQ(LISIH)
			    END DO
                      LMSTR = LQ(LMSTR)
                   END DO
C
C                    Output the relevant information
C
                   IF (FOUND) THEN
	                CALL SILINF (LADDR)	
	             ELSE
                      CALL ERRINF
	             END IF
C
                END IF
C
             END IF		
C
C     Simplified Bhabha trigger:
C
	    ELSE IF (BABA) THEN
C
C            ... among the noise ISIM hits used for the P.R. and discarded...
C
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
             FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
             LNOIS = LQ(JFDST - 2)
   	       IF (LNOIS .NE. 0) LISIM = LQ(LNOIS - 3)
             DO WHILE (LISIM .NE. 0)
	   	    CHECKX = (Q(LISIM +  4) .GT. (XWC - UCLEAS))		
     &             .AND. (Q(LISIM +  4) .LT. (XWC + UCLEAS))
	          CHECKY = (Q(LISIM +  5) .GT. (YWC - UCLEAS))		
     &             .AND. (Q(LISIM +  5) .LT. (YWC + UCLEAS))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
                   LADDR(1) = LISIM
                END IF
                LISIM = LQ(LISIM)
             END DO
C
C                    Output the relevant information
C
             IF (FOUND) THEN
	          CALL SILINF (LADDR)	
	       ELSE
C
C                    ... among the residual ISIM hits
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
                FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
                LNOIS = LQ(JFDST - 2)
   	          IF (LNOIS .NE. 0) LMSTR = LQ(LNOIS - 2)
                DO WHILE (LMSTR .NE. 0)
                   LISIH = LQ(LMSTR - 3)
                   DO WHILE (LISIH .NE. 0)
	   	          CHECKX = (Q(LISIH +  4) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LISIH +  4) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LISIH +  5) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LISIH +  5) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
                         LADDR(1) = LISIH
                      END IF
                      LISIH = LQ(LISIH)
                   END DO
                   LMSTR = LQ(LMSTR)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL SILINF (LADDR)	
	          ELSE
                   CALL ERRINF
	          END IF		
C		
             END IF
C
          END IF
C
        ELSE IF (RADIUS .GT. DITSUP .AND. RADIUS .LT. D1PILL) THEN
+REP,FIGRAPH,UZPIXY,223-227.
          LOSIM = 0
          LOSIH = 0
C
C      Hypernuclear trigger:
C
	    IF (HYPE) THEN
C	
C                 ... first among the OSIM hits,
C                     associated to the K- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LKMIN = LQ(JFDST - 1)
             IF (LKMIN .NE. 0) LNEGT = LQ(LKMIN - 3)
	       DO WHILE (LNEGT .NE. 0)
                LOSIM = LQ(LNEGT - 1)
                DO WHILE (LOSIM .NE. 0)
		       CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))		
     &                .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	             CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))		
     &                .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
			    LADDR(1) = LOSIM
                   END IF
		       LOSIM = LQ(LOSIM)
                END DO
                LNEGT = LQ(LNEGT)
             END DO
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL SILINF (LADDR)
             ELSE	
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LKMIN = LQ(JFDST - 1)
                IF (LKMIN .NE. 0) LPOST = LQ(LKMIN - 4)
	          DO WHILE (LPOST .NE. 0)
                   LOSIM = LQ(LPOST - 1)
		       DO WHILE (LOSIM .NE. 0)
		          CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
                         LADDR(1) = LOSIM
                      END IF
		          LOSIM = LQ(LOSIM)
		       END DO
                   LPOST = LQ(LPOST)
                END DO
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                   CALL SILINF (LADDR)
                ELSE	
C	
C                 ... else among the OSIM hits,
C                     associated to the K+ track (if any), ...
C	
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)
	             LKPLU = LQ(JFDST - 2)
                   IF (LKPLU .NE. 0) LNEGT = LQ(LKPLU - 3)
	             DO WHILE (LNEGT .NE. 0)
                      LOSIM = LQ(LNEGT - 1)
		          DO WHILE (LOSIM .NE. 0)
		             CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))		
     &                      .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	                   CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))		
     &                      .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	                   IF (CHECKX .AND. CHECKY) THEN
	                      FOUND = .TRUE.
			          LADDR(1) = LOSIM
                         END IF
		             LOSIM = LQ(LOSIM)
		          END DO
                      LNEGT = LQ(LNEGT)
                   END DO	     	
C
C                 Output the relevant information
C
                   IF (FOUND) THEN
                      CALL SILINF (LADDR)
                   ELSE	
C	
                      CHECKX = .FALSE.
  	                CHECKY = .FALSE.
	                FOUND  = .FALSE.
	                CALL VZERO (LADDR, 2)
	                LKPLU = LQ(JFDST - 2)
                      IF (LKPLU .NE. 0) LPOST = LQ(LKPLU - 4)
	                DO WHILE (LPOST .NE. 0)
                         LOSIM = LQ(LPOST - 1)
		             DO WHILE (LOSIM .NE. 0)
		                CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))
     &                         .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))
     &                         .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                        FOUND = .TRUE.
			            LADDR(1) = LOSIM
                            END IF
		                LOSIM = LQ(LOSIM)
		             END DO
                         LPOST = LQ(LPOST)
                      END DO
C
C                 Output the relevant information
C
                      IF (FOUND) THEN
                         CALL SILINF (LADDR)
                      ELSE	
C		
C                    ... else among the noise OSIM hits not used for P.R.
C
                         CHECKX = .FALSE.
  	                   CHECKY = .FALSE.
	                   FOUND  = .FALSE.
	                   CALL VZERO (LADDR, 2)
		             LNOIS = LQ(JFDST - 3)
   	                   IF (LNOIS .NE. 0) LOSIM = LQ(LNOIS - 4)
			       DO WHILE (LOSIM .NE. 0)
	   	                CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))	
     &                         .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	                      CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))	
     &                         .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	                      IF (CHECKX .AND. CHECKY) THEN
	                         FOUND = .TRUE.
			             LADDR(1) = LOSIM
			          END IF
			          LOSIM = LQ(LOSIM)
			       END DO
C
C                    Output the relevant information
C
                         IF (FOUND) THEN
	                      CALL SILINF (LADDR)	
	                   ELSE
C
C                    ... else among the residual OSIM hits
C
                           CHECKX = .FALSE.
  	                     CHECKY = .FALSE.
	                     FOUND  = .FALSE.
	                     CALL VZERO (LADDR, 2)
		               LNOIS = LQ(JFDST - 3)
   	                     IF (LNOIS .NE. 0) LMSTR = LQ(LNOIS - 2)
                           DO WHILE (LMSTR .NE. 0)
                             LOSIH = LQ(LMSTR - 4)
			           DO WHILE (LOSIH .NE. 0)
	   	                 CHECKX = (Q(LOSIH + 4) .GT. (XWC - UCLEAS))	
     &                          .AND. (Q(LOSIH + 4) .LT. (XWC + UCLEAS))
	                       CHECKY = (Q(LOSIH + 5) .GT. (YWC - UCLEAS))	
     &                          .AND. (Q(LOSIH + 5) .LT. (YWC + UCLEAS))
	                         IF (CHECKX .AND. CHECKY) THEN
	                           FOUND = .TRUE.
			               LADDR(1) = LOSIH
			             END IF
			             LOSIH = LQ(LOSIH)
                             END DO
                             LMSTR = LQ(LMSTR)
			         END DO
C
C                    Output the relevant information
C
                           IF (FOUND) THEN
	                        CALL SILINF (LADDR)	
	                     ELSE
                              CALL ERRINF
	                     END IF
C
                         END IF
C
                      END IF
C
                   END IF
C
                END IF
C
             END IF		
C
C     Cosmic ray trigger:
+REP,FIGRAPH,UZPIXY,234-304.
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LCOSM = LQ(JFDST - 1)
             IF (LCOSM .NE. 0) LOSIM = LQ(LCOSM - 5)
		 DO WHILE (LOSIM .NE. 0)
		    CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))		
     &             .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	          CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))		
     &             .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
			 LADDR(1) = LOSIM
                END IF
		    LOSIM = LQ(LOSIM)
		 END DO	     	
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL SILINF (LADDR)
             ELSE	
C	
C                    ... else among the residual OSIM hits
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
		    LNOIS = LQ(JFDST - 2)
   	          IF (LNOIS .NE. 0) LMSTR = LQ(LNOIS - 2)
		    DO WHILE (LMSTR .NE. 0)
                   LOSIH = LQ(LMSTR - 4)
                   DO WHILE (LOSIH .NE. 0)
	   	          CHECKX = (Q(LOSIH +  4) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LOSIH +  4) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LOSIH +  5) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LOSIH +  5) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
                         LADDR(1) = LOSIH
			    END IF
                      LOSIH = LQ(LOSIH)
                   END DO
                   LMSTR = LQ(LMSTR)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL SILINF (LADDR)	
	          ELSE
                   CALL ERRINF
	          END IF
C
             END IF
C		
C     Bhabha trigger:
C
	    ELSE IF (BHABHA) THEN
C	
C                 ... first among the OSIM hits,
C                     associated to the e- track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBHAB = LQ(JFDST - 1)
             IF (LBHAB .NE. 0) THEN
                LELEC = LQ(LBHAB - 1)
                IF (LELEC .NE. 0) LOSIM = LQ(LELEC - 3)
		    DO WHILE (LOSIM .NE. 0)
                   CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))		
     &                .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	             CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))		
     &                .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
	                LADDR(1) = LOSIM
                   END IF
	             LOSIM = LQ(LOSIM)
                END DO
             END IF	     	
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL SILINF (LADDR)
             ELSE	
C	
C                 ... else among the OSIM hits,
C                     associated to the e+ track (if any), ...
C	
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
	          LBHAB = LQ(JFDST - 1)
                IF (LBHAB .NE. 0) THEN
                   LPOSI = LQ(LBHAB - 2)
                   IF (LPOSI .NE. 0) LOSIM = LQ(LPOSI - 3)
		       DO WHILE (LOSIM .NE. 0)
		          CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))		
     &                   .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	                CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))		
     &                   .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	                IF (CHECKX .AND. CHECKY) THEN
	                   FOUND = .TRUE.
			       LADDR(1) = LOSIM
                      END IF
		          LOSIM = LQ(LOSIM)
		       END DO
                END IF
C
C                 Output the relevant information
C
                IF (FOUND) THEN
                   CALL SILINF (LADDR)
                ELSE	
C	
C                    ... else among the residual OSIM hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)
		       LNOIS = LQ(JFDST - 2)
   	             IF (LNOIS .NE. 0) LMSTR = LQ(LNOIS - 2)
                   DO WHILE (LMSTR .NE. 0)
                      LOSIH = LQ(LMSTR - 4)
                      DO WHILE (LOSIH .NE. 0)
	   	             CHECKX = (Q(LOSIH +  4) .GT. (XWC - UCLEAS))
     &                      .AND. (Q(LOSIH +  4) .LT. (XWC + UCLEAS))
	                   CHECKY = (Q(LOSIH +  5) .GT. (YWC - UCLEAS))
     &                      .AND. (Q(LOSIH +  5) .LT. (YWC + UCLEAS))
	                   IF (CHECKX .AND. CHECKY) THEN
	                      FOUND = .TRUE.
			          LADDR(1) = LOSIH
			       END IF
			       LOSIH = LQ(LOSIH)
			    END DO
                      LMSTR = LQ(LMSTR)
                   END DO
C
C                    Output the relevant information
C
                   IF (FOUND) THEN
	                CALL SILINF (LADDR)	
	             ELSE
                      CALL ERRINF
	             END IF
C
                END IF
C
             END IF		
C
C     Simplified Bhabha trigger:
C
	    ELSE IF (BABA) THEN
C
C                 ... first among the OSIM hits,
C                     associated to a track (if any), ...
C	
             CHECKX = .FALSE.
  	       CHECKY = .FALSE.
	       FOUND  = .FALSE.
	       CALL VZERO (LADDR, 2)
	       LBABA = LQ(JFDST - 1)
             IF (LBABA .NE. 0) LOSIM = LQ(LBABA - 1)
		 DO WHILE (LOSIM .NE. 0)
                CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))		
     &             .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	          CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))		
     &             .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	          IF (CHECKX .AND. CHECKY) THEN
	             FOUND = .TRUE.
			 LADDR(1) = LOSIM
                END IF
		    LOSIM = LQ(LOSIM)
		 END DO	     	
C
C                 Output the relevant information
C
             IF (FOUND) THEN
                CALL SILINF (LADDR)
             ELSE	
C	
C            ... else among the noise OSIM hits used for P.R. and discarded...
C
                CHECKX = .FALSE.
  	          CHECKY = .FALSE.
	          FOUND  = .FALSE.
	          CALL VZERO (LADDR, 2)
		    LNOIS = LQ(JFDST - 2)
   	          IF (LNOIS .NE. 0) LOSIM = LQ(LNOIS - 4)
	          DO WHILE (LOSIM .NE. 0)
	   	       CHECKX = (Q(LOSIM +  4) .GT. (XWC - UCLEAS))		
     &                .AND. (Q(LOSIM +  4) .LT. (XWC + UCLEAS))
	             CHECKY = (Q(LOSIM +  5) .GT. (YWC - UCLEAS))		
     &                .AND. (Q(LOSIM +  5) .LT. (YWC + UCLEAS))
	             IF (CHECKX .AND. CHECKY) THEN
	                FOUND = .TRUE.
			    LADDR(1) = LOSIM
			 END IF
			 LOSIM = LQ(LOSIM)
                END DO
C
C                    Output the relevant information
C
                IF (FOUND) THEN
	             CALL SILINF (LADDR)	
	          ELSE
C
C                    ... else among the residual OSIM hits
C
                   CHECKX = .FALSE.
  	             CHECKY = .FALSE.
	             FOUND  = .FALSE.
	             CALL VZERO (LADDR, 2)
		       LNOIS = LQ(JFDST - 2)
   	             IF (LNOIS .NE. 0) LMSTR = LQ(LNOIS - 2)
                   DO WHILE (LMSTR .NE. 0)
                      LOSIH = LQ(LMSTR - 4)
	                DO WHILE (LOSIH .NE. 0)
	   	             CHECKX = (Q(LOSIH +  4) .GT. (XWC - UCLEAS))		
     &                      .AND. (Q(LOSIH +  4) .LT. (XWC + UCLEAS))
	                   CHECKY = (Q(LOSIH +  5) .GT. (YWC - UCLEAS))		
     &                      .AND. (Q(LOSIH +  5) .LT. (YWC + UCLEAS))
	                   IF (CHECKX .AND. CHECKY) THEN
	                      FOUND = .TRUE.
			          LADDR(1) = LOSIM
			       END IF
			       LOSIH = LQ(LOSIH)
                      END DO
                      LMSTR = LQ(LMSTR)
                   END DO
C
C                    Output the relevant information
C
                   IF (FOUND) THEN
	                CALL SILINF (LADDR)	
	             ELSE
                      CALL ERRINF
	             END IF
C
                END IF
C
             END IF
C		
          END IF
C
	  ELSE
C
	    CALL ERRINF
C
	  END IF
begin:vcard 
n:Palomba;Maurizio
tel;work:+39 80 5443187
x-mozilla-html:FALSE
org:Università degli Studi di Bari;Dipartimento di Fisica and INFN
adr:;;Via G. Amendola, 173;Bari (BA);;70126;Italy
version:2.1
email;internet:Maurizio.Palomba@ba.infn.it
title:Ph.D.
x-mozilla-cpt:;-28384
fn:Maurizio Palomba
end:vcard