From aa3bb32512f3fe398d8350c4ce633309fe146e85 Mon Sep 17 00:00:00 2001 From: hadaq Date: Fri, 1 Mar 2024 13:02:06 +0100 Subject: [PATCH] add corrected version of hmon_startrate.pl --- hmon/hmon_startrate.pl | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/hmon/hmon_startrate.pl b/hmon/hmon_startrate.pl index a9c9e01..f365764 100755 --- a/hmon/hmon_startrate.pl +++ b/hmon/hmon_startrate.pl @@ -624,8 +624,6 @@ my $channels_y_0 = [ - - trb_init_ports() or die trb_strerror(); #while (1) { @@ -898,7 +896,7 @@ while(1) { # HPlot::PlotAdd("StartSpillSumX_0", $total_x_0,0); # changed W.K 01.02.22 max_x and total_x for whole detector - HPlot::PlotAdd("StartDutyFactorX_0", ($avgRate_x_0+$avgRate_x_1)/$maxTotalX,0); + HPlot::PlotAdd("StartDutyFactorX_0", ($avgRate_x_0+$avgRate_x_1)/($maxTotalX||1),0); HPlot::PlotAdd("StartSpillPeakX_0", $maxTotalX,0); HPlot::PlotAdd("StartSpillSumX_0", $total_x_0+$total_x_1,0); # end changed @@ -915,7 +913,7 @@ while(1) { $str .= "
Last Sum".QA::SciNotation( $total_x_0+$total_x_1); # end changed - $str .= "Last Duty".sprintf("%0.3f",($avgRate_x_0+$avgRate_x_1)/$maxTotalX); + $str .= "Last Duty".sprintf("%0.3f",($avgRate_x_0+$avgRate_x_1)/($maxTotalX||1)); $str .= "
Last Duration".$length_x_0; $str .= "Last Break".$offtime_x_0." s"; # $str .= "
Last Max".QA::SciNotation($max_x_0)." Hz (100ms)"; @@ -936,7 +934,7 @@ while(1) { # HPlot::PlotAdd("StartSpillPeakY_0", $max_y_0,0); # HPlot::PlotAdd("StartSpillSumY_0", $total_y_0,0); # changed W.K 01.02.22 - HPlot::PlotAdd("StartDutyFactorY_0", ($avgRate_y_0+$avgRate_y_1)/$maxTotalY,0); + HPlot::PlotAdd("StartDutyFactorY_0", ($avgRate_y_0+$avgRate_y_1)/($maxTotalY||1),0); HPlot::PlotAdd("StartSpillPeakY_0",$maxTotalY,0); HPlot::PlotAdd("StartSpillSumY_0", $total_y_0+$total_y_1,0); # end changed @@ -956,7 +954,7 @@ while(1) { $str .= "
Last Sum".QA::SciNotation($total_y_0+$total_y_1); # end changed - $str .= "Last Duty".sprintf("%0.3f",($avgRate_y_0+$avgRate_y_1)/$maxTotalY); + $str .= "Last Duty".sprintf("%0.3f",($avgRate_y_0+$avgRate_y_1)/($maxTotalY||1)); $str .= "
Last Duration".$length_y_0; $str .= "Last Break".$offtime_y_0." s"; # $str .= "
Last Max".QA::SciNotation($max_y_0)." Hz (100ms)"; @@ -1049,7 +1047,7 @@ sub calculate_rates{ my ($trbnet, $channel, $phy_channel) = ($ch->{tdc}, $ch->{ch},$ch->{pch}); $trbnet += $trbnet_endpoint_offset; my $hits = $current_readout->{$trbnet}->{value}->[$channel]//0; - my $hitdiff = ($hits & 0xfffffff)-(($old->{$trbnet}->{value}->[$channel]//0) & 0xfffffff); + my $hitdiff = ($hits & 0xffffff)-(($old->{$trbnet}->{value}->[$channel]//0) & 0xffffff); $hitdiff +=2**24 if $hitdiff < 0; my $time = $current_readout->{$trbnet}->{time}->[$channel]; my $tdiff = ($time//0) - ($old->{$trbnet}->{time}->[$channel]//0); @@ -1089,7 +1087,7 @@ sub calculate_diff_time_and_sum { #print Dumper $old; #exit; # vdiff is difference in read out values (Read: ValueDifference) - my $vdiff = ($hits & 0xfffffff) - (($old->{$trbnet}->{value}->[$channel]//0) & 0xfffffff); + my $vdiff = ($hits & 0xffffff) - (($old->{$trbnet}->{value}->[$channel]//0) & 0xffffff); $vdiff += 2**24 if $vdiff < 0; my $diff = $vdiff/($tdiff||1E6)*1E6; #print "vdiff: $vdiff, diff: $diff, tdiff: $tdiff\n"; @@ -1113,7 +1111,7 @@ sub calculate_weighted_sum_difference_from_mean{ my ($trbnet, $channel, $phy_channel) = ($ch->{tdc}, $ch->{ch},$ch->{pch}); $trbnet += $trbnet_endpoint_offset; my $hits = $current_readout->{$trbnet}->{value}->[$channel]//0; - my $hitdiff = ($hits & 0xfffffff)-(($old->{$trbnet}->{value}->[$channel]//0) & 0xfffffff); + my $hitdiff = ($hits & 0xffffff)-(($old->{$trbnet}->{value}->[$channel]//0) & 0xffffff); printf("%04x %04x\n",$trbnet,$channel) unless defined $hits; $hitdiff +=2**24 if $hitdiff < 0; my $time = $current_readout->{$trbnet}->{time}->[$channel]//0; -- 2.43.0