SUBROUTINE ZPTH(SUM,SUMSQ,NADDS,PTHRSH,PNSIG,PTA,STATUS) C C Module Number: 13.5.2 C C Module Name: ZPTH C C Keyphrase: C ---------- C Compute particle count threshholds C C Description: C ------------ C A particle count threshhold is computed for each diode by either: C C 1) average count rate for the diode + PTHRSH C C or if PTHRSH is 0 C C 2) average count rate for the diode + PNSIG * the standard deviation C of the count rate for the diode. C C C FORTRAN Name: ZPTH.for C C C Keywords of Accessed Files : C -------------------------- C NONE C C Modules Called: C --------------- C SDAS: C UMSPUT C C History: C -------- C Version Date Author Description C 1 8/30/86 D. Lindler Designed and coded C 2 JAN 88 D. LINDLER NEW SDAS I/O AND STANDARDS C------------------------------------------------------------------------ C INCLUDE FILE FOR THE IRAF77 FORTRAN INTERFACE TO THE IRAF VOS C C C FILE I/O ACCESS MODES C INTEGER RDONLY PARAMETER (RDONLY = 1) INTEGER RDWRIT PARAMETER (RDWRIT = 2) INTEGER WRONLY PARAMETER (WRONLY = 3) INTEGER APPEND PARAMETER (APPEND = 4) C C CODES FOR DATA TYPES C INTEGER TYBOOL PARAMETER (TYBOOL = 1) INTEGER TYCHAR PARAMETER (TYCHAR = 2) INTEGER TYINT PARAMETER (TYINT = 4) INTEGER TYREAL PARAMETER (TYREAL = 6) INTEGER TYDOUB PARAMETER (TYDOUB = 7) C C UMSPUT DESTINATIONS -- CB, DAO, 4-SEP-87 C INTEGER STDOUT PARAMETER (STDOUT = 1) INTEGER STDERR PARAMETER (STDERR = 2) C C UHDAS HEADER PARM TYPES -- CB, DAO, 5-SEP-87 C INTEGER GENHDR PARAMETER (GENHDR = 0) INTEGER IMSPEC PARAMETER (IMSPEC = 1) C C THIS SECTION IS FOR PARAMETERS RELEVANT TO TABLE I/O. C C THESE MAY BE SET BY UTPPTI AND/OR READ BY UTPGTI: C C LENGTH OF ROW (UNIT = SIZE OF REAL) INTEGER TBRLEN PARAMETER (TBRLEN = 1) C INCREASE ROW LENGTH INTEGER TBIRLN PARAMETER (TBIRLN = 2) C NUMBER OF ROWS TO ALLOCATE INTEGER TBALLR PARAMETER (TBALLR = 3) C INCREASE ALLOC NUM OF ROWS INTEGER TBIALR PARAMETER (TBIALR = 4) C WHICH TYPE OF TABLE? (ROW OR COLUMN) INTEGER TBWTYP PARAMETER (TBWTYP = 5) C MAXIMUM NUMBER OF USER PARAMETERS INTEGER TBMXPR PARAMETER (TBMXPR = 6) C MAXIMUM NUMBER OF COLUMNS INTEGER TBMXCL PARAMETER (TBMXCL = 7) C TYPE = ROW-ORDERED TABLE INTEGER TBTYPR PARAMETER (TBTYPR = 11) C TYPE = COLUMN-ORDERED TABLE INTEGER TBTYPC PARAMETER (TBTYPC = 12) C C THESE MAY BE READ BY UTPGTI BUT MAY NOT BE SET: C C NUMBER OF ROWS WRITTEN TO INTEGER TBNROW PARAMETER (TBNROW = 21) C C END IRAF77.INC C C INPUT PARAMETERS C REAL SUM(500) C --->SUM OF THE DATA FOR THE 500 SCIENCE DIODES REAL SUMSQ(500) C --->SUM OF THE SQUARES OF THE DATA INTEGER NADDS(500) C --->NUMBER OF ADDS TO EACH POINT REAL PTHRSH C --->THRESHOLD ABOVE AVERAGE REAL PNSIG C --->NUMBER OF SIGMA ABOVE AVERAGE TO C USE IF PTHRSH=0 C C OUTPUT PARAMETERS C REAL PTA(500) C --->THRESHOLD FOR EACH DIODE INTEGER STATUS C C LOCAL VARIABLES C CHARACTER*130 MESS INTEGER I REAL AVE,SIG C C LOOP ON EACH DIODE C DO 100 I=1,500 IF(NADDS(I).EQ.0)THEN WRITE(MESS,99)I+6 C --->6 DIODE OFFSET FOR SPECIAL DIODES 99 FORMAT(' UNABLE TO COMPUTE PARTICLE THRESHOLD ', * ' FOR DIODE',I5) CALL UMSPUT(MESS,STDOUT,0,STATUS) PTA(I)=1.0E20 C --->SET TO HIGH NUMBER (I.E. C DISABLE PARTICLE DETECTION) ELSE AVE=SUM(I)/NADDS(I) C --->AVERAGE COUNT RATE IF(PTHRSH.GT.0)THEN C --->THRESHOLD SPECIFIED? PTA(I)=AVE+PTHRSH ELSE C --->USE PNSIG SIG=SQRT(SUMSQ(I)/NADDS(I)-AVE*AVE) PTA(I)=AVE+PNSIG*SIG ENDIF ENDIF 100 CONTINUE STATUS=0 RETURN END