Index: /branches/eam_branches/ipp-20110404/Ohana/src/relphot/include/relphot.h
===================================================================
--- /branches/eam_branches/ipp-20110404/Ohana/src/relphot/include/relphot.h	(revision 31261)
+++ /branches/eam_branches/ipp-20110404/Ohana/src/relphot/include/relphot.h	(revision 31262)
@@ -218,7 +218,7 @@
 StatType      statsMosaicX        PROTO((Catalog *catalog));
 StatType      statsMosaicdM       PROTO((Catalog *catalog));
-StatType      statsStarN          PROTO((Catalog *catalog, int Ncatalog));
-StatType      statsStarS          PROTO((Catalog *catalog, int Ncatalog));
-StatType      statsStarX          PROTO((Catalog *catalog, int Ncatalog));
+StatType      statsStarN          PROTO((Catalog *catalog, int Ncatalog, int seccode));
+StatType      statsStarS          PROTO((Catalog *catalog, int Ncatalog, int Nsec));
+StatType      statsStarX          PROTO((Catalog *catalog, int Ncatalog, int Nsec));
 void          wcatalog            PROTO((Catalog *catalog));
 void          wimages             PROTO((void));
Index: /branches/eam_branches/ipp-20110404/Ohana/src/relphot/src/StarOps.c
===================================================================
--- /branches/eam_branches/ipp-20110404/Ohana/src/relphot/src/StarOps.c	(revision 31261)
+++ /branches/eam_branches/ipp-20110404/Ohana/src/relphot/src/StarOps.c	(revision 31262)
@@ -582,5 +582,5 @@
 }
 
-StatType statsStarN (Catalog *catalog, int Ncatalog) {
+StatType statsStarN (Catalog *catalog, int Ncatalog, int seccode) {
 
   off_t j, k, m, Ntot;
@@ -605,4 +605,7 @@
       if (catalog[i].average[j].flags & STAR_BAD) continue;  
       m = catalog[i].average[j].measureOffset;
+
+      int ecode = GetPhotcodeEquivCodebyCode (catalog[i].measure[m].photcode);
+      if (ecode == seccode) continue;
 
       N = 0;
@@ -629,6 +632,6 @@
 }
 
-// XXXX do this for all secfilt at once or one at a time?
-StatType statsStarX (Catalog *catalog, int Ncatalog) {
+// stats for a single secfilt at a time
+StatType statsStarX (Catalog *catalog, int Ncatalog, int Nsec) {
 
   off_t j, Ntot;
@@ -651,19 +654,12 @@
     for (j = 0; j < catalog[i].Naverage; j++) {
 
-      int Ns;
-      for (Ns = 0; Ns < Nphotcodes; Ns++) {
-
-	int thisCode = photcodes[Ns][0].code;
-	int Nsec = GetPhotcodeNsec(thisCode);
-
-	/* calculate the average value for a single star */
-	if (catalog[i].average[j].flags & STAR_BAD) continue;  
+      /* calculate the average value for a single star */
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
 	
-	Xm = catalog[i].secfilt[Nsecfilt*j+Nsec].Xm;
-	if (Xm == NAN_S_SHORT) continue;
-	list[n] = pow (10.0, 0.01*Xm);
-	dlist[n] = 1;
-	n++;
-      }
+      Xm = catalog[i].secfilt[Nsecfilt*j+Nsec].Xm;
+      if (Xm == NAN_S_SHORT) continue;
+      list[n] = pow (10.0, 0.01*Xm);
+      dlist[n] = 1;
+      n++;
     }
   }
@@ -675,5 +671,5 @@
 }
 
-StatType statsStarS (Catalog *catalog, int Ncatalog) {
+StatType statsStarS (Catalog *catalog, int Ncatalog, int Nsec) {
 
   int i, n;
@@ -697,18 +693,11 @@
     for (j = 0; j < catalog[i].Naverage; j++) {
 
-      int Ns;
-      for (Ns = 0; Ns < Nphotcodes; Ns++) {
-
-	int thisCode = photcodes[Ns][0].code;
-	int Nsec = GetPhotcodeNsec(thisCode);
-
-	/* calculate the average value for a single star */
-	if (catalog[i].average[j].flags & STAR_BAD) continue;  
-
-	dM = catalog[i].secfilt[Nsecfilt*j+Nsec].dM;
-	list[n] = dM;
-	dlist[n] = 1;
-	n++;
-      }
+      /* calculate the average value for a single star */
+      if (catalog[i].average[j].flags & STAR_BAD) continue;  
+
+      dM = catalog[i].secfilt[Nsecfilt*j+Nsec].dM;
+      list[n] = dM;
+      dlist[n] = 1;
+      n++;
     }
   }
Index: /branches/eam_branches/ipp-20110404/Ohana/src/relphot/src/global_stats.c
===================================================================
--- /branches/eam_branches/ipp-20110404/Ohana/src/relphot/src/global_stats.c	(revision 31261)
+++ /branches/eam_branches/ipp-20110404/Ohana/src/relphot/src/global_stats.c	(revision 31262)
@@ -7,33 +7,43 @@
   initstats ("MEAN");
 
-  stN = statsStarN (catalog, Ncatalog);
-  stX = statsStarX (catalog, Ncatalog);
-  stS = statsStarS (catalog, Ncatalog);
+  fprintf (stderr, "STATS            median     mean    sigma      min      max   Nmeas\n");
 
+  int Ns;
+  for (Ns = 0; Ns < Nphotcodes; Ns++) {
+
+    int thisCode = photcodes[Ns][0].code;
+    int Nsec = GetPhotcodeNsec(thisCode);
+    int seccode = photcodes[Ns][0].code;
+
+    stN = statsStarN (catalog, Ncatalog, seccode);
+    stX = statsStarX (catalog, Ncatalog, Nsec);
+    stS = statsStarS (catalog, Ncatalog, Nsec);
+  
+    fprintf (stderr, "   --- stats for %s ---\n", photcodes[Ns][0].name);
+    fprintf (stderr, "meas / image:   %7.0f  %7.0f  %7.0f  %7.0f  %7.0f  %6d\n",   imN.median, imN.mean, imN.sigma, imN.min, imN.max, imN.Nmeas);
+    fprintf (stderr, "meas / mosaic:  %7.0f  %7.0f  %7.0f  %7.0f  %7.0f  %6d\n",   msN.median, msN.mean, msN.sigma, msN.min, msN.max, msN.Nmeas);
+    fprintf (stderr, "meas / star:    %7.0f  %7.1f  %7.1f  %7.0f  %7.0f  %6d\n",   stN.median, stN.mean, stN.sigma, stN.min, stN.max, stN.Nmeas);
+  }
+  
   imN = statsImageN (catalog);
   imX = statsImageX (catalog);
   imM = statsImageM (catalog);
   imD = statsImagedM (catalog);
-
+  
   msN = statsMosaicN (catalog);
   msM = statsMosaicM (catalog);
   msD = statsMosaicdM (catalog);
   msX = statsMosaicX (catalog);
-
-  fprintf (stderr, "STATS            median     mean    sigma      min      max   Nmeas\n");
-  fprintf (stderr, "meas / image:   %7.0f  %7.0f  %7.0f  %7.0f  %7.0f  %6d\n",   imN.median, imN.mean, imN.sigma, imN.min, imN.max, imN.Nmeas);
-  fprintf (stderr, "meas / mosaic:  %7.0f  %7.0f  %7.0f  %7.0f  %7.0f  %6d\n",   msN.median, msN.mean, msN.sigma, msN.min, msN.max, msN.Nmeas);
-  fprintf (stderr, "meas / star:    %7.0f  %7.1f  %7.1f  %7.0f  %7.0f  %6d\n",   stN.median, stN.mean, stN.sigma, stN.min, stN.max, stN.Nmeas);
-
+  
   fprintf (stderr, "chisq image:    %7.1f  %7.1f  %7.1f  %7.1f  %7.1f  %6d\n",   imX.median, imX.mean, imX.sigma, imX.min, imX.max, imX.Nmeas);
   fprintf (stderr, "chisq mosaic:   %7.1f  %7.1f  %7.1f  %7.1f  %7.1f  %6d\n",   msX.median, msX.mean, msX.sigma, msX.min, msX.max, msX.Nmeas);
   fprintf (stderr, "chisq star:     %7.1f  %7.1f  %7.1f  %7.1f  %7.1f  %6d\n",   stX.median, stX.mean, stX.sigma, stX.min, stX.max, stX.Nmeas);
-
+  
   fprintf (stderr, "Mcal image:     %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n",   imM.median, imM.mean, imM.sigma, imM.min, imM.max, imM.Nmeas);
   fprintf (stderr, "dMcal image:    %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n",   imD.median, imD.mean, imD.sigma, imD.min, imD.max, imD.Nmeas);
-
+  
   fprintf (stderr, "Mcal mosaic:    %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n",   msM.median, msM.mean, msM.sigma, msM.min, msM.max, msM.Nmeas);
   fprintf (stderr, "dMcal mosaic:   %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n",   msD.median, msD.mean, msD.sigma, msD.min, msD.max, msD.Nmeas);
-
+  
   fprintf (stderr, "dMrel star:     %7.4f  %7.4f  %7.4f  %7.4f  %7.4f  %6d\n\n", stS.median, stS.mean, stS.sigma, stS.min, stS.max, stS.Nmeas);
 
