]> jspc29.x-matter.uni-frankfurt.de Git - hadesdaq.git/commitdiff
adapted LUT for START Detector and Jan fixed bugs in rate calculation
authorhadaq <jan@lxhadeb07>
Fri, 1 Mar 2024 10:48:51 +0000 (11:48 +0100)
committerhadaq <jan@lxhadeb07>
Fri, 1 Mar 2024 10:48:51 +0000 (11:48 +0100)
hmon/hmon_startrate.pl

index afa08569f20ed6c8c305cd88c6b4990626bbcf87..a9c9e015293f4a9182f7633c643af43cd9700172 100755 (executable)
@@ -576,26 +576,26 @@ HPlot::PlotDrawFork('StartDutyFactorY_0');
 
 
 my $channels_x_1 = [
-                  { pch =>   1,  tdc => 2, ch => 7},                  # Int(ch/2) because we read from monitoring register, which counts 0-23 for each TDC.
-                  { pch =>   3,  tdc => 2, ch => 6},                  # Take care that the functions copy pasted DO NOT have a "-1" for the channels!
-                  { pch =>   5,  tdc => 2, ch => 5},                  # pch: physical channel. The thing which will be plotted
-                  { pch =>   7,  tdc => 2, ch => 4},                  # tdc: tdc number
-                  { pch =>   9,  tdc => 2, ch => 3},                  # ch: channel in the TDC
-                  { pch =>  11,  tdc => 2, ch => 2},
-                  { pch =>  13,  tdc => 2, ch => 1},
-                  { pch =>  15,  tdc => 2, ch => 0}
+                  { pch =>   2,  tdc => 2, ch => 7},                  # Int(ch/2) because we read from monitoring register, which counts 0-23 for each TDC.
+                  { pch =>   4,  tdc => 2, ch => 6},                  # Take care that the functions copy pasted DO NOT have a "-1" for the channels!
+                  { pch =>   6,  tdc => 2, ch => 5},                  # pch: physical channel. The thing which will be plotted
+                  { pch =>   8,  tdc => 2, ch => 4},                  # tdc: tdc number
+                  { pch =>   10,  tdc => 2, ch => 3},                  # ch: channel in the TDC
+                  { pch =>  12,  tdc => 2, ch => 2},
+                  { pch =>  14,  tdc => 2, ch => 1},
+                  { pch =>  16,  tdc => 2, ch => 0}
 
                  ];                              
                                                  
 my $channels_x_0 = [
-                  { pch =>  2 ,  tdc => 0, ch => 0 },               # Int(ch/2) because we read from monitoring register, which counts 0-23 for each TDC.
-                  { pch =>  4 ,  tdc => 0, ch => 1 },               # Take care that the functions copy pasted DO NOT have a "-1" for the channels!
-                  { pch =>  6 ,  tdc => 0, ch => 2 },
-                  { pch =>  8 ,  tdc => 0, ch => 3 },
-                  { pch =>  10,  tdc => 0, ch => 4 },
-                  { pch =>  12,  tdc => 0, ch => 5 },
-                  { pch =>  14,  tdc => 0, ch => 6 },
-                  { pch =>  16,  tdc => 0, ch => 7 }
+                  { pch =>  1 ,  tdc => 0, ch => 0 },               # Int(ch/2) because we read from monitoring register, which counts 0-23 for each TDC.
+                  { pch =>  3 ,  tdc => 0, ch => 1 },               # Take care that the functions copy pasted DO NOT have a "-1" for the channels!
+                  { pch =>  5 ,  tdc => 0, ch => 2 },
+                  { pch =>  7 ,  tdc => 0, ch => 3 },
+                  { pch =>  9,  tdc => 0, ch => 4 },
+                  { pch =>  11,  tdc => 0, ch => 5 },
+                  { pch =>  13,  tdc => 0, ch => 6 },
+                  { pch =>  15,  tdc => 0, ch => 7 }
 
                  ];
 my $channels_y_1 = [
@@ -898,7 +898,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||1),0);
+                HPlot::PlotAdd("StartDutyFactorX_0", ($avgRate_x_0+$avgRate_x_1)/$maxTotalX,0);
                 HPlot::PlotAdd("StartSpillPeakX_0", $maxTotalX,0);
                 HPlot::PlotAdd("StartSpillSumX_0", $total_x_0+$total_x_1,0);
 #                 end changed
@@ -915,7 +915,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||1));
+                $str .= "<td>Last Duty<td>".sprintf("%0.3f",($avgRate_x_0+$avgRate_x_1)/$maxTotalX);
                 $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 +936,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||1),0);
+                HPlot::PlotAdd("StartDutyFactorY_0", ($avgRate_y_0+$avgRate_y_1)/$maxTotalY,0);
                 HPlot::PlotAdd("StartSpillPeakY_0",$maxTotalY,0);
                 HPlot::PlotAdd("StartSpillSumY_0", $total_y_0+$total_y_1,0);
 #                 end changed
@@ -956,7 +956,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||1));
+                $str .= "<td>Last Duty<td>".sprintf("%0.3f",($avgRate_y_0+$avgRate_y_1)/$maxTotalY);
                 $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 +1049,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 & 0xffffff)-(($old->{$trbnet}->{value}->[$channel]//0) & 0xffffff);
+        my $hitdiff = ($hits & 0xfffffff)-(($old->{$trbnet}->{value}->[$channel]//0) & 0xfffffff);
         $hitdiff +=2**24 if $hitdiff < 0;
         my $time = $current_readout->{$trbnet}->{time}->[$channel];
         my $tdiff = ($time//0) - ($old->{$trbnet}->{time}->[$channel]//0);
@@ -1089,7 +1089,7 @@ sub calculate_diff_time_and_sum {
       #print Dumper $old;
       #exit;
       # vdiff is difference in read out values (Read: ValueDifference)
-      my $vdiff = ($hits & 0xffffff) - (($old->{$trbnet}->{value}->[$channel]//0) & 0xffffff);
+      my $vdiff = ($hits & 0xfffffff) - (($old->{$trbnet}->{value}->[$channel]//0) & 0xfffffff);
       $vdiff += 2**24 if $vdiff < 0;
       my $diff = $vdiff/($tdiff||1E6)*1E6;
       #print "vdiff: $vdiff, diff: $diff, tdiff: $tdiff\n";
@@ -1113,7 +1113,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 & 0xffffff)-(($old->{$trbnet}->{value}->[$channel]//0) & 0xffffff);
+    my $hitdiff = ($hits & 0xfffffff)-(($old->{$trbnet}->{value}->[$channel]//0) & 0xfffffff);
     printf("%04x %04x\n",$trbnet,$channel) unless defined $hits;
     $hitdiff +=2**24 if $hitdiff < 0;
     my $time = $current_readout->{$trbnet}->{time}->[$channel]//0;