#--------------------------------------------------------------------------- .help dst_particle May92 hrs .ih NAME dst_particle -- Determine particle hit threshold for each diode. .endhelp #--------------------------------------------------------------------------- procedure dst_particle (sum, sumsq, n_grps, thresh, n_sigma, limit, n_diodes) double sum[n_diodes] # I: Sum accumulation. double sumsq[n_diodes] # I: Sum squared accumulation. int n_grps # I: Total number of groups. double thresh # I: Input threshold. double n_sigma # I: Sigma difference. double limit[n_diodes] # O: Thresholds for each diode. int n_diodes # I: Number of diodes. # Declarations. double average # The average. double sigma # Deviation from mean. int diode # Current diode. begin # Determine threshold for each diode. do diode = 1, n_diodes { average = sum[diode] / n_grps if (IS_INDEFD(thresh)) { if (IS_INDEFD(n_sigma)) limit[diode] = INDEFD else { sigma = sqrt ((sumsq[diode] / n_grps) - (average * average)) limit[diode] = average + n_sigma * sigma } } else limit[diode] = average + thresh } end #--------------------------------------------------------------------------- # End of dst_particle #---------------------------------------------------------------------------