; $Id: diagdump24_ioc_master.pro,v 0.1 2003/01/31 15:00:00 dkelly Exp $ ; ;+ ; NAME: ; DIAGDUMP24_IOC_MASTER ; ; PURPOSE: ; This routine reads in the binary diagnostic dump data collected ; during a collection of 24um thermal anneals and produces a master ; anneal thermal profile for each of the temperature curves. ; ; CATEGORY: ; MIPS utilities. ; ; CALLING SEQUENCE: ; diagdump24_ioc_master, ps=ps ; ; INPUTS: ; This routine needs to be run in a directory with .txt files ; holding the results from a collection of 24um thermal anneals. ; ; KEYWORD PARAMETERS: ; PS: Writes to the output file master.ps rather than to X. ; ; OUTPUTS: ; Postscript file master.ps created if ps flag is set. ; ASCII text file master.temps with temperature profiles ; ; OPTIONAL OUTPUTS: ; ; ; MODIFICATION HISTORY: ; Written by: Doug Kelly (September 28, 2003) ; ; This CECOLDIAG command includes ten telemetry items in the following order: ; 0x00b01946 D160StimTmp ; 0x00b0193e D160BaseTmp ; 0x00b0193a D160JnctTmp ; 0x00b01944 D160TmpA ; 0x00b01948 D160TmpB ; 0x00b01934 D24TmpA ; 0x00b01936 D24TmpB ; 0x00b0197e D24AnnealCur ; 0x00b0193c D70BaseTmp ; 0x00b0194a CSMMTmp ; ;- ; ---------------------------------------------------------------------- ; Attempt to fit the 24um temperature profiles (not very successful) ; FUNCTION tprofile, X, A ; RETURN, [ [A[0] + A[1] - A[1]*exp(A[2]*X)], $ ; [1.0], [1 - exp(A[2]*X)], [-A[1]*X*exp(A[2]*X)] ] ; END PRO diagdump24_ioc_master,ps=ps ; system variables for rainbow+white on a white background !p.background=255 !p.color=0 loadct,39 ; configure to put four plots on one page, 2 columns x 2 rows !p.multi = [0,2,2,0,1] ; read in the data fbase = '*.txt' files = findfile(fbase,count=nfiles) if (nfiles eq 0) then begin print,'No Files Found - quitting' return endif else begin if (keyword_set(ps)) then begin psland, fname='master.ps', wide=10.5, high=7.5 endif D24TmpA = fltarr(1,160,nfiles) bkgd_D24TmpA = fltarr(nfiles) D24TmpB = fltarr(1,160,nfiles) bkgd_D24TmpB = fltarr(nfiles) D160TmpA = fltarr(1,160,nfiles) bkgd_D160TmpA = fltarr(nfiles) D160TmpB = fltarr(1,160,nfiles) bkgd_D160TmpB = fltarr(nfiles) D160JnctTmp = fltarr(1,160,nfiles) bkgd_D160JnctTmp = fltarr(nfiles) D70BaseTmp = fltarr(1,160,nfiles) bkgd_D70BaseTmp = fltarr(nfiles) D160BaseTmp = fltarr(1,160,nfiles) bkgd_D160BaseTmp = fltarr(nfiles) D160StimTmp = fltarr(1,160,nfiles) bkgd_D160StimTmp = fltarr(nfiles) CSMM_Tmp = fltarr(1,160,nfiles) bkgd_CSMM_Tmp = fltarr(nfiles) D24AnnealCur = fltarr(1,160,nfiles) bkgd_D24AnnealCur = fltarr(nfiles) for i = 0,(nfiles-1) do begin filename = files[i] print,filename READCOL,files[i],f = 'f,f,f,f,f,f,f,f,f,f,f,f',Dummy1,Dummy2, $ Dummy3,Dummy4,Dummy5,Dummy6, $ Dummy7,Dummy8,Dummy9,Dummy10, $ Dummy11,Dummy12,delimiter=' ' D24TmpA[0,*,i] = Dummy6 bkgd_D24TmpA[i] = mean(Dummy6[0:14]) D24TmpB[0,*,i] = Dummy7 bkgd_D24TmpB[i] = mean(Dummy7[0:14]) D160TmpA[0,*,i] = Dummy4 bkgd_D160TmpA[i] = mean(Dummy4[0:14]) D160TmpB[0,*,i] = Dummy5 bkgd_D160TmpB[i] = mean(Dummy5[0:14]) D160JnctTmp[0,*,i] = Dummy3 bkgd_D160JnctTmp[i] = mean(Dummy3[0:14]) D70BaseTmp[0,*,i] = Dummy9 bkgd_D70BaseTmp[i] = mean(Dummy9[0:14]) D160BaseTmp[0,*,i] = Dummy2 bkgd_D160BaseTmp[i] = mean(Dummy2[0:14]) D160StimTmp[0,*,i] = Dummy1 bkgd_D160StimTmp[i] = mean(Dummy1[0:14]) CSMM_Tmp[0,*,i] = Dummy10 bkgd_CSMM_Tmp[i] = mean(Dummy10[0:14]) D24AnnealCur[0,*,i] = Dummy8 bkgd_D24AnnealCur[i] = mean(Dummy8[20:110]) endfor mean_bkgd_D24TmpA = mean(bkgd_D24TmpA) print,'mean_bkgd_D24TmpA = ',mean_bkgd_D24TmpA mean_bkgd_D24TmpB = mean(bkgd_D24TmpB) print,'mean_bkgd_D24TmpB = ',mean_bkgd_D24TmpB mean_bkgd_D160TmpA = mean(bkgd_D160TmpA) print,'mean_bkgd_D160TmpA = ',mean_bkgd_D160TmpA mean_bkgd_D160TmpB = mean(bkgd_D160TmpB) print,'mean_bkgd_D160TmpB = ',mean_bkgd_D160TmpB mean_bkgd_D160JnctTmp = mean(bkgd_D160JnctTmp) print,'mean_bkgd_D160JnctTmp = ',mean_bkgd_D160JnctTmp mean_bkgd_D70BaseTmp = mean(bkgd_D70BaseTmp) print,'mean_bkgd_D70BaseTmp = ',mean_bkgd_D70BaseTmp mean_bkgd_D160BaseTmp = mean(bkgd_D160BaseTmp) print,'mean_bkgd_D160BaseTmp = ',mean_bkgd_D160BaseTmp mean_bkgd_D160StimTmp = mean(bkgd_D160StimTmp) print,'mean_bkgd_D160StimTmp = ',mean_bkgd_D160StimTmp mean_bkgd_CSMM_Tmp = mean(bkgd_CSMM_Tmp) print,'mean_bkgd_CSMM_Tmp = ',mean_bkgd_CSMM_Tmp mean_bkgd_D24AnnealCur = mean(bkgd_D24AnnealCur) print,'mean_bkgd_D24AnnealCur = ',mean_bkgd_D24AnnealCur for i = 0,(nfiles-1) do begin D24TmpA[0,*,i] = D24TmpA[0,*,i] - bkgd_D24TmpA[i] + mean_bkgd_D24TmpA D24TmpB[0,*,i] = D24TmpB[0,*,i] - bkgd_D24TmpB[i] + mean_bkgd_D24TmpB D160TmpA[0,*,i] = D160TmpA[0,*,i] - bkgd_D160TmpA[i] + mean_bkgd_D160TmpA D160TmpB[0,*,i] = D160TmpB[0,*,i] - bkgd_D160TmpB[i] + mean_bkgd_D160TmpB D160JnctTmp[0,*,i] = D160JnctTmp[0,*,i] - bkgd_D160JnctTmp[i] + $ mean_bkgd_D160JnctTmp D70BaseTmp[0,*,i] = D70BaseTmp[0,*,i] - bkgd_D70BaseTmp[i] + $ mean_bkgd_D70BaseTmp D160BaseTmp[0,*,i] = D160BaseTmp[0,*,i] - bkgd_D160BaseTmp[i] + $ mean_bkgd_D160BaseTmp D160StimTmp[0,*,i] = D160StimTmp[0,*,i] - bkgd_D160StimTmp[i] + $ mean_bkgd_D160StimTmp CSMM_Tmp[0,*,i] = CSMM_Tmp[0,*,i] - bkgd_CSMM_Tmp[i] + mean_bkgd_CSMM_Tmp D24AnnealCur[0,*,i] = D24AnnealCur[0,*,i] - bkgd_D24AnnealCur[i] + $ mean_bkgd_D24AnnealCur endfor D24TmpA_master = fltarr(160) D24TmpB_master = fltarr(160) D160TmpA_master = fltarr(160) D160TmpB_master = fltarr(160) D160JnctTmp_master = fltarr(160) D70BaseTmp_master = fltarr(160) D160BaseTmp_master = fltarr(160) D160StimTmp_master = fltarr(160) CSMM_Tmp_master = fltarr(160) D24AnnealCur_master = fltarr(160) openw,unit1,'master.temps',/get_lun for i = 0,159 do begin D24TmpA_master[i] = mean(D24TmpA[0,i,*]) D24TmpB_master[i] = mean(D24TmpB[0,i,*]) D160TmpA_master[i] = mean(D160TmpA[0,i,*]) D160TmpB_master[i] = mean(D160TmpB[0,i,*]) D160JnctTmp_master[i] = mean(D160JnctTmp[0,i,*]) D70BaseTmp_master[i] = mean(D70BaseTmp[0,i,*]) D160BaseTmp_master[i] = mean(D160BaseTmp[0,i,*]) D160StimTmp_master[i] = mean(D160StimTmp[0,i,*]) CSMM_Tmp_master[i] = mean(CSMM_Tmp[0,i,*]) D24AnnealCur_master[i] = mean(D24AnnealCur[0,i,*]) printf,unit1,D160StimTmp_master[i],D160BaseTmp_master[i], $ D160JnctTmp_master[i],D160TmpA_master[i],D160TmpB_master[i], $ D24TmpA_master[i],D24TmpB_master[i],D24AnnealCur_master[i], $ D70BaseTmp_master[i],CSMM_Tmp_master[i],0.0,0.0, format='(12(F8.4,3x))' endfor free_lun,unit1 ; plot the master data plot, findgen(160), D24TmpA_master, yrange=[2,26], xtitle='Time (sec)', $ ytitle='Temperature (K)', title='24um Thermal Anneal: Master Plots', $ charsize=1.3, color=0,/nodata oplot, findgen(160), D24TmpA_master, color=10 xyouts, 15, 24, 'D24TmpA', color=10 oplot, findgen(160), D24TmpB_master, color=232 xyouts, 15, 23, 'D24TmpB', color=232 plot, findgen(160), D160BaseTmp_master, $ yrange=[(D160BaseTmp_master[0]-0.08),(D160BaseTmp_master[127]+0.15)], $ xtitle='Time (sec)', ytitle='Temperature (K)', $ charsize=1.3, color=0,/nodata oplot, findgen(160), D160BaseTmp_master, color=82 xyouts, 15, (D160BaseTmp_master[127]+0.03), 'D160BaseTmp', color=82 oplot, findgen(160), D70BaseTmp_master, color=10 xyouts, 15, (D160BaseTmp_master[127]+0.01), 'D70BaseTmp', color=10 oplot, findgen(160), D160StimTmp_master, color=34 xyouts, 15, (D160BaseTmp_master[127]-0.01), 'D160StimTmp', color=34 oplot, findgen(160), CSMM_Tmp_master, color=232 xyouts, 15, (D160BaseTmp_master[127]-0.03), 'CSMMTmp', color=232 plot, findgen(160), D160TmpA_master, $ yrange=[(D160TmpA_master[0]-0.08),(D160TmpA_master[130]+0.02)], $ xtitle='Time (sec)', ytitle='Temperature (K)', $ charsize=1.3, color=0,/nodata oplot, findgen(160), D160TmpA_master, color=10 xyouts, 15, (D160TmpA_master[130]-0.01), 'D160TmpA', color=10 oplot, findgen(160), D160JnctTmp_master, color=82 xyouts, 15, (D160TmpA_master[130]-0.02), 'D160JnctTmp', color=82 oplot, findgen(160), D160TmpB_master, color=232 xyouts, 15, (D160TmpA_master[130]+0.04), 'D160TmpB', color=232 plot, findgen(160), D24AnnealCur_master, yrange=[-20,640], $ xtitle='Time (sec)', ytitle='Anneal Current (uA)', $ charsize=1.3, color=0,/nodata oplot, findgen(160), D24AnnealCur_master, color=10 xyouts, 15, 600, 'D24AnnealCur', color=10 if (keyword_set(ps)) then begin device, /close set_plot, 'x' endif ; write mean temperature profiles out to the file master.txt ;openw,unit1,'master.txt',/get_lun ;printf,unit1,anneal_DN, format='(12(F8.4,3x))' ;free_lun,unit1 endelse END ; ----------------------------------------------------------------------