Index: trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h
===================================================================
--- trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h	(revision 7027)
+++ trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h	(revision 7028)
@@ -105,7 +105,8 @@
       if (IsUncalibrated( kLoGainOverFlow      )) return 8;
       if (IsUncalibrated( kDeadPedestalRms     )) return 9;
-      if (IsUncalibrated( kFluctuatingArrivalTimes )) return 10;
-      if (IsUncalibrated( kPreviouslyExcluded      )) return 11;
-      return 12;
+      if (IsUncalibrated( kFluctuatingArrivalTimes)) return 10;
+      if (IsUncalibrated( kDeviatingNumPhes       )) return 11;
+      if (IsUncalibrated( kPreviouslyExcluded     )) return 12;
+      return 13;
     }
     
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.cc	(revision 7028)
@@ -179,5 +179,9 @@
 //  
 //  
-//  
+//  ClassVersion 2:
+//   - Float_t fPheErrLimit;
+//   + Float_t fPheErrLowerLimit;                   // Lower limit acceptance nr. phe's w.r.t. area idx mean (in sigmas)
+//   + Float_t fPheErrUpperLimit;                   // Upper limit acceptance nr. phe's w.r.t. area idx mean (in sigmas)
+//
 //////////////////////////////////////////////////////////////////////////////
 #include "MCalibrationChargeCalc.h"
@@ -236,5 +240,6 @@
 const Float_t MCalibrationChargeCalc::fgLambdaErrLimit         = 0.2;
 const Float_t MCalibrationChargeCalc::fgLambdaCheckLimit       = 0.5;
-const Float_t MCalibrationChargeCalc::fgPheErrLimit            = 4.5;
+const Float_t MCalibrationChargeCalc::fgPheErrLowerLimit       = 9.0;
+const Float_t MCalibrationChargeCalc::fgPheErrUpperLimit       = 5.5;
 const Float_t MCalibrationChargeCalc::fgFFactorErrLimit        = 4.5;
 const Float_t MCalibrationChargeCalc::fgArrTimeRmsLimit        = 3.5;
@@ -262,5 +267,6 @@
 // - fLambdaErrLimit    to fgLambdaErrLimit 
 // - fNamePedestalCam   to fgNamePedestalCam
-// - fPheErrLimit       to fgPheErrLimit  
+// - fPheErrLowerLimit  to fgPheErrLowerLimit
+// - fPheErrUpperLimit  to fgPheErrUpperLimit
 // - fPulserColor       to MCalibrationCam::kCT1
 // - fOutputPath        to "."
@@ -289,12 +295,13 @@
   SetChargeErrLimit    ();  
   SetChargeRelErrLimit ();
+  SetDebug       ( kFALSE );
   SetFFactorErrLimit   ();
   SetLambdaCheckLimit  ();
   SetLambdaErrLimit    ();
   SetNamePedestalCam   ();
-  SetPheErrLimit       ();
   SetOutputPath        ();
   SetOutputFile        ();
-  SetDebug       ( kFALSE );
+  SetPheErrLowerLimit  ();
+  SetPheErrUpperLimit  ();
 
   SetCheckArrivalTimes     ();
@@ -867,4 +874,6 @@
   PrintUncalibrated(MBadPixelsPix::kDeadPedestalRms,
                     "Presumably dead from Pedestal Rms:                ");
+  PrintUncalibrated(MBadPixelsPix::kDeviatingNumPhes,
+                    "Deviating number of phes:                         ");
   PrintUncalibrated(MBadPixelsPix::kPreviouslyExcluded,
                     "Previously excluded:                              ");
@@ -883,6 +892,4 @@
   PrintUncalibrated(MBadPixelsPix::kLoGainNotFitted,     
                     "Unsuccesful Gauss fit to the Lo Gain:   ");
-  PrintUncalibrated(MBadPixelsPix::kDeviatingNumPhes,    
-                    "Deviating number of phes:               ");
   PrintUncalibrated(MBadPixelsPix::kDeviatingFFactor,    
                     "Deviating F-Factor:                     ");
@@ -1100,5 +1107,5 @@
         {
           if (bad.IsUncalibrated( MBadPixelsPix::kDeviatingNumPhes ))
-            bad.SetUnsuitable(   MBadPixelsPix::kUnreliableRun    );
+            bad.SetUnsuitable(   MBadPixelsPix::kUnsuitableRun    );
         }
       
@@ -1235,6 +1242,7 @@
         }
       
-      lowlim  [i] = areaphes[i] - fPheErrLimit*TMath::Sqrt(areavars[i]);
-      upplim  [i] = areaphes[i] + fPheErrLimit*TMath::Sqrt(areavars[i]);
+      lowlim[i] = areaphes[i] - fPheErrLowerLimit*TMath::Sqrt(areavars[i]);
+      upplim[i] = areaphes[i] + fPheErrUpperLimit*TMath::Sqrt(areavars[i]);
+ 
 
       TH1D *hist = camphes.ProjectionS(TArrayI(),TArrayI(1,&i),"_py",100);
@@ -1247,9 +1255,9 @@
         hist->DrawClone();
 
-      if (ndf < 2)
+      if (ndf < 5)
         {
           *fLog << warn << GetDescriptor() << ": Cannot use a Gauss fit to the number of photo-electrons " 
                 << "in the camera with area index: " << i << endl;
-          *fLog << warn << GetDescriptor() << ": Number of dof.: " << ndf << " is smaller than 2 " << endl;
+          *fLog << warn << GetDescriptor() << ": Number of dof.: " << ndf << " is smaller than 5 " << endl;
           *fLog << warn << GetDescriptor() << ": Will use the simple mean and rms " << endl;
           delete hist;
@@ -1282,6 +1290,6 @@
             << Form("%7.2f+-%6.2f",mean,sigma) << endl;
 
-      lowlim  [i] = mean  - fPheErrLimit*sigma;
-      upplim  [i] = mean  + fPheErrLimit*sigma;
+      lowlim[i] = mean - fPheErrLowerLimit*sigma;
+      upplim[i] = mean + fPheErrUpperLimit*sigma;
 
       delete hist;
@@ -1326,12 +1334,10 @@
         {
           *fLog << warn << "Number of phes: "
-                << Form("%7.2f out of %3.1f sigma limit: ",nphe,fPheErrLimit)
+                << Form("%7.2f out of +%3.1f-%3.1f sigma limit: ",nphe,fPheErrUpperLimit,fPheErrLowerLimit)
                 << Form("[%7.2f,%7.2f] pixel%4i",lowlim[aidx],upplim[aidx],i) << endl;
           bad.SetUncalibrated( MBadPixelsPix::kDeviatingNumPhes );
+
           if (IsCheckDeviatingBehavior())
-            {
-              bad.SetUnsuitable  ( MBadPixelsPix::kUnreliableRun    );
-              //              pix.SetFFactorMethodValid(kFALSE);
-            }
+                bad.SetUnsuitable(MBadPixelsPix::kUnsuitableRun);
           continue;
         }
@@ -1511,8 +1517,9 @@
       if (2.*(lambdacheck-lambda)/(lambdacheck+lambda) > fLambdaCheckLimit)
         {
-          *fLog << warn << GetDescriptor() 
-                << Form("%s%4.2f%s%4.2f%s%4.2f%s%2i",": Lambda: ",lambda," and Lambda-Check: ",
-                    lambdacheck," differ by more than ",fLambdaCheckLimit," in the Blind Pixel Nr.",i)
-                << endl;
+          *fLog << warn << GetDescriptor() << ": Lambda="
+                << Form("%4.2f", lambda) << " and Lambda-Check="
+                << Form("%4.2f", lambdacheck) << " differ by more than "
+                << Form("%4.2f", fLambdaCheckLimit) << " in the Blind Pixel Nr."
+                << Form("%2i", i) << endl;
           blindpix.SetValid(kFALSE);
           continue;
@@ -1521,7 +1528,8 @@
       if (lambdaerr > fLambdaErrLimit) 
         {
-          *fLog << warn << GetDescriptor() 
-                << Form("%s%4.2f%s%4.2f%s%2i",": Error of Fitted Lambda: ",lambdaerr," is greater than ",
-                        fLambdaErrLimit," in Blind Pixel Nr.",i) << endl;
+            *fLog << warn << GetDescriptor() << ": Error of Fitted Lambda="
+                << Form("%4.2f", lambdaerr) << " is greater than "
+                << Form("%4.2f", fLambdaErrLimit)
+                << " in Blind Pixel Nr." << Form("%2d", i) << endl;
           blindpix.SetValid(kFALSE);
           continue;
@@ -2248,9 +2256,4 @@
       rc = kTRUE;
     }
-  if (IsEnvDefined(env, prefix, "PheErrLimit", print))
-    {
-      SetPheErrLimit(GetEnvValue(env, prefix, "PheErrLimit", fPheErrLimit));
-      rc = kTRUE;
-    }
   if (IsEnvDefined(env, prefix, "CheckDeadPixels", print))
     {
@@ -2283,6 +2286,18 @@
       rc = kTRUE;
     }
+  if (IsEnvDefined(env, prefix, "PheErrLowerLimit", print))
+    {
+      SetPheErrLowerLimit(GetEnvValue(env, prefix, "PheErrLowerLimit", fPheErrLowerLimit));
+      rc = kTRUE;
+    }
+  if (IsEnvDefined(env, prefix, "PheErrUpperLimit", print))
+    {
+      SetPheErrUpperLimit(GetEnvValue(env, prefix, "PheErrUpperLimit", fPheErrUpperLimit));
+      rc = kTRUE;
+    }
 
   return rc;
 }
 
+
+  
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 7027)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCalc.h	(revision 7028)
@@ -54,5 +54,6 @@
   static const Float_t fgLambdaCheckLimit;     //! Default for fLambdaCheckLimit   (now set to: 0.2)
   static const Float_t fgLambdaErrLimit;       //! Default for fLabmdaErrLimit     (now set to: 0.5)
-  static const Float_t fgPheErrLimit;          //! Default for fPheErrLimit        (now set to: 4.5)
+  static const Float_t fgPheErrLowerLimit;     //! Default for fPheErrLowerLimit   (now set to: 9.0)
+  static const Float_t fgPheErrUpperLimit;     //! Default for fPheErrUpperLimit   (now set to: 4.5)
   static const Float_t fgFFactorErrLimit;      //! Default for fFFactorErrLimit    (now set to: 4.5)
   static const Float_t fgArrTimeRmsLimit;      //! Default for fArrTimeRmsLimit    (now set to: 3.5)
@@ -68,6 +69,7 @@
   Float_t fNumHiGainSamples;                   // Number High-Gain FADC slices used by extractor
   Float_t fNumLoGainSamples;                   // Number Low -Gain FADC slices used by extractor
-  Float_t fPheErrLimit;                        // Limit acceptance nr. phe's w.r.t. area idx mean (in sigmas)
-  Float_t fFFactorErrLimit;                    // Limit acceptance F-Factor w.r.t. area idx mean 
+  Float_t fPheErrLowerLimit;                   // Lower limit acceptance nr. phe's w.r.t. area idx mean (in sigmas)
+  Float_t fPheErrUpperLimit;                   // Upper limit acceptance nr. phe's w.r.t. area idx mean (in sigmas)
+  Float_t fFFactorErrLimit;                    // Limit acceptance F-Factor w.r.t. area idx mean
   Float_t fArrTimeRmsLimit;                    // Limit acceptance RMS of absolute arrival times
   Float_t fSqrtHiGainSamples;                  // Square root nr. High-Gain FADC slices used by extractor
@@ -218,8 +220,9 @@
   void SetOutputPath        ( TString path="."                   );
   void SetOutputFile        ( TString file="ChargeCalibStat.txt" );
-  void SetPheErrLimit       ( const Float_t f=fgPheErrLimit            ) { fPheErrLimit       = f;     }  
+  void SetPheErrLowerLimit  ( const Float_t f=fgPheErrLowerLimit       ) { fPheErrLowerLimit  = f;     }
+  void SetPheErrUpperLimit  ( const Float_t f=fgPheErrUpperLimit       ) { fPheErrUpperLimit  = f;     }
   void SetPulserColor       ( const MCalibrationCam::PulserColor_t col ) { fPulserColor       = col;   }
 
-  ClassDef(MCalibrationChargeCalc, 1)   // Task calculating Calibration Containers and Quantum Efficiencies
+  ClassDef(MCalibrationChargeCalc, 2)   // Task calculating Calibration Containers and Quantum Efficiencies
 };
 
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.cc	(revision 7028)
@@ -523,32 +523,50 @@
       break;
     case 9:
-      if (!pix.IsFFactorMethodValid())
+      //      if (!pix.IsFFactorMethodValid())
+      //        return kFALSE;
+      if (pix.IsExcluded())
         return kFALSE;
       val = pix.GetPheFFactorMethod();
       break;
     case 10:
-      if (!pix.IsFFactorMethodValid())
+      //      if (!pix.IsFFactorMethodValid())
+      //        return kFALSE;
+      if (pix.IsExcluded())
         return kFALSE;
       val = pix.GetPheFFactorMethodErr();
+      if (val < 0.)
+        val = 0.00001;
       break;
     case 11:
-      if (!pix.IsFFactorMethodValid())
+      //      if (!pix.IsFFactorMethodValid())
+      //        return kFALSE;
+      if (pix.IsExcluded())
         return kFALSE;
       val = pix.GetMeanConvFADC2Phe();
       break;
     case 12:
-      if (!pix.IsFFactorMethodValid())
+      //      if (!pix.IsFFactorMethodValid())
+      //        return kFALSE;
+      if (pix.IsExcluded())
         return kFALSE;
       val = pix.GetMeanConvFADC2PheErr();
+      if (val < 0.)
+        val = 0.00001;
       break;
     case 13:
-      if (!pix.IsFFactorMethodValid())
+      //      if (!pix.IsFFactorMethodValid())
+      //        return kFALSE;
+      if (pix.IsExcluded())
         return kFALSE;
       val = pix.GetMeanFFactorFADC2Phot();
       break;
     case 14:
-      if (!pix.IsFFactorMethodValid())
+      //      if (!pix.IsFFactorMethodValid())
+      //        return kFALSE;
+      if (pix.IsExcluded())
         return kFALSE;
       val = pix.GetMeanFFactorFADC2PhotErr();
+      if (val < 0.)
+        val = 0.00001;
       break;
     case 15:
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 7028)
@@ -171,5 +171,5 @@
 const TString MHCalibrationChargeCam::gsAbsHistXTitle     = "Time [FADC slices]";
 const TString MHCalibrationChargeCam::gsAbsHistYTitle     = "Nr. events";
-const Float_t MHCalibrationChargeCam::fgNumHiGainSaturationLimit = 0.085;
+const Float_t MHCalibrationChargeCam::fgNumHiGainSaturationLimit = 0.15;
 const Float_t MHCalibrationChargeCam::fgNumLoGainSaturationLimit = 0.005;
 const Float_t MHCalibrationChargeCam::fgTimeLowerLimit           = 1.;
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc	(revision 7028)
@@ -126,4 +126,5 @@
 const TString MHCalibrationHiLoCam::gsHistXTitle = "Amplification Ratio [1]";
 const TString MHCalibrationHiLoCam::gsHistYTitle = "Nr. events";
+
 // --------------------------------------------------------------------------
 //
@@ -161,4 +162,5 @@
   SetHistYTitle(gsHistYTitle.Data());
 
+  SetOscillations(kFALSE);
 }
 
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationPulseTimeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationPulseTimeCam.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationPulseTimeCam.cc	(revision 7028)
@@ -441,6 +441,4 @@
 	}
 
-      //      *fLog << (Int_t)max << "  " << (Int_t)maxpos << endl;
-
       if (max < fLowerSignalLimit)
 	continue;
Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 7028)
@@ -307,4 +307,6 @@
     MHCalibrationChargePINDiode hpndiod;
     MHCalibrationRelTimeCam     hrelcam;
+    MHCalibrationHiLoCam        hilocam;
+    MHCalibrationPulseTimeCam   hpulcam;
 
     hchacam.SetOscillations(kFALSE);
@@ -576,6 +578,6 @@
     MFillH filcam(&hchacam, "MExtractedSignalCam",        "FillChargeCam");
     MFillH filtme(&hrelcam, "MArrivalTimeCam",            "FillRelTime");
-    MFillH filhil("MHCalibrationHiLoCam",        "MExtractedSignalCam",        "FillHiLoRatio");
-    MFillH filpul("MHCalibrationPulseTimeCam",   "MRawEvtData",                "FillPulseTime");
+    MFillH filhil(&hilocam, "MExtractedSignalCam",        "FillHiLoRatio");
+    MFillH filpul(&hpulcam, "MRawEvtData",                "FillPulseTime");
     filpin.SetBit(MFillH::kDoNotDisplay);
     filbnd.SetBit(MFillH::kDoNotDisplay);
@@ -735,5 +737,16 @@
       tlist2.AddToList(&filhil);
     if (fIsPulsePosCheck)
-      tlist2.AddToList(&filpul);
+        tlist2.AddToList(&filpul);
+    if (fIsHiLoCalibration)
+    {
+        plist.AddToList(&hilocam);
+        tlist2.AddToList(&filhil);
+    }
+    if (fIsPulsePosCheck)
+    {
+        plist.AddToList(&hpulcam);
+        tlist2.AddToList(&filpul);
+    }
+
     tlist2.AddToList(&fill2);
     tlist2.AddToList(&calib);
Index: trunk/MagicSoft/Mars/mjobs/MJCalibration.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibration.cc	(revision 7028)
@@ -842,7 +842,7 @@
       // for the datacheck, fix the ranges!!
       //
-      const Double_t max = 11.;
+      const Double_t max = 12.;
       obj8->SetMinimum(0.);
-      obj8->SetMaximum(11.);
+      obj8->SetMaximum(max);
       //
       // Set the datacheck sizes:
@@ -857,49 +857,53 @@
       pave->SetBit(kCanDelete);
       pave->ConvertNDCtoPad();
-      pave->SetTextSize(0.05);
+      pave->SetTextSize(0.045);
       pave->AddText("  ");
-      TText *t1 = pave->AddText(Form("Signal smaller 4.5 Pedestal RMS:                 %3i pixels",
+      TText *t1 = pave->AddText(Form("Signal smaller 4.5 Pedestal RMS:               %3i pixels",
                                        CountBadPixels(&disp24,1)));
-      t1->SetTextColor(gStyle->GetColorPalette(Int_t(1./max*numcol + 1.)));
+      t1->SetTextColor(gStyle->GetColorPalette(Int_t(1./max*numcol)));
       t1->SetTextAlign(12);
-      TText *t2 = pave->AddText(Form("%s%3i%s","Signal Rel. error too large:                            ",
+      TText *t2 = pave->AddText(Form("%s%3i%s","Signal Rel. error too large:                          ",
                                        CountBadPixels(&disp24,2)," pixels"));
-      t2->SetTextColor(gStyle->GetColorPalette(Int_t(2./max*numcol + 1.)));
+      t2->SetTextColor(gStyle->GetColorPalette(Int_t(2./max*numcol)));
       t2->SetTextAlign(12);
-      TText *t4 = pave->AddText(Form("Low Gain Saturation:                                     %3i pixels",
+      TText *t4 = pave->AddText(Form("Low Gain Saturation:                                   %3i pixels",
                                        CountBadPixels(&disp24,3)));
-      t4->SetTextColor(gStyle->GetColorPalette(Int_t(3./max*numcol + 1.)));
+      t4->SetTextColor(gStyle->GetColorPalette(Int_t(3./max*numcol)));
       t4->SetTextAlign(12);
-      TText *t5 = pave->AddText(Form("Mean Arr. Time In First Extraction Bin:        %3i pixels",
+      TText *t5 = pave->AddText(Form("Mean Arr. Time In First Extraction Bin:      %3i pixels",
                                        CountBadPixels(&disp24,4)));
-      t5->SetTextColor(gStyle->GetColorPalette(Int_t(4./max*numcol + 1.)));
+      t5->SetTextColor(gStyle->GetColorPalette(Int_t(4./max*numcol)));
       t5->SetTextAlign(12);
-      TText *t6 = pave->AddText(Form("Mean Arr. Time In Last 2 Extraction Bins:   %3i pixels",
+      TText *t6 = pave->AddText(Form("Mean Arr. Time In Last 2 Extraction Bins:  %3i pixels",
                                        CountBadPixels(&disp24,5)));
-      t6->SetTextColor(gStyle->GetColorPalette(Int_t(5./max*numcol + 1.)));
+      t6->SetTextColor(gStyle->GetColorPalette(Int_t(5./max*numcol)));
       t6->SetTextAlign(12);
-      TText *t9 = pave->AddText(Form("Deviating Number of Photons:                      %3i pixels",
+      TText *t9 = pave->AddText(Form("Deviating Number of Photons:                    %3i pixels",
                                        CountBadPixels(&disp24,6)));
-      t9->SetTextColor(gStyle->GetColorPalette(Int_t(6./max*numcol + 1.)));
+      t9->SetTextColor(gStyle->GetColorPalette(Int_t(6./max*numcol)));
       t9->SetTextAlign(12);
-      TText *t10= pave->AddText(Form("High-Gain Histogram Overflow:                    %3i pixels",
+      TText *t10= pave->AddText(Form("High-Gain Histogram Overflow:                  %3i pixels",
                                        CountBadPixels(&disp24,7 )));
-      t10->SetTextColor(gStyle->GetColorPalette(Int_t(7./max*numcol + 1.)));
+      t10->SetTextColor(gStyle->GetColorPalette(Int_t(7./max*numcol)));
       t10->SetTextAlign(12);
-      TText *t11= pave->AddText(Form("Low-Gain Histogram Overflow:                     %3i pixels",
+      TText *t11= pave->AddText(Form("Low-Gain Histogram Overflow:                   %3i pixels",
                                        CountBadPixels(&disp24,8 )));
-      t11->SetTextColor(gStyle->GetColorPalette(Int_t(8./max*numcol + 1.)));
+      t11->SetTextColor(gStyle->GetColorPalette(Int_t(8./max*numcol)));
       t11->SetTextAlign(12);
-      TText *t12= pave->AddText(Form("Presumably dead from Ped. Rms:                %3i pixels",
+      TText *t12= pave->AddText(Form("Presumably dead from Ped. Rms:              %3i pixels",
                                        CountBadPixels(&disp24,9 )));
-      t12->SetTextColor(gStyle->GetColorPalette(Int_t(9./max*numcol + 1.)));
+      t12->SetTextColor(gStyle->GetColorPalette(Int_t(9./max*numcol)));
       t12->SetTextAlign(12);
-      TText *t13= pave->AddText(Form("Fluctuating Pulse Arrival Times:                   %3i pixels",
+      TText *t13= pave->AddText(Form("Fluctuating Pulse Arrival Times:                 %3i pixels",
                                        CountBadPixels(&disp24,10)));
-      t13->SetTextColor(gStyle->GetColorPalette(Int_t(10./max*numcol + 1.)));
+      t13->SetTextColor(gStyle->GetColorPalette(Int_t(10./max*numcol)));
       t13->SetTextAlign(12);
-      TText *t14= pave->AddText(Form("Previously Excluded:                                     %3i pixels",
+      TText *t17 = pave->AddText(Form("Deviating Number of Photo-electrons:       %3i pixels",
                                        CountBadPixels(&disp24,11)));
-      t14->SetTextColor(gStyle->GetColorPalette(Int_t(11./max*numcol + 1.)));
+      t17->SetTextColor(gStyle->GetColorPalette(Int_t(11./max*numcol)));
+      t17->SetTextAlign(12);
+      TText *t14= pave->AddText(Form("Previously Excluded:                                   %3i pixels",
+                                       CountBadPixels(&disp24,12)));
+      t14->SetTextColor(gStyle->GetColorPalette(Int_t(12./max*numcol)));
       t14->SetTextAlign(12);
       pave->Draw();
Index: trunk/MagicSoft/Mars/mjobs/MJPedestal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mjobs/MJPedestal.cc	(revision 7028)
@@ -983,5 +983,13 @@
       {
         if (fExtractor->InheritsFrom("MExtractTimeAndCharge"))
-          hpedcam.SetFitStart(-10.*((MExtractTimeAndCharge*)fExtractor)->GetWindowSizeHiGain());
+          {
+              if (fExtractionType!=kFundamental)
+              {
+                  const MExtractTimeAndCharge &e = *static_cast<MExtractTimeAndCharge*>(fExtractor);
+                  hpedcam.SetFitStart(-5*e->GetWindowSizeHiGain());
+              }
+              else
+                  hpedcam.SetFitStart(10.);
+          }
         
         pedcalc.SetIntermediateStorage();
Index: trunk/MagicSoft/Mars/mpointing/MSrcPosCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mpointing/MSrcPosCalc.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/mpointing/MSrcPosCalc.cc	(revision 7028)
@@ -291,14 +291,23 @@
     //--------------------------------------------
 
-    // pos0[3] = TMath::Cos(theta0)
-
-    const Double_t YC0 = TMath::Cos(theta0)*TMath::Tan(theta)*TMath::Cos(phi-phi0) - TMath::Sin(theta0);
-    const Double_t YC1 = TMath::Cos(theta0) + TMath::Sin(theta0)*TMath::Tan(theta);
-    const Double_t YC  = YC0 / YC1;
-
-    //--------------------------------------------
-
-    const Double_t XC0 =  TMath::Cos(theta0) - YC*TMath::Sin(theta0);
-    const Double_t XC  = -TMath::Sin(phi-phi0) * TMath::Tan(theta) * XC0;
+    /* --- OLD ---
+     const Double_t YC0 = TMath::Cos(theta0)*TMath::Tan(theta)*TMath::Cos(phi-phi0) - TMath::Sin(theta0);
+     const Double_t YC1 = TMath::Cos(theta0) + TMath::Sin(theta0)*TMath::Tan(theta);
+     const Double_t YC  = YC0 / YC1;
+
+     const Double_t XC0 =  TMath::Cos(theta0) - YC*TMath::Sin(theta0);
+     const Double_t XC  = -TMath::Sin(phi-phi0) * TMath::Tan(theta) * XC0;
+     */
+
+    /* --- NEW --- */
+    const Double_t XC0 = TMath::Sin(theta)*TMath::Sin(phi-phi0);
+    const Double_t XC1 = TMath::Cos(theta0)*TMath::Cos(theta);
+    const Double_t XC2 = TMath::Sin(theta0)*TMath::Sin(theta)*TMath::Cos(phi-phi0);
+
+    const Double_t YC0 = TMath::Sin(theta0)*TMath::Cos(theta);
+    const Double_t YC1 = TMath::Cos(theta0)*TMath::Sin(theta)*TMath::Cos(phi-phi0);
+
+    const Double_t XC  =  - XC0     / (XC1 + XC2);
+    const Double_t YC  = (-YC0+YC1) / (XC1 + XC2);
 
     //--------------------------------------------
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 7027)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 7028)
@@ -72,5 +72,5 @@
 const Byte_t MExtractTimeAndChargeDigitalFilter::fgLoGainFirst             =  1;
 const Byte_t MExtractTimeAndChargeDigitalFilter::fgLoGainLast              = 14;
-const Int_t  MExtractTimeAndChargeDigitalFilter::fgWindowSizeHiGain        =  6;
+const Int_t  MExtractTimeAndChargeDigitalFilter::fgWindowSizeHiGain        =  4;
 const Int_t  MExtractTimeAndChargeDigitalFilter::fgWindowSizeLoGain        =  6;
 const Int_t  MExtractTimeAndChargeDigitalFilter::fgBinningResolutionHiGain = 10;
@@ -78,5 +78,5 @@
 const Int_t  MExtractTimeAndChargeDigitalFilter::fgSignalStartBinHiGain    =  4;
 const Int_t  MExtractTimeAndChargeDigitalFilter::fgSignalStartBinLoGain    =  4;
-const TString MExtractTimeAndChargeDigitalFilter::fgNameWeightsFile        = "msignal/cosmics_weights.dat";
+const TString MExtractTimeAndChargeDigitalFilter::fgNameWeightsFile        = "msignal/cosmics_weights46.dat";
 const Float_t MExtractTimeAndChargeDigitalFilter::fgOffsetLoGain           =  1.7; // 5 ns
 const Float_t MExtractTimeAndChargeDigitalFilter::fgLoGainStartShift       = -2.8;
