Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 7250)
+++ trunk/MagicSoft/Mars/Changelog	(revision 7251)
@@ -1,4 +1,2 @@
-
- 
 Please  do  not write behind the end of line tag so that it is  possible
 to   send  a   Changelog   file  to  a  line  printer  directly.  Thanks.
@@ -20,4 +18,25 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2005/08/02 Thomas Bretz
+
+   * callisto.rc, callisto_Dec04Jan05.rc:
+     - new ScaleFactor (1% difference)
+
+   * callisto_MarApr05.rc:
+     - new file, identical to callisto.rc but scale factor 5% different
+
+   * mhflux/MHPhi.[h,cc]:
+     - some small improvements
+     - commented code for further improvement
+
+   * mjobs/MJCut.cc:
+     - implemented MHPhi for wobble mode
+
+   * mjobs/MJStar.cc:
+     - repleced maximum deviation (45) in first muon cut by 35
+       it is done anyhow in a later step and doesn't change in between
+
+
 
  2005/07/31 Daniela Dorner
Index: trunk/MagicSoft/Mars/NEWS
===================================================================
--- trunk/MagicSoft/Mars/NEWS	(revision 7250)
+++ trunk/MagicSoft/Mars/NEWS	(revision 7251)
@@ -54,7 +54,4 @@
        - 1.40 (MExtractTimeAndChargeDigitalFilter)
      This is important mainly for timing studies.
-
-   - callisto: added new plot (MHPhi) as described in
-     http://www.astro.uni-wuerzburg.de/results/ringmethod/
 
    - callisto: Changed limits in MHCalibrationChargeCalc from
@@ -72,4 +69,7 @@
      for Monte Carlo calibrations.
 
+   - callisto: Updated Muon scale with latest results (1% difference
+     for most data, 5% for Mar/Apr'05)
+
    - callisto: use a new criterium to exclude bad pixels: If the high-gain
      was saturated and the blackout-events in the low-gain exceed the 
@@ -134,4 +134,7 @@
            plot was a histogram instead of a profile the resulting psf
            became pedestal rms dependant
+
+   - ganymed: added new plot (MHPhi) for wobble mode as described in
+     http://www.astro.uni-wuerzburg.de/results/ringmethod/
 
    - ganymed: corrects now (correctly?) for the misspointing in 
Index: trunk/MagicSoft/Mars/callisto.rc
===================================================================
--- trunk/MagicSoft/Mars/callisto.rc	(revision 7250)
+++ trunk/MagicSoft/Mars/callisto.rc	(revision 7251)
@@ -399,5 +399,5 @@
 #MJCalibrateSignal.MCalibColorSet.ExpicitColor: green,blue,uv,ct1
 #MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
-MJCalibrateSignal.MCalibrateData.ScaleFactor: 0.956937799
+MJCalibrateSignal.MCalibrateData.ScaleFactor: 0.9633911368
 #MJCalibrateSignal.MCalibrateData.CalibrationMode: Default
 #MJCalibrateSignal.MCalibrateData.CalibConvMinLimit: 0.01
Index: trunk/MagicSoft/Mars/callisto_Dec04Jan05.rc
===================================================================
--- trunk/MagicSoft/Mars/callisto_Dec04Jan05.rc	(revision 7250)
+++ trunk/MagicSoft/Mars/callisto_Dec04Jan05.rc	(revision 7251)
@@ -410,5 +410,5 @@
 #MJCalibrateSignal.MCalibColorSet.ExpicitColor: green,blue,uv,ct1
 #MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
-MJCalibrateSignal.MCalibrateData.ScaleFactor: 0.904159132
+MJCalibrateSignal.MCalibrateData.ScaleFactor: 0.919117647
 #MJCalibrateSignal.MCalibrateData.CalibrationMode: Default
 #MJCalibrateSignal.MCalibrateData.CalibConvMinLimit: 0.01
Index: trunk/MagicSoft/Mars/callisto_MarApr05.rc
===================================================================
--- trunk/MagicSoft/Mars/callisto_MarApr05.rc	(revision 7251)
+++ trunk/MagicSoft/Mars/callisto_MarApr05.rc	(revision 7251)
@@ -0,0 +1,467 @@
+# ==========================================================================
+#############################################################################
+# ==========================================================================
+#                              General
+# ==========================================================================
+#############################################################################
+# ==========================================================================
+
+# -------------------------------------------------------------------------
+# Use this if you want to setup the logging stream for the jobs
+# (overwrites command line options)
+# -------------------------------------------------------------------------
+#MLog.VerbosityLevel: 2
+#MLog.DebugLevel:     1
+#MLog.NoColors:       yes
+
+# ==========================================================================
+#############################################################################
+# ==========================================================================
+#                             Calibration
+# ==========================================================================
+#############################################################################
+# ==========================================================================
+
+# -------------------------------------------------------------------------
+# Use this if you want to write the MJPedestal output somewhere
+# If you don't want it, it is written to the calibration output anyhow.
+# -------------------------------------------------------------------------
+#MJPedestalC1.PathOut: .
+#MJPedestalC2.PathOut: .
+#MJPedestalC1.BadPixelsFile: mjobs/badpixels_0_559.rc
+#MJPedestalC1.ReferenceFile: mjobs/pedestalref.rc
+#MJPedestalC2.ReferenceFile: mjobs/pedestalref.rc
+MJCalibration.ReferenceFile: mjobs/calibrationref_Nov04.rc
+MJCalibration.MHCalibrationRelTimeCam.ReferenceFile: mjobs/calibrationref_Nov04.rc
+MJCalibration.MHCalibrationChargeCam.ReferenceFile: mjobs/calibrationref_Nov04.rc
+
+# -------------------------------------------------------------------------
+# Use this to define where the calibration output is stored. The filename
+# is created from the sequence number. If nothing is specified '.' is
+# assumed. (overwrites command line options)
+# -------------------------------------------------------------------------
+#MJCalibration.PathOut: calped
+
+# -------------------------------------------------------------------------
+# Use this to define where the program should search for the pedestal
+# and calibration files defined in the sequence. To use the local
+# directory use '.' If nothing is specified the default path in the
+# datacenter is used. (overwrites command line options)
+# -------------------------------------------------------------------------
+#MJPedestalC1.PathData:   /data/MAGIC/Period016/
+#MJPedestalC2.PathData:   /data/MAGIC/Period016/
+#MJCalibration.PathData:  /data/MAGIC/Period016/
+
+# -------------------------------------------------------------------------
+# Define here which signal extractor you are going to use for the
+# whole calibration chain
+# -------------------------------------------------------------------------
+MJPedestalC1.ExtractSignal: MExtractTimeAndChargeDigitalFilter
+# -------------------------------------------------------------------------
+# Define here an extractor which can be used for the December 04 data.
+# -------------------------------------------------------------------------
+#MJPedestalC1.ExtractSignal: MExtractTimeAndChargeSpline, MExtractTimeAndChargeDigitalFilterPeakSearch, MExtractTimeAndChargeSlidingWindow
+# -------------------------------------------------------------------------
+# Define here parameters valid for all extractors above
+# -------------------------------------------------------------------------
+#MJPedestalC1.ExtractSignal.HiGainFirst:         0
+#MJPedestalC1.ExtractSignal.HiGainLast:         15
+#MJPedestalC1.ExtractSignal.LoGainFirst:         3
+#MJPedestalC1.ExtractSignal.LoGainLast:         14
+#MJPedestalC1.ExtractSignal.SaturationLimit:   250
+#MJPedestalC1.ExtractSignal.OffsetLoGain:     1.51
+#MJPedestalC1.ExtractSignal.LoGainSwitch:      150
+#MJPedestalC1.ExtractSignal.LoGainStartShift: -2.8
+# -------------------------------------------------------------------------
+# Define here parameters valid for the spline:
+# -------------------------------------------------------------------------
+#MJPedestalC1.ExtractSignal.Resolution:        0.05
+#MJPedestalC1.ExtractSignal.RiseTimeHiGain:    0.5
+#MJPedestalC1.ExtractSignal.FallTimeHiGain:    1.5
+#MJPedestalC1.ExtractSignal.LoGainStretch:     1.5
+#MJPedestalC1.ExtractSignal.ExtractionType: Integral <default>
+#MJPedestalC1.ExtractSignal.ExtractionType: Amplitude
+# -------------------------------------------------------------------------
+# Define here parameters valid for the sliding window:
+# -------------------------------------------------------------------------
+#MJPedestalC1.ExtractSignal.HiGainWindowSize:     6
+#MJPedestalC1.ExtractSignal.LoGainWindowSize:     6
+# -------------------------------------------------------------------------
+# Define here parameters valid for the digital filter with peak search:
+# -------------------------------------------------------------------------
+#MJPedestalC1.ExtractSignal.OffsetLeftFromPeak:   3
+#MJPedestalC1.ExtractSignal.OffsetRightFromPeak:  3
+#MJPedestalC1.ExtractSignal.PeakSearchWindowSize: 2
+#MJPedestalC1.ExtractSignal.HiGainFailureLimit:  10
+#MJPedestalC1.ExtractSignal.LoGainFailureLimit:  25
+
+# -------------------------------------------------------------------------
+# In the case of the Digital filter you have to overwrite the default
+# weights file depending on what you are extracting
+# -------------------------------------------------------------------------
+MJPedestalC2.ExtractSignal.WeightsFile:          msignal/calibration_weights_UV46.dat
+MJPedestalY2.ExtractSignal.WeightsFile:          msignal/cosmics_weights46.dat
+MJPedestalY3.ExtractSignal.WeightsFile:          msignal/cosmics_weights46.dat
+MJCalibration.ExtractSignal.WeightsFile:         msignal/calibration_weights_UV46.dat
+MJCalibrateSignal.ExtractSignal.WeightsFile:     msignal/cosmics_weights46.dat
+MJCalibrateSignal.ExtractInterlaced.WeightsFile: msignal/calibration_weights_UV46.dat
+
+#MJPedestalC2.ExtractSignal.AutomaticWeightsFile:          On
+#MJPedestalY2.ExtractSignal.AutomaticWeightsFile:          On
+#MJPedestalY3.ExtractSignal.AutomaticWeightsFile:          On
+#MJCalibration.ExtractSignal.AutomaticWeightsFile:         On
+#MJCalibrateSignal.ExtractSignal.AutomaticWeightsFile:     On
+#MJCalibrateSignal.ExtractInterlaced.AutomaticWeightsFile: On
+
+# -------------------------------------------------------------------------
+# Configure MJCalibration
+# -------------------------------------------------------------------------
+
+# Switch on relative time calibration
+#MJCalibration.RelTimeCalibration: Yes
+# Switch on intensity calibration
+#MJCalibration.IntensityCalibration: Yes
+# Type of used data format: raw, root, mc
+#MJCalibration.DataType: Root
+# Type of displayed plots: Full,DataCheck,Normal
+#MJCalibration.Display: datacheck
+# Write additinal debug output
+#MJCalibration.Debug: No
+# Use blind pixel
+#MJCalibration.UseBlindPixel: No
+# Use pin diode
+#MJCalibration.UsePINDiode: No
+# Use pixel check option
+#MJCalibration.PixelCheck: Yes
+#MJCalibTest.PixelCheck: Yes
+
+# -------------------------------------------------------------------------
+# Individual events check for calibration results
+# -------------------------------------------------------------------------
+
+#ContCosmics.MaxEmptyPixels:      0.2
+#ContCosmics.MaxExcludedFraction: 1
+#ContCosmics.MinAcceptedFraction: 0
+
+# -------------------------------------------------------------------------
+# You can choose the pedestal extraction algorithm/task. To use
+# MPedCalcPedRun use the lines below. Be carefull, a pedestal file
+# could be (if no pedestal file available) a data-file, too.
+# -------------------------------------------------------------------------
+#MJPedestalC1.ExtractPedestal: MPedCalcPedRun
+#MJPedestalC1.ExtractPedestal.ExtractWinFirst:    0
+#MJPedestalC1.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC1.ExtractPedestal.PedestalUpdate:    no
+#MJPedestalC1.ExtractPedestal.CheckWinFirst:     0
+#MJPedestalC1.ExtractPedestal.CheckWinSize:     29
+
+#MJPedestalC2.ExtractPedestal: MPedCalcPedRun
+#MJPedestalC2.ExtractPedestal.ExtractWinFirst:    0
+#MJPedestalC2.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC2.ExtractPedestal.PedestalUpdate:    no
+#MJPedestalC2.ExtractPedestal.CheckWinFirst:     0
+#MJPedestalC2.ExtractPedestal.CheckWinSize:     29
+
+# -------------------------------------------------------------------------
+# You can choose the pedestal extraction algorithm/task. To use
+# MPedCalcFromLoGain use the lines below. Be carefull, a pedestal file
+# could be (if no pedestal file available) a data-file, too.
+# -------------------------------------------------------------------------
+#MJPedestalC1.ExtractPedestal: MPedCalcFromLoGain
+#MJPedestalC1.ExtractPedestal.ExtractWinFirst:    0
+#MJPedestalC1.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC1.ExtractPedestal.PedestalUpdate:    no
+#MJPedestalC1.ExtractPedestal.CheckWinFirst:     0
+#MJPedestalC1.ExtractPedestal.CheckWinSize:     29
+#MJPedestalC1.ExtractPedestal.MaxSignalVar:     40
+
+#MJPedestalC2.ExtractPedestal: MPedCalcFromLoGain
+#MJPedestalC2.ExtractPedestal.ExtractWinFirst:    0
+#MJPedestalC2.ExtractPedestal.ExtractWinSize:     6
+#MJPedestalC2.ExtractPedestal.PedestalUpdate:    no
+#MJPedestalC2.ExtractPedestal.CheckWinFirst:     0
+#MJPedestalC2.ExtractPedestal.CheckWinSize:     29
+#MJPedestalC2.ExtractPedestal.MaxSignalVar:     40
+
+# -------------------------------------------------------------------------
+# Configure MJPedestalC1 and MJPedestalC2
+# -------------------------------------------------------------------------
+# Possible data type: Raw,Root,MC
+#MJPedestalC1.DataType: Root
+#MJPedestalC2.DataType: Root
+#MJPedestalC3.DataType: Root
+# Type of displayed plots: Full,DataCheck,None
+#MJPedestalC1.Display: datacheck
+#MJPedestalC2.Display: datacheck
+#MJPedestalC3.Display: datacheck
+# Maximum number of event processed in the loop
+#MJPedestalC1.MaxEvents: 1000
+#MJPedestalC2.MaxEvents: 1000
+# Allow to overwrite existing files with the output file
+#MJPedestalC1.AllowOverwrite: No
+#MJPedestalC2.AllowOverwrite: No
+# Use data runs from the sequence instead of calibration runs
+#MJPedestalC1.UseData: No
+#MJPedestalC2.UseData: No
+# Switch off DeadPixelCheck with "No"
+#MJPedestalY2.DeadPixelCheck: yes
+
+
+# -------------------------------------------------------------------------
+# Use this if you want to change the software low-gain switch in the
+# calibration
+# -------------------------------------------------------------------------
+MJCalibration.ExtractSignal.LoGainSwitch:     170
+
+# -------------------------------------------------------------------------
+# Use this if you want to change the higain-vs. logain intercalibration
+# -------------------------------------------------------------------------
+#MJCalibration.HiLoCalibFile:    mjobs/hilocalib_df46.root
+#MJCalibration.HiLoCalibration:  yes
+
+# -------------------------------------------------------------------------
+# Use this if you want to change the time extractor for the calibration
+# and automatically the data extraction
+# -------------------------------------------------------------------------
+#MJCalibration.ExtractTime: <dummy>
+#MJCalibration.ExtractTime: MExtractTimeFastSpline
+#MJCalibration.ExtractTime.HiGainFirst:       0
+#MJCalibration.ExtractTime.HiGainLast:        7
+#MJCalibration.ExtractTime.LoGainFirst:       3
+#MJCalibration.ExtractTime.LoGainLast:        8
+#MJCalibration.ExtractTime.WindowSizeHiGain:  6
+#MJCalibration.ExtractTime.WindowSizeLoGain:  6
+#MJCalibration.ExtractTime.OffsetLoGain:    1.51
+
+# -------------------------------------------------------------------------
+# Use this to change the behaviour of the calibration
+# -------------------------------------------------------------------------
+# Type if you set a colour explicitely from outside (TEST purposes!!)
+#MJCalibration.MCalibColorSet.ExplicitColor: green,blue,uv,ct1
+
+#MJCalibration.MCalibrationChargeCalc.ArrTimeRmsLimit:    3.5
+#MJCalibration.MCalibrationChargeCalc.ChargeLimit:        2.5
+#MJCalibration.MCalibrationChargeCalc.ChargeErrLimit:     0
+#MJCalibration.MCalibrationChargeCalc.ChargeRelErrLimit:  1
+#MJCalibration.MCalibrationChargeCalc.Debug:              no
+
+#MJCalibration.MCalibrationChargeCalc.FFactorErrLimit:    4.5
+#MJCalibration.MCalibrationChargeCalc.LambdaErrLimit:     0.2
+#MJCalibration.MCalibrationChargeCalc.LambdaCheckLimit:   0.5
+#MJCalibration.MCalibrationChargeCalc.PheErrLowerLimit:   9.0
+#MJCalibration.MCalibrationChargeCalc.PheErrUpperLimit:   5.5
+
+#MJCalibration.MHCalibrationChargeCam.Debug:        no
+#MJCalibration.MHCalibrationChargeCam.LoGain:       yes
+#MJCalibration.MHCalibrationChargeCam.Oscillations: yes
+#MJCalibration.MHCalibrationChargeCam.SizeCheck:    yes
+#MJCalibration.MHCalibrationChargeCam.Averageing:   yes
+#MJCalibration.MHCalibrationChargeCam.HiGainNbins:  500
+#MJCalibration.MHCalibrationChargeCam.HiGainFirst:  -98.
+#MJCalibration.MHCalibrationChargeCam.HiGainLast:   1902.
+#MJCalibration.MHCalibrationChargeCam.LoGainNbins:   500
+#MJCalibration.MHCalibrationChargeCam.LoGainFirst:  -99.
+#MJCalibration.MHCalibrationChargeCam.LoGainLast:   901.
+#MJCalibration.MHCalibrationChargeCam.TimeLowerLimit: 1. 
+#MJCalibration.MHCalibrationChargeCam.TimeUpperLimit: 3. 
+#MJCalibration.MHCalibrationChargeCam.NumHiGainSaturationLimit: 0.02
+#MJCalibration.MHCalibrationChargeCam.NumLoGainSaturationLimit: 0.005 
+#MJCalibration.MHCalibrationChargeCam.ProbLimit:     0.00000001
+#MJCalibration.MHCalibrationChargeCam.OverflowLimit: 0.005
+#MJCalibration.MHCalibrationChargeCam.PulserFrequency: 500
+
+
+#MJCalibration.MHCalibrationRelTimeCam.Debug:        no
+#MJCalibration.MHCalibrationRelTimeCam.LoGain:       no
+#MJCalibration.MHCalibrationRelTimeCam.Oscillations:  yes
+#MJCalibration.MHCalibrationRelTimeCam.SizeCheck:    yes
+#MJCalibration.MHCalibrationRelTimeCam.Averageing:   yes
+#MJCalibration.MHCalibrationRelTimeCam.HiGainNbins:  210
+#MJCalibration.MHCalibrationRelTimeCam.HiGainFirst:  -5.
+#MJCalibration.MHCalibrationRelTimeCam.HiGainLast:   10.
+#MJCalibration.MHCalibrationRelTimeCam.NumHiGainSaturationLimit: 0.25
+#MJCalibration.MHCalibrationRelTimeCam.ProbLimit:    0.00001
+#MJCalibration.MHCalibrationRelTimeCam.OverflowLimit: 0.005
+#MJCalibration.MHCalibrationRelTimeCam.PulserFrequency: 500
+
+ 
+# ==========================================================================
+#############################################################################
+# ==========================================================================
+#                            Signal extraction
+# ==========================================================================
+#############################################################################
+# ==========================================================================
+
+# -------------------------------------------------------------------------
+# Use a OutputPath if you want to write the results to a file
+# -------------------------------------------------------------------------
+#MJCalibrateSignal.PathOut:  .
+#MJPedestalY1.PathOut:        .
+#MJPedestalY2.PathOut:        .
+#MJPedestalY3.PathOut:        .
+#MJPedestalY1.PathData:      /data/MAGIC/Period016/
+#MJPedestalY2.PathData:      /data/MAGIC/Period016/
+#MJPedestalY3.PathData:      /data/MAGIC/Period016/
+#MJCalibrateSignal.PathData: /data/MAGIC/Period016/
+#MJCalibrateSignal.PathIn:   .
+
+# -------------------------------------------------------------------------
+# If you want to change the behaviour of the pedestal extraction...
+# -------------------------------------------------------------------------
+# Possible data type: Raw,Root,MC
+#MJPedestalY1.DataType: Root
+#MJPedestalY2.DataType: Root
+#MJPedestalY3.DataType: Root
+#MJPedestalY1.UseData: Yes
+#MJPedestalY2.UseData: Yes
+#MJPedestalY3.UseData: Yes
+MJPedestalY1.MaxEvents: 500
+MJPedestalY2.MaxEvents: 5000
+MJPedestalY3.MaxEvents: 500
+
+# -------------------------------------------------------------------------
+# Use Pulse Position check to define the extraction ranges for the data?
+# -------------------------------------------------------------------------
+#MJPedestalY2.PulsePosCheck: yes
+#MJPedestalY2.ExtractWinLeft:  2.5
+#MJPedestalY2.ExtractWinRight: 4.5
+
+# -------------------------------------------------------------------------
+# Define the Pulse Position check parameters:
+# -------------------------------------------------------------------------
+#MJPedestalY2.MHCalibrationPulseTimeCam.SaturationLimit:  255
+#MJPedestalY2.MHCalibrationPulseTimeCam.LowerSignalLimit: 100
+#MJPedestalY2.MHCalibrationPulseTimeCam.NumPixelsRequired: 2
+#MJPedestalY2.PixelCheck: no
+
+#MJPedestalY.ExtractPedestal: MPedCalcFromLoGain
+#MJPedestalY.ExtractPedestal.PedestalUpdate:   no
+
+# -------------------------------------------------------------------------
+# Setup pedestal extractor for running through data
+# -------------------------------------------------------------------------
+#MJCalibrateSignal.MPedCalcFundamental.PedestalUpdate:   yes
+#MJCalibrateSignal.MPedCalcFundamental.NumDump:          500
+#MJCalibrateSignal.MPedCalcFundamental.NumEventsDump:    500
+#MJCalibrateSignal.MPedCalcFundamental.NumAreasDump:     500
+#MJCalibrateSignal.MPedCalcFundamental.NumSectorsDump:   500
+#MJCalibrateSignal.MPedCalcFundamental.ExtractWinFirst:   17
+#MJCalibrateSignal.MPedCalcFundamental.ExtractWinSize:     6
+#MJCalibrateSignal.MPedCalcFundamental.CheckWinFirst:      0
+#MJCalibrateSignal.MPedCalcFundamental.CheckWinSize:      29
+#MJCalibrateSignal.MPedCalcFundamental.MaxSignalVar:      40
+
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.PedestalUpdate:   yes
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.NumDump:          500
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.NumEventsDump:    500
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.NumAreasDump:     500
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.NumSectorsDump:   500
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.ExtractWinFirst:   17
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.ExtractWinSize:     6
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.CheckWinFirst:      0
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.CheckWinSize:      29
+#MJCalibrateSignal.MPedCalcFromExtractorRndm.MaxSignalVar:      40
+
+#MJCalibrateSignal.MPedCalcFromExtractor.PedestalUpdate:   yes
+#MJCalibrateSignal.MPedCalcFromExtractor.NumDump:          500
+#MJCalibrateSignal.MPedCalcFromExtractor.NumEventsDump:    500
+#MJCalibrateSignal.MPedCalcFromExtractor.NumAreasDump:     500
+#MJCalibrateSignal.MPedCalcFromExtractor.NumSectorsDump:   500
+#MJCalibrateSignal.MPedCalcFromExtractor.ExtractWinFirst:   17
+#MJCalibrateSignal.MPedCalcFromExtractor.ExtractWinSize:     6
+#MJCalibrateSignal.MPedCalcFromExtractor.CheckWinFirst:      0
+#MJCalibrateSignal.MPedCalcFromExtractor.CheckWinSize:      29
+#MJCalibrateSignal.MPedCalcFromExtractor.MaxSignalVar:      40
+
+# -------------------------------------------------------------------------
+# Configure the interlaced calibration updates
+# -------------------------------------------------------------------------
+#MJCalibrateSignal.MCalibCalcFromPast.UpdateWithFFactorMethod: yes
+#MJCalibrateSignal.MCalibCalcFromPast.NumEventsDump: 500
+#MJCalibrateSignal.MCalibCalcFromPast.UpdateNumPhes: yes
+#MJCalibrateSignal.MCalibCalcFromPast.NumPhesDump: 10
+#MJCalibrateSignal.MCalibrationChargeCalc.Debug: no
+
+# -------------------------------------------------------------------------
+# Use this if you want to change the signal extractor
+# -------------------------------------------------------------------------
+MJCalibrateSignal.ExtractSignal.LoGainSwitch:    150
+#MJCalibrateSignal.ExtractSignal.LoGainStretch:     1.5
+#MJCalibrateSignal.ExtractInterlaced.LoGainStretch: 1.5
+
+# -------------------------------------------------------------------------
+# Setup calibration of data
+# -------------------------------------------------------------------------
+# Type of used data format: raw,root,MC
+#MJCalibrateSignal.DataType: Root
+# Type if you set a colour explicitely from outside (only TESTS!!!)
+#MJCalibrateSignal.MCalibColorSet.ExpicitColor: green,blue,uv,ct1
+#MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
+MJCalibrateSignal.MCalibrateData.ScaleFactor: 1.01419878296146
+#MJCalibrateSignal.MCalibrateData.CalibrationMode: Default
+#MJCalibrateSignal.MCalibrateData.CalibConvMinLimit: 0.01
+#MJCalibrateSignal.MCalibrateData.CalibConvMaxLimit: 5.
+#MJCalibrateSignal.Interlaced: yes
+#MJCalibrateSignal.RelTimesUpdate: no
+#MJCalibrateSignal.HiLoCalibration: no
+#MJCalibrateSignal.PulsePosCheck: yes
+
+# -------------------------------------------------------------------------
+# Setup level for determining of bad pixels
+# -------------------------------------------------------------------------
+#MJCalibrateSignal.MBadPixelsCalc.PedestalLevel:         3.0
+#MJCalibrateSignal.MBadPixelsCalc.PedestalLevelVariance: 3.0
+#MJCalibrateSignal.MBadPixelsTreat.NumMinNeighbors:    3
+#MJCalibrateSignal.MBadPixelsTreat.UseInterpolation:   yes
+#MJCalibrateSignal.MBadPixelsTreat.ProcessPedestalEvt: yes
+#MJCalibrateSignal.MBadPixelsTreat.ProcessPedestalRun: no
+#MJCalibrateSignal.MBadPixelsTreat.ProcessTimes:       yes
+#MJCalibrateSignal.MBadPixelsTreat.UseCentralPixel:    no
+#MJCalibrateSignal.MBadPixelsTreat.HardTreatment:      no
+
+# -------------------------------------------------------------------------
+# Setup interlaced calibration events histogramming
+# -------------------------------------------------------------------------
+#MJCalibrateSignal.MHCalibrationChargeCam.Debug:        no
+#MJCalibrateSignal.MHCalibrationChargeCam.LoGain:       yes
+MJCalibrateSignal.MHCalibrationChargeCam.Oscillations:  no
+#MJCalibrateSignal.MHCalibrationChargeCam.SizeCheck:    yes
+#MJCalibrateSignal.MHCalibrationChargeCam.Averageing:   yes
+#MJCalibrateSignal.MHCalibrationChargeCam.HiGainNbins:  500
+#MJCalibrateSignal.MHCalibrationChargeCam.HiGainFirst:  -98.
+#MJCalibrateSignal.MHCalibrationChargeCam.HiGainLast:   1902.
+#MJCalibrateSignal.MHCalibrationChargeCam.HiGainLast:   1899.5
+MJCalibrateSignal.MHCalibrationChargeCam.LoGainNbins:   250
+MJCalibrateSignal.MHCalibrationChargeCam.LoGainFirst:   -98
+MJCalibrateSignal.MHCalibrationChargeCam.LoGainLast:    902
+#MJCalibrateSignal.MHCalibrationChargeCam.TimeLowerLimit: 1. 
+#MJCalibrateSignal.MHCalibrationChargeCam.TimeUpperLimit: 3. 
+#MJCalibrateSignal.MHCalibrationChargeCam.NumHiGainSaturationLimit: 0.02
+#MJCalibrateSignal.MHCalibrationChargeCam.NumLoGainSaturationLimit: 0.005 
+#MJCalibrateSignal.MHCalibrationChargeCam.ProbLimit:    0.0001
+#MJCalibrateSignal.MHCalibrationChargeCam.OverflowLimit: 0.005
+MJCalibrateSignal.MHCalibrationChargeCam.PulserFrequency: 50
+
+# -------------------------------------------------------------------------
+# Setup relative time interlaced calibration
+# -------------------------------------------------------------------------
+#MJCalibrateSignal.MHCalibrationRelTimeCam.Debug:        no
+#MJCalibrateSignal.MHCalibrationRelTimeCam.LoGain:       no
+MJCalibrateSignal.MHCalibrationRelTimeCam.Oscillations:  no
+#MJCalibrateSignal.MHCalibrationRelTimeCam.SizeCheck:    yes
+#MJCalibrateSignal.MHCalibrationRelTimeCam.Averageing:   yes
+#MJCalibrateSignal.MHCalibrationRelTimeCam.HiGainNbins:  210
+#MJCalibrateSignal.MHCalibrationRelTimeCam.HiGainFirst:  -5.
+#MJCalibrateSignal.MHCalibrationRelTimeCam.HiGainLast:   10.
+#MJCalibrateSignal.MHCalibrationRelTimeCam.NumHiGainSaturationLimit: 0.25
+#MJCalibrateSignal.MHCalibrationRelTimeCam.ProbLimit:    0.00001
+#MJCalibrateSignal.MHCalibrationRelTimeCam.OverflowLimit: 0.005
+MJCalibrateSignal.MHCalibrationRelTimeCam.PulserFrequency: 50
+
+# -------------------------------------------------------------------------
+# This is a special option for the datacheck. A task executed as last
+# task in the event processing task list - in the standard software it
+# is skipped
+# -------------------------------------------------------------------------
+#MJCalibrateSignal.FinalFantasy: MHCamFlorian
Index: trunk/MagicSoft/Mars/mbase/MMath.h
===================================================================
--- trunk/MagicSoft/Mars/mbase/MMath.h	(revision 7250)
+++ trunk/MagicSoft/Mars/mbase/MMath.h	(revision 7251)
@@ -10,4 +10,10 @@
 namespace MMath
 {
+    inline Double_t DegToHor() { return 1./15; }
+    inline Double_t HorToDeg() { return 15;    }
+
+    inline Double_t RadToHor() { return TMath::RadToDeg()/15; }
+    inline Double_t HorToRad() { return 15/TMath::RadToDeg(); }
+
     Double_t GaussProb(Double_t x, Double_t sigma, Double_t mean=0);
 
@@ -24,8 +30,6 @@
     Double_t InterpolParabCos(const TVector3 &vx, const TVector3 &vy, Double_t x);
 
-    Double_t Sgn(Double_t d);
+    inline Double_t Sgn(Double_t d) { return d<0 ? -1 : 1; }
 }
 
-inline Double_t MMath::Sgn(Double_t d) { return d<0 ? -1 : 1; }
-
 #endif
Index: trunk/MagicSoft/Mars/mhflux/MHPhi.cc
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHPhi.cc	(revision 7250)
+++ trunk/MagicSoft/Mars/mhflux/MHPhi.cc	(revision 7251)
@@ -30,4 +30,7 @@
 // the source position.
 //
+// More detail can be found at:
+// http://www.astro.uni-wuerzburg.de/results/ringmethod/
+//
 ////////////////////////////////////////////////////////////////////////////
 #include "MHPhi.h"
@@ -60,5 +63,5 @@
 //
 MHPhi::MHPhi(const char *name, const char *title)
-: fHillas(0), fSrcPos(0), fDisp(0)
+: fHillas(0), fSrcPos(0), fDisp(0)//, fOnOffMode(kTRUE), fIsOffLoop(kFALSE)
 {
     fName  = name  ? name  : "MHPhi";
@@ -66,5 +69,5 @@
 
     // Init Graphs
-    fHPhi.SetNameTitle("Phi", "Distribution of \\Delta\\Phi");
+    fHPhi.SetNameTitle("Phi", "\\Delta\\Phi-Distribution");
 
     fHPhi.SetXTitle("\\Delta\\Phi [\\circ]");
@@ -78,5 +81,48 @@
 
     fHPhi.GetYaxis()->SetTitleOffset(1.2);
-}
+
+    /*
+    fNameParameter = "Disp";
+
+    fHist.SetNameTitle("Phi", "\\Delta\\Phi-Distribution");
+    fHist.SetZTitle("\\Delta\\Phi [\\circ]");
+    fHist.SetDirectory(NULL);
+
+    // Main histogram
+    fHistTime.SetName("Phi");
+    fHistTime.SetXTitle("\\Delta\\Phi [\\circ]");
+    fHistTime.SetDirectory(NULL);
+
+    MBinning binsa, binse, binst;
+    //binsa.SetEdges(75, 0, 1.5);
+    //binsa.SetEdges(arr);
+    binse.SetEdgesLog(15, 10, 100000);
+    binst.SetEdgesASin(67, -0.005, 0.665);
+    //binsa.Apply(fHistTime);
+
+    MH::SetBinning(&fHist, &binst, &binse, &binsa);
+     */
+}
+
+/*
+Double_t MHPhi::GetVal() const
+{
+    const Dopuble_t disp = static_cast<const MParameterD*>(fParameter)->GetVal();
+
+    const TVector2 pos = fHillas->GetMean()*fConvMm2Deg + fHillas->GetNormAxis()*disp;
+    const TVector2 src = fSrcPos->GetXY()*fConvMm2Deg;
+
+    // Calculate radial distance.
+    const Double_t d = pos.Mod() - src.Mod();
+
+    if (d<-fThetaCut*0.913 || d>fThetaCut)
+        return kTRUE;
+
+    const Double_t delta = src.DeltaPhi(pos)*TMath::RadToDeg();
+    const Double_t absd  = TMath::Abs(delta)
+
+    return fHistOff ? absd : 180-absd;
+}
+*/
 
 // --------------------------------------------------------------------------
@@ -118,4 +164,5 @@
     fThetaCut      = 0.21/1.2;
     fDistSrc       = 0.4;
+    //fIsOffLoop = !fIsOffLoop;
 
     const Double_t w  = TMath::ATan(fThetaCut/fDistSrc);
@@ -124,5 +171,20 @@
 
     MBinning(n, 0, n*sz).Apply(fHPhi);
-
+    /*
+
+    // Get Histogram binnings
+    MBinning binst, binse;
+    binst.SetEdges(fHist, 'x');
+    binse.SetEdges(fHist, 'y');
+
+    MBinning binsa(n, 0, n*sz);
+
+    // Apply binning
+    binsa.Apply(fHistTime);
+    MH::SetBinning(&fHist, &binst, &binse, &binsa);
+
+    // Remark: Binnings might be overwritten in MHAlpha::SetupFill
+    return MHAlpha::SetupFill(pl);
+     */
     return kTRUE;
 }
@@ -135,7 +197,8 @@
 Bool_t MHPhi::Fill(const MParContainer *par, const Stat_t weight)
 {
-    const TVector2 pos = fHillas->GetMean()*fConvMm2Deg - fHillas->GetNormAxis()*fDisp->GetVal();
+    const TVector2 pos = fHillas->GetMean()*fConvMm2Deg + fHillas->GetNormAxis()*fDisp->GetVal();
     const TVector2 src = fSrcPos->GetXY()*fConvMm2Deg;
 
+    // Calculate radial distance.
     const Double_t d = pos.Mod() - src.Mod();
 
@@ -146,4 +209,7 @@
 
     fHPhi.Fill(TMath::Abs(delta), weight);
+
+    // const Double_t absd = TMath::Abs(delta)
+    // fHPhi.Fill(fHistOff ? absd : 180-absd, weight);
 
     return kTRUE;
@@ -161,28 +227,44 @@
     pad->SetBorderMode(0);
 
+    AppendPad("combine");
+
     fHPhi.Draw();
 
-    AppendPad();
+    AppendPad(opt);
 }
 
 void MHPhi::Paint(Option_t *o)
 {
-    const Double_t sig = fHPhi.Integral(1, fNumBinsSignal);
-    const Double_t bg  = fHPhi.Integral(1+fNumBinsSignal, fHPhi.GetNbinsX());
-
-    const Double_t cut = fHPhi.GetBinLowEdge(fNumBinsSignal+1);
-
-    const Double_t f   = cut/(180-cut);
-
-    const Double_t S0  = MMath::SignificanceLiMaSigned(sig, bg*f);
-    const Double_t S   = MMath::SignificanceLiMaSigned(sig, bg, f);
-
-    const TString  fmt = Form("\\sigma_{L/M}=%.1f (\\sigma_{0}=%.1f)  \\Delta\\Phi<%.1f\\circ  E=%.0f  B=%.0f  f=%.2f",
-                              S, S0, cut, sig-bg*f, bg*f, f);
+    //TString opt(o);
+    //opt.ToLower();
+
+    // if (opt=="combine" && fHistOff)
+    // {
+    //    fHPhi.Add(fHist, fHistOff);
+    //    return;
+    // }
+
+    const Bool_t wobble = TString(o).Contains("anticut", TString::kIgnoreCase);
+
+    const Double_t cut  = fHPhi.GetBinLowEdge(fNumBinsSignal+1);
+
+    const Int_t maxbin  = wobble ? fHPhi.GetXaxis()->FindFixBin(180-cut)-1 : fHPhi.GetNbinsX();
+    const Double_t cut2 = wobble ? fHPhi.GetBinLowEdge(maxbin+1) : 180;
+
+    const Double_t sig  = fHPhi.Integral(1, fNumBinsSignal);
+    const Double_t bg   = fHPhi.Integral(1+fNumBinsSignal, maxbin);
+
+    const Double_t f    = cut/(cut2-cut);
+
+    const Double_t S0   = MMath::SignificanceLiMaSigned(sig, bg*f);
+    const Double_t S    = MMath::SignificanceLiMaSigned(sig, bg, f);
+
+    const TString  fmt  = Form("\\sigma_{L/M}=%.1f (\\sigma_{0}=%.1f)  \\Delta\\Phi_{on}<%.1f\\circ  \\Delta\\Phi_{off}<%.1f\\circ  E=%.0f  B=%.0f  f=%.2f",
+                               S, S0, cut, cut2, sig-bg*f, bg*f, f);
 
     const Double_t b = bg             *f/fNumBinsSignal;
     const Double_t e = TMath::Sqrt(bg)*f/fNumBinsSignal;
 
-    TLatex text(0.33, 0.94, fmt);
+    TLatex text(0.27, 0.94, fmt);
     text.SetBit(TLatex::kTextNDC);
     text.SetTextSize(0.035);
@@ -192,4 +274,6 @@
     line.SetLineColor(14);
     line.PaintLine(cut, gPad->GetUymin(), cut, gPad->GetUymax());
+    if (maxbin<fHPhi.GetNbinsX())
+        line.PaintLine(cut2, gPad->GetUymin(), cut2, gPad->GetUymax());
     line.SetLineColor(kBlue);
     line.PaintLine(0, b, cut, b);
@@ -202,4 +286,3 @@
     m.SetMarkerStyle(kFullDotMedium);
     m.PaintMarker(cut/2, b);
-
-}
+}
Index: trunk/MagicSoft/Mars/mhflux/MHPhi.h
===================================================================
--- trunk/MagicSoft/Mars/mhflux/MHPhi.h	(revision 7250)
+++ trunk/MagicSoft/Mars/mhflux/MHPhi.h	(revision 7251)
@@ -27,4 +27,7 @@
     Float_t fThetaCut;
     Float_t fDistSrc;
+    //Bool_t  fOnOffMode;
+
+    //Bool_t  fIsOffLoop; //! 
 
 public:
Index: trunk/MagicSoft/Mars/mjobs/MJCut.cc
===================================================================
--- trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 7250)
+++ trunk/MagicSoft/Mars/mjobs/MJCut.cc	(revision 7251)
@@ -727,4 +727,6 @@
     MH *hfs=CreateNewHistFS(plist);
     MFillH ffs2(hfs, "MHillas", "FillFS");
+    MFillH fillphi("MHPhi", "", "FillPhi");
+    fillphi.SetDrawOption("anticut");
 
     tlist.Replace(&readon);
@@ -751,6 +753,10 @@
         if (!fIsWobble || !fNameHist.IsNull())
             tlist2.Replace(&ffs2);
-        if (fIsWobble && !fNameHist.IsNull())
-            tlist2.RemoveFromList(&ffs);
+        if (fIsWobble)
+        {
+            tlist2.AddToListAfter(&fillphi, &falpha2);
+            if (!fNameHist.IsNull())
+                tlist2.RemoveFromList(&ffs);
+        }
 
         if (!fIsMonteCarlo)
