# ==========================================================================
#############################################################################
# ==========================================================================
#                              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.
# -------------------------------------------------------------------------
#MJPedestalC.PathOut: .

# -------------------------------------------------------------------------
# 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)
# -------------------------------------------------------------------------
#MJPedestalC.PathData:   /data/MAGIC/Period016/
#MJCalibration.PathData: /data/MAGIC/Period016/

# -------------------------------------------------------------------------
# Configure MJCalibration
# -------------------------------------------------------------------------
# Switch on relative time calibration
MJCalibration.RelTimeCalibration: Yes
# Set color to be used
#MJCalibration.Color:
# Type of displayed plots
#MJCalibration.Display: Full,DataCheck,Normal
# Used for data-check (eg. raw files are read)
#MJCalibration.Datacheck: No
# Write additinal debug output
#MJCalibration.Debug: No
# Use blind pixel
#MJCalibration.UseBlindPixel: No
# Use pin diode
#MJCalibration.UsePINDiode: No

# -------------------------------------------------------------------------
# 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.
# -------------------------------------------------------------------------
#MJPedestalC.ExtractPedestal: MPedCalcPedRun 
#MJPedestalC.ExtractPedestal.HiGainFirst:       0
#MJPedestalC.ExtractPedestal.HiGainLast:       29
#MJPedestalC.ExtractPedestal.LoGainFirst:       0
#MJPedestalC.ExtractPedestal.LoGainLast:       14
#MJPedestalC.ExtractPedestal.HiGainWindowSize: 14
#MJPedestalC.ExtractPedestal.LoGainWindowSize:  0

# -------------------------------------------------------------------------
# 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.
# -------------------------------------------------------------------------
MJPedestalC.ExtractPedestal: MPedCalcFromLoGain
MJPedestalC.ExtractPedestal.PedestalUpdate:   no
#MJPedestalC.ExtractPedestal.HiGainFirst:       0
#MJPedestalC.ExtractPedestal.HiGainLast:       11
#MJPedestalC.ExtractPedestal.LoGainFirst:       1
#MJPedestalC.ExtractPedestal.LoGainLast:       14
#MJPedestalC.ExtractPedestal.HiGainWindowSize: 12
#MJPedestalC.ExtractPedestal.LoGainWindowSize: 14
#MJPedestalC.ExtractPedestal.MaxHiGainVar:     40

# -------------------------------------------------------------------------
# Configure MJPedestal
# -------------------------------------------------------------------------
# Maximum number of event processed in the loop
#MJPedestalC.MaxEvents: 1000
# Allow to overwrite existing files with the output file
#MJPedestalC.AllowOverwrite: No
# Use data runs from the sequence instead of calibration runs
#MJPedestalC.UseData: No


# -------------------------------------------------------------------------
# Use this if you want to change the signal extractor for the calibration
# and automatically the data extraction
# -------------------------------------------------------------------------
MJCalibration.ExtractSignal: MExtractFixedWindow
MJCalibration.ExtractSignal.HiGainFirst:       3
MJCalibration.ExtractSignal.HiGainLast:       14
MJCalibration.ExtractSignal.LoGainFirst:       4
MJCalibration.ExtractSignal.LoGainLast:       13
#MJCalibration.ExtractSignal.HiGainWindowSize:  6
#MJCalibration.ExtractSignal.LoGainWindowSize:  6
#MJCalibration.ExtractSignal.PeakSearchWindow:  4
#MJCalibration.ExtractSignal.OffsetFromWindow:  1
#MJCalibration.ExtractSignal.LoGainPeakShift:   0

# -------------------------------------------------------------------------
# Use this if you want to change the time extractor for the calibration
# and automatically the data extraction
# -------------------------------------------------------------------------
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
# -------------------------------------------------------------------------
#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
#//MCalibrationChargeCalc.PulserColor       ( const MCalibrationCam::PulserColor_t col ) { fPulserColor       = col;   }

# -------------------------------------------------------------------------
# Use this to change the behaviour of the calibration
# -------------------------------------------------------------------------
#MJCalibration.MHCalibrationChargeCam.Debug:        no


 
# ==========================================================================
#############################################################################
# ==========================================================================
#                            Signal extraction
# ==========================================================================
#############################################################################
# ==========================================================================

# -------------------------------------------------------------------------
# Use a OutputPath if you want to write the results to a file
# -------------------------------------------------------------------------
#MJCalibrateSignal.PathOut:  .
#MJPedestalY.PathOut:        .
#MJPedestalY.PathData:       /data/MAGIC/Period016/
#MJCalibrateSignal.PathData: /data/MAGIC/Period016/
#MJCalibrateSignal.PathIn:   .

MJPedestalY.UseData:   Yes
MJPedestalY.MaxEvents: 750

MJPedestalY.ExtractPedestal: MPedCalcFromLoGain
MJPedestalY.ExtractPedestal.PedestalUpdate:   yes
MJPedestalY.ExtractPedestal.NumEventsDump:   500

# -------------------------------------------------------------------------
# Setup pedestal extraktor for running through data
# -------------------------------------------------------------------------
MJCalibrateSignal.MPedCalcFromLoGain: MPedCalcFromLoGain
MJCalibrateSignal.ExtractPedestal.PedestalUpdate:   yes
MJCalibrateSignal.ExtractPedestal.NumEventsDump:   500
#MJCalibrateSignal.ExtractPedestal.HiGainFirst:       0
#MJCalibrateSignal.ExtractPedestal.HiGainLast:       11
#MJCalibrateSignal.ExtractPedestal.LoGainFirst:       1
#MJCalibrateSignal.ExtractPedestal.LoGainLast:       14
#MJCalibrateSignal.ExtractPedestal.HiGainWindowSize: 12
#MJCalibrateSignal.ExtractPedestal.LoGainWindowSize: 14
#MJCalibrateSignal.ExtractPedestal.MaxHiGainVar:     40

# -------------------------------------------------------------------------
# Setup calibration of data
# -------------------------------------------------------------------------
MJCalibrateSignal.MCalibrateData.PedestalFlag: Event
MJCalibrateSignal.MCalibrateData.CalibrationMode: Default

# -------------------------------------------------------------------------
# Setup level for determining of bad pixels
# -------------------------------------------------------------------------
# MJCalibrateSignal.MBadPixelsCalc.PedestalLevel:      3.0
MJCalibrateSignal.MBadPixelsTreat.NumMinNeighbors:    2
MJCalibrateSignal.MBadPixelsTreat.UseInterpolation:   yes
MJCalibrateSignal.MBadPixelsTreat.ProcessPedestalEvt: yes
MJCalibrateSignal.MBadPixelsTreat.ProcessPedestalRun: no
MJCalibrateSignal.MBadPixelsTreat.ProcessTimes:       yes
#MJCalibrateSignal.MBadPixelsTreat.UseCentralPixel:    no
#MJCalibrateSignal.MBadPixelsTreat.HardTreatment:      no
