# ==========================================================================
#############################################################################
# ==========================================================================
#                              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_UV.dat
MJPedestalY2.ExtractSignal.WeightsFile:          msignal/cosmics_weights.dat
MJPedestalY3.ExtractSignal.WeightsFile:          msignal/cosmics_weights.dat
MJCalibration.ExtractSignal.WeightsFile:         msignal/calibration_weights_UV.dat
MJCalibrateSignal.ExtractSignal.WeightsFile:     msignal/cosmics_weights.dat
MJCalibrateSignal.ExtractInterlaced.WeightsFile: msignal/calibration_weights_UV.dat
MJCalibrateSignal.ExtractSignal.LoGainStretch:     1.59
MJCalibrateSignal.ExtractInterlaced.LoGainStretch: 1.5

# -------------------------------------------------------------------------
# Configure MJCalibration
# -------------------------------------------------------------------------
# Switch on relative time calibration
#MJCalibration.RelTimeCalibration: Yes
# Switch on intensity calibration
#MJCalibration.IntensityCalibration: Yes
# Set color to be used
#MJCalibration.Color:
# 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

# -------------------------------------------------------------------------
# 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.MaxHiGainVar:     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.MaxHiGainVar:     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


# -------------------------------------------------------------------------
# Use this if you want to change the signal extractor for the calibration
# and automatically the data extraction
# -------------------------------------------------------------------------
MJCalibration.ExtractSignal.LoGainSwitch:     200

# -------------------------------------------------------------------------
# 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 (only for MC!!!)
#MJCalibration.MCalibColorSet.ExplicitColor: green,blue,uv,ct1

#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.PheErrLimit:        3.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:  -100.125
#MJCalibration.MHCalibrationChargeCam.HiGainLast:   1899.875
#MJCalibration.MHCalibrationChargeCam.LoGainNbins:   500
#MJCalibration.MHCalibrationChargeCam.LoGainFirst:  -100.25
#MJCalibration.MHCalibrationChargeCam.LoGainLast:   899.75
#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: 2000
MJPedestalY3.MaxEvents: 500

#MJPedestalY.ExtractPedestal: MPedCalcFromLoGain
#MJPedestalY.ExtractPedestal.PedestalUpdate:   no

# -------------------------------------------------------------------------
# Setup pedestal extractor for running through data
# -------------------------------------------------------------------------
#MJCalibrateSignal.MPedCalcFundamental.PedestalUpdate:   yes
#MJCalibrateSignal.MPedCalcFundamental.NumEventsDump:   1500
#MJCalibrateSignal.MPedCalcFundamental.ExtractWinFirst:  17
#MJCalibrateSignal.MPedCalcFundamental.ExtractWinSize:    6
#MJCalibrateSignal.MPedCalcFundamental.CheckWinFirst:     0
#MJCalibrateSignal.MPedCalcFundamental.CheckWinSize:     29
#MJCalibrateSignal.MPedCalcFundamental.MaxHiGainVar:     40

#MJCalibrateSignal.MPedCalcFromExtractor.PedestalUpdate:   yes
#MJCalibrateSignal.MPedCalcFromExtractor.NumEventsDump:   1500
#MJCalibrateSignal.MPedCalcFromExtractor.ExtractWinFirst:  17
#MJCalibrateSignal.MPedCalcFromExtractor.ExtractWinSize:    6
#MJCalibrateSignal.MPedCalcFromExtractor.CheckWinFirst:     0
#MJCalibrateSignal.MPedCalcFromExtractor.CheckWinSize:     29
#MJCalibrateSignal.MPedCalcFromExtractor.MaxHiGainVar:     40

# -------------------------------------------------------------------------
# Use this if you want to change to time from run headers instead of event time
# -------------------------------------------------------------------------
#MJCalibrateSignal.MPointingPosInterpolate.TimeMode: eventtime, runtime

# -------------------------------------------------------------------------
# Use this if you want to change the signal extractor
# -------------------------------------------------------------------------
#MJCalibrateSignal.ExtractSignal.LoGainSwitch:    150
MJCalibrateSignal.ExtractSignal.LoGainSwitch:    150

# -------------------------------------------------------------------------
# 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 for MC!!!)
#MJCalibrateSignal.MCalibColorSet.ExpicitColor: green,blue,uv,ct1
#MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
#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:  -100.5
#MJCalibrateSignal.MHCalibrationChargeCam.HiGainLast:   1899.5
MJCalibrateSignal.MHCalibrationChargeCam.LoGainNbins:   250
#MJCalibrateSignal.MHCalibrationChargeCam.LoGainFirst:  -100.5
#MJCalibrateSignal.MHCalibrationChargeCam.LoGainLast:   899.5
#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
