diff options
Diffstat (limited to 'scripts/indexing-rate')
-rwxr-xr-x | scripts/indexing-rate | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/scripts/indexing-rate b/scripts/indexing-rate new file mode 100755 index 00000000..6dc61f36 --- /dev/null +++ b/scripts/indexing-rate @@ -0,0 +1,93 @@ +#!/usr/bin/perl -w + +use strict; +use File::Basename; + +open(FH, $ARGV[0]); +open(HITRATE, "> hitrate.dat"); + +my $line; +my $year; +my $month; +my $day; +my $hour; +my $min = -1; +my $sec = -1; +my $nh = 0; + +while ( $line = <FH> ) { + + chomp($line); + + unless ( $line =~ /^Reflections\ from\ indexing\ in\ (.+)$/ ) { + next; + } + + my $filename = basename($1); + + if ( $filename ) { + + unless ( $filename =~ + /LCLS_(\d+)_([A-Za-z]+)(\d+)_r\d\d\d\d_(\d\d)(\d\d)(\d\d)_/ ) { + printf(STDERR "Wrong filename format '%s'!\n", + $filename); + exit(1); + } + + my $new_year = $1; + my $new_month = $2; + my $new_day = $3; + my $new_hour = $4; + my $new_min = $5; + my $new_sec = $6; + + if ( $new_min != $min ) { + + # Not the first time + if ( $sec != -1 ) { + printf(HITRATE "%s/%s/%s-%s:%s:%s %i\n", + $year, $month, $day, + $hour, $min, $sec, $nh); + } + + $year = $new_year; + $month = $new_month; + $day = $new_day; + $hour = $new_hour; + $min = $new_min; + $sec = $new_sec; + $nh = 0; + + } else { + + $nh++; + + } + + } + +} + +close(FH); +close(HITRATE); + +#system("head -n 67 hitrate.dat > hitrate2.dat"); +system("tail -n 105 hitrate.dat > hitrate2.dat"); + +open(GP, "| gnuplot"); + +print(GP "set term postscript enhanced font \"Helvetica,20\"\n"); +print(GP "set output \"hitrate.ps\"\n"); +print(GP "set title \"Hit rate\"\n"); +print(GP "set xtics nomirror rotate by -60\n"); +print(GP "set xdata time\n"); +print(GP "set timefmt \"%Y/%b/%d-%H:%M:%S\"\n"); +print(GP "set format x \"%d/%b %H:%M\"\n"); +print(GP "set rmargin 6\n"); +print(GP "unset key\n"); +print(GP "plot [] [] \"hitrate2.dat\" u 1:2 w histeps lw 3 lc 3\n"); +close(GP); + +system("ps2pdf hitrate.ps"); +#unlink("hitrate.dat"); +unlink("hitrate.ps"); |