SUBROUTINE FILTER_SUM_HEADER(LUN) C---------------------------------------------------------------------- C- C- Purpose and Methods : C- make a nicely formatted summary with names, timing, and x sections C- C- There are 5 entry points C- C- detailed format information of data presented in columns C- is in this routine C- C- C---------------------------------------------------------------------- C- ENTRY FILTER_SUM_HEADER (LUN) C---------------------------------------------------------------------- C- Purpose and Methods : prints the column titles C- C- Inputs : C- LUN unit to write to C- /FILTER_COM/,/FILTER_TIMING/, /FSUM/ C- Outputs : writes to LUN C- Controls: C---------------------------------------------------------------------- C- ENTRY FILTER_SUM_L1BIT(LUN,NEVT,I,NAME,NTRY,NPASS, C- & T_FILT,L1_TAVG,L1_TSIGMA,XSECT) C---------------------------------------------------------------------- C- C- Purpose and Methods : format info for L1 bit in FILTER SUMMARY C- C- Inputs : LUN unit number to write on C- NEVT total # events into L2 C- I L1 bit number C- NAME L1 bit name C- NTRY # events tried for this L1 bit C- T_FILT total time spent filtering C- L1_TAVG avg time spent on this L1 bit C- L1_TSIGMA rms of time spent on this L2 bit C- XSECT cross section of L1 Passed C- C---------------------------------------------------------------------- C- ENTRY FILTER_SUM_L2BIT(LUN,NEVT,I,NAME,NTRY,NPASS,XSECT) C---------------------------------------------------------------------- C- C- Purpose and Methods : format info for L2 bit in FILTER SUMMARY C- C- Inputs : LUN unit to write on C- NEVT # events total into L2 C- I L2 bit number C- NAME name of L2 bit C- NTRY # tried on this bit C- NPASS # passed on this bit C- XSECT cross section passed L2 C- C---------------------------------------------------------------------- C- ENTRY FILTER_SUM_L2TOOL(LUN,I,NAME,NTRY,NPASS,LENT,PARSET) C---------------------------------------------------------------------- C- C- Purpose and Methods : format info for L2 TOOL in script of FILTER SUMMARY C- C- Inputs : LUN unit to write on C- I tool number C- NAME tool name C- NTRY # tried this tool C- NPASS # passed this tool C- LENT # good characters in name C- PARSET parameter set used C- C---------------------------------------------------------------------- C ENTRY FILTER_SUM_ALL_FILT(LUN,NEVT,NPASS,XSECT) C---------------------------------------------------------------------- C- C- Purpose and Methods : format overall results for whole of level 2 filters C- C- Inputs : LUN unit number to use C- NEVT total number of events sent into L2 C- NPASS total number ov events passed L2 C- XSECT total cross section passed L2 C- C---------------------------------------------------------------------- C- C- Created 14-DEC-1993 James T. Linnemann C- C---------------------------------------------------------------------- IMPLICIT NONE C---------------------------------------------------------------------- C INCLUDE 'D0$INC:FILTER_COM.INC' INCLUDE 'D0$PARAMS:L2_TYPE.DEF' INCLUDE 'D0$INC:FILTER_TIMING.INC' INCLUDE 'D0$INC:FSUM.INC' C INTEGER LUN,I,NEVT,NPASS,NTRY,LENT,PARSET,NN,ND REAL PCT,T_FILT,TPCT,P_PCT,XSECT REAL L1_TAVG,L1_TSIGMA,L1_TPCT CHARACTER*(*) NAME C---------------------------------------------------------------------- C...statement function to carefully calculate percentages PCT(NN,ND) = 100.*FLOAT(NN)/FLOAT(MAX(1,ND)) C---------------------------------------------------------------------- C WRITE(LUN,35) 35 FORMAT('1'/1X) WRITE(LUN,40)' FILTER REPORT AT SUMMARY TIME ' 40 FORMAT(1X,A) WRITE(LUN,40)' -------------------------------' WRITE(LUN,40) IF (SAVED_MARK_AND_PASS) THEN WRITE(LUN,40)' [Mark and Pass run: all events will be written]' WRITE(LUN,40) ENDIF WRITE(LUN,70) 70 FORMAT(16X, & ' #Try/ Pass Time RMS Time/', & ' Counts or') WRITE(LUN,80) 80 FORMAT(16X, & ' Evt #Pass/ #Try= Rate (ms) (ms) Total', & ' mubarns') WRITE(LUN,90) 90 FORMAT(15X, & ' ---- ---- ---- ---- ---- ---- -----', & ' ---------') RETURN C####################################################################### ENTRY FILTER_SUM_L1BIT(LUN,NEVT,I,NAME,NTRY,NPASS, & T_FILT,L1_TAVG,L1_TSIGMA,XSECT) C---------------------------------------------------------------------- C P_PCT = PCT(L1_PASS(I),NTRY) L1_TPCT = 100*NTRY*L1_TAVG/T_FILT WRITE(LUN,105) 'L1 bit',I,NAME, & FLOAT(NTRY)/NEVT,L1_PASS(I),NTRY, & P_PCT,(1000.*L1_TAVG),(1000.*L1_TSIGMA),L1_TPCT, & XSECT 105 FORMAT(1X,A6,I3,1X,A14,F4.2, & I7,'/',I6,'=',F5.1,'%',F7.1,2F6.1,'%',1PG10.3) RETURN C####################################################################### ENTRY FILTER_SUM_L2BIT(LUN,NEVT,I,NAME,NTRY,NPASS,T_FILT,XSECT) C---------------------------------------------------------------------- P_PCT = PCT(NPASS,NTRY) C C get timing info this script C TPCT = 100*NTRY*SAVG(I)/T_FILT WRITE(LUN,105) 'L2 bit',I,NAME,FLOAT(NTRY)/NEVT,NPASS,NTRY, & P_PCT,(1000.*SAVG(I)),(1000.*SSIGMA(I)),TPCT,XSECT IF (UNFILTER_RATE(I).GT.0) WRITE(LUN,120) UNFILTER_RATE(I) 120 FORMAT(' [Pass_1_of',I8,'] to Monitor Stream') RETURN C---------------------------------------------------------------------- C####################################################################### ENTRY FILTER_SUM_L2TOOL(LUN,I,NAME,NTRY,NPASS,LENT,PARSET) C---------------------------------------------------------------------- P_PCT = PCT(NPASS,NTRY) !passing percentage for THIS tool C WRITE(LUN,115) I,NAME(1:LENT),PARSET,NPASS,NTRY,P_PCT 115 FORMAT( ' #',I2,' ',A12, ' Set',I3,4X,I7,'/',I6,'=',F5.1,'%') RETURN C####################################################################### ENTRY FILTER_SUM_ALL_FILT(LUN,NEVT,NPASS,XSECT) C---------------------------------------------------------------------- P_PCT = PCT(NPASS,NEVT) WRITE(LUN,116) & NPASS,NEVT,P_PCT,(1000.*FAVG),(1000.*FSIGMA),XSECT 116 FORMAT(/' OVERALL Filtering',11X, & I6,'/',I7,'=',F5.1,'%',F7.1,F6.1,1PG17.3/) 999 RETURN END