Index: /branches/sj_ippTests_branch_20080929/ippTests/compIPPphoto.py
===================================================================
--- /branches/sj_ippTests_branch_20080929/ippTests/compIPPphoto.py	(revision 19922)
+++ /branches/sj_ippTests_branch_20080929/ippTests/compIPPphoto.py	(revision 19923)
@@ -38,10 +38,11 @@
 
 plotcol_tlist = [
-    ('d_mag','d_sky','scatter')
+    ('d_sky','d_mag','scatter')
     ,('d_x','d_y','scatter')
     ,('sky_ps1','d_mag','scatter')
+    ,('psf_inst_mag','d_mag','scatter')
     ]
 
-def compIPPphoto(summaryTable,mode,plotcol_tlist=plotcol_tlist):
+def compIPPphoto(summaryTable,mode,plotcol_tlist=plotcol_tlist,skip=False):
     """summaryTable: .fits table for output
     mode: new or append for creating summaryTable new or appending current run's output to it.
@@ -69,8 +70,9 @@
     rowtuple_list = []
 
-    
+    column_hash={}
+    stats_hash={}
     chipfile_l,fpObjc_l = makePlan()
     for chipfile,fpObjc in zip(chipfile_l,fpObjc_l):
-        matchtable,filter_name,bandindex = matchSdssPs1(fpObjc,chipfile)
+        matchtable,filter_name,bandindex = matchSdssPs1(fpObjc,chipfile,skip=skip)
         stats_hash, column_hash, goodrow_hash = computeStatistics(matchtable)
         # Sort res_hash by its column names to make sure order is
@@ -80,4 +82,5 @@
         rowtuple_list.append(vallist)
         plotStatsOnefile(column_hash,goodrow_hash,matchtable,plotcol_tlist,bandindex)
+        # return column_hash,goodrow_hash
     newrows = numpy.rec.array(rowtuple_list,names=keylist)
     tabhdu = tabHDUfromRecArray(newrows)
@@ -247,6 +250,8 @@
         ,'d_skyerr':['skyErr','SKY_SIGMA']
         ,'d_pointsource':['prob_psf','pointsource_ps1']
-        ,'d_mag':['psfcounts','PSF_INST_MAG']
-        ,'d_magerr':['psfcountserr','PSF_INST_MAG_SIG']
+        # ,'d_mag':['psfcounts','PSF_INST_MAG ']
+        # ,'d_magerr':['psfcountserr','PSF_INST_MAG_SIG']
+        ,'d_mag':['psfinstmag_sdss','PSF_INST_MAG']
+        ,'d_magerr':['psfinstmagerr_sdss','PSF_INST_MAG_SIG']
         }
     ismag = re.compile('mag')
@@ -269,33 +274,5 @@
         PS1col_good = PS1col[bothgood_bool]
         goodrow_hash[outcol] = bothgood_bool
-        # Compute SDSS instrumental magnitude if necessary
-        if PS1colname.lower() == 'psf_inst_mag' and SDSScolname.lower() == 'psfcounts':
-            # Create column with SDSS instrumental magnitude that can
-            # be written to table for diagnostic use
-            sdsspsfinstmag_colname = 'psfinstmag_sdss'
-            instmag_sdss_arr = -2.5*log10(array(table_data.field(SDSScolname)))
-            instmag_col = pyfits.Column(name='psfinstmag_sdss',format='5E',array=instmag_sdss_arr)
-            outcoll.append(instmag_col)
-            goodrow_hash[sdsspsfinstmag_colname.lower()] = goodrow_hash[SDSScolname.lower()]
-            # Compute array for internal use
-            SDSScol_good = -2.5*log10(SDSScol_good)
-
-        if PS1colname.lower() == 'psf_inst_mag_sig' and SDSScolname.lower() == 'psfcountserr':
-            # Create column with SDSS instrumental magnitude error
-            # that can be written to table for diagnostic use
-            sdsspsfinstmagerr_colname = 'psfinstmagerr_sdss'
-            instmagerr_sdss_arr = array(2.5/log(10.)*table_data.field('psfcountserr')/table_data.field('psfcounts'))
-            instmagerr_col = pyfits.Column(name=sdsspsfinstmagerr_colname,format='5E',array=instmagerr_sdss_arr)
-            outcoll.append(instmagerr_col)
-            goodrow_hash[sdsspsfinstmagerr_colname.lower()] = goodrow_hash['psfcountserr'] & \
-                goodrow_hash['psfcounts']
-            # Compute array for internal use
-            SDSScounts = array(table_data.field('psfcounts')[:,filterID[filtname]])
-            all3good_bool = bothgood_bool & goodrow_hash[sdsspsfinstmagerr_colname.lower()]
-            SDSScol_good = SDSScol[all3good_bool]
-            PS1col_good = PS1col[all3good_bool]
-            SDSScounts_good = SDSScounts[all3good_bool]
-            SDSScol_good = 2.5/log(10.)*SDSScol_good/SDSScounts_good
-            goodrow_hash[outcol] = all3good_bool
+        # instmagclip.py was here
         delta = SDSScol_good - PS1col_good
         # Store *all* values in return hash for later plotting; good
@@ -426,5 +403,5 @@
     return ps1list,sdsslist
 
-def matchSdssPs1(SDSSfpObjc,PS1cmf,xoff=0.5,yoff=0.5,matchrad=0.7):
+def matchSdssPs1(SDSSfpObjc,PS1cmf,xoff=0.5,yoff=0.5,matchrad=0.7,skip=False):
     """Call matchByPos to match an SDSS fpObjc.fits and a PS1 bla.cmf
     file."""
@@ -448,4 +425,8 @@
     sdssbandstr = ps1copyfields_hash['FILTER']
     bandindex = filters.index(sdssbandstr)
+    outname = getOutname(SDSSfpObjc,PS1cmf,sdssbandstr)
+    if skip:
+        return outname,sdssbandstr,bandindex
+        
     sdsscopyfields_hash = headerfieldHash(['RUN','RERUN','CAMCOL','FIELD'],SDSSfpObjc,0)
 
@@ -457,6 +438,6 @@
     sdssfilt = 'addcol colc_%s colc[%s]-(float)%s' % (sdssbandstr,bandindex,xoff)
     sdssfilt += ';addcol rowc_%s rowc[%s]-(float)%s' % (sdssbandstr,bandindex,yoff)
-#        sdssfilt += ';addcol psfinstmag_sdss -2.5*log10(psfcounts)' 
-#        sdssfilt += ';addcol psfinstmagerr_sdss 2.5/ln(10)*psfcountserr/psfcounts'
+    sdssfilt += ';addcol psfinstmag_sdss -2.5*log10(psfcounts[%s])' % (bandindex)
+    sdssfilt += ';addcol psfinstmagerr_sdss 2.5/ln(10)*psfcountserr[%s]/psfcounts[%s]' %(bandindex,bandindex)
     # Filtering out objects that can't be primary, i.e.
     # !BRIGHT && (!BLENDED || NODEBLEND || nchild == 0)
@@ -471,5 +452,4 @@
     ps1pos = "\'x_psf y_psf\'"
 
-    outname = getOutname(SDSSfpObjc,PS1cmf,sdssbandstr)
     matchByPos(SDSSfpObjc,PS1cmf,outname,sdsspos,ps1pos,tolerance=matchrad,\
                    duptag1='_sdss',duptag2='_ps1',\
@@ -573,5 +553,6 @@
 
     if not append:
-        smSetup(bincenters,histo,xrange,yrange,xlab,ylab,box1,box2,box3,box4)
+        logical = None
+        smSetup(bincenters,histo,logical,xrange,yrange,xlab,ylab,box1,box2,box3,box4)
     sm.histogram(bincenters,histo)
 
@@ -587,5 +568,5 @@
     try:
         if not append:
-            smSetup(x,y,xrange,yrange,xlab,ylab,box1,box2,box3,box4)
+            smSetup(x,y,logical,xrange,yrange,xlab,ylab,box1,box2,box3,box4)
         sm.ltype(ltype)
         sm.connect(x,y,logical)
@@ -605,5 +586,5 @@
     try:
         if not append:
-            smSetup(x,y,xrange,yrange,xlab,ylab,box1,box2,box3,box4)
+            smSetup(x,y,logical,xrange,yrange,xlab,ylab,box1,box2,box3,box4)
         sm.ptype(ptype)
         sm.points(x,y,logical)
@@ -611,11 +592,17 @@
         pass
 
-def smSetup(x,y,xrange,yrange,xlab,ylab,box1,box2,box3,box4):
+def smSetup(x,y,logical,xrange,yrange,xlab,ylab,box1,box2,box3,box4):
     import sm
     sm.erase()
     if isNone(xrange):
-        xrange = x
+        if isNone(logical):
+            xrange = x
+        else:
+            xrange = x[logical]
     if isNone(yrange):
-        yrange = y
+        if isNone(logical):
+            yrange = y
+        else:
+            yrange = y[logical]
     sm.limits(x,y)
     smBox(box1,box2,box3,box4)
