SUBROUTINE ZPHATH(CENT,SIG,PERCNT,PCRAD,CORNER,FOCUS,THRESH, * FWHM,STATUS) C C Module Number: 13.4.2 C C Module Name: ZPHATH C C Keyphrase: C ---------- C Compute HRS thresholds C C Description: C ------------ C Using the input gaussian peaks of the pulse height distribution C for each diode the threshold is computed by: C Main diode array diodes: C thresh(i) = cent(i)*PERCNT/100.0 C Corner diodes C thresh(i) = cent(i)*PERCNT/100.0 + corner C Focus diodes C thresh(i) = cent(i)*PERCNT/100.0 + focus C Radiation diodes C thresh(i) = ave*pcrad/100.0 C where ave is the average thresholds for the 500 main C array diodes. C The full width/half-max of each gaussian peak is computed as C 2.3548 * sig(i) C C Keywords of accessed files and tables: C ------------------------------------- C none C C Subroutines called C ------------------ C SDAS: C UMSPUT C C HISTORY: C -------- C version date Author Description C 1 Jan. 87 D. Lindler Designed and coded C 2 MAR 88 D. Lindler New standards C----------------------------------------------------------------------- C C UMSPUT DESTINATIONS -- CB, DAO, 4-SEP-87 C INTEGER STDOUT PARAMETER (STDOUT = 1) INTEGER STDERR PARAMETER (STDERR = 2) C C INPUT PARAMETERS C CENT - VECTOR OF GAUSSIAN CENTERS FOR ALL DIODES C SIG - VECTOR OF SIGMAS FOR GAUSSIANS C PERCNT - THRESHOLD PERCNTAGE OF CENTERS C PCRAD - RADIATION DIODE PERCNT OF AVERAGE C CORNER - OFFSET FOR CORNER DIODES C FOCUS - OFFSET FOR FOCUS DIODES C DOUBLE PRECISION CENT(512),SIG(512),PERCNT,PCRAD,CORNER,FOCUS C C OUTPUT VARIALBES C C THRESH - VECTOR OF THRESHOLDS C FWHM - VECTOR OF THRESHOLDS C DOUBLE PRECISION THRESH(512),FWHM(512) C C LOCAL VARIABLES C C I - LOOP INDEX C INTEGER I C -- TEXT MESS CHARACTER*130 MESS C C ERROR PROCESSING C INTEGER STATUS C -- VARIABLE FOR AVERAGING DOUBLE PRECISION TOT,AVE INTEGER NTOT C -- SCRATCH DOUBLE PRECISION VAL C--------------------------------------------------------------------------- C C LOOP ON DIODES C DO 100 I=1,512 VAL=CENT(I) C C WAS IT PROPERLY FIT. C IF(VAL.GT.0.0) THEN FWHM(I)=SIG(I)*2.3548 THRESH(I)=VAL*PERCNT/100.0 TOT=TOT+THRESH(I) NTOT=NTOT+1 ELSE C C WAS IT A RADIATION DIODE OR DISCONNECTED DIODE C IF((I.EQ.3).OR.(I.EQ.4).OR.(I.EQ.510))THEN FWHM(I)=0.0 THRESH(I)=0.0 GO TO 100 ENDIF C C PRINT MESS C WRITE(MESS,99)I 99 FORMAT(' UNABLE TO FIT DATA FOR DIODE',I5) CALL UMSPUT(MESS,STDOUT,0,STATUS) ENDIF 100 CONTINUE C C COMPUTE AVERAGE FOR SPECIAL DIODES C AVE=0.0 IF(NTOT.GT.0)AVE=TOT/NTOT C C OFFSET FOR CORNER DIODES C THRESH(1)=THRESH(1)+CORNER THRESH(2)=THRESH(2)+CORNER THRESH(511)=THRESH(511)+CORNER THRESH(512)=THRESH(512)+CORNER C C OFFSET FOR FOCUS DIODES C THRESH(5)=THRESH(5)+FOCUS THRESH(6)=THRESH(6)+FOCUS THRESH(507)=THRESH(507)+FOCUS THRESH(508)=THRESH(508)+FOCUS THRESH(509)=THRESH(509)+FOCUS C C COMPUTE THRESHOLD FOR RADIATION DIODES C THRESH(3)=AVE*PCRAD/100.0 THRESH(510)=AVE*PCRAD/100.0 C STATUS=0 RETURN END