]> jspc29.x-matter.uni-frankfurt.de Git - hadesdaq.git/commitdiff
add corrected version of hmon_startrate.pl
authorhadaq <jan@lxhadeb07>
Fri, 1 Mar 2024 12:02:06 +0000 (13:02 +0100)
committerhadaq <jan@lxhadeb07>
Fri, 1 Mar 2024 12:02:06 +0000 (13:02 +0100)
hmon/hmon_startrate.pl

index a9c9e015293f4a9182f7633c643af43cd9700172..f3657643e8a274e5d7dcb3c95c01cbb078ae4b24 100755 (executable)
@@ -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 .= "<table style=\"margin:auto;\"><tr><td>Last Sum<td>".QA::SciNotation( $total_x_0+$total_x_1);
 # end changed
                 
-                $str .= "<td>Last Duty<td>".sprintf("%0.3f",($avgRate_x_0+$avgRate_x_1)/$maxTotalX);
+                $str .= "<td>Last Duty<td>".sprintf("%0.3f",($avgRate_x_0+$avgRate_x_1)/($maxTotalX||1));
                 $str .= "<tr><td>Last Duration<td>".$length_x_0;
                 $str .= "<td>Last Break<td>".$offtime_x_0." s";
 #                 $str .= "<tr><td>Last Max<td>".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 .= "<table style=\"margin:auto;\"><tr><td>Last Sum<td>".QA::SciNotation($total_y_0+$total_y_1);
 #                end changed
 
-                $str .= "<td>Last Duty<td>".sprintf("%0.3f",($avgRate_y_0+$avgRate_y_1)/$maxTotalY);
+                $str .= "<td>Last Duty<td>".sprintf("%0.3f",($avgRate_y_0+$avgRate_y_1)/($maxTotalY||1));
                 $str .= "<tr><td>Last Duration<td>".$length_y_0;
                 $str .= "<td>Last Break<td>".$offtime_y_0." s";
 #                 $str .= "<tr><td>Last Max<td>".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;