#EllipticityVsTrackingError.py
#
#PURPOSE:
#  To plot the expected ellipticity for a variety of tracking error rates
#  based upon the numerical integration performed in Return_PSF_2_1m_TrackingErrors
# 
from Return_PSF_2_1m_TrackingErrors import *
from scipy.integrate import quad
from ReturnRadialAvg import *
from RadialFits import *

#NOTES ON POINTING OF TELESCOPE
#
#HERE ARE THE ZENITH DISTANCES FOR VBELYn
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows1000_Reads_Dec18_2007_02_10_52.fits ,       25.5200
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows100_Reads_Dec18_2007_02_17_07.fits ,       24.5300
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows2000_Reads_Dec18_2007_02_17_43.fits ,       24.4400
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows2000_Reads_Dec18_2007_02_25_58.fits ,       23.1700
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows3000_Reads_Dec18_2007_02_37_04.fits ,       21.5300
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_02_49_25.fits ,       19.8000
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_03_06_25.fits ,       17.6700
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_03_23_08.fits ,       15.9500
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_03_39_29.fits ,       14.7600
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_03_55_50.fits ,       14.1900
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_04_12_11.fits ,       14.3100
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_04_28_32.fits ,       15.1100
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_04_44_53.fits ,       16.4800
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_05_01_14.fits ,       18.3000
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_05_17_34.fits ,       20.4300
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_05_33_55.fits ,       22.8000
#File: VBELynVBELyn_H2RG_SIPIN_MultipleWindows4000_Reads_Dec18_2007_05_50_16.fits ,       25.3300
#
#File: SAO5417_I_NegPerAfterDark_H1RG_SIPIN_2500_Reads_Nov19_2007_23_20_46.fits ,       15.0500
#File: SAO5417_I_NegPerDark_H1RG_SIPIN_2500_Reads_Nov19_2007_22_45_50.fits ,       7.81000
#File: SAO5417_I_NegPerDead_H1RG_SIPIN_2500_Reads_Nov19_2007_22_15_46.fits ,       2.29000
#File: SAO5417_I_NegPerSatRamp_H1RG_SIPIN_500_Reads_Nov19_2007_22_09_16.fits ,       1.90000

execfile('/afs/slac/u/ki/lances/python/python_HxRG/HxRG_Setup.py')
Mode    = 0           #Mode to use for radial profile
TvFlag  = 1
BoxSize = 15
XSize   = 51
YSize   = 51
XOff    = 25
YOff    = 25

Guiding = 0
if Guiding == 1:
  #GOOD SET FOR E=.18
  m_dec        = -0.0042     #Slope of tracking error in DEC (arcsec/sec)
  m_ra         =  0.0020     #Slope of tracking error in RA  (arcsec/sec)
  A_osc        =  2.000      #Amplitude of oscillation of RA (arcsec)
  f_osc        =  0.00810    #Frequency of oscillation of RA (1/sec)
  eps_see      =  4.20       #Seeing disc in pixels          (arcsec)
  I_o          =  10.00      #Maximum intensity of star      (ADU)
  t_exp        =  1800.      #Exposure time in seconds       (seconds)
  Num_ts       =  84.        #Number of times telescope was offset
  RA_DEC_Ratio =  14
elif Guiding == 0:
  #GOOD SET FOR E=0.06
  m_dec        = -0.0042     #Slope of tracking error in DEC (arcsec/sec)
  m_ra         =  0.0020     #Slope of tracking error in RA  (arcsec/sec)
  f_osc        =  0.00810    #Frequency of oscillation of RA (1/sec)
  A_osc        =  2.1004     #Amplitude of oscillation of RA (arcsec)
  eps_see      =  6.20       #Seeing disc in pixels          (arcsec)
  I_o          =  10.00      #Maximum intensity of star      (ADU)
  t_exp        =  1800.      #Exposure time in seconds       (seconds)
  Num_ts       =  1.         #Number of times telescope was offset
  RA_DEC_Ratio =  1


Height, MuX, MuY, FWHMX, FWHMY, FWHM, E, EA, \
Amp_G, FWHM_G, Fit_G, Amp_G_M, FWHM_G_M, Beta_G_M, Fit_G_M = \
Return_PSF_2_1m_TrackingErrors(m_dec, m_ra, eps_see, f_osc, A_osc, t_exp, I_o, Mode = 0, \
                               TvFlag=TvFlag, XSize=XSize, YSize=YSize, \
                               XOff=XOff, YOff=YOff, \
                               BoxSize=BoxSize, Num_ts = Num_ts, RA_DEC_Ratio=RA_DEC_Ratio)


print 'Ellipticity : ' + str(E)
FWHM_G             = 2*sqrt(2*log(2))*FWHM_G
FWHM_GStr          = "%.2f"   % FWHM_G
FWHM_G_M           = 2*sqrt(2**(-1/Beta_G_M)-1)*FWHM_G_M
FWHM_G_MStr        = "%.2f"   % FWHM_G_M
print 'FWHM Gauss  : ' + FWHM_GStr
print 'FWHM Moffat : ' + FWHM_G_MStr
