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