|
1 #!/usr/bin/perl |
|
2 #====================================================================== |
|
3 # S C A N B I N S |
|
4 # doc: Mon Jan 27 17:55:34 2003 |
|
5 # dlm: Wed Sep 19 10:02:51 2007 |
|
6 # (c) 2003 A.M. Thurnherr |
|
7 # uE-Info: 11 24 NIL 0 0 72 2 2 4 NIL ofnI |
|
8 #====================================================================== |
|
9 |
|
10 # Collect Per-Bin Stats |
|
11 # NB: currently broken |
|
12 |
|
13 # HISTORY: |
|
14 # Jan 27, 2003: - created |
|
15 # Sep 19, 2007: - adapted to new [RDI_BB_Read.pl] (not tested) |
|
16 |
|
17 $0 =~ m{(.*)/[^/]+}; |
|
18 require "$1/WorkhorseBinRead.pl"; |
|
19 require "getopts.pl"; |
|
20 |
|
21 die("Usage: $0 " . |
|
22 "" . |
|
23 "<RDI file>\n") |
|
24 unless (&Getopts("") && @ARGV == 1); |
|
25 |
|
26 print(STDERR "Reading $ARGV[0]..."); |
|
27 readData($ARGV[0],\%dta); # read data |
|
28 print(STDERR "done\n"); |
|
29 |
|
30 for ($e=0; $e<=$#{$dta{ENSEMBLE}}; $e++) { |
|
31 checkEnsemble(\%dta,$e); # sanity checks |
|
32 $nens++; |
|
33 |
|
34 next unless (defined($dta{ENSEMBLE}[$e]->{VELOCITY}[0][0]) && |
|
35 defined($dta{ENSEMBLE}[$e]->{VELOCITY}[0][1]) && |
|
36 defined($dta{ENSEMBLE}[$e]->{VELOCITY}[0][2]) && |
|
37 defined($dta{ENSEMBLE}[$e]->{VELOCITY}[0][3])); |
|
38 $ngoodens++; |
|
39 |
|
40 for ($b=0; $b<$dta{N_BINS}; $b++) { # collect stats |
|
41 my($ngood) = defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][0]) |
|
42 + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][1]) |
|
43 + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][2]) |
|
44 + defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][3]); |
|
45 if ($ngood == 4) { $ngood4[$b]++; } |
|
46 elsif ($ngood == 3) { $ngood3[$b]++; } |
|
47 else { $nbad[$b]++; } |
|
48 |
|
49 for ($i=0; $i<4; $i++) { |
|
50 if (defined($dta{ENSEMBLE}[$e]->{VELOCITY}[$b][$i])) { |
|
51 $ngood[$b][$i]++; |
|
52 $sumcor[$b][$i] += $dta{ENSEMBLE}[$e]->{CORRELATION}[$b][$i]; |
|
53 $sumamp[$b][$i] += $dta{ENSEMBLE}[$e]->{ECHO_AMPLITUDE}[$b][$i]; |
|
54 } |
|
55 } |
|
56 } |
|
57 } |
|
58 |
|
59 printf("$ngoodens good ensembles out of $nens\n"); |
|
60 for ($b=0; $b<$dta{N_BINS}; $b++) { # gen output |
|
61 printf("%2d: vels: %3d%% 4-bin, %3d%% 3-bin, %3d%% bad; ", |
|
62 $b+1, |
|
63 100*$ngood4[$b]/$ngoodens,100*$ngood3[$b]/$ngoodens, |
|
64 100*$nbad[$b]/$ngoodens); |
|
65 printf("mean corr: %3d/%3d/%3d/%3d; mean amp: %3d/%3d/%3d/%3d", |
|
66 $sumcor[$b][0]/$ngood[$b][0], $sumcor[$b][1]/$ngood[$b][1], |
|
67 $sumcor[$b][2]/$ngood[$b][2], $sumcor[$b][3]/$ngood[$b][3], |
|
68 $sumamp[$b][0]/$ngood[$b][0], $sumamp[$b][1]/$ngood[$b][1], |
|
69 $sumamp[$b][2]/$ngood[$b][2], $sumamp[$b][3]/$ngood[$b][3]); |
|
70 print("\n"); |
|
71 } |
|
72 |
|
73 exit(0); |
|
74 |