Index: branches/czw_branch/20100427/ippMonitor/Makefile.in
===================================================================
--- branches/czw_branch/20100427/ippMonitor/Makefile.in	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/Makefile.in	(revision 28017)
@@ -13,5 +13,8 @@
 
 PROGRAMS = \
-$(DESTBIN)/skyplot.dvo
+$(DESTBIN)/skyplot.dvo \
+$(DESTBIN)/getLabels.pl \
+$(DESTBIN)/checkServer.pl \
+$(DESTBIN)/getServerStatus.pl
 
 RAWSRC = \
@@ -43,5 +46,7 @@
 $(DESTWWW)/simplePlotraw.php \
 $(DESTWWW)/skyplot.php \
-$(DESTWWW)/getimage.php
+$(DESTWWW)/getimage.php \
+$(DESTWWW)/czartool.php \
+
 
 DEFSRC = \
Index: branches/czw_branch/20100427/ippMonitor/def/camIQstats.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/camIQstats.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/camIQstats.d	(revision 28017)
@@ -20,4 +20,6 @@
 FIELD rawExp.exp_name,     	 5, %s,     Exp Name
 FIELD chipRun.label,    	 7, %s,     Label
+FIELD chipRun.data_group,    	 7, %s,     data grp
+FIELD chipRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.dateobs,        	19, %T,     Date/Time
 FIELD rawExp.filter,         	10, %s,     FILTER
Index: branches/czw_branch/20100427/ippMonitor/def/camPendingExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/camPendingExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/camPendingExp.d	(revision 28017)
@@ -22,4 +22,6 @@
 FIELD camRun.state,              5,   %s,     State
 FIELD camRun.label,              5,   %s,     Label
+FIELD camRun.data_group,              5,   %s,     data grp
+FIELD camRun.dist_group,              5,   %s,     dist grp
 FIELD rawExp.telescope,      	10,   %s,     Telescope
 FIELD rawExp.camera,         	10,   %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/camProcessedExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/camProcessedExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/camProcessedExp.d	(revision 28017)
@@ -30,4 +30,6 @@
 FIELD camRun.state,                      5,   %s,     state,        value,  	 camProcessedImfile.php,  ARG4
 FIELD camRun.label,             	 5,   %s,     Label
+FIELD camRun.data_group,             	 5,   %s,     data grp
+FIELD camRun.dist_group,             	 5,   %s,     dist grp
 FIELD rawExp.telescope,      		10,   %s,     Telescope
 FIELD rawExp.camera,         		10,   %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_Images.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_Images.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_Images.d	(revision 28017)
@@ -33,4 +33,6 @@
 FIELD camRun.cam_id,             	 5,   %d,     Cam ID,       value,  	 camProcessedExp_Images.php,     ARG3
 FIELD camRun.label,             	 5,   %s,     Label
+FIELD camRun.data_group,             	 5,   %s,     data grp
+FIELD camRun.dist_group,             	 5,   %s,     dist grp
 FIELD *,    	                	 8,   %s,     image,        image=JPEG2, camProcessedImfile.php,  ARG4
 FIELD rawExp.telescope,      		10,   %s,     Telescope
Index: branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_NoImages.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_NoImages.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_NoImages.d	(revision 28017)
@@ -30,4 +30,6 @@
 FIELD camRun.state,                      5,   %s,     state,        value,  	 camProcessedImfile.php,  ARG4
 FIELD camRun.label,                      5,   %s,     label
+FIELD camRun.data_group,                      5,   %s,     data grp
+FIELD camRun.dist_group,                      5,   %s,     dist grp
 FIELD rawExp.telescope,      		10,   %s,     Telescope
 FIELD rawExp.camera,         		10,   %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_failure.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_failure.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/camProcessedExp_failure.d	(revision 28017)
@@ -29,4 +29,6 @@
 FIELD camRun.state,                      5,   %s,     state,        value,       camProcessedImfile.php,      ARG4
 FIELD camRun.label,                      5,   %s,     label
+FIELD camRun.data_group,                      5,   %s,     data grp
+FIELD camRun.dist_group,                      5,   %s,     dist grp
 FIELD rawExp.telescope,      		10,   %s,     Telescope
 FIELD rawExp.camera,         		10,   %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/camProcessedImfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/camProcessedImfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/camProcessedImfile.d	(revision 28017)
@@ -27,4 +27,6 @@
 FIELD camRun.cam_id,            	 5,   %s,     Cam ID,       value,       camProcessedExp.php,     ARG3
 FIELD camRun.label,             	 5,   %s,     Label
+FIELD camRun.data_group,             	 5,   %s,     data grp
+FIELD camRun.dist_group,             	 5,   %s,     dist grp
 FIELD rawExp.telescope,      		10,   %s,     Telescope
 FIELD rawExp.camera,         		10,   %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/camStageExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/camStageExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/camStageExp.d	(revision 28017)
@@ -21,4 +21,6 @@
 FIELD camRun.state,              5,   %s,     state
 FIELD camRun.label,              5,   %s,     label
+FIELD camRun.data_group,              5,   %s,     data grp
+FIELD camRun.dist_group,              5,   %s,     dist grp
 FIELD rawExp.telescope,      	10,   %s,     Telescope
 FIELD rawExp.camera,         	10,   %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/chipIQstats.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/chipIQstats.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/chipIQstats.d	(revision 28017)
@@ -20,4 +20,6 @@
 FIELD chipRun.chip_id,    	 5, %d,     Ch ID,       value,  chipProcessedImfile.php, ARG2
 FIELD chipRun.label,    	 7, %s,     Label
+FIELD chipRun.data_group,    	 7, %s,     data grp
+FIELD chipRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.dateobs,        	19, %T,     Date/Time
 FIELD rawExp.filter,         	10, %s,     FILTER
Index: branches/czw_branch/20100427/ippMonitor/def/chipPendingExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/chipPendingExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/chipPendingExp.d	(revision 28017)
@@ -20,4 +20,6 @@
 FIELD chipRun.state,    	 7, %s,     State
 FIELD chipRun.label,    	 7, %s,     Label
+FIELD chipRun.data_group,    	 7, %s,     data grp
+FIELD chipRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/chipPendingImfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/chipPendingImfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/chipPendingImfile.d	(revision 28017)
@@ -25,4 +25,6 @@
 FIELD chipRun.state,    	 7, %s,     State
 FIELD chipRun.label,    	 7, %s,     Label
+FIELD chipRun.data_group,    	 7, %s,     data grp
+FIELD chipRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/chipProcessedExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/chipProcessedExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/chipProcessedExp.d	(revision 28017)
@@ -20,4 +20,6 @@
 FIELD chipRun.state,    	 7, %s,     State
 FIELD chipRun.label,    	 7, %s,     Label
+FIELD chipRun.data_group,    	 7, %s,     data grp
+FIELD chipRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/chipProcessedImfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/chipProcessedImfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/chipProcessedImfile.d	(revision 28017)
@@ -30,4 +30,6 @@
 FIELD chipRun.state,        	   	  7, %s,     State,       value,  chipProcessedImfile.php, ARG3
 FIELD chipRun.label,        	   	  7, %s,     Label
+FIELD chipRun.data_group,        	   	  7, %s,     data grp
+FIELD chipRun.dist_group,        	   	  7, %s,     dist grp
 FIELD rawExp.telescope,      	   	 10, %s,     Telescope
 FIELD rawExp.camera,         	   	 10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/chipProcessedImfile_failure.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/chipProcessedImfile_failure.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/chipProcessedImfile_failure.d	(revision 28017)
@@ -30,4 +30,6 @@
 FIELD chipRun.state,        	   	  7, %s,     State,       value,  chipProcessedImfile_failure.php, ARG3
 FIELD chipRun.label,        	   	  7, %s,     Label
+FIELD chipRun.data_group,        	   	  7, %s,     data grp
+FIELD chipRun.dist_group,        	   	  7, %s,     dist grp
 FIELD chipProcessedImfile.fault,      	  2, %d,     Fault
 FIELD rawExp.telescope,      	   	 10, %s,     Telescope
Index: branches/czw_branch/20100427/ippMonitor/def/chipStageExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/chipStageExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/chipStageExp.d	(revision 28017)
@@ -18,4 +18,6 @@
 FIELD chipRun.state,    	 7, %s,     State
 FIELD chipRun.label,    	 7, %s,     Label
+FIELD chipRun.data_group,    	 7, %s,     data grp
+FIELD chipRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/destreakRun.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/destreakRun.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/destreakRun.d	(revision 28017)
@@ -19,5 +19,5 @@
 FIELD magicDSRun.cam_id,       5, %d,     Camera ID
 FIELD magicDSRun.label,        10, %s,     Label
-FIELD magicDSRun.data_group,   8, %s,     Data Group
+FIELD magicDSRun.data_group,        10, %s,     data grp
 FIELD magicDSRun.outroot,      10, %s,     Out Root
 FIELD magicDSRun.recoveryroot, 5, %d,     Recov. Root
Index: branches/czw_branch/20100427/ippMonitor/def/diffFailedSkyfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/diffFailedSkyfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/diffFailedSkyfile.d	(revision 28017)
@@ -16,4 +16,6 @@
 FIELD diffSkyfile.skycell_id,          5, %s,     Skycell ID
 FIELD diffRun.label,    	       5, %s,     Label
+FIELD diffRun.data_group,    	       5, %s,     data grp
+FIELD diffRun.dist_group,    	       5, %s,     dist grp
 # FIELD diffRun.filter,    	       5, %s,     Filter
 FIELD diffRun.tess_id,    	       5, %s,     Tess ID
Index: branches/czw_branch/20100427/ippMonitor/def/diffInputSkyfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/diffInputSkyfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/diffInputSkyfile.d	(revision 28017)
@@ -12,4 +12,6 @@
 FIELD    diffRun.state,         	    7, %s,     state
 FIELD    diffRun.label,	    		    7, %s,     label
+FIELD    diffRun.data_group,   		    7, %s,     data grp
+FIELD    diffRun.dist_group,  		    7, %s,     dist grp
 FIELD    diffRun.magicked,	     	    4, %d,     Magicked
 FIELD    diffInputSkyfile.warp1,	    5, %d,     warp 1
Index: branches/czw_branch/20100427/ippMonitor/def/diffProcessedSkyfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/diffProcessedSkyfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/diffProcessedSkyfile.d	(revision 28017)
@@ -17,4 +17,6 @@
 FIELD diffSkyfile.skycell_id,          4, %s,     Skycell ID
 FIELD diffRun.label,    	       5, %s,     Label
+FIELD diffRun.data_group,    	       5, %s,     data grp
+FIELD diffRun.dist_group,    	       5, %s,     dist grp
 # FIELD diffRun.filter,    	       5, %s,     Filter
 FIELD diffRun.tess_id,    	       5, %s,     Tess ID
Index: branches/czw_branch/20100427/ippMonitor/def/diffProcessedSkyfile_Images.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/diffProcessedSkyfile_Images.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/diffProcessedSkyfile_Images.d	(revision 28017)
@@ -22,4 +22,6 @@
 FIELD diffSkyfile.skycell_id,          5, %s,     Skycell ID
 FIELD diffRun.label,    	       5, %s,     Label
+FIELD diffRun.data_group,    	       5, %s,     data grp
+FIELD diffRun.dist_group,    	       5, %s,     dist grp
 FIELD *,    	                       8, %s,     image,         image=JPEG2, diffProcessedSkyfile_Images.php,  ARG7
 # FIELD diffRun.filter,    	       5, %s,     Filter
Index: branches/czw_branch/20100427/ippMonitor/def/diffRun.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/diffRun.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/diffRun.d	(revision 28017)
@@ -8,4 +8,6 @@
 FIELD    state,		 7, %s,     state
 FIELD    label,		 7, %s,     label
+FIELD    data_group,	 7, %s,     data grp
+FIELD    dist_group,	 7, %s,     dist grp
 FIELD    magicked,	 4, %d,     Magicked
 FIELD    tess_id,	 8, %s,     tess ID
Index: branches/czw_branch/20100427/ippMonitor/def/distRun.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/distRun.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/distRun.d	(revision 28017)
@@ -15,4 +15,5 @@
 FIELD distRun.magic_ds_id,    5, %d,     Magic DS ID
 FIELD distRun.label,          5, %s,     Label
+FIELD distRun.data_group,          5, %s,     data grp
 FIELD distRun.outroot,        5, %s,     Outroot
 FIELD distRun.outdir,         5, %s,     Outdir
Index: branches/czw_branch/20100427/ippMonitor/def/distSummary.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/distSummary.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/distSummary.d	(revision 28017)
@@ -6,4 +6,5 @@
 #     field                   size  format  name         show    link to                  extras
 FIELD distRun.label,          15, %s,     Label
+FIELD distRun.data_group,          15, %s,     data grp
 FIELD distRun.stage,          5, %s,     Stage
 FIELD distRun.state,          5, %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/fakePendingExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/fakePendingExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/fakePendingExp.d	(revision 28017)
@@ -26,4 +26,6 @@
 FIELD fakeRun.state,    	 7, %s,     state
 FIELD fakeRun.label,    	 7, %s,     label
+FIELD fakeRun.data_group,    	 7, %s,     data grp
+FIELD fakeRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/fakePendingImfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/fakePendingImfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/fakePendingImfile.d	(revision 28017)
@@ -27,4 +27,6 @@
 FIELD fakeRun.state,    	 7, %s,     State
 FIELD fakeRun.label,    	 7, %s,     label
+FIELD fakeRun.data_group,    	 7, %s,     data grp
+FIELD fakeRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/fakeProcessedExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/fakeProcessedExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/fakeProcessedExp.d	(revision 28017)
@@ -26,4 +26,6 @@
 FIELD fakeRun.state,    	 7, %s,     state
 FIELD fakeRun.label,    	 7, %s,     label
+FIELD fakeRun.data_group,    	 7, %s,     data grp
+FIELD fakeRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/fakeProcessedImfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/fakeProcessedImfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/fakeProcessedImfile.d	(revision 28017)
@@ -34,4 +34,6 @@
 FIELD fakeRun.state,                   7, %s,     State,       value,  fakeProcessedImfile.php, ARG5
 FIELD fakeRun.label,                   7, %s,     Label
+FIELD fakeRun.data_group,                   7, %s,     data grp
+FIELD fakeRun.dist_group,                   7, %s,     dist grp
 FIELD rawExp.telescope,               10, %s,     Telescope
 FIELD rawExp.camera,                  10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/fakeProcessedImfile_failure.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/fakeProcessedImfile_failure.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/fakeProcessedImfile_failure.d	(revision 28017)
@@ -34,4 +34,6 @@
 FIELD fakeRun.state,                   7, %s,     State,       value,  fakeProcessedImfile_failure.php, ARG5
 FIELD fakeRun.label,                   7, %s,     Label
+FIELD fakeRun.data_group,                   7, %s,     data grp
+FIELD fakeRun.dist_group,                   7, %s,     dist grp
 FIELD rawExp.telescope,               10, %s,     Telescope
 FIELD rawExp.camera,                  10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/fakeStageExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/fakeStageExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/fakeStageExp.d	(revision 28017)
@@ -24,4 +24,6 @@
 FIELD fakeRun.state,    	 7, %s,     state
 FIELD fakeRun.label,    	 7, %s,     label
+FIELD fakeRun.data_group,    	 7, %s,     data grp
+FIELD fakeRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/flatcorrCamera.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/flatcorrCamera.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/flatcorrCamera.d	(revision 28017)
@@ -19,4 +19,6 @@
 FIELD camRun.state,    	         7, %s,     State
 FIELD chipRun.label,    	 7, %s,     Label
+FIELD chipRun.data_group,    	 7, %s,     data grp
+FIELD chipRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/flatcorrChip.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/flatcorrChip.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/flatcorrChip.d	(revision 28017)
@@ -18,4 +18,6 @@
 FIELD chipRun.state,    	 7, %s,     State
 FIELD chipRun.label,    	 7, %s,     Label
+FIELD chipRun.data_group,    	 7, %s,     data grp
+FIELD chipRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/magicFailedMasks.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/magicFailedMasks.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/magicFailedMasks.d	(revision 28017)
@@ -12,4 +12,5 @@
 FIELD    magicRun.diff_id,	 5,   %d,     Diff ID
 FIELD    magicRun.label, 	 5,   %s,     Label
+FIELD    magicRun.data_group, 	 5,   %s,     data grp
 FIELD    magicRun.inverse,	 5,   %d,     Inverse
 FIELD    magicRun.state,	 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/magicFailedNodes.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/magicFailedNodes.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/magicFailedNodes.d	(revision 28017)
@@ -14,4 +14,5 @@
 FIELD    magicRun.diff_id,	 5,   %d,     Diff ID
 FIELD    magicRun.label, 	 5,   %s,     Label
+FIELD    magicRun.data_group, 	 5,   %s,     data grp
 FIELD    magicRun.inverse,	 5,   %d,     Inverse
 FIELD    magicRun.state,	 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/magicFailedTrees.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/magicFailedTrees.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/magicFailedTrees.d	(revision 28017)
@@ -11,4 +11,5 @@
 FIELD    diff_id,	 5,   %d,     Diff ID
 FIELD    label,	 	 5,   %s,     Label
+FIELD    data_group, 	 5,   %s,     Data Grp
 FIELD    inverse,	 5,   %d,     Inverse
 FIELD    state,		 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/magicProcessedMasks.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/magicProcessedMasks.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/magicProcessedMasks.d	(revision 28017)
@@ -11,4 +11,5 @@
 FIELD    magicRun.diff_id,	 5,   %d,     Diff ID
 FIELD    magicRun.label, 	 5,   %s,     Label
+FIELD    magicRun.data_group, 	 5,   %s,     data grp
 FIELD    magicRun.inverse,	 5,   %d,     Inverse
 FIELD    magicRun.state,	 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/magicProcessedMasks_Images.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/magicProcessedMasks_Images.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/magicProcessedMasks_Images.d	(revision 28017)
@@ -19,4 +19,5 @@
 # FIELD    *,                      8,   %s,     image,         image=JPEG2, diffProcessedSkyfile_Images.php,  ARG7
 FIELD    magicRun.label, 	 5,   %s,     Label
+FIELD    magicRun.data_group, 	 5,   %s,     data grp
 FIELD    magicRun.inverse,	 5,   %d,     Inverse
 FIELD    magicRun.state,	 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/magicProcessedNodes.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/magicProcessedNodes.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/magicProcessedNodes.d	(revision 28017)
@@ -13,4 +13,5 @@
 FIELD    magicRun.diff_id,	 5,   %d,     Diff ID
 FIELD    magicRun.label, 	 5,   %s,     Label
+FIELD    magicRun.data_group, 	 5,   %s,     data grp
 FIELD    magicRun.inverse,	 5,   %d,     Inverse
 FIELD    magicRun.state,	 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/magicRun.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/magicRun.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/magicRun.d	(revision 28017)
@@ -9,4 +9,5 @@
 FIELD    diff_id,	 5,   %d,     Diff ID
 FIELD    label,	 	 5,   %s,     Label
+FIELD    data_group, 	 5,   %s,     Data Grp
 FIELD    inverse,	 5,   %d,     Inverse
 FIELD    state,		 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/magicTrees.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/magicTrees.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/magicTrees.d	(revision 28017)
@@ -11,4 +11,5 @@
 FIELD    magicRun.diff_id,	 5,   %d,     Diff ID
 FIELD    magicRun.label, 	 5,   %s,     Label
+FIELD    magicRun.data_group, 	 5,   %s,     data grp
 FIELD    magicRun.inverse,	 5,   %d,     Inverse
 FIELD    magicRun.state,	 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/stackFailedSkyfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/stackFailedSkyfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/stackFailedSkyfile.d	(revision 28017)
@@ -16,4 +16,6 @@
 FIELD stackRun.skycell_id,          5, %s,     Skycell ID
 FIELD stackRun.label,    	    5, %s,     Label
+FIELD stackRun.data_group,    	    5, %s,     data grp
+FIELD stackRun.dist_group,    	    5, %s,     dist grp
 FIELD stackRun.filter,    	    5, %s,     Filter
 FIELD stackRun.tess_id,    	    5, %s,     Tess ID
Index: branches/czw_branch/20100427/ippMonitor/def/stackInputSkyfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/stackInputSkyfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/stackInputSkyfile.d	(revision 28017)
@@ -34,4 +34,6 @@
 FIELD stackRun.state,    	    7, %s,     State
 FIELD stackRun.label,    	    7, %s,     Label
+FIELD stackRun.data_group,    	    7, %s,     data grp
+FIELD stackRun.dist_group,    	    7, %s,     dist grp
 FIELD rawExp.telescope,      	   10, %s,     Telescope
 FIELD rawExp.camera,         	   10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/stackProcessedSkyfile.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/stackProcessedSkyfile.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/stackProcessedSkyfile.d	(revision 28017)
@@ -17,4 +17,6 @@
 FIELD stackRun.skycell_id,          5, %s,     Skycell ID
 FIELD stackRun.label,    	    5, %s,     Label
+FIELD stackRun.data_group,    	    5, %s,     data grp
+FIELD stackRun.dist_group,    	    5, %s,     dist grp
 FIELD stackRun.filter,    	    5, %s,     Filter
 FIELD stackRun.tess_id,    	    5, %s,     Tess ID
Index: branches/czw_branch/20100427/ippMonitor/def/stackProcessedSkyfile_Images.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/stackProcessedSkyfile_Images.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/stackProcessedSkyfile_Images.d	(revision 28017)
@@ -21,4 +21,6 @@
 FIELD stackRun.skycell_id,          5, %s,     Skycell ID
 FIELD stackRun.label,    	    5, %s,     Label
+FIELD stackRun.data_group,    	    5, %s,     data grp
+FIELD stackRun.dist_group,    	    5, %s,     dist grp
 FIELD *,    	                    8, %s,     image,         image=JPEG2, stackProcessedSkyfile_Images.php,  ARG7
 FIELD stackRun.filter,    	    5, %s,     Filter
Index: branches/czw_branch/20100427/ippMonitor/def/stackRun.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/stackRun.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/stackRun.d	(revision 28017)
@@ -9,4 +9,6 @@
 FIELD    filter,	 5,   %s,     Filter
 FIELD    label,	 	 5,   %s,     Label
+FIELD    data_group, 	 5,   %s,     Data grp
+FIELD    dist_group,	 5,   %s,     Dist grp
 FIELD    tess_id,	 5,   %s,     Tess ID
 FIELD    state,		 5,   %s,     State
Index: branches/czw_branch/20100427/ippMonitor/def/warpFailedSkyfiles.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/warpFailedSkyfiles.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/warpFailedSkyfiles.d	(revision 28017)
@@ -36,4 +36,6 @@
 FIELD warpRun.state,    	  7, %s,     state,        value,  warpFailedSkyfiles.php,  ARG7
 FIELD warpRun.label,    	  7, %s,     label
+FIELD warpRun.data_group,    	  7, %s,     data grp
+FIELD warpRun.dist_group,    	  7, %s,     dist grp
 FIELD warpSkyfile.tess_id,    	 10, %s,     tess
 FIELD warpSkyfile.good_frac,  	  5, %s,     good_frac
Index: branches/czw_branch/20100427/ippMonitor/def/warpProcessedSkyfiles.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/warpProcessedSkyfiles.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/warpProcessedSkyfiles.d	(revision 28017)
@@ -39,4 +39,6 @@
 FIELD warpRun.state,    	  7, %s,     state,        value,  warpProcessedSkyfiles.php, ARG7
 FIELD warpRun.label,    	  7, %s,     label,        value
+FIELD warpRun.data_group,    	  7, %s,     data grp
+FIELD warpRun.dist_group,    	  7, %s,     dist grp
 FIELD warpSkyfile.tess_id,    	 10, %s,     tess
 FIELD warpSkyfile.good_frac,  	  5, %s,     good_frac
Index: branches/czw_branch/20100427/ippMonitor/def/warpProcessedSkyfiles_Images.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/warpProcessedSkyfiles_Images.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/warpProcessedSkyfiles_Images.d	(revision 28017)
@@ -43,4 +43,6 @@
 FIELD warpRun.state,    	  7, %s,     state,        value,  warpProcessedSkyfiles.php, ARG7
 FIELD warpRun.label,    	  7, %s,     label,        value
+FIELD warpRun.data_group,    	  7, %s,     label,        data grp
+FIELD warpRun.dist_group,    	  7, %s,     label,        dist grp
 FIELD warpSkyfile.tess_id,    	 10, %s,     tess
 FIELD warpSkyfile.good_frac,  	  5, %s,     good_frac
Index: branches/czw_branch/20100427/ippMonitor/def/warpSkycellMap.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/warpSkycellMap.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/warpSkycellMap.d	(revision 28017)
@@ -20,4 +20,6 @@
 FIELD    warpRun.state,               5,    %s,     State
 FIELD    warpRun.label,               5,    %s,     Label
+FIELD    warpRun.data_group,               5,    %s,     data grp
+FIELD    warpRun.dist_group,               5,    %s,     dist grp
 FIELD    warpSkyCellMap.skycell_id,   5,    %s,     Skycell ID
 FIELD    warpSkyCellMap.tess_id,      5,    %s,     Tessellation ID
Index: branches/czw_branch/20100427/ippMonitor/def/warpStageExp.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/warpStageExp.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/warpStageExp.d	(revision 28017)
@@ -27,4 +27,6 @@
 FIELD warpRun.state,    	 7, %s,     state
 FIELD warpRun.label,    	 7, %s,     label
+FIELD warpRun.data_group,    	 7, %s,     data grp
+FIELD warpRun.dist_group,    	 7, %s,     dist grp
 FIELD rawExp.telescope,      	10, %s,     Telescope
 FIELD rawExp.camera,         	10, %s,     Camera
Index: branches/czw_branch/20100427/ippMonitor/def/warpStageSkyfileInputs.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/warpStageSkyfileInputs.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/warpStageSkyfileInputs.d	(revision 28017)
@@ -40,4 +40,6 @@
 FIELD warpRun.state,    	  7, %s,     state
 FIELD warpRun.label,    	  7, %s,     label
+FIELD warpRun.data_group,    	  7, %s,     data grp
+FIELD warpRun.dist_group,    	  7, %s,     dist grp
 FIELD warpSkyCellMap.skycell_id, 10, %s,     skycell
 FIELD warpSkyCellMap.tess_id,    10, %s,     tess
Index: branches/czw_branch/20100427/ippMonitor/def/warpStageSkyfiles.d
===================================================================
--- branches/czw_branch/20100427/ippMonitor/def/warpStageSkyfiles.d	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/def/warpStageSkyfiles.d	(revision 28017)
@@ -30,4 +30,6 @@
 FIELD warpRun.state,    	  7, %s,     state
 FIELD warpRun.label,    	  7, %s,     label
+FIELD warpRun.data_group,    	  7, %s,     data grp
+FIELD warpRun.dist_group,    	  7, %s,     dist grp
 FIELD warpSkyCellMap.tess_id,    10, %s,     tess
 FIELD warpSkyCellMap.fault,      10, %s,     fault
Index: branches/czw_branch/20100427/ippMonitor/raw/czartool.php
===================================================================
--- branches/czw_branch/20100427/ippMonitor/raw/czartool.php	(revision 28017)
+++ branches/czw_branch/20100427/ippMonitor/raw/czartool.php	(revision 28017)
@@ -0,0 +1,315 @@
+<?php
+include 'ipp.php';
+include 'site.php';
+
+$ID = checkID ();
+
+// require an explicit project
+if (! $ID['proj']) { projectform ($ID); }
+
+$db = dbconnect($ID['proj']);
+
+if ($ID['menu']) {$myMenu = $ID['menu'];} 
+else {$myMenu = "ipp.imfiles.dat";}
+
+menu($myMenu, 'Czartool', 'ipp.css', $ID['link'], $ID['proj']);
+
+$pass = $ID['pass'];
+$proj = $ID['proj'];
+$menu = $ID['menu'];
+
+$userSelection = $_GET[label];
+
+if ($userSelection == "") {$userSelection = $_POST['state'];}
+if ($userSelection == "") {$userSelection = "new";}
+
+$debug = 0;
+
+$PATH = getenv("PATH");
+putenv("PATH=$BINDIR:$PATH");
+
+$LD_LIBRARY_PATH = getenv("LD_LIBRARY_PATH");
+putenv("LD_LIBRARY_PATH=$LIBDIR:$LD_LIBRARY_PATH");
+
+exec("getLabels.pl -s stdscience", $stdsLabels, $status);
+exec("getLabels.pl -s distribution", $distLabels, $status);
+
+if ($debug) {
+    echo "prog returned $status, and output:<br>";
+    for ($i = 0; $i < count($distLabels); $i++) { 
+        echo "$distLabels[$i]<br>";
+    }           
+}
+
+$states=array("full","new","drop","wait");
+$stages=array("chip","cam","fake","warp","stack","diff","magic","destreak","dist");
+$servers=array("addstar", "cleanup", "detrend", "distribution", "pstamp", "publishing", "registration", "replication", "stdscience", "summitcopy");
+$separator = "-----";
+// set up the form
+echo "<form action=\"czartool.php\" method=\"POST\">\n";
+echo "<select name=state >\n";
+echo "<option value=\"none\">Select one...</option>\n";
+echo "<option value=\"none\">$separator</option>\n";
+foreach ($states as &$state) {echo "<option value=\"$state\">'$state' for all labels</option>\n";}
+echo "<option value=\"none\">$separator</option>\n";
+echo "<option value=\"servers\">Check all pantasks servers</option>\n";
+foreach ($servers as &$server) {echo "<option value=\"$server\">Status for '$server' server</option>\n";}
+echo "<option value=\"none\">$separator</option>\n";
+foreach ($stdsLabels as &$label) {echo "<option value=\"$label\">$label</option>\n";}
+
+echo "</select>\n";
+echo "<input type=submit value=Go>\n";
+
+echo "<input type=\"hidden\" name=\"pass\" value=\"$pass\">\n";
+echo "<input type=\"hidden\" name=\"proj\" value=\"$proj\">\n";
+echo "<input type=\"hidden\" name=\"menu\" value=\"$menu\">\n";
+echo "</form>\n";
+
+
+$stateChosen = 0;
+foreach ($states as &$state) {
+
+    if ($userSelection == $state) {
+        showAllLabels($pass, $proj, $db, $stdsLabels, $distLabels, $stages, $states, $state); 
+        $stateChosen=1;
+        break;
+    }
+}
+
+$serverChosen = 0;
+foreach ($servers as &$server) {
+
+    if ($userSelection == $server) {
+        showServerStatus($server); 
+        $serverChosen=1;
+        break;
+    }
+}
+if (!$stateChosen && !$serverChosen) {
+
+    if ($userSelection == "servers") {showAllServerStatus($servers); }// TODO
+    elseif ($userSelection == $separator) {}
+    else { showOneLabel($pass, $proj, $db, $userSelection, $stages, $states);}
+
+}
+menu_end();
+
+###########################################################################
+#
+# Shows the status of the provided pantasks server 
+#
+###########################################################################
+function showServerStatus($server) {
+
+    echo "<p> Status for $server server </p>";
+
+    $results=array();
+    exec("getServerStatus.pl -s $server", $results, $status);
+
+    foreach ($results as &$line) {
+        echo "<pre>\n";
+        echo "$line\n";
+        echo "</pre>\n";
+
+    }
+
+}
+
+###########################################################################
+#
+# Checks the status of all the pantasks servers 
+#
+###########################################################################
+function showAllServerStatus($servers) {
+
+    echo "<p> Status for all pantasks servers </p>";
+
+    // set up table columns
+    $class = "list";
+    echo "<table class=list>\n";
+    echo "<tr><td></td>\n";
+    write_header_cell($class, "Server");
+    write_header_cell($class, "Alive?");
+    write_header_cell($class, "Scheduler running?");
+    echo "</tr>\n";
+
+    foreach ($servers as &$server) {
+
+        $results=array();
+        exec("checkServer.pl -s $server", $results, $status);
+
+        echo "<tr><td></td>\n";
+        write_table_cell($class, '%s', "", $server);
+        write_table_cell($class, '%s', "", $results[0]);
+        write_table_cell($class, '%s', "", $results[1]);
+        echo "</tr>\n";
+    }
+
+    echo "</table>\n";
+}
+
+
+###########################################################################
+#
+# Checks one label and prints results in a table
+#
+###########################################################################
+function showOneLabel($pass, $proj, $db, $label, $stages, $states) {
+
+    echo "<p> Current status for label '$label' (any faults are shown in parentheses) </p>";
+
+    // set up table columns
+    $class = "list";
+    echo "<table class=list>\n";
+    echo "<tr><td></td>\n";
+    write_header_cell($class, "state");
+    foreach ($stages as &$stage) {write_header_cell($class, $stage);}
+    echo "</tr>\n";
+
+    // write rows
+    foreach ($states as &$state) {
+
+        $link = "czartool.php?pass=" . $pass . "&proj=" . $proj . "&label=" . $state;
+
+        echo "<tr><td></td>\n";
+        write_table_cell($class, '%s', $link, $state);
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"chipRun", $state, "chip"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"camRun", $state, "cam"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"fakeRun", $state, "fake"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"warpRun", $state, "warp"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"stackRun", $state, "stack"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"diffRun", $state, "diff"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"magicRun", $state, "magic"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"magicDSRun", $state, "magicDS"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $label,"distRun", $state, "dist"));
+        echo "</tr>\n";
+    }
+
+    echo "</table>\n";
+}
+
+###########################################################################
+#
+# Creates table for all labels showing all stages for given 'state'
+#
+###########################################################################
+function showAllLabels($pass, $proj, $db, $stdsLabels, $distLabels, $stages, $states, $selectedState) {
+
+    echo "<p> Current stdscience labels for '$selectedState' (any faults are shown in parentheses)</p>";
+
+    // set up table columns
+    $class = "list";
+    echo "<table class=list>\n";
+    echo "<tr><td></td>\n";
+    write_header_cell($class, "label");
+    write_header_cell($class, "distributing?");
+    //    echo "<td class=\"$class\"><a href=\"$link\"> $myValue </a></td>\n";
+    //    echo "<th class=\"$class\"><a href=\"czartool.php\">label</th>\n";
+
+    foreach ($stages as &$stage) {write_header_cell($class, $stage);}
+    //foreach ($stages as &$stage) {
+
+    //  $link = "czartool.php?pass=" . $pass . "&proj=" . $proj . "&label=" . $stage;
+    // echo "<th class=\"$class\"><a href=\"$link\">$stage</th>\n";
+    // }
+
+    echo "</tr>\n";
+
+    // write rows
+    foreach ($stdsLabels as &$stdsLabel) {
+
+        $distributing = false;
+        foreach ($distLabels as &$distLabel) {
+
+            if ($stdsLabel == $distLabel) { $distributing = true; break;}
+        }
+
+
+        // create link to label summary page for each label
+        $link = "czartool.php?pass=" . $pass . "&proj=" . $proj . "&label=" . $stdsLabel;
+
+        echo "<tr><td></td>\n";
+        write_table_cell($class, '%s', $link, $stdsLabel);
+        write_table_cell($class, '%s', "", $distributing ? "yes" : "NO");
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"chipRun", $selectedState, "chip"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"camRun", $selectedState, "cam"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"fakeRun", $selectedState, "fake"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"warpRun", $selectedState, "warp"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"stackRun", $selectedState, "stack"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"diffRun", $selectedState, "diff"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"magicRun", $selectedState, "magic"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"magicDSRun", $selectedState, "magicDS"));
+        write_table_cell($class, '%s', "", getStateAndFaults($db, $stdsLabel,"distRun", $selectedState, "dist"));
+        echo "</tr>\n";
+    }
+
+    echo "</table>\n";
+}
+
+###########################################################################
+#
+# Returns state and fault-count (if new) as a string
+#
+###########################################################################
+function getStateAndFaults($db, $label, $table, $state, $stage) {
+
+    $new = checkLabel($db, $label, $table, $state, $stage);
+
+    if ($state != "new") {return $new;}
+
+    $faults = countFaults($db, $label,$table,$stage);
+
+    if ($faults < 1) {return $new;}
+
+    return $new."(".$faults.")";
+}
+
+###########################################################################
+#
+# Returns count of exposures with this state for this label
+#
+###########################################################################
+function checkLabel($db, $label, $table, $state, $stage) {
+
+    $sql = "SELECT COUNT(state) FROM $table WHERE label LIKE '$label' AND state = '$state'";
+    if ($debug) {echo "$sql<br>";}
+
+    $qry = $db->query($sql);
+    if (dberror($qry)) {echo "<b>error with $sql </b><br>\n";}
+    if (!$qry->fetchInto($row)) {echo "<b>error with $sql </b><br>\n";}
+    return $row[0];
+}
+
+###########################################################################
+#
+# Returns count of faults for this stage and label
+#
+###########################################################################
+function countFaults($db, $label, $table, $stage) {
+
+    $joinTable = 0;
+    $id = $stage."_id";
+
+    if ($stage == "chip") {$joinTable="chipProcessedImfile";}
+    elseif ($stage == "cam") {$joinTable="camProcessedExp";}
+    elseif ($stage == "fake") {$joinTable="fakeProcessedImfile";}
+    elseif ($stage == "warp") {$joinTable="warpSkyfile";}
+    elseif ($stage == "stack") {$joinTable="stackSumSkyfile";}
+    elseif ($stage == "diff") {$joinTable="diffSkyfile";}
+    elseif ($stage == "magic") {$joinTable="magicNodeResult";}
+    elseif ($stage == "magicDS") {$id = "magic_ds_id"; $joinTable="magicDSFile";}
+    elseif ($stage == "dist") {$joinTable="distComponent";}
+    else {return -1;}
+
+    $faultCol =  $joinTable.".fault";
+
+    $sql = "SELECT COUNT(DISTINCT $id) FROM $table JOIN $joinTable USING ($id) WHERE label LIKE '$label' AND $faultCol != 0 AND $table.state = 'new'";
+    if ($debug) {echo "$sql<br>";}
+
+    $qry = $db->query($sql);
+    if (dberror($qry)) {echo "<b>error with $sql </b><br>\n";}
+    if (!$qry->fetchInto($row)) {echo "<b>error with $sql </b><br>\n";}
+    return $row[0];
+}
+?>
+
Index: branches/czw_branch/20100427/ippMonitor/raw/ipp.imfiles.dat
===================================================================
--- branches/czw_branch/20100427/ippMonitor/raw/ipp.imfiles.dat	(revision 27784)
+++ branches/czw_branch/20100427/ippMonitor/raw/ipp.imfiles.dat	(revision 28017)
@@ -21,2 +21,4 @@
 menutop   | menutop      | link    | simple plot - chip           | simplePlot.php
 menutop   | menutop      | link    | simple plot - cam            | simplePlotcam.php
+menutop   | menutop      | link    | czartool                     | czartool.php
+
Index: branches/czw_branch/20100427/ippMonitor/scripts/checkServer.pl
===================================================================
--- branches/czw_branch/20100427/ippMonitor/scripts/checkServer.pl	(revision 28017)
+++ branches/czw_branch/20100427/ippMonitor/scripts/checkServer.pl	(revision 28017)
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -w
+
+use warnings;
+use strict;
+use Getopt::Long;
+
+my $server = undef;
+GetOptions ("server|s=s" => \$server);
+
+my @cmdOut = `echo "status ;quit" | pantasks_client -c ~ipp/$server/ptolemy.rc 2>&1`;
+my $line;
+my $foundStatus = 0;
+my $isRunning = 0;
+foreach $line (@cmdOut) {
+
+    chomp($line);
+    if ($line =~ m/Scheduler is stopped/) {$isRunning = 0; $foundStatus=1;last;}
+    if ($line =~ m/Scheduler is running/) {$isRunning = 1; $foundStatus=1;last;}
+    if ($line =~ m/Task Staus/) {last;}
+
+}
+
+($foundStatus) ? print "yes\n" : print "no\n";
+($isRunning) ? print "yes\n" : print "no\n";
+
Index: branches/czw_branch/20100427/ippMonitor/scripts/getLabels.pl
===================================================================
--- branches/czw_branch/20100427/ippMonitor/scripts/getLabels.pl	(revision 28017)
+++ branches/czw_branch/20100427/ippMonitor/scripts/getLabels.pl	(revision 28017)
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -w
+
+use warnings;
+use strict;
+use Getopt::Long;
+
+my $server = undef;
+GetOptions ("server|s=s" => \$server);
+
+my @cmdOut = `echo "show.labels;quit" | pantasks_client -c ~ipp/$server/ptolemy.rc 2>&1`;
+my $line;
+my $passedHeader=0;
+foreach $line (@cmdOut) {
+
+    chomp($line);
+    if ($line =~ m/pantasks:\s+(.*)/) {
+  
+        # HACK to get around 'dummy' label in stdscience
+        if ($1 !~ m/.*dummy.*/) {print "$1\n"};
+        $passedHeader=1; 
+        next;
+    }
+
+    if ($passedHeader){print "$line\n";}
+}
Index: branches/czw_branch/20100427/ippMonitor/scripts/getServerStatus.pl
===================================================================
--- branches/czw_branch/20100427/ippMonitor/scripts/getServerStatus.pl	(revision 28017)
+++ branches/czw_branch/20100427/ippMonitor/scripts/getServerStatus.pl	(revision 28017)
@@ -0,0 +1,18 @@
+#!/usr/bin/perl -w
+
+use warnings;
+use strict;
+use Getopt::Long;
+
+my $server = undef;
+GetOptions ("server|s=s" => \$server);
+
+my @cmdOut = `echo "status;quit" | pantasks_client -c ~ipp/$server/ptolemy.rc 2>&1`;
+my $line;
+my $passedHeader=0;
+foreach $line (@cmdOut) {
+
+    chomp($line);
+    if ($line =~ m/.*Task Status.*/) {$passedHeader=1;next;}
+    if ($passedHeader){print "$line<br>";}
+}
