Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 8476)
+++ trunk/MagicSoft/Mars/Changelog	(revision 8477)
@@ -19,4 +19,14 @@
                                                  -*-*- END OF LINE -*-*-
 
+ 2007/05/08 Daniel Hoehne
+
+   * datacenter/macros/fillsignal.C:
+     - implemented new variables fUnsuitable50 and fUnsuitable01
+
+   * datacenter/db/menu.php, magicdefs.php, querycal.php:
+     - implemented new columns fUnsuitable50 and fUnsuitable01
+
+
+
  2007/05/04 Thomas Bretz
 
Index: trunk/MagicSoft/Mars/datacenter/db/magicdefs.php
===================================================================
--- trunk/MagicSoft/Mars/datacenter/db/magicdefs.php	(revision 8476)
+++ trunk/MagicSoft/Mars/datacenter/db/magicdefs.php	(revision 8477)
@@ -218,4 +218,6 @@
      "fUnreliableInner"                 => "Un<br>rel.<br>In",
      "fUnsuitableInner"                 => "Un<br>suit.<br>In",
+     "fUnsuitable50"                    => "Un<br>suit.<br>50",
+     "fUnsuitable01"                    => "Un<br>suit.<br>01",
      "fIsolatedOuter"                   => "Isol.<br>Out",
      "fIsolatedInner"                   => "Isol.<br>In",
@@ -363,4 +365,6 @@
      $alias["fUnsuitableInner"]          => "1",
      $alias["fUnreliableInner"]          => "1",
+     $alias["fUnsuitable50"]             => "1",
+     $alias["fUnsuitable01"]             => "1",
      $alias["fIsolatedOuter"]            => "1",
      $alias["fIsolatedInner"]            => "1",
@@ -519,4 +523,6 @@
          "fUnsuitableInner"                  => "Calibration.fUnsuitableInner",
          "fUnsuitableOuter"                  => "Calibration.fUnsuitableOuter",
+         "fUnsuitable50"                     => "Calibration.fUnsuitable50",
+         "fUnsuitable01"                     => "Calibration.fUnsuitable01",
          "fUnreliableInner"                  => "Calibration.fUnreliableInner",
          "fUnreliableOuter"                  => "Calibration.fUnreliableOuter",
Index: trunk/MagicSoft/Mars/datacenter/db/menu.php
===================================================================
--- trunk/MagicSoft/Mars/datacenter/db/menu.php	(revision 8476)
+++ trunk/MagicSoft/Mars/datacenter/db/menu.php	(revision 8477)
@@ -280,4 +280,9 @@
     printf("  </tr><tr>\n");
 
+    CheckBox("fUnsuitable50",        "Unsuitable (50%)");
+    CheckBox("fUnsuitable01",        "Unsuitable (1%)");
+
+    printf("  </tr><tr>\n");
+
     CheckBox("fIsolatedInner",       "Isolated inner");
     CheckBox("fIsolatedOuter",       "Isolated outer");
@@ -829,4 +834,10 @@
         $_GET["fUnsuitableInner"]="Off";
 
+    if (empty($_GET["fUnsuitable50"]))
+        $_GET["fUnsuitable50"]="Off";
+
+    if (empty($_GET["fUnsuitable01"]))
+        $_GET["fUnsuitable01"]="Off";
+
     if (empty($_GET["fIsolatedInner"]))
         $_GET["fIsolatedInner"]="Off";
Index: trunk/MagicSoft/Mars/datacenter/db/querycal.php
===================================================================
--- trunk/MagicSoft/Mars/datacenter/db/querycal.php	(revision 8476)
+++ trunk/MagicSoft/Mars/datacenter/db/querycal.php	(revision 8477)
@@ -52,4 +52,10 @@
             $_GET["fUnsuitableOuter"]=$first?"On":"";
 
+        if (empty($_GET["fUnsuitable50"]))
+            $_GET["fUnsuitable50"]=$first?"On":"";
+
+        if (empty($_GET["fUnsuitable01"]))
+            $_GET["fUnsuitable01"]=$first?"On":"";
+
         if (empty($_GET["fUnreliableOuter"]))
             $_GET["fUnreliableOuter"]=$first?"On":"";
@@ -113,4 +119,9 @@
         CheckBox("fUnreliableInner",     "Unreliable inner");
         CheckBox("fUnreliableOuter",     "Unreliable outer");
+
+        printf("  </tr><tr>\n");
+
+        CheckBox("fUnsuitable50",        "Unsuitable (50%)");
+        CheckBox("fUnsuitable01",        "Unsuitable (1%)");
         CheckBox("fIsolatedInner",       "Isolated inner");
         CheckBox("fIsolatedOuter",       "Isolated outer");
Index: trunk/MagicSoft/Mars/datacenter/macros/fillsignal.C
===================================================================
--- trunk/MagicSoft/Mars/datacenter/macros/fillsignal.C	(revision 8476)
+++ trunk/MagicSoft/Mars/datacenter/macros/fillsignal.C	(revision 8477)
@@ -57,4 +57,5 @@
 /////////////////////////////////////////////////////////////////////////////
 #include <iostream>
+#include <iomanip>
 
 #include <TEnv.h>
@@ -73,4 +74,14 @@
 
 using namespace std;
+
+Int_t CalcUnsuitable(const MHCamera &cam, Float_t f)
+{
+    Int_t n = 0;
+    for (int i=0; i<cam.GetNbinsX(); i++)
+        if (cam.GetBinContent(i+1)>f)
+            n++;
+
+    return n;
+}
 
 int Process(MSQLServer &serv, TString fname, Bool_t dummy)
@@ -238,4 +249,14 @@
     meanpul = TMath::Nint(meanpul*100)/100.;
     rmspul  = TMath::Nint(rmspul *100)/100.;
+
+    cam = (MHCamera*)arr.FindObjectInCanvas("Unsuitable;avg", "MHCamera", "Unsuitable");
+    if (!cam)
+    {
+        cout << "WARNING - Reading of Unsuitable;avg failed." << endl;
+        return 2;
+    }
+
+    Int_t unsuitable50 = CalcUnsuitable(*cam, 0.50);
+    Int_t unsuitable01 = CalcUnsuitable(*cam, 0.01);
 
 /*
@@ -293,4 +314,6 @@
     cout << "  Lo-Hi gain offset:      " << medpuloff    << " +-  " << devpuloff    << endl;
     cout << "  Hi/Lo gain ratio:        " << medhilocal   << " +- " << devhilocal   << endl;
+    cout << "  Unsuitable > 50%:       " << setw(6) << unsuitable50 << endl;
+    cout << "  Unsuitable >  1%:       " << setw(6) << unsuitable01 << endl;
     cout << endl;
 
@@ -307,5 +330,6 @@
                          //" fPulsePosLoMean=%s,    fPulsePosLoRms=%s,    "
                          " fPulsePosOffMed=%s,    fPulsePosOffDev=%s,   "
-                         " fHiLoGainRatioMed=%s,  fHiLoGainRatioDev=%s  "
+                         " fHiLoGainRatioMed=%s,  fHiLoGainRatioDev=%s,  "
+                         " fUnsuitable50=%d,  fUnsuitable01=%d  "
                          " WHERE fSequenceFirst='%d' ",
                          meanrmsinner.Data(),  meanrmsouter.Data(),
@@ -317,4 +341,5 @@
                          medpuloff.Data(),    devpuloff.Data(),
                          medhilocal.Data(),   devhilocal.Data(),
+                         unsuitable50, unsuitable01,
                          seq);
 
