Index: trunk/psastro/src/psastroMaskUpdates.c
===================================================================
--- trunk/psastro/src/psastroMaskUpdates.c	(revision 20650)
+++ trunk/psastro/src/psastroMaskUpdates.c	(revision 20724)
@@ -41,4 +41,6 @@
     bool REFSTAR_MASK                      = psMetadataLookupBool (&status, recipe, "REFSTAR_MASK");
     if (!REFSTAR_MASK) return true;
+
+    bool REFSTAR_MASK_REGIONS              = psMetadataLookupBool (&status, recipe, "REFSTAR_MASK_REGIONS");
 
     double REFSTAR_MASK_MAX_MAG            = psMetadataLookupF32 (&status, recipe, "REFSTAR_MASK_MAX_MAG");
@@ -112,13 +114,17 @@
 	if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE;
 
-	char *filename = NULL;
-	char *chipname = psMetadataLookupStr (&status, chip->concepts, "CHIP.NAME");
-	psStringAppend (&filename, "refstars.mask.%s.dat", chipname);
-	FILE *f = fopen (filename, "w");
-	if (!f) {
+	// text region files for testing
+	FILE *f = NULL;
+	if (REFSTAR_MASK_REGIONS) {
+	  char *filename = NULL;
+	  char *chipname = psMetadataLookupStr (&status, chip->concepts, "CHIP.NAME");
+	  psStringAppend (&filename, "refstars.mask.%s.dat", chipname);
+	  FILE *f = fopen (filename, "w");
+	  if (!f) {
 	    psWarning ("cannot create refstar mask file %s\n", filename);
 	    continue;
-	}
-	psFree (filename);
+	  }
+	  psFree (filename);
+	}
 
 	pmChip *refChip  = pmFPAviewThisChip (view, refMask->fpa);
@@ -176,5 +182,8 @@
 		    // CIRCLE around the stars (scaled by magnitude)
 		    float radius = REFSTAR_MASK_SATSTAR_MAG_SLOPE * (REFSTAR_MASK_SATSTAR_MAG_MAX - ref->Mag);
-		    fprintf (f, "CIRCLE %f %f  %f %f\n", ref->chip->x, ref->chip->y, radius, radius);
+
+		    if (REFSTAR_MASK_REGIONS) {
+		      fprintf (f, "CIRCLE %f %f  %f %f\n", ref->chip->x, ref->chip->y, radius, radius);
+		    }
 
 		    // XXX for now, assume cell binning is 1x1 relative to chip
@@ -192,21 +201,24 @@
 			float Theta = POSANGLE - REFSTAR_MASK_SATSTAR_POS_ZERO + theta;
 
-			// lower side 
-			x0 = ref->chip->x + spikeWidth*sin(Theta);
-			y0 = ref->chip->y - spikeWidth*cos(Theta);
-			x1 = ref->chip->x + spikeLength*cos(Theta) + spikeWidth*sin(Theta);
-			y1 = ref->chip->y + spikeLength*sin(Theta) - spikeWidth*cos(Theta);
-			dx = x1 - x0;
-			dy = y1 - y0;
-			fprintf (f, "LINE %f %f  %f %f\n", x0, y0, dx, dy);
-
-			// upper side 
-			x0 = ref->chip->x - spikeWidth*sin(Theta);
-			y0 = ref->chip->y + spikeWidth*cos(Theta);
-			x1 = ref->chip->x + spikeLength*cos(Theta) - spikeWidth*sin(Theta);
-			y1 = ref->chip->y + spikeLength*sin(Theta) + spikeWidth*cos(Theta);
-			dx = x1 - x0;
-			dy = y1 - y0;
-			fprintf (f, "LINE %f %f  %f %f\n", x0, y0, dx, dy);
+			if (REFSTAR_MASK_REGIONS) {
+			  // lower side 
+			  x0 = ref->chip->x + spikeWidth*sin(Theta);
+			  y0 = ref->chip->y - spikeWidth*cos(Theta);
+			  x1 = ref->chip->x + spikeLength*cos(Theta) + spikeWidth*sin(Theta);
+			  y1 = ref->chip->y + spikeLength*sin(Theta) - spikeWidth*cos(Theta);
+			  dx = x1 - x0;
+			  dy = y1 - y0;
+
+			  fprintf (f, "LINE %f %f  %f %f\n", x0, y0, dx, dy);
+
+			  // upper side 
+			  x0 = ref->chip->x - spikeWidth*sin(Theta);
+			  y0 = ref->chip->y + spikeWidth*cos(Theta);
+			  x1 = ref->chip->x + spikeLength*cos(Theta) - spikeWidth*sin(Theta);
+			  y1 = ref->chip->y + spikeLength*sin(Theta) + spikeWidth*cos(Theta);
+			  dx = x1 - x0;
+			  dy = y1 - y0;
+			  fprintf (f, "LINE %f %f  %f %f\n", x0, y0, dx, dy);
+			}
 
 			if (readoutMask) {
@@ -219,5 +231,8 @@
 
 		    // LINE for boundaries of the bleed lines
-		    fprintf (f, "LINE %f %f  %f %f\n", ref->chip->x, ref->chip->y, 0.0, -100.0);
+		    if (REFSTAR_MASK_REGIONS) {
+		      fprintf (f, "LINE %f %f  %f %f\n", ref->chip->x, ref->chip->y, 0.0, -100.0);
+		    }
+
 		    if (readoutMask && refCell) {
 			float xCell = 0.0;
@@ -253,5 +268,7 @@
 
 	if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
-	fclose (f);
+	if (REFSTAR_MASK_REGIONS) {
+	  fclose (f);
+	}
     }
     if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
