[Prev][Next][Index][Thread]
FIDARC: two cradles to get detectors info
-
To: Daniela Di Santo <Daniela.Disanto@ba.infn.it>, "Prof. Aldo Zenoni" <zenoni@fiaba1.ing.unibs.it>, Alessandro Feliciello <Alessandro.Feliciello@to.infn.it>, Barbara Dalena <Barbara.Dalena@ba.infn.it>, Stefano Piano <Stefano.Piano@ts.infn.it>, Giuseppe Simonetti <Giuseppe.Simonetti@ba.infn.it>, Alberto Panzarasa <Alberto.Panzarasa@pv.infn.it>, Luigi Benussi <Luigi.Benussi@lnf.infn.it>, Elena Botta <botta@to.infn.it>, Monica Bertani <Monica.Bertani@lnf.infn.it>, Simonetta Marcello <marcello@to.infn.it>, "tmaruta@post.kek.jp" <tmaruta@post.kek.jp>, Art Olin <olin@triumf.ca>, Alessandra Filippi <filippi@to.infn.it>, Valerio Filippini <filippini@pv.infn.it>, Francesca De Mori <demori@bs.infn.it>, "bhang@phya.snu.ac.kr" <bhang@phya.snu.ac.kr>, "atoyoda@post.kek.jp" <atoyoda@post.kek.jp>
-
Subject: FIDARC: two cradles to get detectors info
-
From: Maurizio Palomba <Maurizio.Palomba@ba.infn.it>
-
Date: Tue, 11 Nov 2003 12:40:25 +0000
-
CC: Vincenzo Paticchio <Vincenzo.Paticchio@ba.infn.it>, "Prof. Tullio Bressani" <bressani@to.infn.it>
-
Organization: Dipartimento di Fisica & INFN - Bari
-
Sender: Maurizio.Palomba@ba.infn.it
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