#!/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 = ) { 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");