#Purpose:
#  To plot the anomaly associated with not clocking the 
#  array
#
execfile('/afs/slac/u/ki/lances/python/python_HxRG/HxRG_Setup.py')
execfile('/afs/slac/u/ki/lances/python/ThesisPlotSettings.py')
from FitRamp import *
EarlyReadFitsFile = '/nfs/slac/g/ki/ki03/lances/H2RG-001/ASIC/08Dec05/HxRGTest/H2RG_SIPIN_OneWindow40_Reads_Dec05_2008_11_37_51.fits'
EarlyReadFitsFile = '/nfs/slac/g/ki/ki03/lances/H2RG-001/ASIC/08Dec05/HxRGTest/H2RG_SIPIN_OneWindow40_Reads_Dec05_2008_11_40_45.fits'
MidReadFitsFile   = '/nfs/slac/g/ki/ki03/lances/H2RG-001/ASIC/08Dec05/HxRGTest/H2RG_SIPIN_OneWindow40_Reads_Dec05_2008_11_37_17.fits'

TvFlag = 0

#Set up histogram
NoBinsTau1     = 50
BinWidthTau1   = 0.01
BinsInTau1     = arange(NoBinsTau1)*BinWidthTau1

NoBinsN1_Ref   = 20
BinWidthN1_Ref = 10
BinsInN1_Ref   = arange(NoBinsN1_Ref)*BinWidthN1_Ref+50

NoBinsN1_Sci   = 60
BinWidthN1_Sci = 10
BinsInN1_Sci   = arange(NoBinsN1_Sci)*BinWidthN1_Sci+200

#Get the data from the Early Read Anomaly
EarlyReadVals   = pyfits.getdata(EarlyReadFitsFile)
EarlyReadsHxRG  = HxRG_C(FitsFileName = EarlyReadFitsFile)
EarlyReadsHxRG.Get_Raw_Header(EarlyReadFitsFile)
FirstRead       = 0
LastRead        = 80
FrameTimes_ER   = arange(LastRead-FirstRead)*EarlyReadsHxRG.ITime/EarlyReadsHxRG.NAxis3
Slopes_ER, N1s_ER, Tau1s_ER, Offs_ER = FitRamp(FrameTimes_ER, EarlyReadVals, AttFit=2, Tau1=0.1, TvFlag=TvFlag)
mplot.figure(0)
mplot.clf()
BinsTau1, NTau1_Ref_ER = histOutline.histOutline(Tau1s_ER[:,0:4], binsIn=BinsInTau1)
BinsTau1, NTau1_Sci_ER = histOutline.histOutline(Tau1s_ER[:,8:12], binsIn=BinsInTau1)
mplot.plot(BinsTau1, NTau1_Ref_ER, 'r-', label='Reference Pixels Early')
mplot.plot(BinsTau1, NTau1_Sci_ER, 'b-', label='Science Pixels Early')
mplot.legend()

mplot.figure(1)
mplot.clf()
Bins_Ref_ER, N1s_Ref_ER = histOutline.histOutline(N1s_ER[:,0:4], binsIn=BinsInN1_Ref)
Bins_Sci_ER, N1s_Sci_ER = histOutline.histOutline(N1s_ER[:,8:12], binsIn=BinsInN1_Sci)
mplot.plot(Bins_Ref_ER, N1s_Ref_ER, 'r-', label='Reference Pixels Early')
mplot.plot(Bins_Sci_ER, N1s_Sci_ER, 'b-', label='Science Pixels Early')
mplot.legend()
 
#Get the data from the Anomaly that occurs after we stop clocking pixels and wait
MidReadVals     = pyfits.getdata(MidReadFitsFile)
MidReadsHxRG    = HxRG_C(FitsFileName=MidReadFitsFile)
MidReadsHxRG.Get_Raw_Header(MidReadFitsFile)
FirstRead       = 40
LastRead        = 80
#Note: ITIME only tracks the last fowler pair, so the delay in between the first 40 
#      and last 40 reads will make the frame time longer than it actually is
FrameTimes_MR   = arange(LastRead-FirstRead)*EarlyReadsHxRG.ITime/EarlyReadsHxRG.NAxis3
MidReadVals_MR  = MidReadVals[FirstRead:LastRead, :, :]
Slopes_MR, N1s_MR, Tau1s_MR, Offs_MR = FitRamp(FrameTimes_MR, MidReadVals_MR, AttFit=2, Tau1=0.1, TvFlag=TvFlag)
mplot.figure(2)
mplot.clf()
Bins_Tau1, NTau1_Ref_MR = histOutline.histOutline(Tau1s_MR[:,0:4], binsIn=BinsInTau1)
Bins_Tau1, NTau1_Sci_MR = histOutline.histOutline(Tau1s_MR[5:,14:18], binsIn=BinsInTau1)
mplot.plot(Bins_Tau1, NTau1_Ref_MR, 'r-', label='Reference Pixels MidR')
mplot.plot(Bins_Tau1, NTau1_Sci_MR, 'b-', label='Science Pixels MidR')
mplot.legend()

mplot.figure(3)
mplot.clf()
Bins_Ref_MR, N1s_Ref_MR = histOutline.histOutline(N1s_MR[:,0:4], binsIn=BinsInN1_Ref)
Bins_Sci_MR, N1s_Sci_MR = histOutline.histOutline(N1s_MR[5:,14:18], binsIn=BinsInN1_Sci)
mplot.plot(Bins_Ref_MR, N1s_Ref_MR, 'r-', label='Reference Pixels Early')
mplot.plot(Bins_Sci_MR, N1s_Sci_MR, 'b-', label='Science Pixels Early')
mplot.legend()

