Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 6090)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 6091)
@@ -98,4 +98,6 @@
      - fill MCalibConstCam with update results (once per calib. consts
        update == every 10 sec.)
+     - introduce check for size of calibration constant. In case, it is 
+       completetly out of range, set the MBadPixelsPix::IsUnsuitableRun
 
    * mjobs/MJCalibrateSignal.cc:
Index: /trunk/MagicSoft/Mars/callisto.rc
===================================================================
--- /trunk/MagicSoft/Mars/callisto.rc	(revision 6090)
+++ /trunk/MagicSoft/Mars/callisto.rc	(revision 6091)
@@ -303,4 +303,6 @@
 #MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
 #MJCalibrateSignal.MCalibrateData.CalibrationMode: Default
+#MJCalibrateSignal.MCalibrateData.CalibConvMinLimit: 0.01
+#MJCalibrateSignal.MCalibrateData.CalibConvMaxLimit: 5.
 MJCalibrateSignal.Interlaced: yes
 #MJCalibrateSignal.RelTimesUpdate: no
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrateData.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrateData.cc	(revision 6090)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrateData.cc	(revision 6091)
@@ -135,4 +135,6 @@
 using namespace std;
 
+const Float_t MCalibrateData::fgCalibConvMinLimit = 0.01;
+const Float_t MCalibrateData::fgCalibConvMaxLimit = 5.;
 // --------------------------------------------------------------------------
 //
@@ -155,4 +157,7 @@
   
   SetCalibrationMode(calmode);
+  
+  SetCalibConvMinLimit();
+  SetCalibConvMaxLimit();
 
   fNamesPedestal.SetOwner();
@@ -477,9 +482,10 @@
         if(fCalibrationMode!=kNone)
           {
-            if ((*fBadPixels)[pixidx].IsUnsuitable())
+            if ((*fBadPixels)[pixidx].IsUnsuitable(MBadPixelsPix::kUnsuitableRun))
               {
                 skip++;
+		calibConv = -1.;
                 continue;
-              }
+             }
             
             MCalibrationChargePix &pix   = (MCalibrationChargePix&)(*fCalibrations)[pixidx];
@@ -604,4 +610,12 @@
         fCalibFFactors[pixidx] = calibFFactor;
 
+	if (calibConv < fCalibConvMinLimit || calibConv > fCalibConvMaxLimit)
+	  {
+	    (*fBadPixels)[pixidx].SetUnsuitable(MBadPixelsPix::kUnsuitableRun);  
+	    cpix.SetCalibConst(-1.);
+	    cpix.SetCalibFFactor(-1.);
+	    continue;
+	  }
+	
 	cpix.SetCalibConst(calibConv);
 	cpix.SetCalibFFactor(calibFFactor);
@@ -819,4 +833,16 @@
     }
 
+    if (IsEnvDefined(env, prefix, "CalibConvMinLimit", print))
+    {
+        fCalibConvMinLimit = GetEnvValue(env, prefix, "CalibConvMinLimit", fCalibConvMinLimit);
+        rc = kTRUE;
+    }
+
+    if (IsEnvDefined(env, prefix, "CalibConvMaxLimit", print))
+    {
+        fCalibConvMaxLimit = GetEnvValue(env, prefix, "CalibConvMaxLimit", fCalibConvMaxLimit);
+        rc = kTRUE;
+    }
+
     return rc;
 }
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrateData.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrateData.h	(revision 6090)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrateData.h	(revision 6091)
@@ -39,4 +39,10 @@
 private:
 
+  static const Float_t  fgCalibConvMinLimit; //! Minimum limit for conv. factor
+  static const Float_t  fgCalibConvMaxLimit; //! Maximum limit for conv. factor
+
+  Float_t  fCalibConvMinLimit;           // Minimum limit for conv. factor
+  Float_t  fCalibConvMaxLimit;           // Maximum limit for conv. factor
+    
   MGeomCam              *fGeomCam;       //! Camera geometry container
   MBadPixelsCam         *fBadPixels;     //! Bad Pixels information
@@ -117,4 +123,7 @@
   void   SetSignalType      ( SignalType_t      sigtype=kPhot    ) { fSignalType     =sigtype; }  
 
+  void   SetCalibConvMinLimit( const Float_t f=fgCalibConvMinLimit ) { fCalibConvMinLimit = f; }
+  void   SetCalibConvMaxLimit( const Float_t f=fgCalibConvMaxLimit ) { fCalibConvMaxLimit = f; }
+    
   Bool_t UpdateConversionFactors( const MCalibrationChargeCam *updatecam=NULL);
 
