Index: trunk/Mars/fact/analysis/callisto.C
===================================================================
--- trunk/Mars/fact/analysis/callisto.C	(revision 18286)
+++ trunk/Mars/fact/analysis/callisto.C	(revision 18287)
@@ -21,4 +21,47 @@
 
     MStatusDisplay *d = new MStatusDisplay;
+
+    // ------------------------------------------------------
+
+    // ------------------------------------------------------
+
+    // Calib: 51 / 90 / 197 (20% TH)
+    // Data:  52 / 64 / 104 (20% TH)
+
+    // Extraction range in slices. It will always(!) contain the full range
+    // of integration
+    const int first_slice =  25; //  10ns
+    const int last_slice  = 225; // 125ns
+
+    const double heighttm   = 0.5; // IntegralAbs { 1.5pe * 9.6mV/pe } / IntegralRel { 0.5 }
+
+    Long_t max  =    0;  // All
+    Long_t max0 =  max;  // Time marker
+    Long_t max1 =  max;  // Light pulser
+    //Long_t max2 = 3000;  // Calibration ratio
+    Long_t max3 =  max;  // Pedestal Rndm
+    Long_t max4 =  max;  // Pedestal Ext
+    Long_t max5 =  max;  // Data
+
+    // ========================= Result ==================================
+
+    //double scale = 0.1;
+    double scale = 0.1024;
+
+    // ======================================================
+
+    if (map && gSystem->AccessPathName(map, kFileExists))
+    {
+        gLog << err << "ERROR - Cannot access mapping file '" << map << "'" << endl;
+        return 1;
+    }
+
+    // The sequence file which defines the files for the analysis
+    MSequence seq(seqfile);
+    if (!seq.IsValid())
+    {
+        gLog << err << "ERROR - Sequence '" << seqfile << "' invalid!" << endl;
+        return 2;
+    }
 
     MBadPixelsCam badpixels;
@@ -38,45 +81,26 @@
     //    1393
 
-    // ------------------------------------------------------
-
-    // ------------------------------------------------------
-
-    // Calib: 51 / 90 / 197 (20% TH)
-    // Data:  52 / 64 / 104 (20% TH)
-
-    // Extraction range in slices. It will always(!) contain the full range
-    // of integration
-    const int first_slice =  25; //  10ns
-    const int last_slice  = 225; // 125ns
-
-    const double heighttm   = 0.5; // IntegralAbs { 1.5pe * 9.6mV/pe } / IntegralRel { 0.5 }
-
-    Long_t max  =    0;  // All
-    Long_t max0 =  max;  // Time marker
-    Long_t max1 =  max;  // Light pulser
-    //Long_t max2 = 3000;  // Calibration ratio
-    Long_t max3 =  max;  // Pedestal Rndm
-    Long_t max4 =  max;  // Pedestal Ext
-    Long_t max5 =  max;  // Data
-
-    // ========================= Result ==================================
-
-    //double scale = 0.1;
-    double scale = 0.1024;
-
-    // ======================================================
-
-    if (map && gSystem->AccessPathName(map, kFileExists))
-    {
-        gLog << err << "ERROR - Cannot access mapping file '" << map << "'" << endl;
-        return 1;
-    }
-
-    // The sequence file which defines the files for the analysis
-    MSequence seq(seqfile);
-    if (!seq.IsValid())
-    {
-        gLog << err << "ERROR - Sequence '" << seqfile << "' invalid!" << endl;
-        return 2;
+    // broken drs-board:
+    //   https://www.fact-project.org/logbook/showthread.php?tid=3521
+    // in the analysis effect visible 10.1. - 25.5.2015
+    // according to logbook:
+    //   first report of problem:
+    //   https://www.fact-project.org/logbook/showthread.php?tid=2772&pid=15756#pid15756
+    //   repair action:
+    //   https://www.fact-project.org/logbook/showthread.php?tid=3298
+    // affected pixels:
+    //   SW: 1193 1194 1195 1391 1392 1393 1304 1305 1306
+    if (seq.GetNight().GetNightAsInt()>20141114 && seq.GetNight().GetNightAsInt()<20150526)
+    {
+        gLog << "Exclude broken drs-board..." << endl;
+        badpixels[1193].SetUnsuitable(MBadPixelsPix::kUnsuitable);
+        badpixels[1194].SetUnsuitable(MBadPixelsPix::kUnsuitable);
+        badpixels[1195].SetUnsuitable(MBadPixelsPix::kUnsuitable);
+        badpixels[1391].SetUnsuitable(MBadPixelsPix::kUnsuitable);
+        badpixels[1392].SetUnsuitable(MBadPixelsPix::kUnsuitable);
+        badpixels[1393].SetUnsuitable(MBadPixelsPix::kUnsuitable);
+        badpixels[1304].SetUnsuitable(MBadPixelsPix::kUnsuitable);
+        badpixels[1305].SetUnsuitable(MBadPixelsPix::kUnsuitable);
+        badpixels[1306].SetUnsuitable(MBadPixelsPix::kUnsuitable);
     }
 
