from augerRun import *
from fitPeaks import *
import pylab as pl
import numpy as np

#M. K. Bahl, R. L. Watson, and K. J. Irgolic, ChemPhys 68
refPeaks=np.array([481.6,483.9,485.3,491.8,493.9])

run=1
start=452.0;end=523.0
if run==1:
    name='augerData/bite2/120308B3.1'
    left=470.0
    right=510.0
elif run==2:
    name='augerData/bite2/120308B4.1'
    left=480.0
    right=500.0
r=AugerRun(name)
guess=refPeaks+1.5#[483,485.5,487,493,496]
(params,fitE,fitCounts,EError)=fitPeaks(r,guess,left,right,start=start,end=end)
print('Results agree best when '+str(-EError)+' eV are added to our AES peaks:')
for i in range(5):
    print('Peak at: '+str(params[i*3]-EError)+
            ' eV, ref: '+str(refPeaks[i])+' eV')
pl.hold(True)
pl.plot(r.E,r.countsPerSec,linewidth=2,color='red')
pl.plot(fitE,fitCounts,linewidth=2,color='black')
pl.show()
guessShift = [1.6, 1.6, 1.0, 0.5, 0.0]
peaks = []
colors = ["red", "green", "blue", "cyan", "magenta", "yellow", "black"]
fits = pl.figure().add_subplot(111)
fits.hold(True)
# for e in end+start+left[0]+right[0]:
#    pl.plot([e,e],[0,2e6],'gray')
for i in range(len(samples)):
    samplePeaks = []
    for j in [0]:
        r = AugerRun(sources[i][j][0], part=sources[i][j][1])
        guess = refPeaks[j] + guessShift[i]
        print(j)
        (params, relHeights, fitE, base, EError) = fitPeaks(
            r, guess, left[i][j], right[i][j], start=start[j], end=end[j]
        )
        samplePeaks.append([[params[t * 3], relHeights[t]] for t in range(len(guess))])
        # shift=-guessShift-EError
        # print('Results agree best when '+str(shift)+' eV are added to our AES peaks:')
        # for p in range(len(guess)):
        #    print('Peak at: '+str(params[p*3]+shift)+
        #            ' eV, ref: '+str(refPeaks[j][p])+' eV')
        scale = 1 / base[0]
        shift = 0.25 * i
        fits.plot(
            r.E, shift + r.countsPerSec * scale, linewidth=2, color=colors[i], label=(samples[i] if j == 0 else "")
        )
        tableString = ""
        for p in range(len(guess)):
            fits.plot(