Index: trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 8590)
+++ trunk/MagicSoft/Mars/mjobs/MJCalibrateSignal.cc	(revision 8618)
@@ -573,5 +573,5 @@
     // MHCamEvent evt7(  6, "Times",      "Calibrated Arrival Time;;T [fadc sl]");
     MHCamEvent evt8(  0, "Conv",       "Calibration Conv. Factors;;[phe/cnts]");
-    MHCamEvent evt9(  7, "PulsePos",   "Pulse Position of cosmics (>50phe);;T");
+    MHCamEvent evt9(  7, "PulsePos",   "Pulse Position of cosmics (>50phe);;T [ns]");
     MHCamEvent evtR(  4, "HiLoCal",    "Hi-/Lo-Gain ratio;;Ratio");
     MHCamEvent evtO(  7, "HiLoOff",    "Lo-/Hi-Gain Offset;;Offset");
Index: trunk/MagicSoft/Mars/mjobs/MJCut.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 8590)
+++ trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 8618)
@@ -89,6 +89,6 @@
 MJCut::MJCut(const char *name, const char *title)
     : fStoreSummary(kFALSE), fStoreResult(kTRUE), fWriteOnly(kFALSE),
-    fFullDisplay(kTRUE),
-    fRndmSrcPos(kFALSE), fNameHist("MHThetaSq"),
+    fFullDisplay(kTRUE), fRndmSrcPos(kFALSE), fNumOffSourcePos(3),
+    fNameHist("MHThetaSq"),
     fCalcHadronness(0), fCalcDisp(0), fEstimateEnergy(0)
 {
@@ -347,4 +347,6 @@
     EnableFullDisplay(GetEnv("FullDisplay", fFullDisplay));
     EnableRandomSrcPos(GetEnv("RandomSourcePosition", fRndmSrcPos));
+
+    fNumOffSourcePos = GetEnv("NumOffSourcePositions", (Int_t)fNumOffSourcePos);
     //EnableSubstraction(GetEnv("HistogramSubstraction", fSubstraction));
 
@@ -626,9 +628,15 @@
     // --------------------------------------------------------------------------------
 
+    MParameterD scale;
+    scale.SetVal(1./fNumOffSourcePos);
+
     // Setup fitter and histograms
     MAlphaFitter fit;
     plist.AddToList(&fit);
     if (set.IsWobbleMode())
+    {
         fit.SetScaleMode(MAlphaFitter::kNone);
+        fit.SetScaleUser(1./fNumOffSourcePos);
+    }
 
     MHAlpha *halphaoff = CreateNewHist(plist, "Off");
@@ -638,8 +646,10 @@
 
     // FIXME: If fPathIn read cuts and energy estimator from file!
+    MContinue contq("", "CutQ");
     MContinue cont0("", "Cut0");
     MContinue cont1("", "Cut1");
     MContinue cont2("", "Cut2");
     MContinue cont3("", "Cut3");
+    contq.SetAllowEmpty();
     cont0.SetAllowEmpty();
     cont1.SetAllowEmpty();
@@ -691,5 +701,4 @@
     setrunnum.SetNameParameter("RunNumber");
 
-    //    MFillH fill0a("OnPos [MHSrcPosCam]", "MSrcPosCam", "FillSrcPosCam");
     MFillH fill1a("MHHillasOffPre  [MHHillas]",      "MHillas",      "FillHillasPre");
     MFillH fill2a("MHHillasOffPost [MHHillas]",      "MHillas",      "FillHillasPost");
@@ -715,7 +724,20 @@
     print2.EnableSkip();
 
+    MTaskList tlist2;
+    if (set.IsWobbleMode())
+    {
+        tlist2.SetNumPasses(fNumOffSourcePos);
+        fill2a.SetWeight(&scale);
+        fill3a.SetWeight(&scale);
+        fill4a.SetWeight(&scale);
+        fill5a.SetWeight(&scale);
+        fill6a.SetWeight(&scale);
+        fill7a.SetWeight(&scale);
+    }
+
     // How to get source position from off- and on-data?
     MSrcPosCalc scalc;
     scalc.SetMode(set.IsWobbleMode()?MSrcPosCalc::kWobble:MSrcPosCalc::kOffData); /********************/
+    scalc.SetCallback(&tlist2);
 
     MSrcPosCorrect scor;
@@ -730,15 +752,12 @@
     MSrcPosRndm srcrndm;
 
-    MTaskList tlist2;
     tlist2.AddToList(&scalc);
     tlist2.AddToList(&scor);
     tlist2.AddToList(&srcrndm);
-    //if (fRndmSrcPos && !set.IsWobbleMode())
-    //   tlist2.AddToList(&fill0a);
     tlist2.AddToList(&hcalc);
     if (set.IsWobbleMode())
         tlist2.AddToList(&hcalc2);
     //tlist2.AddToList(&taskenv1);
-    tlist2.AddToList(&cont0);
+    tlist2.AddToList(&cont0);  
     tlist2.AddToList(&taskenv2);
     tlist2.AddToList(&taskenv3);
@@ -747,6 +766,4 @@
     if (write0)
         tlist2.AddToList(write0);
-    if (!fWriteOnly)
-        tlist2.AddToList(&fill1a);
     tlist2.AddToList(&cont1);
     if (!fWriteOnly && (!set.IsWobbleMode() || !fNameHistFS.IsNull()))
@@ -786,4 +803,7 @@
         tlist.AddToList(&print2, "EffectiveOnTime");
     tlist.AddToList(&devcalc, "Starguider");
+    tlist.AddToList(&contq,   "Events");
+    if (!fWriteOnly)
+        tlist.AddToList(&fill1a, "Events");
     tlist.AddToList(&tlist2,  "Events");
 
@@ -802,4 +822,5 @@
 
     TObjArray cont;
+    cont.Add(&contq);
     cont.Add(&cont0);
     cont.Add(&cont1);
@@ -879,5 +900,4 @@
     fill6b.SetDrawOption(set.HasOffSequences()||set.IsWobbleMode()?"same":"");
     fill7b.SetDrawOption(set.HasOffSequences()||set.IsWobbleMode()?"same":"");
-
     //fill9b.SetFilter(&fbin);
 
@@ -922,10 +942,9 @@
     fillphi.SetDrawOption("anticut");
 
+    tlist2.SetNumPasses();
+
     tlist.Replace(&readon);
     if (fRndmSrcPos && !set.IsWobbleMode())
-    {
-//        tlist2.RemoveFromList(&fill0a);
         tlist2.RemoveFromList(&srcrndm);
-    }
 
     MFillH fillsrc(&hsrcpos, "MSrcPosCam", "FillSrcPosCam");
@@ -936,5 +955,5 @@
     if (!fWriteOnly)
     {
-        tlist2.Replace(&fill1b);
+        tlist.Replace(&fill1b);
 /*        if (fIsWobble)
         {
Index: trunk/MagicSoft/Mars/mjobs/MJCut.h
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCut.h	(revision 8590)
+++ trunk/MagicSoft/Mars/mjobs/MJCut.h	(revision 8618)
@@ -24,4 +24,6 @@
     Bool_t  fRndmSrcPos;
     //Bool_t  fSubstraction;
+
+    UInt_t fNumOffSourcePos;
 
     TString fNameSummary;
