diff --git a/scanBins b/scanBins new file mode 100755 --- /dev/null +++ b/scanBins @@ -0,0 +1,74 @@ +#!/usr/bin/perl +#====================================================================== +# S C A N B I N S +# doc: Mon Jan 27 17:55:34 2003 +# dlm: Wed Sep 19 10:02:51 2007 +# (c) 2003 A.M. Thurnherr +# uE-Info: 11 24 NIL 0 0 72 2 2 4 NIL ofnI +#====================================================================== + +# Collect Per-Bin Stats +# NB: currently broken + +# HISTORY: +# Jan 27, 2003: - created +# Sep 19, 2007: - adapted to new [RDI_BB_Read.pl] (not tested) + +$0 =~ m{(.*)/[^/]+}; +require "$1/WorkhorseBinRead.pl"; +require "getopts.pl"; + +die("Usage: $0 " . + "" . + "\n") + unless (&Getopts("") && @ARGV == 1); + +print(STDERR "Reading $ARGV[0]..."); +readData($ARGV[0],\%dta); # read data +print(STDERR "done\n"); + +for ($e=0; $e<=$#{$dta{ENSEMBLE}}; $e++) { + checkEnsemble(\%dta,$e); # sanity checks + $nens++; + + next unless (defined($dta{ENSEMBLE}[$e]->{VELOCITY}[0][0]) && + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[0][1]) && + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[0][2]) && + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[0][3])); + $ngoodens++; + + for ($b=0; $b<$dta{N_BINS}; $b++) { # collect stats + my($ngood) = defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][0]) + + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][1]) + + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][2]) + + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][3]); + if ($ngood == 4) { $ngood4[$b]++; } + elsif ($ngood == 3) { $ngood3[$b]++; } + else { $nbad[$b]++; } + + for ($i=0; $i<4; $i++) { + if (defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][$i])) { + $ngood[$b][$i]++; + $sumcor[$b][$i] += $dta{ENSEMBLE}[$e]->{CORRELATION}[$b][$i]; + $sumamp[$b][$i] += $dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b][$i]; + } + } + } +} + +printf("$ngoodens good ensembles out of $nens\n"); +for ($b=0; $b<$dta{N_BINS}; $b++) { # gen output + printf("%2d: vels: %3d%% 4-bin, %3d%% 3-bin, %3d%% bad; ", + $b+1, + 100*$ngood4[$b]/$ngoodens,100*$ngood3[$b]/$ngoodens, + 100*$nbad[$b]/$ngoodens); + printf("mean corr: %3d/%3d/%3d/%3d; mean amp: %3d/%3d/%3d/%3d", + $sumcor[$b][0]/$ngood[$b][0], $sumcor[$b][1]/$ngood[$b][1], + $sumcor[$b][2]/$ngood[$b][2], $sumcor[$b][3]/$ngood[$b][3], + $sumamp[$b][0]/$ngood[$b][0], $sumamp[$b][1]/$ngood[$b][1], + $sumamp[$b][2]/$ngood[$b][2], $sumamp[$b][3]/$ngood[$b][3]); + print("\n"); +} + +exit(0); +