Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 6331)
+++ trunk/MagicSoft/Mars/Changelog	(revision 6332)
@@ -75,4 +75,7 @@
    * mcalib/MCalibrateData.h
      - make default argument for SetSignalType kPhe.
+
+   * mjobs/MJCalibrateSignalFromOuside.[h,cc]
+     - removed
 
 
Index: trunk/MagicSoft/Mars/mjobs/JobsLinkDef.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/JobsLinkDef.h	(revision 6331)
+++ trunk/MagicSoft/Mars/mjobs/JobsLinkDef.h	(revision 6332)
@@ -13,5 +13,4 @@
 #pragma link C++ class MJCalibration+;
 #pragma link C++ class MJCalibrateSignal+;
-#pragma link C++ class MJCalibrateSignalFromOutside+;
 #pragma link C++ class MJExtractSignal+;
 #pragma link C++ class MJCalibTest+;
Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignalFromOutside.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignalFromOutside.cc	(revision 6331)
+++ 	(revision )
@@ -1,544 +1,0 @@
-/* ======================================================================== *\
-!
-! *
-! * This file is part of MARS, the MAGIC Analysis and Reconstruction
-! * Software. It is distributed to you in the hope that it can be a useful
-! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
-! * It is distributed WITHOUT ANY WARRANTY.
-! *
-! * Permission to use, copy, modify and distribute this software and its
-! * documentation for any purpose is hereby granted without fee,
-! * provided that the above copyright notice appear in all copies and
-! * that both that copyright notice and this permission notice appear
-! * in supporting documentation. It is provided "as is" without express
-! * or implied warranty.
-! *
-!
-!
-!   Author(s): Thomas Bretz, 1/2004 <mailto:tbretz@astro.uni-wuerzburg.de>
-!
-!   Copyright: MAGIC Software Development, 2000-2004
-!
-!
-\* ======================================================================== */
-/////////////////////////////////////////////////////////////////////////////
-//
-//  MJCalibrateSignalFromOutside
-//
-// This class is reading the output written by callisto. It calibrates
-// signal and time.
-//
-// The signal and time extractors are read from the callisto-output. In
-// pricipal you could overwrite these default using the resource file,
-// but this is NOT recommended!
-//
-/////////////////////////////////////////////////////////////////////////////
-#include "MJCalibrateSignalFromOutside.h"
-
-#include <TEnv.h>
-#include <TFile.h>
-
-#include "MLog.h"
-#include "MLogManip.h"
-
-#include "MDirIter.h"
-#include "MRunIter.h"
-#include "MParList.h"
-#include "MTaskList.h"
-#include "MEvtLoop.h"
-
-#include "MStatusDisplay.h"
-
-#include "MGeomCam.h"
-#include "MHCamEvent.h"
-#include "MPedestalCam.h"
-#include "MPedPhotCam.h"
-#include "MCalibrationHiLoCam.h"
-#include "MBadPixelsCam.h"
-
-#include "MCalibrationQECam.h"
-#include "MCalibrationBlindCam.h"
-#include "MCalibrationChargeCam.h"
-#include "MCalibrationRelTimeCam.h"
-#include "MCalibrationChargePINDiode.h"
-
-#include "MCalibrationChargeCalc.h"
-#include "MCalibrationRelTimeCalc.h"
-
-#include "MCalibrationIntensityChargeCam.h"
-#include "MCalibrationIntensityBlindCam.h"
-#include "MCalibrationIntensityRelTimeCam.h"
-#include "MCalibrationIntensityQECam.h"
-#include "MBadPixelsIntensityCam.h"
-
-#include "MHCalibrationChargeCam.h"
-#include "MHCalibrationChargeBlindCam.h"
-#include "MHCalibrationChargePINDiode.h"
-#include "MHCalibrationRelTimeCam.h"
-
-#include "MCalibCalcFromPast.h"
-
-#include "MReadReports.h"
-#include "MReadMarsFile.h"
-#include "MRawFileRead.h"
-#include "MTriggerPatternDecode.h"
-#include "MFTriggerPattern.h"
-#include "MContinue.h"
-#include "MGeomApply.h"
-#include "MMcPedestalCopy.h"
-#include "MPointingPosCalc.h"
-#include "MPedCalcFromLoGain.h"
-#include "MExtractor.h"
-#include "MExtractPINDiode.h"
-#include "MExtractBlindPixel.h"
-#include "MTaskEnv.h"
-#include "MCalibrateData.h"
-#include "MCalibrateRelTimes.h"
-#include "MBadPixelsMerge.h"
-#include "MBadPixelsCalc.h"
-#include "MBadPixelsTreat.h"
-#include "MFillH.h"
-#include "MWriteRootFile.h"
-
-ClassImp(MJCalibrateSignalFromOutside);
-
-using namespace std;
-
-// --------------------------------------------------------------------------
-//
-// Default constructor. 
-//
-// Sets fRuns to 0, fExtractor to NULL, fDataCheck to kFALSE
-//
-MJCalibrateSignalFromOutside::MJCalibrateSignalFromOutside(const char *name, const char *title)
-    : fIsDataCheck(kFALSE), fGeometry("MGeomCamMagic"), fInterlaced(kFALSE)
-{
-    fName  = name  ? name  : "MJCalibrateSignalFromOutside";
-    fTitle = title ? title : "Tool to calibrate data";
-}
-
-Bool_t MJCalibrateSignalFromOutside::WriteResult()
-{
-    if (fPathOut.IsNull())
-    {
-        *fLog << inf << "No output path specified via SetPathOut - no output written." << endl;
-        return kTRUE;
-    }
-
-    const TString oname = Form("%s/signal%08d.root", (const char*)fPathOut, fSequence.GetSequence());
-
-    *fLog << inf << "Writing to file: " << oname << endl;
-
-    TFile file(oname, "RECREATE");
-
-    *fLog << inf << " - MStatusDisplay..." << flush;
-    if (fDisplay && fDisplay->Write()<=0)
-    {
-        *fLog << err << "Unable to write MStatusDisplay to " << oname << endl;
-        return kFALSE;
-    }
-    *fLog << inf << "ok." << endl;
-
-    return kTRUE;
-}
-
-Bool_t MJCalibrateSignalFromOutside::ProcessFile(MPedestalCam &pedcamab, MPedestalCam &pedcam2, MCalibrationChargeCam &chargecam, MCalibrationQECam &qecam, MCalibrationRelTimeCam &relcam, Byte_t filetype)
-{
-    // --------------------------------------------------------------------------------
-
-    *fLog << inf;
-    fLog->Separator(GetDescriptor());
-
-    *fLog << "Calibrate data from ";
-    *fLog << "Runs " << fRuns->GetRunsAsString() << endl;
-    *fLog << endl;
-
-    MDirIter iter;
-
-    *fLog << all;
-    if (fExtractor)
-    {
-        *fLog << underline << "Signal Extractor found in calibration file" << endl;
-        fExtractor->Print();
-        *fLog << endl;
-    }
-    else
-      {
-        *fLog << inf << "No Signal Extractor: ExtractSignal in file." << endl;
-        return kFALSE;
-      }
-    
-    fExtractor->SetPedestals(&pedcamab);
-
-    // Setup Parlist
-    MParList plist;
-    plist.AddToList(this); // take care of fDisplay!
-    plist.AddToList(&fBadPixels);
-    plist.AddToList(&pedcam2);
-    plist.AddToList(&pedcamab);
-    plist.AddToList(&chargecam);
-    plist.AddToList(&qecam);
-    plist.AddToList(&relcam);
-
-    MCalibrationIntensityChargeCam  intenscharge;
-    MCalibrationIntensityRelTimeCam intensreltime;
-    MCalibrationIntensityQECam      intensqe;
-    MCalibrationIntensityBlindCam   intensblind;
-    MBadPixelsIntensityCam          intensbad;
-
-    MHCalibrationChargeCam      hchargecam;
-    MHCalibrationChargeBlindCam hblindcam;
-    MHCalibrationChargePINDiode hpindiode;
-    MHCalibrationRelTimeCam     hrelcam;
-
-    //
-    // Calibration Results containers
-    //
-    if (fInterlaced)
-      {
-        plist.AddToList(&intensqe);
-        plist.AddToList(&intenscharge);
-        plist.AddToList(&intensblind);
-        //        plist.AddToList(&intensCalibrationPINDiode);
-        plist.AddToList(&intensreltime);
-        plist.AddToList(&intensbad);
-
-        hchargecam.SetLast(499.5);
-        hchargecam.SetNbins(300);
-
-        hchargecam.SetLoGain(kFALSE);
-        hrelcam.SetLoGain(kFALSE);
-
-        hchargecam.SetOscillations(kFALSE);
-        hrelcam.SetOscillations(kFALSE);
-
-        plist.AddToList(&hchargecam);
-        plist.AddToList(&hblindcam);
-        plist.AddToList(&hrelcam);
-        plist.AddToList(&hpindiode);
-    }
-
-    MPedPhotCam pedphotcam;
-    plist.AddToList(&pedphotcam);
-
-    MFillH fillhilo("MHCalibrationHiLoCam",      "MExtractedSignalCam",        "FillHiLoCam");
-    fillhilo.SetBit(MFillH::kDoNotDisplay);
-
-    MCalibrationHiLoCam hilocam;
-    plist.AddToList(&hilocam);
-    // Setup Tasklist
-    MTaskList tlist;
-    plist.AddToList(&tlist);
-
-    MReadReports readreal;
-    readreal.AddTree("Events", "MTime.", kTRUE);
-    readreal.AddTree("Trigger");
-    readreal.AddTree("Camera");
-    readreal.AddTree("Drive");
-    readreal.AddTree("CC");
-    readreal.AddTree("Currents");
-
-    //    MReadMarsFile read("Events");
-    //    read.DisableAutoScheme();
-    MRawFileRead rawread(NULL);
-    if (IsDataCheck())
-        rawread.AddFiles(*fRuns);
-    else
-      {
-        //        read.AddFiles(*fRuns);
-        readreal.AddFiles(*fRuns);
-      }
-
-    // Check for interleaved events
-    MTriggerPatternDecode decode;
-
-    MGeomApply             apply; // Only necessary to create geometry
-    apply.SetGeometry(fGeometry);
-    MBadPixelsMerge        merge(&fBadPixels);
-
-    MPedestalCam pedcam;
-
-    pedcamab.SetName("MPedestalFundamental");
-    pedcam2.SetName("MPedestalFromExtractorRndm");
-    pedcam.SetName("MPedestalFromExtractor");
-    plist.AddToList(&pedcam);
-    plist.AddToList(&pedcam2);
-    plist.AddToList(&pedcamab);
-
-    // Do signal and pedestal calculation
-    MPedCalcFromLoGain     pedlo1("MPedCalcFundamental");
-    pedlo1.SetPedestalUpdate(kTRUE);
-    pedlo1.SetNamePedestalCamOut("MPedestalFundamental");
-
-    MPedCalcFromLoGain     pedlo2("MPedCalcWithExtractorRndm");
-    pedlo2.SetPedestalUpdate(kTRUE);
-    pedlo2.SetRandomCalculation(kTRUE);
-    pedlo2.SetNamePedestalCamIn("MPedestalFundamental");
-    pedlo2.SetNamePedestalCamOut("MPedestalFromExtractorRndm");
-
-    MPedCalcFromLoGain     pedlo3("MPedCalcWithExtractor");
-    pedlo3.SetPedestalUpdate(kTRUE);
-    pedlo3.SetRandomCalculation(kFALSE);
-    pedlo3.SetNamePedestalCamIn("MPedestalFundamental");
-    pedlo3.SetNamePedestalCamOut("MPedestalFromExtractor");
-
-    if (fExtractor)
-    {
-        fExtractor->SetPedestals(&pedcamab);
-
-        if (fExtractor->InheritsFrom("MExtractTimeAndCharge"))
-        {
-            pedlo2.SetExtractor((MExtractTimeAndCharge*)fExtractor);
-            pedlo3.SetExtractor((MExtractTimeAndCharge*)fExtractor);
-            pedlo1.SetExtractWindow(15, 0/*obsolete*/);
-            pedlo2.SetExtractWindow(15, 0/*obsolete*/);
-            pedlo3.SetExtractWindow(15, 0/*obsolete*/);
-        }
-        else
-        {
-            // FIXME: How to get the fixed value 15 automatically?
-            const Int_t f = (Int_t)(15.5+fExtractor->GetHiGainFirst());
-            const Int_t n = (Int_t)(15.5+fExtractor->GetNumHiGainSamples());
-            pedlo1.SetExtractWindow(f, n);
-            pedlo2.SetExtractWindow(f, n);
-            pedlo3.SetExtractWindow(f, n);
-        }
-    }
-
-    MMcPedestalCopy        pcopy;
-    MTaskEnv taskenv1("ExtractSignal");
-    taskenv1.SetDefault(fExtractor);
-    MCalibrateData         calib;
-    if (filetype==3) // MC file
-    {
-        calib.SetCalibrationMode(MCalibrateData::kFfactor);
-        calib.SetPedestalFlag(MCalibrateData::kRun);
-        calib.AddPedestal("MPedestalCam", "MPedPhotFundamental");
-        calib.AddPedestal("MPedestalCam", "MPedPhotFromExtractor");
-        calib.AddPedestal("MPedestalCam", "MPedPhotFromExtractorRndm");
-    }
-    else
-    {
-        calib.AddPedestal("Fundamental");
-        calib.AddPedestal("FromExtractor");
-        calib.AddPedestal("FromExtractorRndm");
-        calib.SetPedestalFlag(MCalibrateData::kEvent);
-        calib.SetSignalType(MCalibrateData::kPhe);
-    }
-    
-    MCalibrateRelTimes     caltm;
-    MBadPixelsCalc         bpcal;
-    MBadPixelsTreat        treat;
-
-    bpcal.SetNamePedPhotCam("MPedPhotFromExtractor");
-    treat.AddNamePedPhotCam("MPedPhotFundamental");
-    treat.AddNamePedPhotCam("MPedPhotFromExtractor");
-    treat.AddNamePedPhotCam("MPedPhotFromExtractorRndm");
-
-    MHCamEvent evt0(0, "PedFLG",      "Pedestal from Lo Gain;;P [fadc/sl]");
-    MHCamEvent evt1(2, "PedRmsFLG",   "Pedestal RMS from Lo Gain;;\\sigma_{p} [fadc/sl]");
-    MHCamEvent evt2(0, "Extra'd",     "Extracted Signal;;S [fadc/sl]");
-    MHCamEvent evt3(0, "PedPhot",     "Calibrated Pedestal;;P [\\gamma]");
-    MHCamEvent evt4(1, "PedRMS",      "Calibrated Pedestal RMS;;\\sigma_{p} [\\gamma]");
-    MHCamEvent evt5(3, "Interp'd",    "Interpolated Signal;;S [\\gamma]");
-    MHCamEvent evt6(2, "Unsuitable",  "Unsuitable event ratio;;%");
-    MHCamEvent evt7(0, "Times",       "Arrival Time;;T [slice]");
-    MHCamEvent evt8(0, "HiLoConv",    "Ratio Hi-Lo Gain Signal;;Ratio [1]");
-
-    evt0.EnableSqrtVariance();
-    evt1.EnableSqrtVariance();
-    evt2.EnableSqrtVariance();
-    evt3.EnableSqrtVariance();
-    evt4.EnableSqrtVariance();
-    evt5.EnableSqrtVariance();
-    evt7.EnableSqrtVariance();
-    evt8.EnableSqrtVariance();
-
-    MFillH fill0(&evt0, "MPedestalFundamental",   "FillPedFLG");
-    MFillH fill1(&evt1, "MPedestalFromExtractorRndm", "FillPedRmsFLG");
-    MFillH fill2(&evt2, "MExtractedSignalCam",    "FillExtracted");
-    MFillH fill3(&evt3, "MPedPhotFundamental",    "FillPedPhot");
-    MFillH fill4(&evt4, "MPedPhotFromExtractorRndm","FillPedRMS");
-    MFillH fill5(&evt5, "MCerPhotEvt",            "FillInterpolated");
-    MFillH fill6(&evt6, "MBadPixelsCam",       "FillUnsuitable");
-    MFillH fill7(&evt7, "MArrivalTime",        "FillTimes");
-    MFillH fill8(&evt8, &hilocam,              "FillHiLo");
-
-    MWriteRootFile write(2, Form("%s{s/_D_/_Y_}", fPathOut.Data()), fOverwrite);
-    // Run Header
-    write.AddContainer("MRawRunHeader",       "RunHeaders");
-    write.AddContainer("MBadPixelsCam",       "RunHeaders");
-    write.AddContainer("MGeomCam",            "RunHeaders");
-    // Monte Carlo Headers
-    write.AddContainer("MMcTrigHeader",       "RunHeaders", kFALSE);
-    write.AddContainer("MMcConfigRunHeader",  "RunHeaders", kFALSE);
-    write.AddContainer("MMcCorsikaRunHeader", "RunHeaders", kFALSE);
-    // Monte Carlo
-    write.AddContainer("MMcEvt",              "Events", kFALSE);
-    write.AddContainer("MMcTrig",             "Events", kFALSE);
-    // Data
-    write.AddContainer("MCerPhotEvt",         "Events");
-    write.AddContainer("MPedPhotCam",         "Events");
-    write.AddContainer("MTime",               "Events", kFALSE);
-    write.AddContainer("MRawEvtHeader",       "Events");
-    write.AddContainer("MArrivalTime",        "Events");
-    // Slow-Control: Current
-    write.AddContainer("MTimeCurrents",       "Currents", kFALSE);
-    write.AddContainer("MCameraDC",           "Currents", kFALSE);
-    write.AddContainer("MReportCurrents",     "Currents", kFALSE);
-    // Slow-Control: Camera
-    write.AddContainer("MReportCamera",       "Camera", kFALSE);
-    write.AddContainer("MTimeCamera",         "Camera", kFALSE);
-    write.AddContainer("MCameraAUX",          "Camera", kFALSE);
-    write.AddContainer("MCameraCalibration",  "Camera", kFALSE);
-    write.AddContainer("MCameraCooling",      "Camera", kFALSE);
-    write.AddContainer("MCameraHV",           "Camera", kFALSE);
-    write.AddContainer("MCameraLV",           "Camera", kFALSE);
-    write.AddContainer("MCameraLids",         "Camera", kFALSE);
-    // Slow-Control: Trigger
-    write.AddContainer("MReportTrigger",      "Trigger", kFALSE);
-    write.AddContainer("MTimeTrigger",        "Trigger", kFALSE);
-    // Slow-Control: Drive
-    write.AddContainer("MPointingPos",        "Drive", kFALSE);
-    write.AddContainer("MReportDrive",        "Drive", kFALSE);
-    write.AddContainer("MTimeDrive",          "Drive", kFALSE);
-    // Slow-Control: Central Control
-    write.AddContainer("MReportCC",           "CC", kFALSE);
-    write.AddContainer("MTimeCC",             "CC", kFALSE);
-
-    // Now setup tasklist for events
-    MTaskList tlist2;
-    tlist2.AddToList(&apply);
-    tlist2.AddToList(&merge);
-    tlist2.AddToList(&decode);
-    if (filetype==3)
-        tlist2.AddToList(&pcopy);
-    else
-    {
-        tlist2.AddToList(&pedlo1);
-        tlist2.AddToList(&pedlo2);
-    }
-    MExtractPINDiode        pinext;
-    MExtractBlindPixel      blindext;
-
-    MFTriggerPattern fcalib;
-    
-    MCalibrationChargeCalc  chargecalc;
-    MCalibrationRelTimeCalc relcalc;
-
-    MCalibCalcFromPast      pastcalc;
-
-    pinext.SetPedestals(&pedcamab);
-    blindext.SetPedestals(&pedcamab);
-    chargecalc.SetPedestals(&pedcam2);
-
-    pastcalc.SetChargeCalc(&chargecalc);
-    pastcalc.SetRelTimeCalc(&relcalc);
-    pastcalc.SetCalibrate(&calib);
-
-    tlist2.AddToList(&fill0);
-    tlist2.AddToList(&fill1);
-    tlist2.AddToList(&taskenv1);
-    tlist2.AddToList(&fill2);
-    tlist2.AddToList(&pinext);
-    tlist2.AddToList(&blindext);
-    //
-    // Calibration histogramming
-    //
-    MFillH fillpin("MHCalibrationChargePINDiode", "MExtractedSignalPINDiode",   "FillPINDiode");
-    MFillH fillbnd("MHCalibrationChargeBlindCam", "MExtractedSignalBlindPixel", "FillBlindCam");
-    MFillH fillcam("MHCalibrationChargeCam",      "MExtractedSignalCam",        "FillChargeCam");
-    MFillH filltme("MHCalibrationRelTimeCam",     "MArrivalTimeCam",            "FillRelTime");
-    fillpin.SetBit(MFillH::kDoNotDisplay);
-    fillbnd.SetBit(MFillH::kDoNotDisplay);
-    fillcam.SetBit(MFillH::kDoNotDisplay);
-    filltme.SetBit(MFillH::kDoNotDisplay);
-
-    //
-    // Calibration Results containers
-    //
-    if (fInterlaced)
-      {
-        fcalib.DenyCalibration();
-        fcalib.SetInverted();
-
-        chargecalc.SetFilter(&fcalib);
-        pastcalc.SetFilter(  &fcalib);
-        fillcam.SetFilter(&fcalib);
-        filltme.SetFilter(&fcalib);
-        fillbnd.SetFilter(&fcalib);
-        fillpin.SetFilter(&fcalib);
-
-        tlist2.AddToList(&fcalib);
-        tlist2.AddToList(&pastcalc);
-        tlist2.AddToList(&fillcam);
-        tlist2.AddToList(&filltme);
-        tlist2.AddToList(&fillbnd);
-        tlist2.AddToList(&fillpin);
-        tlist2.AddToList(&chargecalc);
-        tlist2.AddToList(&relcalc);
-      }
-    
-    tlist2.AddToList(&calib);
-    if (&relcam)
-      tlist2.AddToList(&caltm);
-    tlist2.AddToList(&fillhilo);
-    tlist2.AddToList(&fill3);
-    tlist2.AddToList(&bpcal);
-    tlist2.AddToList(&treat);
-    tlist2.AddToList(&fill4);
-    tlist2.AddToList(&fill5);
-    tlist2.AddToList(&fill6);
-    tlist2.AddToList(&fill7);
-    tlist2.AddToList(&fill8);
-
-    // Setup List for Drive-tree
-    MPointingPosCalc pcalc;
-
-    // Now setup main tasklist
-    tlist.AddToList(IsDataCheck() ? (MTask*)&rawread : (MTask*)&readreal);
-    tlist.AddToList(&tlist2, IsDataCheck()?"All":"Events");
-
-    //    if (!IsDataCheck())
-    //        tlist.AddToList(&pcalc, "Drive");
-
-    tlist.AddToList(&write);
-
-    // Create and setup the eventloop
-    MEvtLoop evtloop(fName);
-    evtloop.SetParList(&plist);
-    evtloop.SetDisplay(fDisplay);
-    evtloop.SetLogStream(fLog);
-    if (!SetupEnv(evtloop))
-        return kFALSE;
-
-    // Execute first analysis
-    if (!evtloop.Eventloop(fMaxEvents))
-    {
-        *fLog << err << GetDescriptor() << ": Failed." << endl;
-        return kFALSE;
-    }
-
-    tlist.PrintStatistics();
-
-    
-    if (fInterlaced)
-      {
-        TObjArray cont;
-        cont.Add(&intensqe);
-        cont.Add(&intenscharge);
-        cont.Add(&intensblind);
-        //        cont.Add(&intensCalibrationPINDiode);
-        cont.Add(&intensreltime);
-        cont.Add(&intensbad);
-        WriteContainer(cont);
-      }
-
-    if (!WriteResult())
-        return kFALSE;
-
-    *fLog << all << GetDescriptor() << ": Done." << endl;
-    *fLog << endl << endl;
-
-    return kTRUE;
-}
Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignalFromOutside.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignalFromOutside.h	(revision 6331)
+++ 	(revision )
@@ -1,78 +1,0 @@
-#ifndef MARS_MJCalibrateSignalFromOutside
-#define MARS_MJCalibrateSignalFromOutside
-
-#ifndef MARS_MJob
-#include "MJob.h"
-#endif
-#ifndef MARS_MBadPixelsCam
-#include "MBadPixelsCam.h"
-#endif
-
-class TEnv;
-class TList;
-
-class MTask;
-class MParList;
-class MGeomCam;
-class MSequence;
-class MExtractor;
-class MPedestalCam;
-class MBadPixelsCam;
-class MRunIter;
-class MCalibrationChargeCam;
-class MCalibrationQECam;
-class MCalibrationRelTimeCam;
-
-class MJCalibrateSignalFromOutside : public MJob
-{
-private:
-    Bool_t fIsDataCheck;
-    TString fGeometry;                // Class name geometry
-    
-    MRunIter       *fRuns;            // Data files
-    MExtractor     *fExtractor;       // Signal extractor 
-
-    MBadPixelsCam  fBadPixels;        // Bad Pixels cam, can be set from previous runs  
-    
-    enum  Storage_t                    // Possible devices for calibration
-      {
-        kNoStorage,
-        kHistsStorage
-      };                              // Possible flags for the storage of results
-    
-    Byte_t fStorage;                  // Bit-field for chosen storage type
-
-    Bool_t fInterlaced;               // Distinguish interlaced from other calibrations
-    
-    Bool_t IsNoStorage    () const { return TESTBIT(fStorage,kNoStorage);    }
-    Bool_t IsHistsStorage () const { return TESTBIT(fStorage,kHistsStorage); }
-
-    Bool_t WriteResult();
-
-    Bool_t IsDataCheck() const { return fIsDataCheck; }
-    void SetDataCheck(Bool_t b) { fIsDataCheck = b; }
-
-public:
-    MJCalibrateSignalFromOutside(const char *name=NULL, const char *title=NULL);
-
-    //    const char* GetOutputFile() const;
-
-    void SetBadPixels  ( const MBadPixelsCam &bad)     { bad.Copy(fBadPixels); }
-    void SetExtractor  ( MExtractor* ext)              { fExtractor = ext;     }
-    void SetInput     ( MRunIter *iter)               { fRuns = iter;         }
-
-    // Camera Geomtry
-    void SetGeometry(const char *geom) { fGeometry = geom; }
-  
-    // Storage
-    void SetNoStorage    ( const Bool_t b=kTRUE ) { b ? SETBIT(fStorage,kNoStorage)    : CLRBIT(fStorage,kNoStorage); }
-    void SetHistsStorage ( const Bool_t b=kTRUE ) { b ? SETBIT(fStorage,kHistsStorage) : CLRBIT(fStorage,kHistsStorage); }
-    void SetInterlaced ( const Bool_t b=kTRUE )  { fInterlaced = b; }
-    
-    Bool_t ProcessFile(MPedestalCam &camab, MPedestalCam &cam, MCalibrationChargeCam &chargecam,
-                       MCalibrationQECam &qecam, MCalibrationRelTimeCam &relcam, Byte_t filetype=2);
-
-    ClassDef(MJCalibrateSignalFromOutside, 0) // Tool to create a pedestal file (MPedestalCam)
-};
-
-#endif
Index: trunk/MagicSoft/Mars/mjobs/Makefile
===================================================================
--- trunk/MagicSoft/Mars/mjobs/Makefile	(revision 6331)
+++ trunk/MagicSoft/Mars/mjobs/Makefile	(revision 6332)
@@ -32,5 +32,4 @@
            MJCalibration.cc \
            MJCalibrateSignal.cc \
-           MJCalibrateSignalFromOutside.cc \
            MJExtractSignal.cc \
            MJCalibTest.cc
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilterPeakSearch.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilterPeakSearch.cc	(revision 6331)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilterPeakSearch.cc	(revision 6332)
@@ -83,5 +83,5 @@
 const Byte_t MExtractTimeAndChargeDigitalFilterPeakSearch::fgPeakSearchWindowSize    =  2;
 const Int_t  MExtractTimeAndChargeDigitalFilterPeakSearch::fgHiGainFailureLimit      = 10;
-const Int_t  MExtractTimeAndChargeDigitalFilterPeakSearch::fgLoGainFailureLimit      = 15;
+const Int_t  MExtractTimeAndChargeDigitalFilterPeakSearch::fgLoGainFailureLimit      = 25;
 // --------------------------------------------------------------------------
 //
@@ -340,8 +340,11 @@
   // Shift the last slice to the right:
   //
-  const Byte_t rlim = higainfirst + fOffsetRightFromPeak + fWindowSizeHiGain;
+  const Byte_t rlim = higainfirst + fOffsetRightFromPeak + fWindowSizeHiGain - 1;
   if (rlim <= fHiGainLast+fHiLoLast)
     if (rlim > fHiGainLast)
-      fHiLoLast   = rlim - fHiGainLast;
+      {
+        fHiLoLast   = rlim - fHiGainLast;
+        fHiGainLast = pixel.GetNumHiGainSamples() - 1;
+      }
     else
       {
@@ -355,7 +358,7 @@
     }
   
-  const Byte_t llim = fHiGainFirst + (Int_t)fOffsetLoGain;
-  if ( llim >= fLoGainFirst ) 
-    fLoGainFirst = llim;
+  const Byte_t llim = higainfirst + (Int_t)fOffsetLoGain;
+  if ( llim  >= fLoGainFirst + fOffsetLeftFromPeak) 
+    fLoGainFirst = llim - fOffsetLeftFromPeak;
   else
     fLoGainOutOfRangeLeft++;
@@ -364,8 +367,15 @@
   // Make sure we will not integrate beyond the lo gain limit:
   //
-  if (fLoGainFirst+fWindowSizeLoGain+fOffsetRightFromPeak <= pixel.GetNumLoGainSamples())
-    fLoGainLast = fLoGainFirst+fWindowSizeLoGain+fOffsetRightFromPeak;
+  const Byte_t lolast = fLoGainFirst+fWindowSizeLoGain+fOffsetRightFromPeak-1;  
+  if (lolast < pixel.GetNumLoGainSamples())
+    fLoGainLast = lolast;
   else
-    fLoGainOutOfRangeRight++;
+    {
+      fLoGainOutOfRangeRight++;
+      //      *fLog << err << (Int_t)higainfirst << "   " << peakpixel << "  " << (int)fLoGainFirst << endl;      
+    }
+  
+  //  *fLog << inf << (int)fHiGainFirst << "  " << (int)higainfirst << "  " << (int)fHiGainLast 
+  //        << "  " << (int)fLoGainFirst << "  " << (int)fLoGainLast << endl;
 
   pixel.Reset();
