Index: /trunk/ippconfig/cfh12k/Makefile.am
===================================================================
--- /trunk/ippconfig/cfh12k/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/cfh12k/Makefile.am	(revision 17523)
@@ -12,5 +12,4 @@
 	format_split_early.config \
 	format_split_cmf.config \
-	filerules-mef.mdc \
 	ppImage.config \
 	ppMerge.config \
Index: /trunk/ippconfig/cfh12k/camera.config
===================================================================
--- /trunk/ippconfig/cfh12k/camera.config	(revision 17522)
+++ /trunk/ippconfig/cfh12k/camera.config	(revision 17523)
@@ -108,181 +108,10 @@
 END
 
-# Reduction classes
-REDUCTION	METADATA
-	# Detrend processing
-	DETREND		METADATA
-		BIAS_PROCESS	STR	PPIMAGE_O
-		BIAS_RESID	STR	PPIMAGE_B
-		BIAS_VERIFY	STR	PPIMAGE_OB
-		BIAS_STACK	STR	PPMERGE_BIAS
-		DARK_PROCESS	STR	PPIMAGE_OB
-		DARK_RESID	STR	PPIMAGE_D
-		DARK_VERIFY	STR	PPIMAGE_OBD
-		DARK_STACK	STR	PPMERGE_DARK
-		SHUTTER_PROCESS	STR	PPIMAGE_OBD
-		SHUTTER_RESID	STR	PPIMAGE_S
-		SHUTTER_VERIFY	STR	PPIMAGE_OBDS
-		SHUTTER_STACK	STR	PPMERGE_SHUTTER
-		FLAT_PROCESS	STR	PPIMAGE_OBDS
-		FLAT_RESID	STR	PPIMAGE_F
-		FLAT_VERIFY	STR	PPIMAGE_OBDSF
-		FLAT_STACK	STR	PPMERGE_FLAT
-		FRINGE_PROCESS	STR	PPIMAGE_OBDSF
-		FRINGE_RESID	STR	PPIMAGE_R
-		FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
-		FRINGE_STACK	STR	PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-		# Generation of pixel masks from darks and flats
-		DARKMASK_PROCESS	STR	PPIMAGE_OBD
-		DARKMASK_RESID		STR	PPIMAGE_N
-		DARKMASK_VERIFY		STR	PPIMAGE_OBD
-		DARKMASK_STACK		STR	PPMERGE_DARKMASK
-		FLATMASK_PROCESS	STR	PPIMAGE_OBDSF
-		FLATMASK_RESID		STR	PPIMAGE_N
-		FLATMASK_VERIFY		STR	PPIMAGE_OBDSF
-		FLATMASK_STACK		STR	PPMERGE_FLATMASK
-		JPEG_BIN1_IMAGE_DARKMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_DARKMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_IMAGE_FLATMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_FLATMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_RESID_DARKMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_DARKMASK STR	PPIMAGE_J2_RESID_M
-		JPEG_BIN1_RESID_FLATMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_FLATMASK STR	PPIMAGE_J2_RESID_M
+FITSTYPES       STR     recipes/fitstypes.mdc
 
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
-
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-	# Processing raw data
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
-	END
-
-        # Full photometry analysis for pre-processed data
-        MASKPHOT                METADATA
-                CHIP            STR     PPIMAGE_MASKPHOT
-                JPEG_BIN1       STR     PPIMAGE_J1
-                JPEG_BIN2       STR     PPIMAGE_J2
-        END
-
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	# Compressed positive image
-	COMP_IMG	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	# Compressed mask
-	COMP_MASK	METADATA
-		BITPIX		S32	8
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	# Compressed weight image
-	COMP_WT		METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	# Compressed subtraction image
-	COMP_SUB	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES	STR	cfh12k/filerules-mef.mdc		# File rules appropriate for MEF format
+FILERULES	STR	recipes/filerules-mef.mdc		# File rules appropriate for MEF format
 
 EXTNAME.RULES METADATA
Index: unk/ippconfig/cfh12k/filerules-mef.mdc
===================================================================
--- /trunk/ippconfig/cfh12k/filerules-mef.mdc	(revision 17522)
+++ 	(revision )
@@ -1,207 +1,0 @@
-### File rules for PHU=FPA, EXT=CHIP
-
-### Redirections (MEF)
-PPIMAGE.OUTPUT        STR PPIMAGE.OUTPUT.MEF
-PPIMAGE.OUTPUT.MASK   STR PPIMAGE.OUT.MK.MEF
-PPIMAGE.OUTPUT.WEIGHT STR PPIMAGE.OUT.WT.MEF
-
-PPIMAGE.CHIP          STR PPIMAGE.CHIP.MEF
-PPIMAGE.CHIP.MASK     STR PPIMAGE.CHIP.MK.MEF
-PPIMAGE.CHIP.WEIGHT   STR PPIMAGE.CHIP.WT.MEF
-
-PPIMAGE.BIN1          STR PPIMAGE.BIN1.MEF
-PPIMAGE.BIN2          STR PPIMAGE.BIN2.MEF
-
-PSASTRO.OUTPUT        STR PSASTRO.OUT.CMF.MEF
-PSPHOT.OUTPUT         STR PSPHOT.OUT.CMF.MEF
-
-### Redirections (SPL)
-# PPIMAGE.OUTPUT        STR PPIMAGE.OUTPUT.SPL
-# PPIMAGE.OUTPUT.MASK   STR PPIMAGE.OUT.MK.SPL
-# PPIMAGE.OUTPUT.WEIGHT STR PPIMAGE.OUT.WT.SPL
-# 
-# PPIMAGE.CHIP          STR PPIMAGE.CHIP.SPL
-# PPIMAGE.CHIP.MASK     STR PPIMAGE.CHIP.MK.SPL
-# PPIMAGE.CHIP.WEIGHT   STR PPIMAGE.CHIP.WT.SPL
-# 
-# PPIMAGE.BIN1          STR PPIMAGE.BIN1.SPL
-# PPIMAGE.BIN2          STR PPIMAGE.BIN2.SPL
-# 
-# PSASTRO.OUTPUT        STR PSASTRO.OUT.CMF.SPL
-# PSPHOT.OUTPUT         STR PSPHOT.OUT.CMF.SPL
-
-### Redirections (common)
-
-PPIMAGE.OUTPUT.FPA1   STR PPIMAGE.OUTPUT.FPA1.MEF
-PPIMAGE.OUTPUT.FPA2   STR PPIMAGE.OUTPUT.FPA2.MEF
-PPSTAMP.CHIP          STR PPSTAMP.CHIP.MEF
-PSASTRO.INPUT         STR PSASTRO.INPUT.CMF
-PSASTRO.OUTPUT.MEF    STR PSASTRO.OUT.CMF.MEF
-DVOCORR.OUTPUT        STR DVOCORR.MEF.OUTPUT
-DVOFLAT.OUTPUT        STR DVOFLAT.MEF.OUTPUT
-
-### input file definitions
-### use @DETDB entries to get the detrend images from the database
-### replace @DETDB with @FILES if you want to require it from the 
-### command line, or with an explicit name to require a specific file
-TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE 
-
-## files used by ppImage
-PPIMAGE.INPUT      INPUT @FILES        CHIP       IMAGE
-PPIMAGE.MASK       INPUT @DETDB        CHIP       MASK
-PPIMAGE.BIAS       INPUT @DETDB        CHIP       IMAGE
-PPIMAGE.DARK       INPUT @DETDB        CHIP       DARK
-PPIMAGE.FLAT       INPUT @DETDB        CHIP       IMAGE
-PPIMAGE.FRINGE     INPUT @DETDB        CHIP       FRINGE     
-PPIMAGE.SHUTTER    INPUT @DETDB        CHIP       IMAGE     
-
-## Files used by ppMerge
-PPMERGE.INPUT      INPUT @FILES        CHIP       IMAGE
-PPMERGE.INPUT.MASK INPUT @FILES        CHIP       MASK
-PPMERGE.INPUT.WEIGHT INPUT @FILES      CHIP       WEIGHT
-
-## files used to build and apply the flat-field correction images
-DVOCORR.INPUT      INPUT @FILES        CHIP       IMAGE     
-DVOCORR.REFHEAD    INPUT @FILES        CHIP       HEADER     
-DVOFLAT.INPUT      INPUT @FILES        CHIP       IMAGE         
-DVOFLAT.CORR       INPUT @DETDB        CHIP       IMAGE         
-
-## files used by psphot 
-PSPHOT.LOAD        INPUT @FILES        CHIP       IMAGE     
-PSPHOT.INPUT       INPUT @FILES        CHIP       IMAGE     
-PSPHOT.MASK        INPUT @FILES        CHIP       MASK     
-PSPHOT.WEIGHT      INPUT @FILES        CHIP       WEIGHT     
-PSPHOT.PSF.LOAD    INPUT @FILES        CHIP       PSF       
-PSPHOT.INPUT.CMF   INPUT @FILES        CHIP       CMF       
-
-## files used by psastro 
-PSASTRO.INPUT.CMP  INPUT @FILES        CHIP       CMP       
-PSASTRO.INPUT.CMF  INPUT @FILES        CHIP       CMF       
-
-## files used by pswarp
-PSWARP.INPUT       INPUT @FILES        CHIP       IMAGE     
-PSWARP.WEIGHT      INPUT @FILES        CHIP       WEIGHT
-PSWARP.MASK        INPUT @FILES        CHIP       MASK
-PSWARP.SKYCELL     INPUT @FILES        CHIP       IMAGE     
-PSWARP.ASTROM      INPUT @FILES        CHIP       CMF       
-
-PPSUB.INPUT        INPUT @FILES        FPA        IMAGE
-PPSUB.INPUT.MASK   INPUT @FILES        FPA        MASK
-PPSUB.INPUT.WEIGHT INPUT @FILES        FPA        WEIGHT
-PPSUB.REF          INPUT @FILES        FPA        IMAGE
-PPSUB.REF.MASK     INPUT @FILES        FPA        MASK
-PPSUB.REF.WEIGHT   INPUT @FILES        FPA        WEIGHT
-PPSUB.SOURCES      INPUT @FILES        FPA        CMF
-
-PPSTACK.INPUT      INPUT @FILES        FPA        IMAGE
-PPSTACK.INPUT.MASK INPUT @FILES        FPA        MASK
-PPSTACK.INPUT.WEIGHT INPUT @FILES      FPA        WEIGHT
-PPSTACK.SOURCES    INPUT @FILES        FPA        CMF
-
-PPSTAMP.INPUT      INPUT @FILES        CHIP       IMAGE
-
-PPARITH.INPUT.IMAGE INPUT @FILES       CHIP       IMAGE
-PPARITH.INPUT.MASK  INPUT @FILES       CHIP       MASK
-
-### output file definitions
-TYPE                     OUTPUT FILENAME.RULE                    FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-PPIMAGE.OUTPUT.MEF       OUTPUT {OUTPUT}.b0.fits                 IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.OUT.MK.MEF       OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK CHIP       TRUE      MEF
-PPIMAGE.OUT.WT.MEF       OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   CHIP       TRUE      MEF
-PPIMAGE.OUTPUT.SPL       OUTPUT {OUTPUT}.{CHIP.NAME}.b0.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUT.MK.SPL       OUTPUT {OUTPUT}.{CHIP.NAME}.mk.fits     MASK      NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUT.WT.SPL       OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits     WEIGHT    NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.CHIP.MEF         OUTPUT {OUTPUT}.ch.fits                 IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.CHIP.MK.MEF      OUTPUT {OUTPUT}.ch.mk.fits              MASK      COMP_MASK CHIP       TRUE      MEF
-PPIMAGE.CHIP.WT.MEF      OUTPUT {OUTPUT}.ch.wt.fits              WEIGHT    COMP_WT   CHIP       TRUE      MEF
-PPIMAGE.CHIP.SPL         OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.MK.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.ch.mk.fits  MASK      NONE      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.WT.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.ch.wt.fits  WEIGHT    NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.OUTPUT.FPA1.MEF  OUTPUT {OUTPUT}.b1.fits                 IMAGE     COMP_IMG  FPA        TRUE      MEF
-PPIMAGE.OUTPUT.FPA2.MEF  OUTPUT {OUTPUT}.b2.fits                 IMAGE     COMP_IMG  FPA        TRUE      MEF
-PPIMAGE.OUTPUT.FPA1.SPL  OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUTPUT.FPA2.SPL  OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.STATS            OUTPUT {OUTPUT}.stats                   STATS     NONE      FPA        TRUE      MEF
-
-PPIMAGE.BIN1.MEF         OUTPUT {OUTPUT}.b1c.fits                IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.BIN2.MEF         OUTPUT {OUTPUT}.b2c.fits                IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.BIN1.SPL         OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits     IMAGE     COMP_IMG  CHIP       TRUE      SPLIT
-PPIMAGE.BIN2.SPL         OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits     IMAGE     COMP_IMG  CHIP       TRUE      SPLIT
-
-PPIMAGE.JPEG1            OUTPUT {OUTPUT}.b1.jpg                  JPEG      NONE      FPA        TRUE      NONE
-PPIMAGE.JPEG2            OUTPUT {OUTPUT}.b2.jpg                  JPEG      NONE      FPA        TRUE      NONE
-
-PPMERGE.OUTPUT.MASK      OUTPUT {OUTPUT}.fits                    MASK      NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.BIAS      OUTPUT {OUTPUT}.fits                    IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.DARK      OUTPUT {OUTPUT}.fits                    DARK      NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.SHUTTER   OUTPUT {OUTPUT}.fits                    IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.FLAT      OUTPUT {OUTPUT}.fits                    IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.FRINGE    OUTPUT {OUTPUT}.fits                    FRINGE    NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.SIGMA     OUTPUT {OUTPUT}.sigma.fits              IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.COUNT     OUTPUT {OUTPUT}.count.fits              IMAGE     NONE      CHIP       TRUE      NONE
-
-DVOCORR.MEF.OUTPUT       OUTPUT {OUTPUT}.fc.fits              	 IMAGE     NONE      CHIP       TRUE      MEF
-DVOCORR.SPL.OUTPUT       OUTPUT {OUTPUT}.{CHIP.NAME}.fc.fits  	 IMAGE     NONE      CHIP       TRUE      SPLIT
-DVOFLAT.MEF.OUTPUT       OUTPUT {OUTPUT}.co.fits              	 IMAGE     NONE      CHIP       TRUE      MEF
-DVOFLAT.SPL.OUTPUT       OUTPUT {OUTPUT}.{CHIP.NAME}.co.fits  	 IMAGE     NONE      CHIP       TRUE      SPLIT
-
-PSPHOT.RESID             OUTPUT {OUTPUT}.res.fits             	 IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKGND           OUTPUT {OUTPUT}.bck.fits             	 IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKSUB           OUTPUT {OUTPUT}.sub.fits             	 IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKMDL           OUTPUT {OUTPUT}.mdl.fits             	 IMAGE     NONE      CHIP       FALSE     MEF
-
-PSPHOT.OUTPUT.RAW        OUTPUT {OUTPUT}.{CHIP.NAME}          	 RAW       NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.SX         OUTPUT {OUTPUT}.{CHIP.NAME}.sx          SX        NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.OBJ        OUTPUT {OUTPUT}.{CHIP.NAME}.obj         OBJ       NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.CMP        OUTPUT {OUTPUT}.{CHIP.NAME}.cmp      	 CMP       NONE      CHIP       TRUE      NONE
-PSPHOT.OUT.CMF.SPL       OUTPUT {OUTPUT}.{CHIP.NAME}.cmf      	 CMF       NONE      CHIP       TRUE      SPLIT
-PSPHOT.OUT.CMF.MEF       OUTPUT {OUTPUT}.cmf                  	 CMF       NONE      CHIP       TRUE      MEF
-
-PSPHOT.PSF.SAVE          OUTPUT {OUTPUT}.psf                  	 PSF       NONE      CHIP       TRUE      MEF
-
-SOURCE.PLOT.MOMENTS      OUTPUT {OUTPUT}.mnt.png              	 KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.PSFMODEL     OUTPUT {OUTPUT}.psf.png              	 KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.APRESID      OUTPUT {OUTPUT}.dap.png              	 KAPA      NONE      FPA        TRUE      NONE
-
-PSASTRO.OUTPUT.CMP       OUTPUT {OUTPUT}.{CHIP.NAME}.smp      	 CMP       NONE      CHIP       TRUE      NONE
-PSASTRO.OUT.CMF.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.smf      	 CMF       NONE      CHIP       TRUE      SPLIT
-PSASTRO.OUT.CMF.MEF      OUTPUT {OUTPUT}.smf                  	 CMF       NONE      FPA        TRUE      MEF
-PSASTRO.OUT.MODEL        OUTPUT {OUTPUT}.asm              ASTROM.MODEL     NONE      FPA        TRUE      NONE
-PSASTRO.OUT.REFSTARS     OUTPUT {OUTPUT}.aref.fits        ASTROM.REFSTARS  NONE      FPA        TRUE      NONE
-
-PSWARP.OUTPUT            OUTPUT {OUTPUT}.fits                 	 IMAGE     COMP_IMG  FPA        TRUE      NONE
-PSWARP.OUTPUT.MASK       OUTPUT {OUTPUT}.mk.fits              	 MASK      COMP_MASK FPA        TRUE      NONE
-PSWARP.OUTPUT.WEIGHT     OUTPUT {OUTPUT}.wt.fits              	 WEIGHT    COMP_WT   FPA        TRUE      NONE
-PSWARP.OUTPUT.SOURCES    OUTPUT {OUTPUT}.cmf                     CMF       NONE      FPA        TRUE      NONE
-PSWARP.BIN1              OUTPUT {OUTPUT}.b1.fits              	 IMAGE     COMP_IMG  FPA        TRUE      NONE
-PSWARP.BIN2              OUTPUT {OUTPUT}.b2.fits              	 IMAGE     COMP_IMG  FPA        TRUE      NONE
-
-SKYCELL.STATS            OUTPUT {OUTPUT}.stats                	 STATS     NONE      FPA        TRUE      NONE
-SKYCELL.TEMPLATE         OUTPUT {OUTPUT}.skycell              	 SKYCELL   NONE      FPA        TRUE      NONE
-
-PPSUB.OUTPUT             OUTPUT {OUTPUT}.fits                 	 IMAGE     COMP_IMG  FPA        TRUE      NONE
-PPSUB.OUTPUT.MASK        OUTPUT {OUTPUT}.mk.fits              	 MASK      COMP_MASK FPA        TRUE      NONE
-PPSUB.OUTPUT.WEIGHT      OUTPUT {OUTPUT}.wt.fits              	 WEIGHT    COMP_WT   FPA        TRUE      NONE
-
-PPSTACK.OUTPUT           OUTPUT {OUTPUT}.fits                 	 IMAGE     COMP_IMG  FPA        TRUE      NONE
-PPSTACK.OUTPUT.MASK      OUTPUT {OUTPUT}.mk.fits              	 MASK      COMP_MASK FPA        TRUE      NONE
-PPSTACK.OUTPUT.WEIGHT    OUTPUT {OUTPUT}.wt.fits              	 WEIGHT    COMP_WT   FPA        TRUE      NONE
-
-PPSTAMP.OUTPUT           OUTPUT {OUTPUT}.fits                 	 IMAGE     NONE      FPA        TRUE      NONE
-PPSTAMP.CHIP.MEF         OUTPUT {OUTPUT}.ch.fits              	 IMAGE     NONE      CHIP       FALSE     MEF
-
-PPSIM.OUTPUT.MEF         OUTPUT {OUTPUT}.fits                    IMAGE     NONE      CHIP       TRUE      MEF
-PPSIM.OUTPUT.SPL         OUTPUT {OUTPUT}.{CHIP.NAME}.fits        IMAGE     NONE      CHIP       TRUE      SPLIT
-PPSIM.SOURCES            OUTPUT {OUTPUT}.cmf                     CMF       NONE      FPA        TRUE      MEF
-
-PPARITH.OUTPUT.IMAGE     OUTPUT {OUTPUT}.fits                 	 IMAGE     COMP_IMG  CHIP       TRUE      NONE
-PPARITH.OUTPUT.MASK      OUTPUT {OUTPUT}.fits                 	 MASK      COMP_MASK CHIP       TRUE      NONE
-
-LOG.IMFILE               OUTPUT {OUTPUT}.{CHIP.NAME}.log      	 TEXT      NONE      CHIP       TRUE      NONE
-LOG.EXP                  OUTPUT {OUTPUT}.log                  	 TEXT      NONE      FPA        TRUE      NONE
-
-TRACE.IMFILE             OUTPUT {OUTPUT}.{CHIP.NAME}.trace    	 TEXT      NONE      CHIP       TRUE      NONE
-TRACE.EXP                OUTPUT {OUTPUT}.trace                	 TEXT      NONE      FPA        TRUE      NONE
Index: /trunk/ippconfig/esowfi/Makefile.am
===================================================================
--- /trunk/ippconfig/esowfi/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/esowfi/Makefile.am	(revision 17523)
@@ -10,6 +10,5 @@
 	psphot.config \
 	psastro.config \
-	rejections.config \
-	filerules-mef.mdc
+	rejections.config
 
 install_DATA = $(install_files)
Index: /trunk/ippconfig/esowfi/camera.config
===================================================================
--- /trunk/ippconfig/esowfi/camera.config	(revision 17522)
+++ /trunk/ippconfig/esowfi/camera.config	(revision 17523)
@@ -66,160 +66,10 @@
 END
 
-# Reduction classes
-REDUCTION  METADATA
-  # Detrend processing
-  DETREND    METADATA
-    BIAS_PROCESS    STR  PPIMAGE_O
-    BIAS_RESID      STR  PPIMAGE_B
-    BIAS_VERIFY     STR  PPIMAGE_OB
-    BIAS_STACK      STR  PPMERGE_BIAS
-    DARK_PROCESS    STR  PPIMAGE_OB
-    DARK_RESID      STR  PPIMAGE_D
-    DARK_VERIFY     STR  PPIMAGE_OBD
-    DARK_STACK      STR  PPMERGE_DARK
-    SHUTTER_PROCESS STR  PPIMAGE_OBD
-    SHUTTER_RESID   STR  PPIMAGE_S
-    SHUTTER_VERIFY  STR  PPIMAGE_OBDS
-    SHUTTER_STACK   STR  PPMERGE_SHUTTER
-    FLAT_PROCESS    STR  PPIMAGE_OBDS
-    FLAT_RESID      STR  PPIMAGE_F
-    FLAT_VERIFY     STR  PPIMAGE_OBDSF
-    FLAT_STACK      STR  PPMERGE_FLAT
-    FRINGE_PROCESS  STR  PPIMAGE_OBDSF
-    FRINGE_RESID    STR  PPIMAGE_R
-    FRINGE_VERIFY   STR  PPIMAGE_OBDSFR
-    FRINGE_STACK    STR  PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-    # Generation of pixel masks from darks and flats
-    DARKMASK_PROCESS        STR     PPIMAGE_OBD
-    DARKMASK_RESID          STR     PPIMAGE_N
-    DARKMASK_VERIFY         STR     PPIMAGE_OBD
-    DARKMASK_STACK          STR     PPMERGE_DARKMASK
-    FLATMASK_PROCESS        STR     PPIMAGE_OBDSF
-    FLATMASK_RESID          STR     PPIMAGE_N
-    FLATMASK_VERIFY         STR     PPIMAGE_OBDSF
-    FLATMASK_STACK          STR     PPMERGE_FLATMASK
-    JPEG_BIN1_IMAGE_DARKMASK STR    PPIMAGE_J1_IMAGE_M
-    JPEG_BIN2_IMAGE_DARKMASK STR    PPIMAGE_J2_IMAGE_M
-    JPEG_BIN1_IMAGE_FLATMASK STR    PPIMAGE_J1_IMAGE_M
-    JPEG_BIN2_IMAGE_FLATMASK STR    PPIMAGE_J2_IMAGE_M
-    JPEG_BIN1_RESID_DARKMASK STR    PPIMAGE_J1_RESID_M
-    JPEG_BIN2_RESID_DARKMASK STR    PPIMAGE_J2_RESID_M
-    JPEG_BIN1_RESID_FLATMASK STR    PPIMAGE_J1_RESID_M
-    JPEG_BIN2_RESID_FLATMASK STR    PPIMAGE_J2_RESID_M
+FITSTYPES       STR     recipes/fitstypes.mdc
 
-    JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-    JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-    JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-    JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-    JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-    JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-    JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
-    JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-    JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-    JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-    JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-    JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-    JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-    JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
-
-    JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-    JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-    JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-    JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-    JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-    JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-    JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
-    JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-    JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-    JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-    JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-    JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-    JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-    JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-  END
-  # Processing raw data
-  DEFAULT    METADATA
-    CHIP    STR  PPIMAGE_OBDSFRA
-     JPEG_BIN1       STR     PPIMAGE_J1
-     JPEG_BIN2       STR     PPIMAGE_J2
-  END
-END
-
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES	STR	esowfi/filerules-mef.mdc		# File rules appropriate for MEF format
+FILERULES	STR	recipes/filerules-mef.mdc		# File rules appropriate for MEF format
 
 # FPA file defines properties of a possible input|output object
Index: unk/ippconfig/esowfi/filerules-mef.mdc
===================================================================
--- /trunk/ippconfig/esowfi/filerules-mef.mdc	(revision 17522)
+++ 	(revision )
@@ -1,142 +1,0 @@
-### Redirections
-PSASTRO.INPUT      STR PSASTRO.INPUT.CMF
-PSASTRO.OUTPUT     STR PSASTRO.OUT.CMF.SPL
-PSASTRO.OUTPUT.MEF STR PSASTRO.OUT.CMF.MEF
-PSPHOT.OUTPUT      STR PSPHOT.OUT.CMF.SPL
-
-### input file definitions
-### use @DETDB entries to get the detrend images from the database
-### replace @DETDB with @FILES if you want to require it from the
-### command line, or with an explicit name to require a specific file
-TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE
-
-## files used by ppImage
-PPIMAGE.INPUT      INPUT @FILES        CHIP        IMAGE
-PPIMAGE.MASK       INPUT @DETDB        CHIP        IMAGE
-PPIMAGE.BIAS       INPUT @DETDB        CHIP        IMAGE
-PPIMAGE.DARK       INPUT @DETDB        CHIP        DARK
-PPIMAGE.FLAT       INPUT @DETDB        CHIP        IMAGE
-PPIMAGE.FRINGE     INPUT @DETDB        CHIP        FRINGE
-PPIMAGE.SHUTTER    INPUT @DETDB        CHIP        IMAGE
-
-## Files used by ppMerge
-PPMERGE.INPUT      INPUT @FILES        CHIP       IMAGE
-PPMERGE.INPUT.MASK INPUT @FILES        CHIP       MASK
-PPMERGE.INPUT.WEIGHT INPUT @FILES      CHIP       WEIGHT
-
-## files used to build and apply the flat field correction images
-DVOCORR.INPUT      INPUT @FILES        CHIP        IMAGE
-DVOCORR.REFHEAD    INPUT @FILES        CHIP        HEADER
-DVOFLAT.INPUT      INPUT @FILES        CHIP        IMAGE
-DVOFLAT.CORR       INPUT @DETDB        CHIP        IMAGE
-
-## files used by psphot
-PSPHOT.LOAD        INPUT @FILES        CHIP        IMAGE
-PSPHOT.INPUT       INPUT @FILES        CHIP        IMAGE
-PSPHOT.MASK        INPUT @FILES        CHIP        MASK
-PSPHOT.WEIGHT      INPUT @FILES        CHIP        WEIGHT
-PSPHOT.PSF.LOAD    INPUT @FILES        CHIP        PSF
-PSPHOT.INPUT.CMF   INPUT @FILES        CHIP        CMF
-
-## files used by psastro
-PSASTRO.INPUT.CMF  INPUT @FILES        CHIP        CMF
-
-## files used by pswarp
-PSWARP.INPUT       INPUT @FILES        CHIP        IMAGE
-PSWARP.SKYCELL     INPUT @FILES        CHIP        IMAGE
-PSWARP.WEIGHT      INPUT @FILES        CHIP        WEIGHT
-PSWARP.MASK        INPUT @FILES        CHIP        MASK
-PSWARP.ASTROM      INPUT @FILES        CHIP        CMF
-
-PPSUB.INPUT        INPUT    none.fits  CHIP        IMAGE
-PPSUB.INPUT.MASK   INPUT    none.fits  CHIP        MASK
-PPSUB.INPUT.WEIGHT INPUT    none.fits  CHIP        WEIGHT
-PPSUB.REF          INPUT    none.fits  CHIP        IMAGE
-PPSUB.REF.MASK     INPUT    none.fits  CHIP        MASK
-PPSUB.REF.WEIGHT   INPUT    none.fits  CHIP        WEIGHT
-
-PPSTACK.INPUT      INPUT    none.fits  CHIP        IMAGE
-PPSTACK.INPUT.MASK INPUT    none.fits  FPA         MASK
-
-PPSTAMP.INPUT      INPUT @FILES        CHIP       IMAGE
-
-PPARITH.INPUT.IMAGE INPUT @FILES        CHIP       IMAGE
-PPARITH.INPUT.MASK  INPUT @FILES        CHIP       MASK
-
-### output file definitions
-TYPE                    OUTPUT   FILENAME.RULE                   FILE.TYPE  DATA.LEVEL FILE.SAVE FILE.FORMAT
-PPIMAGE.OUTPUT          OUTPUT   {OUTPUT}.{CHIP.NAME}.fits          IMAGE     CHIP       TRUE      SPLIT
-PPIMAGE.OUTPUT.MASK     OUTPUT   {OUTPUT}.{CHIP.NAME}.mask.fits     MASK      CHIP       TRUE      SPLIT
-PPIMAGE.OUTPUT.WEIGHT   OUTPUT   {OUTPUT}.{CHIP.NAME}.wt.fits       WEIGHT    CHIP       TRUE      SPLIT
-PPIMAGE.CHIP            OUTPUT   {OUTPUT}.{CHIP.NAME}.ch.fits       IMAGE     CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.MASK       OUTPUT   {OUTPUT}.{CHIP.NAME}.ch.mask.fits  MASK      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.WEIGHT     OUTPUT   {OUTPUT}.{CHIP.NAME}.ch.wt.fits    WEIGHT    CHIP       TRUE      SPLIT
-PPIMAGE.OUTPUT.FPA1     OUTPUT   {OUTPUT}.fpa1.fits                 IMAGE     FPA        TRUE      TOGETHER
-PPIMAGE.OUTPUT.FPA2     OUTPUT   {OUTPUT}.fpa2.fits                 IMAGE     FPA        TRUE      TOGETHER
-PPIMAGE.STATS           OUTPUT   {OUTPUT}.stats                     STATS     FPA        TRUE      TOGETHER
-
-PPIMAGE.JPEG1       OUTPUT   {OUTPUT}.b1.jpg                JPEG       FPA        TRUE      TOGETHER
-PPIMAGE.JPEG2       OUTPUT   {OUTPUT}.b2.jpg                JPEG       FPA        TRUE      TOGETHER
-PPIMAGE.BIN1        OUTPUT   {OUTPUT}.{CHIP.NAME}.b1.fits   IMAGE      CHIP       TRUE      SPLIT
-PPIMAGE.BIN2        OUTPUT   {OUTPUT}.{CHIP.NAME}.b2.fits   IMAGE      CHIP       TRUE      SPLIT
-
-PPMERGE.OUTPUT.MASK   OUTPUT {OUTPUT}.fits                   MASK      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.BIAS   OUTPUT {OUTPUT}.fits                   IMAGE     CHIP       TRUE      NONE
-PPMERGE.OUTPUT.DARK   OUTPUT {OUTPUT}.fits                   DARK      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.SHUTTER OUTPUT {OUTPUT}.fits                  IMAGE     CHIP       TRUE      NONE
-PPMERGE.OUTPUT.FLAT   OUTPUT {OUTPUT}.fits                   IMAGE     CHIP       TRUE      NONE
-PPMERGE.OUTPUT.FRINGE OUTPUT {OUTPUT}.fits                   FRINGE    CHIP       TRUE      NONE
-PPMERGE.OUTPUT.SIGMA  OUTPUT {OUTPUT}.sigma.fits             IMAGE     CHIP       TRUE      NONE
-PPMERGE.OUTPUT.COUNT  OUTPUT {OUTPUT}.count.fits             IMAGE     CHIP       TRUE      NONE
-
-DVOCORR.OUTPUT      OUTPUT   {OUTPUT}.{CHIP.NAME}.fc.fits   IMAGE      CHIP       TRUE      SPLIT
-DVOFLAT.OUTPUT      OUTPUT   {OUTPUT}.{CHIP.NAME}.co.fits   IMAGE      CHIP       TRUE      SPLIT
-
-PSPHOT.RESID        OUTPUT   {OUTPUT}.{CHIP.NAME}.res.fits  IMAGE      CHIP       TRUE      SPLIT
-PSPHOT.BACKGND      OUTPUT   {OUTPUT}.{CHIP.NAME}.bck.fits  IMAGE      CHIP       TRUE      SPLIT
-PSPHOT.BACKSUB      OUTPUT   {OUTPUT}.{CHIP.NAME}.sub.fits  IMAGE      CHIP       TRUE      SPLIT
-PSPHOT.BACKMDL      OUTPUT   {OUTPUT}.{CHIP.NAME}.mdl.fits  IMAGE      CHIP       TRUE      SPLIT
-PSPHOT.BACKMDL.STDEV OUTPUT   {OUTPUT}.{CHIP.NAME}.mdd.fits IMAGE      CHIP       TRUE      SPLIT
-
-PSPHOT.OUTPUT.RAW   OUTPUT   {OUTPUT}.{CHIP.NAME}           RAW        CHIP       TRUE      SPLIT
-PSPHOT.OUTPUT.SX    OUTPUT   {OUTPUT}.{CHIP.NAME}.sx        SX         CHIP       TRUE      SPLIT
-PSPHOT.OUTPUT.OBJ   OUTPUT   {OUTPUT}.{CHIP.NAME}.obj       OBJ        CHIP       TRUE      SPLIT
-PSPHOT.OUT.CMF.SPL  OUTPUT   {OUTPUT}.{CHIP.NAME}.cmf       CMF        CHIP       TRUE      SPLIT
-PSPHOT.OUT.CMF.MEF  OUTPUT   {OUTPUT}.cmf                   CMF        FPA        TRUE      TOGETHER
-
-PSPHOT.PSF.SAVE     OUTPUT   {OUTPUT}.{CHIP.NAME}.psf       PSF        CHIP       TRUE      SPLIT
-
-SOURCE.PLOT.MOMENTS  OUTPUT  {OUTPUT}.{CHIP.NAME}.mnt.png   KAPA       CHIP       TRUE      SPLIT
-SOURCE.PLOT.PSFMODEL OUTPUT  {OUTPUT}.{CHIP.NAME}.psf.png   KAPA       CHIP       TRUE      SPLIT
-SOURCE.PLOT.APRESID  OUTPUT  {OUTPUT}.{CHIP.NAME}.dap.png   KAPA       CHIP       TRUE      SPLIT
-
-PSASTRO.OUTPUT.CMP   OUTPUT   {OUTPUT}.{CHIP.NAME}.smp      CMP        CHIP       TRUE      SPLIT
-PSASTRO.OUT.CMF.SPL  OUTPUT   {OUTPUT}.{CHIP.NAME}.smf      CMF        CHIP       TRUE      SPLIT
-PSASTRO.OUT.CMF.MEF  OUTPUT   {OUTPUT}.smf                  CMF        FPA        TRUE      TOGETHER
-
-PSWARP.OUTPUT       OUTPUT   {OUTPUT}.fits                  IMAGE      FPA        TRUE      TOGETHER
-PSWARP.OUTPUT.MASK  OUTPUT   {OUTPUT}.mask.fits             MASK       FPA        TRUE      TOGETHER
-PSWARP.OUTPUT.WEIGHT OUTPUT  {OUTPUT}.wt.fits               WEIGHT     FPA        TRUE      TOGETHER
-PSWARP.BIN1         OUTPUT   {OUTPUT}.b1.fits               IMAGE      FPA        TRUE      TOGETHER
-PSWARP.BIN2         OUTPUT   {OUTPUT}.b2.fits               IMAGE      FPA        TRUE      TOGETHER
-
-SKYCELL.STATS         OUTPUT {OUTPUT}.stats                 STATS      FPA        TRUE      NONE
-SKYCELL.TEMPLATE      OUTPUT {OUTPUT}.skycell               SKYCELL    FPA        TRUE      NONE
-
-PPSUB.OUTPUT        OUTPUT   {OUTPUT}.fits                  IMAGE      FPA        TRUE      TOGETHER
-PPSUB.OUTPUT.MASK   OUTPUT   {OUTPUT}.mask.fits             MASK       FPA        TRUE      TOGETHER
-PPSUB.OUTPUT.WEIGHT OUTPUT   {OUTPUT}.wt.fits               WEIGHT     FPA        TRUE      TOGETHER
-
-PPSTACK.OUTPUT      OUTPUT   {OUTPUT}.fits                  IMAGE      FPA        TRUE      TOGETHER
-PPSTACK.OUTPUT.MASK OUTPUT   {OUTPUT}.mask.fits             MASK       FPA        TRUE      TOGETHER
-
-PPSTAMP.OUTPUT        OUTPUT {OUTPUT}.fits                  IMAGE     NONE      FPA        TRUE      NONE
-PPSTAMP.CHIP.MEF      OUTPUT {OUTPUT}.ch.fits               IMAGE     NONE      CHIP       FALSE     MEF
-
-PPSIM.OUTPUT        OUTPUT   {OUTPUT}.{CHIP.NAME}.fits      IMAGE      CHIP       TRUE      SPLIT
-
-PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits                  IMAGE     NONE      CHIP       TRUE      NONE
-PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits                  MASK      NONE      CHIP       TRUE      NONE
-
-LOG.IMFILE          OUTPUT {OUTPUT}.{CHIP.NAME}.log         TEXT       CHIP       TRUE      SPLIT
-LOG.EXP             OUTPUT {OUTPUT}.log                     TEXT       FPA        TRUE      TOGETHER
Index: /trunk/ippconfig/gpc1/Makefile.am
===================================================================
--- /trunk/ippconfig/gpc1/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/gpc1/Makefile.am	(revision 17523)
@@ -8,5 +8,4 @@
 	format_raw.config \
 	format_mef.config \
-	filerules.mdc \
 	ppImage.config \
         ppMerge.config \
Index: /trunk/ippconfig/gpc1/camera.config
===================================================================
--- /trunk/ippconfig/gpc1/camera.config	(revision 17522)
+++ /trunk/ippconfig/gpc1/camera.config	(revision 17523)
@@ -100,161 +100,10 @@
 END
 
-# Reduction classes
-REDUCTION	METADATA
-	# Detrend processing
-	DETREND		METADATA
-		BIAS_PROCESS	STR	PPIMAGE_O
-		BIAS_RESID	STR	PPIMAGE_B
-		BIAS_VERIFY	STR	PPIMAGE_OB
-		BIAS_STACK	STR	PPMERGE_BIAS
-		DARK_PROCESS	STR	PPIMAGE_OB
-		DARK_RESID	STR	PPIMAGE_D
-		DARK_VERIFY	STR	PPIMAGE_OBD
-		DARK_STACK	STR	PPMERGE_DARK
-		SHUTTER_PROCESS	STR	PPIMAGE_OBD
-		SHUTTER_RESID	STR	PPIMAGE_S
-		SHUTTER_VERIFY	STR	PPIMAGE_OBDS
-		SHUTTER_STACK	STR	PPMERGE_SHUTTER
-		FLAT_PROCESS	STR	PPIMAGE_OBDS
-		FLAT_RESID	STR	PPIMAGE_F
-		FLAT_VERIFY	STR	PPIMAGE_OBDSF
-		FLAT_STACK	STR	PPMERGE_FLAT
-		FRINGE_PROCESS	STR	PPIMAGE_OBDSF
-		FRINGE_RESID	STR	PPIMAGE_R
-		FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
-		FRINGE_STACK	STR	PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-		# Generation of pixel masks from darks and flats
-		DARKMASK_PROCESS	STR	PPIMAGE_OBD
-		DARKMASK_RESID		STR	PPIMAGE_N
-		DARKMASK_VERIFY		STR	PPIMAGE_OBD
-		DARKMASK_STACK		STR	PPMERGE_DARKMASK
-		FLATMASK_PROCESS	STR	PPIMAGE_OBDSF
-		FLATMASK_RESID		STR	PPIMAGE_N
-		FLATMASK_VERIFY		STR	PPIMAGE_OBDSF
-		FLATMASK_STACK		STR	PPMERGE_FLATMASK
-		JPEG_BIN1_IMAGE_DARKMASK STR	PPIMAGE_J1_RESID_B
-		JPEG_BIN2_IMAGE_DARKMASK STR	PPIMAGE_J2_RESID_B
-		JPEG_BIN1_RESID_DARKMASK STR	PPIMAGE_J1_RESID_B
-		JPEG_BIN2_RESID_DARKMASK STR	PPIMAGE_J2_RESID_B
+FITSTYPES       STR     recipes/fitstypes.mdc
 
-		JPEG_BIN1_IMAGE_FLATMASK STR	PPIMAGE_J1_RESID_F
-		JPEG_BIN2_IMAGE_FLATMASK STR	PPIMAGE_J2_RESID_F
-		JPEG_BIN1_RESID_FLATMASK STR	PPIMAGE_J1_RESID_F
-		JPEG_BIN2_RESID_FLATMASK STR	PPIMAGE_J2_RESID_F
-
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
-
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-	# Processing raw data
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMP_POS	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMP_MASK		METADATA
-		BITPIX		S32	8
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMP_SUB	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES	STR	gpc1/filerules.mdc
+FILERULES	STR	recipes/filerules-split.mdc
 
 EXTNAME.RULES METADATA
Index: unk/ippconfig/gpc1/filerules.mdc
===================================================================
--- /trunk/ippconfig/gpc1/filerules.mdc	(revision 17522)
+++ 	(revision )
@@ -1,150 +1,0 @@
-PSASTRO.INPUT      STR PSASTRO.INPUT.CMF
-PSASTRO.OUTPUT     STR PSASTRO.OUT.CMF.SPL
-PSASTRO.OUTPUT.MEF STR PSASTRO.OUT.CMF.MEF
-PSPHOT.OUTPUT      STR PSPHOT.OUT.CMF.SPL
-
-### input file definitions
-TYPE                    INPUT    FILENAME.RULE                 DATA.LEVEL FILE.TYPE
-PPIMAGE.INPUT           INPUT    none.fits                     CHIP       IMAGE
-INPUT.MASK              INPUT    none.fits                     CHIP       MASK
-INPUT.WEIGHT            INPUT    none.fits                     CHIP       WEIGHT
-INPUT.PSF               INPUT    none.fits                     CHIP       PSF
-INPUT.SRC               INPUT    none.fits                     CHIP       CMF
-PPIMAGE.BIAS            INPUT    @DETDB                        CHIP       IMAGE
-PPIMAGE.DARK            INPUT    @DETDB                        CHIP       DARK
-PPIMAGE.SHUTTER         INPUT    @DETDB                        CHIP       IMAGE
-PPIMAGE.FLAT            INPUT    @DETDB                        CHIP       IMAGE
-PPIMAGE.MASK            INPUT    @DETDB                        CHIP       MASK
-
-## Files used by ppMerge
-PPMERGE.INPUT           INPUT    @FILES                        CHIP       IMAGE
-PPMERGE.INPUT.MASK      INPUT    @FILES                        CHIP       MASK
-PPMERGE.INPUT.WEIGHT    INPUT    @FILES                        CHIP       WEIGHT
-
-## files used by psphot
-PSPHOT.LOAD             INPUT    @FILES                        CHIP       IMAGE
-PSPHOT.INPUT            INPUT    @FILES                        CHIP       IMAGE
-PSPHOT.MASK             INPUT    @FILES                        CHIP       MASK     
-PSPHOT.WEIGHT           INPUT    @FILES                        CHIP       WEIGHT     
-PSPHOT.PSF.LOAD         INPUT    @FILES                        CHIP       PSF       
-PSPHOT.INPUT.CMF        INPUT    @FILES                        CHIP       CMF       
-
-PSWARP.INPUT            INPUT    none.fits                     CHIP       IMAGE
-PSWARP.WEIGHT           INPUT    none.fits                     CHIP       WEIGHT
-PSWARP.MASK             INPUT    none.fits                     CHIP       MASK
-PSWARP.SKYCELL          INPUT    none.fits                     FPA        IMAGE
-PSWARP.ASTROM           INPUT    none.fits                     CHIP       CMF
-
-PSASTRO.WCS             INPUT    none.fits                     CHIP       CMF
-PSASTRO.MODEL           INPUT    @DETDB                        FPA        ASTROM
-
-PSASTRO.INPUT.CMP       INPUT    none.fits                     CHIP       CMP
-PSASTRO.INPUT.CMF       INPUT    none.fits                     CHIP       CMF
-
-PPSUB.INPUT             INPUT    none.fits                     FPA        IMAGE
-PPSUB.INPUT.MASK        INPUT    none.fits                     FPA        MASK
-PPSUB.INPUT.WEIGHT      INPUT    none.fits                     FPA        WEIGHT
-PPSUB.REF               INPUT    none.fits                     FPA        IMAGE
-PPSUB.REF.MASK          INPUT    none.fits                     FPA        MASK
-PPSUB.REF.WEIGHT        INPUT    none.fits                     FPA        WEIGHT
-
-PPSTACK.INPUT           INPUT    @FILES                        FPA        IMAGE
-PPSTACK.INPUT.MASK      INPUT    @FILES                        FPA        MASK
-PPSTACK.INPUT.WEIGHT    INPUT    @FILES                        FPA        WEIGHT
-PPSTACK.SOURCES         INPUT    @FILES                        FPA        CMF
-
-PPSTAMP.INPUT           INPUT    none.fits                     CHIP       IMAGE
-
-PPARITH.INPUT.IMAGE     INPUT    none.fits                     CHIP       IMAGE
-PPARITH.INPUT.MASK      INPUT    none.fits                     CHIP       MASK
-
-### output file definitions
-TYPE                   OUTPUT FILENAME.RULE                     FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-PPIMAGE.OUTPUT         OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     COMP_POS   CHIP      TRUE      NONE
-PPIMAGE.OUTPUT.MASK    OUTPUT {OUTPUT}.{CHIP.NAME}.mk.fits      MASK      COMP_MASK  CHIP      TRUE      NONE
-PPIMAGE.OUTPUT.WEIGHT  OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits      WEIGHT    COMP_POS   CHIP      TRUE      NONE
-PPIMAGE.OUTPUT.DETMASK OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     COMP_MASK  CHIP      TRUE      NONE
-
-PPIMAGE.CHIP.RAW       OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits      IMAGE     COMP_POS   CHIP      TRUE      NONE
-# PPIMAGE.CHIP.MK      OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits      IMAGE     COMP_MASK  CHIP      TRUE      NONE
-PPIMAGE.CHIP           OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits      IMAGE     COMP_POS   CHIP      TRUE      NONE
-PPIMAGE.CHIP.MASK      OUTPUT {OUTPUT}.{CHIP.NAME}.ch.mk.fits   MASK      COMP_MASK  CHIP      TRUE      NONE
-PPIMAGE.CHIP.WEIGHT    OUTPUT {OUTPUT}.{CHIP.NAME}.ch.wt.fits   WEIGHT    COMP_POS   CHIP      TRUE      NONE
-
-PPIMAGE.OUTPUT.FPA1    OUTPUT {OUTPUT}.b1.fits                  IMAGE     NONE       FPA       TRUE      NONE
-PPIMAGE.OUTPUT.FPA2    OUTPUT {OUTPUT}.b2.fits                  IMAGE     NONE       FPA       TRUE      NONE
-
-PPIMAGE.JPEG1          OUTPUT {OUTPUT}.b1.jpg                   JPEG      NONE       FPA       TRUE      NONE
-PPIMAGE.JPEG2          OUTPUT {OUTPUT}.b2.jpg                   JPEG      NONE       FPA       TRUE      NONE
-PPIMAGE.BIN1           OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits      IMAGE     NONE       CHIP      TRUE      NONE
-PPIMAGE.BIN2           OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits      IMAGE     NONE       CHIP      TRUE      NONE
-
-PPIMAGE.STATS          OUTPUT {OUTPUT}.{CHIP.NAME}.stats        STATS     NONE       CHIP      TRUE      NONE
-
-PPMERGE.OUTPUT.MASK    OUTPUT {OUTPUT}.{CHIP.NAME}.fits         MASK      NONE       CHIP      TRUE      NONE
-PPMERGE.OUTPUT.BIAS    OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     NONE       CHIP      TRUE      NONE
-PPMERGE.OUTPUT.DARK    OUTPUT {OUTPUT}.{CHIP.NAME}.fits         DARK      NONE       CHIP      TRUE      NONE
-PPMERGE.OUTPUT.SHUTTER OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     NONE       CHIP      TRUE      NONE
-PPMERGE.OUTPUT.FLAT    OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     NONE       CHIP      TRUE      NONE
-PPMERGE.OUTPUT.FRINGE  OUTPUT {OUTPUT}.{CHIP.NAME}.fits         FRINGE    NONE       CHIP      TRUE      NONE
-PPMERGE.OUTPUT.SIGMA   OUTPUT {OUTPUT}.sigma.fits               IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.COUNT   OUTPUT {OUTPUT}.count.fits               IMAGE     NONE      CHIP       TRUE      NONE
-
-DVOCORR.OUTPUT         OUTPUT {OUTPUT}.{CHIP.NAME}.fc.fits      IMAGE     NONE       CHIP      TRUE      NONE
-DVOFLAT.OUTPUT         OUTPUT {OUTPUT}.{CHIP.NAME}.co.fits      IMAGE     NONE       CHIP      TRUE      NONE
-
-PSPHOT.RESID           OUTPUT {OUTPUT}.{CHIP.NAME}.res.fits     IMAGE     COMP_SUB   CHIP      TRUE      NONE
-PSPHOT.BACKGND         OUTPUT {OUTPUT}.{CHIP.NAME}.bck.fits     IMAGE     COMP_POS   CHIP      TRUE      NONE
-PSPHOT.BACKSUB         OUTPUT {OUTPUT}.{CHIP.NAME}.sub.fits     IMAGE     COMP_SUB   CHIP      TRUE      NONE
-PSPHOT.BACKMDL         OUTPUT {OUTPUT}.{CHIP.NAME}.mdl.fits     IMAGE     COMP_POS   CHIP      TRUE      NONE
-
-PSPHOT.OUTPUT.RAW      OUTPUT {OUTPUT}.{CHIP.NAME}              RAW       NONE       CHIP      TRUE      NONE
-PSPHOT.OUTPUT.SX       OUTPUT {OUTPUT}.{CHIP.NAME}.sx           SX        NONE       CHIP      TRUE      NONE
-PSPHOT.OUTPUT.OBJ      OUTPUT {OUTPUT}.{CHIP.NAME}.obj          OBJ       NONE       CHIP      TRUE      NONE
-PSPHOT.OUTPUT.CMP      OUTPUT {OUTPUT}.{CHIP.NAME}.cmp          CMP       NONE       CHIP      TRUE      NONE
-PSPHOT.OUT.CMF.SPL     OUTPUT {OUTPUT}.{CHIP.NAME}.cmf          CMF       NONE       CHIP      TRUE      NONE
-PSPHOT.OUT.CMF.MEF     OUTPUT {OUTPUT}.cmf                      CMF       NONE       FPA       TRUE      MEF
-
-PSPHOT.PSF.SAVE        OUTPUT {OUTPUT}.psf                      PSF       NONE       CHIP      TRUE      MEF
-
-SOURCE.PLOT.MOMENTS    OUTPUT {OUTPUT}.{CHIP.NAME}.mnt.png      KAPA      NONE       CHIP      TRUE      NONE
-SOURCE.PLOT.PSFMODEL   OUTPUT {OUTPUT}.{CHIP.NAME}.psf.png      KAPA      NONE       CHIP      TRUE      NONE
-SOURCE.PLOT.APRESID    OUTPUT {OUTPUT}.{CHIP.NAME}.dap.png      KAPA      NONE       CHIP      TRUE      NONE
-
-PSASTRO.OUTPUT.CMP     OUTPUT {OUTPUT}.{CHIP.NAME}.smp          CMP       NONE       CHIP      TRUE      NONE
-PSASTRO.OUT.CMF.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.smf          CMF       NONE       CHIP      TRUE      NONE
-PSASTRO.OUT.CMF.MEF    OUTPUT {OUTPUT}.smf                      CMF       NONE       FPA       TRUE      MEF
-PSASTRO.OUT.MODEL      OUTPUT {OUTPUT}.asm               ASTROM.MODEL     NONE       FPA       TRUE      NONE
-PSASTRO.OUT.REFSTARS   OUTPUT {OUTPUT}.aref.fits         ASTROM.REFSTARS  NONE       FPA       TRUE      NONE
-
-PSWARP.OUTPUT          OUTPUT {OUTPUT}.fits                     IMAGE     COMP_POS   FPA       TRUE      NONE
-PSWARP.OUTPUT.MASK     OUTPUT {OUTPUT}.mask.fits                MASK      COMP_MASK  FPA       TRUE      NONE
-PSWARP.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_POS   FPA       TRUE      NONE
-PSWARP.OUTPUT.SOURCES  OUTPUT {OUTPUT}.cmf                      CMF       NONE       FPA       TRUE      NONE
-PSWARP.BIN1            OUTPUT {OUTPUT}.b1.fits                  IMAGE     NONE       FPA       TRUE      NONE
-PSWARP.BIN2            OUTPUT {OUTPUT}.b2.fits                  IMAGE     NONE       FPA       TRUE      NONE
-
-SKYCELL.STATS          OUTPUT {OUTPUT}.stats                    STATS     NONE       FPA       TRUE      NONE
-SKYCELL.TEMPLATE       OUTPUT {OUTPUT}.skycell                  SKYCELL   NONE       FPA       TRUE      NONE
-
-PPSUB.OUTPUT           OUTPUT {OUTPUT}.fits                     IMAGE     COMP_SUB   FPA       TRUE      NONE
-PPSUB.OUTPUT.MASK      OUTPUT {OUTPUT}.mask.fits                MASK      COMP_MASK  FPA       TRUE      NONE
-PPSUB.OUTPUT.WEIGHT    OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_POS   FPA       TRUE      NONE
-
-PPSTACK.OUTPUT         OUTPUT {OUTPUT}.fits                     IMAGE     COMP_POS   FPA       TRUE      NONE
-PPSTACK.OUTPUT.MASK    OUTPUT {OUTPUT}.mask.fits                MASK      COMP_MASK  FPA       TRUE      NONE
-PPSTACK.OUTPUT.WEIGHT  OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_POS   FPA       TRUE      NONE
-
-PPSTAMP.OUTPUT         OUTPUT {OUTPUT}.fits                     IMAGE     NONE       FPA       TRUE      NONE
-PPSTAMP.CHIP           OUTPUT {OUTPUT}.ch.fits                  IMAGE     NONE      CHIP       FALSE     MEF
-
-PPSIM.OUTPUT           OUTPUT {OUTPUT}.fits                     IMAGE     NONE       FPA       TRUE      MEF
-
-PPARITH.OUTPUT.IMAGE   OUTPUT {OUTPUT}.fits                     IMAGE     COMP_POS  CHIP       TRUE      NONE
-PPARITH.OUTPUT.MASK    OUTPUT {OUTPUT}.fits                     MASK      COMP_MASK CHIP       TRUE      NONE
-
-LOG.IMFILE             OUTPUT {OUTPUT}.{CHIP.NAME}.log          TEXT      NONE       CHIP      TRUE      NONE
-LOG.EXP                OUTPUT {OUTPUT}.log                      TEXT      NONE       FPA       TRUE      NONE
-
-TRACE.IMFILE           OUTPUT {OUTPUT}.{CHIP.NAME}.trace        TEXT      NONE       CHIP      TRUE      NONE
-TRACE.EXP              OUTPUT {OUTPUT}.trace                    TEXT      NONE       FPA       TRUE      NONE
Index: /trunk/ippconfig/gpc1/psastro.config
===================================================================
--- /trunk/ippconfig/gpc1/psastro.config	(revision 17522)
+++ /trunk/ippconfig/gpc1/psastro.config	(revision 17523)
@@ -8,5 +8,5 @@
 # max grid offset in FP units (microns)
 # use plate-scale to make this in pixels?
-PSASTRO.GRID.OFFSET    F32    2500.
+PSASTRO.GRID.OFFSET    F32    8000.
 PSASTRO.GRID.SCALE     F32      50
 PSASTRO.GRID.NSTAR.MAX S32     800 # max stars accepted for fitting
@@ -16,5 +16,5 @@
 
 # extra field for ref stars:
-PSASTRO.FIELD.PADDING  F32     0.25
+PSASTRO.FIELD.PADDING  F32     0.25   # pad by this fraction of the full mosaic (may need to be larger for single chips)
 
 # 
Index: /trunk/ippconfig/gpc1/psphot.config
===================================================================
--- /trunk/ippconfig/gpc1/psphot.config	(revision 17522)
+++ /trunk/ippconfig/gpc1/psphot.config	(revision 17523)
@@ -38,4 +38,5 @@
 PSF_MAX_CHI          F32  50.0		 # reject objects worse that this
 APTREND.ORDER.MAX    S32  1
+MEASURE.APTREND      BOOL  FALSE  ### XXX for now, skip this (too many errors)
 
 BREAK_POINT STR ENSEMBLE
Index: /trunk/ippconfig/gpc1/pswarp.config
===================================================================
--- /trunk/ippconfig/gpc1/pswarp.config	(revision 17522)
+++ /trunk/ippconfig/gpc1/pswarp.config	(revision 17523)
@@ -1,1 +1,1 @@
-ASTROM.SOURCE		STR	PSASTRO.OUTPUT	# Source file rule for astrometry, or NULL
+ASTROM.SOURCE		STR	PSASTRO.OUTPUT.MEF	# Source file rule for astrometry, or NULL
Index: /trunk/ippconfig/isp/camera.config
===================================================================
--- /trunk/ippconfig/isp/camera.config	(revision 17522)
+++ /trunk/ippconfig/isp/camera.config	(revision 17523)
@@ -50,268 +50,10 @@
 END
 
-# Reduction classes
-REDUCTION	METADATA
-	# Detrend processing
-	DETREND		METADATA
-		BIAS_PROCESS	   STR	PPIMAGE_O
-		BIAS_RESID	   STR	PPIMAGE_B
-		BIAS_VERIFY	   STR	PPIMAGE_OB
-		BIAS_STACK	   STR	PPMERGE_BIAS
-		DARK_PROCESS	   STR	PPIMAGE_OB
-		DARK_RESID	   STR	PPIMAGE_D
-		DARK_VERIFY	   STR	PPIMAGE_OBD
-		DARK_STACK	   STR	PPMERGE_DARK
-		SHUTTER_PROCESS	   STR	PPIMAGE_OBD
-		SHUTTER_RESID	   STR	PPIMAGE_S
-		SHUTTER_VERIFY	   STR	PPIMAGE_OBDS
-		SHUTTER_STACK	   STR	PPMERGE_SHUTTER
-		FLAT_PROCESS	   STR	PPIMAGE_OBDS
-		FLAT_RESID	   STR	PPIMAGE_F
-		FLAT_VERIFY	   STR	PPIMAGE_OBDSF
-		FLAT_STACK	   STR	PPMERGE_FLAT
-		FRINGE_PROCESS	   STR	PPIMAGE_OBDSF
-		FRINGE_RESID	   STR	PPIMAGE_R
-		FRINGE_VERIFY	   STR	PPIMAGE_OBDSFR
-		FRINGE_STACK	   STR	PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
+FITSTYPES       STR     recipes/fitstypes.mdc
 
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-	# Processing raw data
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-	# Detrend Processing only for raw data
-	DETREND_ONLY		METADATA
-		CHIP		STR	PPIMAGE_DET_ONLY
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES METADATA
-   PSASTRO.INPUT       STR PSASTRO.INPUT.CMF
-   PSASTRO.OUTPUT      STR PSASTRO.OUTPUT.CMF
-   PSASTRO.OUTPUT.MEF  STR PSASTRO.OUTPUT.CMF
-   PSPHOT.OUTPUT       STR PSPHOT.OUTPUT.CMF
-
-   ### input file definitions
-   ### use @DETDB entries to get the detrend images from the database
-   ### replace @DETDB with @FILES if you want to require it from the 
-   ### command line, or with an explicit name to require a specific file
-   TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE 
-
-   ## files used by ppImage
-   PPIMAGE.INPUT      INPUT @FILES        FPA        IMAGE     
-   PPIMAGE.MASK       INPUT mask.fits     FPA        IMAGE     
-   PPIMAGE.BIAS       INPUT @DETDB        FPA        IMAGE     
-   PPIMAGE.DARK       INPUT @DETDB        FPA        DARK
-   PPIMAGE.FLAT       INPUT @DETDB        FPA        IMAGE     
-   PPIMAGE.FRINGE     INPUT @DETDB        FPA        FRINGE
-   PPIMAGE.SHUTTER    INPUT @DETDB        FPA        IMAGE     
-
-   ## Files used by ppMerge
-   PPMERGE.INPUT      INPUT @FILES        CHIP       IMAGE
-   PPMERGE.INPUT.MASK INPUT @FILES        CHIP       MASK
-   PPMERGE.INPUT.WEIGHT INPUT @FILES      CHIP       WEIGHT
-
-   ## files used to build and apply the flat-field correction images
-   DVOCORR.INPUT      INPUT @FILES        FPA        IMAGE
-   DVOCORR.REFHEAD    INPUT @FILES        FPA        HEADER
-   DVOFLAT.INPUT      INPUT @FILES        FPA        IMAGE
-   DVOFLAT.CORR       INPUT @DETDB        FPA        IMAGE
-
-   ## files used by psphot 
-   PSPHOT.LOAD        INPUT @FILES        FPA        IMAGE
-   PSPHOT.INPUT       INPUT @FILES        FPA        IMAGE     
-   PSPHOT.MASK        INPUT @FILES        FPA        MASK     
-   PSPHOT.WEIGHT      INPUT @FILES        FPA        WEIGHT     
-   PSPHOT.PSF.LOAD    INPUT @FILES        FPA        PSF       
-
-   ## files used by psastro 
-   PSASTRO.INPUT.CMP  INPUT @FILES        FPA        CMP       
-   PSASTRO.INPUT.CMF  INPUT @FILES        FPA        CMF       
-
-   ## files used by pswarp
-   PSWARP.INPUT       INPUT @FILES        FPA        IMAGE
-   PSWARP.WEIGHT      INPUT @FILES        FPA        WEIGHT
-   PSWARP.MASK        INPUT @FILES        FPA        MASK
-   PSWARP.SKYCELL     INPUT @FILES        FPA        IMAGE
-   PSWARP.ASTROM      INPUT @FILES        FPA        CMF
-
-   PPARITH.INPUT.IMAGE INPUT @FILES        CHIP       IMAGE
-   PPARITH.INPUT.MASK  INPUT @FILES        CHIP       MASK
-
-   ### output file definitions
-   TYPE                  OUTPUT  FILENAME.RULE        FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-   PPIMAGE.OUTPUT      	 OUTPUT  {OUTPUT}.isp.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.MASK 	 OUTPUT  {OUTPUT}.mask.fits   MASK      NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.WEIGHT OUTPUT  {OUTPUT}.wt.fits     WEIGHT    NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP 	 OUTPUT  {OUTPUT}.chip.fits   IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP.MASK 	 OUTPUT  {OUTPUT}.chip.mask.fits MASK   NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP.WEIGHT 	 OUTPUT  {OUTPUT}.chip.wt.fits WEIGHT   NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA1 	 OUTPUT  {OUTPUT}.b1.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA2 	 OUTPUT  {OUTPUT}.b2.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.STATS 	 OUTPUT  {OUTPUT}.stats       STATS     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.BIN1        	 OUTPUT  {OUTPUT}.b1c.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.BIN2        	 OUTPUT  {OUTPUT}.b2c.fits    IMAGE     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.JPEG1       	 OUTPUT  {OUTPUT}.b1.jpg      JPEG      NONE      FPA        TRUE      NONE
-   PPIMAGE.JPEG2       	 OUTPUT  {OUTPUT}.b2.jpg      JPEG      NONE      FPA        TRUE      NONE
-
-   PPMERGE.OUTPUT.MASK   OUTPUT {OUTPUT}.fits         MASK      NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.BIAS   OUTPUT {OUTPUT}.fits         IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.DARK   OUTPUT {OUTPUT}.fits         DARK      NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.SHUTTER OUTPUT {OUTPUT}.fits        IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.FLAT   OUTPUT {OUTPUT}.fits         IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.FRINGE OUTPUT {OUTPUT}.fits         FRINGE    NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.SIGMA  OUTPUT {OUTPUT}.sigma.fits   IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.COUNT  OUTPUT {OUTPUT}.count.fits   IMAGE     NONE      CHIP       TRUE      NONE
-
-   DVOCORR.OUTPUT    	 OUTPUT  {OUTPUT}.fc.fits     IMAGE     NONE      FPA        TRUE      NONE
-   DVOFLAT.OUTPUT    	 OUTPUT  {OUTPUT}.co.fits     IMAGE     NONE      FPA        TRUE      NONE
-
-   PSPHOT.RESID        	 OUTPUT  {OUTPUT}.res.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKGND      	 OUTPUT  {OUTPUT}.bck.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKSUB      	 OUTPUT  {OUTPUT}.sub.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKMDL      	 OUTPUT  {OUTPUT}.mdl.fits    IMAGE     NONE      FPA        TRUE      NONE
-
-   PSPHOT.OUTPUT.RAW   	 OUTPUT  {OUTPUT}             RAW       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.SX    	 OUTPUT  {OUTPUT}.sx          SX        NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.OBJ   	 OUTPUT  {OUTPUT}.obj         OBJ       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.CMP   	 OUTPUT  {OUTPUT}.cmp         CMP       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.CMF   	 OUTPUT  {OUTPUT}.cmf         CMF       NONE      FPA        TRUE      NONE
-
-   PSPHOT.PSF.SAVE     	 OUTPUT  {OUTPUT}.psf         PSF       NONE      FPA        TRUE      NONE
-
-   SOURCE.PLOT.MOMENTS   OUTPUT  {OUTPUT}.mnt.png     KAPA      NONE      FPA        TRUE      NONE
-   SOURCE.PLOT.PSFMODEL  OUTPUT  {OUTPUT}.psf.png     KAPA      NONE      FPA        TRUE      NONE
-   SOURCE.PLOT.APRESID   OUTPUT  {OUTPUT}.dap.png     KAPA      NONE      FPA        TRUE      NONE
-
-   PSASTRO.OUTPUT.CMP    OUTPUT  {OUTPUT}.smp         CMP       NONE      FPA        TRUE      NONE
-   PSASTRO.OUTPUT.CMF    OUTPUT  {OUTPUT}.smf         CMF       NONE      FPA        TRUE      NONE
-
-   PSWARP.OUTPUT         OUTPUT {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      NONE
-   PSWARP.OUTPUT.MASK    OUTPUT {OUTPUT}.mask.fits    MASK      NONE      FPA        TRUE      NONE
-   PSWARP.OUTPUT.WEIGHT  OUTPUT {OUTPUT}.wt.fits      WEIGHT    NONE      FPA        TRUE      NONE
-   PSWARP.BIN1           OUTPUT {OUTPUT}.b1.fits      IMAGE     NONE      FPA        TRUE      NONE
-   PSWARP.BIN2           OUTPUT {OUTPUT}.b2.fits      IMAGE     NONE      FPA        TRUE      NONE
-
-   SKYCELL.STATS         OUTPUT {OUTPUT}.stats        STATS     NONE      FPA        TRUE      NONE
-   SKYCELL.TEMPLATE      OUTPUT {OUTPUT}.skycell      SKYCELL   NONE      FPA        TRUE      NONE
-
-   PPSIM.OUTPUT          OUTPUT {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      ISP
-   PPSIM.SOURCES   	 OUTPUT {OUTPUT}.cmf          CMF       NONE      FPA        TRUE      NONE
-
-   PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits         IMAGE     NONE      CHIP       TRUE      NONE
-   PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits         MASK      NONE      CHIP       TRUE      NONE
-
-   LOG.IMFILE            OUTPUT {OUTPUT}.log          TEXT      NONE      FPA        TRUE      NONE
-   LOG.EXP               OUTPUT {OUTPUT}.log          TEXT      NONE      FPA        TRUE      NONE
-END
+FILERULES	STR	recipes/filerules-simple.mdc
 
 EXTNAME.RULES METADATA
Index: /trunk/ippconfig/lbc_red/Makefile.am
===================================================================
--- /trunk/ippconfig/lbc_red/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/lbc_red/Makefile.am	(revision 17523)
@@ -11,6 +11,5 @@
 	psastro.config \
 	psphot.config \
-	rejections.config \
-	filerules.mdc
+	rejections.config
 
 install_DATA = $(install_files)
Index: /trunk/ippconfig/lbc_red/camera.config
===================================================================
--- /trunk/ippconfig/lbc_red/camera.config	(revision 17522)
+++ /trunk/ippconfig/lbc_red/camera.config	(revision 17523)
@@ -50,115 +50,8 @@
 END
 
-REDUCTION	METADATA
-	DETREND		METADATA
-	# doesn't the following entry mean there should be a ppimage_o recipe in ppImage.config???
-		BIAS_PROCESS	STR	PPIMAGE_O
-		BIAS_RESID	STR	PPIMAGE_B
-		BIAS_VERIFY	STR	PPIMAGE_OB
-                BIAS_STACK      STR     PPMERGE_BIAS
-		DARK_PROCESS	STR	PPIMAGE_OB
-		DARK_RESID	STR	PPIMAGE_D
-		DARK_VERIFY	STR	PPIMAGE_OBD
-                DARK_STACK      STR     PPMERGE_DARK
-		SHUTTER_PROCESS	STR	PPIMAGE_OBD
-		SHUTTER_RESID	STR	PPIMAGE_S
-		SHUTTER_VERIFY	STR	PPIMAGE_OBDS
-                SHUTTER_STACK   STR     PPMERGE_SHUTTER
-		FLAT_PROCESS	STR	PPIMAGE_OBDS
-		FLAT_RESID	STR	PPIMAGE_F
-		FLAT_VERIFY	STR	PPIMAGE_OBDSF
-                FLAT_STACK      STR     PPMERGE_FLAT
-		FRINGE_PROCESS	STR	PPIMAGE_OBDSF
-		FRINGE_RESID	STR	PPIMAGE_R
-		FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
-                FRINGE_STACK    STR     PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-		# Generation of pixel masks from darks and flats
-		DARKMASK_PROCESS	STR	PPIMAGE_OBD
-		DARKMASK_RESID		STR	PPIMAGE_N
-		DARKMASK_VERIFY		STR	PPIMAGE_OBD
-		DARKMASK_STACK		STR	PPMERGE_MASK
-		FLATMASK_PROCESS	STR	PPIMAGE_OBDSF
-		FLATMASK_RESID		STR	PPIMAGE_N
-		FLATMASK_VERIFY		STR	PPIMAGE_OBDSF
-		FLATMASK_STACK		STR	PPMERGE_MASK
-		JPEG_BIN1_IMAGE_DARKMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_DARKMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_IMAGE_FLATMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_FLATMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_RESID_DARKMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_DARKMASK STR	PPIMAGE_J2_RESID_M
-		JPEG_BIN1_RESID_FLATMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_FLATMASK STR	PPIMAGE_J2_RESID_M
-
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
-
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-
-	# basic science analysis
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-        # photometry & astrometry for pre-detrended images
-	PROCESSED	METADATA
-		CHIP		STR	PPIMAGE_PA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-
-	END
-
-	# Detrend Processing only for raw data
-	DETREND_ONLY		METADATA
-		CHIP		STR	PPIMAGE_DET_ONLY
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-        TYPE            FITS    FLOAT	BITPIX  COMP     TILE.X  TILE.Y  TILE.Z  NOISE   HSCALE  HSMOOTH
-        DET_IMAGE       FITS    NONE	-32     RICE     0       1       1       16      0       0
-        DET_MASK        FITS    NONE	8       PLIO     0       1       1       0       0       0
-        DET_WEIGHT      FITS    NONE	-32     RICE     0       1       1       16      0       0
-        SKY_IMAGE       FITS    NONE	-32     RICE     0       1       1       16      0       0
-        SKY_MASK        FITS    NONE	8       PLIO     0       1       1       0       0       0
-        SKY_WEIGHT      FITS    NONE	-32     RICE     0       1       1       16      0       0
-END
+FITSTYPES       STR     recipes/fitstypes.mdc
 
 FILERULES	STR	lbc_red/filerules.mdc	# File rules
Index: /trunk/ippconfig/mcshort/camera.config
===================================================================
--- /trunk/ippconfig/mcshort/camera.config	(revision 17522)
+++ /trunk/ippconfig/mcshort/camera.config	(revision 17523)
@@ -96,133 +96,8 @@
 
 
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
+FITSTYPES       STR     recipes/fitstypes.mdc
+FILERULES       STR     recipes/filerules-mef.mdc
 
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES METADATA
-   ### Redirections
-   PSASTRO.INPUT      STR PSASTRO.INPUT.CMP
-   PSASTRO.OUTPUT     STR PSASTRO.OUTPUT.CMP
-   PSPHOT.OUTPUT      STR PSPHOT.OUTPUT.CMF
-
-   ### input file definitions
-   TYPE               INPUT FILENAME.RULE                 DATA.LEVEL FILE.TYPE
-   PPIMAGE.INPUT      INPUT @FILES                        CHIP       IMAGE
-
-   ### use these entries to get the detrend images from specific files
-   PPIMAGE.MASK       INPUT mcshort/mask.{CHIP.NAME}.fits                            CHIP       MASK
-   PPIMAGE.BIAS       INPUT path://somewhere/MCSHORT.bias.norm.1.2.{CHIP.NAME}.fits  CHIP       IMAGE
-   PPIMAGE.DARK       INPUT path://somewhere/MCSHORT.dark.norm.2.1.{CHIP.NAME}.fits  CHIP       IMAGE
-   PPIMAGE.FLAT       INPUT path://somewhere/MCSHORT.flat.norm.3.1.{CHIP.NAME}.fits  CHIP       IMAGE
-   PPIMAGE.FRINGE     INPUT path://somewhere/fringe.fits	                     CHIP       FRINGE
-
-   ### use these entries to get the detrend images from the database
-   #PPIMAGE.MASK       INPUT @DETDB                       CHIP       IMAGE
-   #PPIMAGE.BIAS       INPUT @DETDB                       CHIP       IMAGE
-   #PPIMAGE.DARK       INPUT @DETDB                       CHIP       IMAGE
-   #PPIMAGE.FLAT       INPUT @DETDB                       CHIP       IMAGE
-
-   PSPHOT.INPUT        INPUT @FILES                       CHIP       IMAGE
-
-   PSASTRO.INPUT.CMP   INPUT @FILES                       CHIP       CMP
-   PSASTRO.INPUT.CMF   INPUT @FILES                       CHIP       CMF
-
-   ### output file definitions
-   TYPE                OUTPUT FILENAME.RULE                  DATA.LEVEL FILE.TYPE FILE.SAVE FILE.FORMAT
-#   PPIMAGE.OUTPUT      OUTPUT {OUTPUT}.{CHIP.NAME}.fits     CHIP       IMAGE     TRUE      NONE
-   PPIMAGE.OUTPUT      OUTPUT {OUTPUT}.fits                  CHIP       IMAGE     TRUE      SPLICED
-   PPIMAGE.OUTPUT.MASK OUTPUT {OUTPUT}.{CHIP.NAME}.mask.fits CHIP       MASK      FALSE     NONE
-   PPIMAGE.OUTPUT.WEIGHT OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits CHIP       WEIGHT    FALSE     NONE
-   PPIMAGE.BIN1        OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits   CHIP       IMAGE     TRUE      NONE
-   PPIMAGE.BIN2        OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits   CHIP       IMAGE     TRUE      NONE
-
-   PPIMAGE.OUTPUT.CHIP OUTPUT {OUTPUT}.{CHIP.NAME}.chip.fits CHIP       IMAGE     TRUE      NONE
-   PPIMAGE.OUTPUT.FPA1 OUTPUT {OUTPUT}.b1.fits               FPA        IMAGE     TRUE      NONE
-   PPIMAGE.OUTPUT.FPA2 OUTPUT {OUTPUT}.b2.fits               FPA        IMAGE     TRUE      NONE
-
-   PPIMAGE.JPEG1       OUTPUT {OUTPUT}.b1.jpg                FPA        JPEG      TRUE      NONE
-   PPIMAGE.JPEG2       OUTPUT {OUTPUT}.b2.jpg                FPA        JPEG      TRUE      NONE
-
-   PSPHOT.RESID        OUTPUT {OUTPUT}.res.fits              CHIP       IMAGE     TRUE      SPLICED
-   PSPHOT.BACKGND      OUTPUT {OUTPUT}.bck.fits              CHIP       IMAGE     TRUE      SPLICED
-   PSPHOT.BACKSUB      OUTPUT {OUTPUT}.sub.fits              CHIP       IMAGE     TRUE      SPLICED
-   PSPHOT.BACKMDL      OUTPUT {OUTPUT}.mdl.fits              CHIP       IMAGE     TRUE      SPLICED
-
-   PSPHOT.OUTPUT.RAW   OUTPUT {OUTPUT}.{CHIP.NAME}           CHIP       RAW       TRUE      NONE
-   PSPHOT.OUTPUT.SX    OUTPUT {OUTPUT}.sx                    CHIP       SX        TRUE      NONE
-   PSPHOT.OUTPUT.OBJ   OUTPUT {OUTPUT}.obj                   CHIP       OBJ       TRUE      NONE
-   PSPHOT.OUTPUT.CMF   OUTPUT {OUTPUT}.cmf                   CHIP       CMF       TRUE      NONE
-   PSPHOT.OUTPUT.CMP   OUTPUT {OUTPUT}.{CHIP.NAME}.cmp       CHIP       CMP       TRUE      NONE
-
-   PSASTRO.OUTPUT.CMP  OUTPUT {OUTPUT}.{CHIP.NAME}.smp       CHIP       CMP       TRUE      NONE
-
-END
Index: /trunk/ippconfig/megacam/Makefile.am
===================================================================
--- /trunk/ippconfig/megacam/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/megacam/Makefile.am	(revision 17523)
@@ -16,6 +16,5 @@
 	psphot.config \
 	pswarp.config \
-	rejections.config \
-	filerules-mef.mdc
+	rejections.config
 
 install_DATA = $(install_files)
Index: /trunk/ippconfig/megacam/camera.config
===================================================================
--- /trunk/ippconfig/megacam/camera.config	(revision 17522)
+++ /trunk/ippconfig/megacam/camera.config	(revision 17523)
@@ -122,195 +122,10 @@
 END
 
-REDUCTION	METADATA
-	DETREND		METADATA
-		BIAS_PROCESS	STR	PPIMAGE_O
-		BIAS_RESID	STR	PPIMAGE_B
-		BIAS_VERIFY	STR	PPIMAGE_OB
-                BIAS_STACK      STR     PPMERGE_BIAS
-		DARK_PROCESS	STR	PPIMAGE_OB
-		DARK_RESID	STR	PPIMAGE_D
-		DARK_VERIFY	STR	PPIMAGE_OBD
-                DARK_STACK      STR     PPMERGE_DARK
-		SHUTTER_PROCESS	STR	PPIMAGE_OBD
-		SHUTTER_RESID	STR	PPIMAGE_S
-		SHUTTER_VERIFY	STR	PPIMAGE_OBDS
-                SHUTTER_STACK   STR     PPMERGE_SHUTTER
-		FLAT_PROCESS	STR	PPIMAGE_OBDS
-		FLAT_RESID	STR	PPIMAGE_F
-		FLAT_VERIFY	STR	PPIMAGE_OBDSF
-                FLAT_STACK      STR     PPMERGE_FLAT
-		FRINGE_PROCESS	STR	PPIMAGE_OBDSF
-		FRINGE_RESID	STR	PPIMAGE_R
-		FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
-                FRINGE_STACK    STR     PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-		# Generation of pixel masks from darks and flats
-		DARKMASK_PROCESS	STR	PPIMAGE_OBD
-		DARKMASK_RESID		STR	PPIMAGE_N
-		DARKMASK_VERIFY		STR	PPIMAGE_OBD
-		DARKMASK_STACK		STR	PPMERGE_DARKMASK
-		FLATMASK_PROCESS	STR	PPIMAGE_OBDSF
-		FLATMASK_RESID		STR	PPIMAGE_N
-		FLATMASK_VERIFY		STR	PPIMAGE_OBDSF
-		FLATMASK_STACK		STR	PPMERGE_FLATMASK
-		JPEG_BIN1_IMAGE_DARKMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_DARKMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_IMAGE_FLATMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_FLATMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_RESID_DARKMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_DARKMASK STR	PPIMAGE_J2_RESID_M
-		JPEG_BIN1_RESID_FLATMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_FLATMASK STR	PPIMAGE_J2_RESID_M
+FITSTYPES       STR     recipes/fitstypes.mdc
 
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
-
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-
-	# basic science analysis
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-        # photometry & astrometry for pre-detrended images
-	PROCESSED	METADATA
-		CHIP		STR	PPIMAGE_PA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-	# Detrend Processing only for raw data
-	DETREND_ONLY		METADATA
-		CHIP		STR	PPIMAGE_DET_ONLY
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-	# Detrend Processing only for raw data
-	MASKPHOT		METADATA
-		CHIP		STR	PPIMAGE_MASKPHOT
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	# Compressed positive image
-	COMP_IMG	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	# Compressed mask
-	COMP_MASK	METADATA
-		BITPIX		S32	8
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	# Compressed weight image
-	COMP_WT		METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	# Compressed subtraction image
-	COMP_SUB	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES	STR	megacam/filerules-mef.mdc		# File rules appropriate for MEF format
+FILERULES	STR	recipes/filerules-mef.mdc		# File rules appropriate for MEF format
 
 EXTNAME.RULES METADATA
Index: unk/ippconfig/megacam/filerules-mef.mdc
===================================================================
--- /trunk/ippconfig/megacam/filerules-mef.mdc	(revision 17522)
+++ 	(revision )
@@ -1,195 +1,0 @@
-### File rules for PHU=FPA, EXT=CHIP
-
-### Redirections
-PPIMAGE.OUTPUT        STR PPIMAGE.OUTPUT.MEF
-PPIMAGE.OUTPUT.MASK   STR PPIMAGE.OUT.MK.MEF
-PPIMAGE.OUTPUT.WEIGHT STR PPIMAGE.OUT.WT.MEF
-
-PPIMAGE.CHIP          STR PPIMAGE.CHIP.MEF
-PPIMAGE.CHIP.MASK     STR PPIMAGE.CHIP.MK.MEF
-PPIMAGE.CHIP.WEIGHT   STR PPIMAGE.CHIP.WT.MEF
-
-PPIMAGE.OUTPUT.FPA1   STR PPIMAGE.OUTPUT.FPA1.MEF
-PPIMAGE.OUTPUT.FPA2   STR PPIMAGE.OUTPUT.FPA2.MEF
-PPIMAGE.BIN1          STR PPIMAGE.BIN1.MEF
-PPIMAGE.BIN2          STR PPIMAGE.BIN2.MEF
-
-PPSTAMP.CHIP          STR PPSTAMP.CHIP.MEF
-
-PSASTRO.INPUT         STR PSASTRO.INPUT.CMF
-PSASTRO.OUTPUT        STR PSASTRO.OUT.CMF.MEF
-PSASTRO.OUTPUT.MEF    STR PSASTRO.OUT.CMF.MEF
-PSPHOT.OUTPUT         STR PSPHOT.OUT.CMF.MEF
-
-DVOCORR.OUTPUT        STR DVOCORR.MEF.OUTPUT
-DVOFLAT.OUTPUT        STR DVOFLAT.MEF.OUTPUT
-
-### input file definitions
-### use @DETDB entries to get the detrend images from the database
-### replace @DETDB with @FILES if you want to require it from the 
-### command line, or with an explicit name to require a specific file
-TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE
-
-## files used by ppImage
-PPIMAGE.INPUT      INPUT @FILES        CHIP       IMAGE
-PPIMAGE.MASK       INPUT @DETDB        CHIP       MASK
-PPIMAGE.BIAS       INPUT @DETDB        CHIP       IMAGE
-PPIMAGE.DARK       INPUT @DETDB        CHIP       DARK
-PPIMAGE.FLAT       INPUT @DETDB        CHIP       IMAGE
-PPIMAGE.FRINGE     INPUT @DETDB        CHIP       FRINGE
-PPIMAGE.SHUTTER    INPUT @DETDB        CHIP       IMAGE     
-
-## Files used by ppMerge
-PPMERGE.INPUT      INPUT @FILES        CHIP       IMAGE
-PPMERGE.INPUT.MASK INPUT @FILES        CHIP       MASK
-PPMERGE.INPUT.WEIGHT INPUT @FILES      CHIP       WEIGHT
-
-## files used to build and apply the flat-field correction images
-DVOCORR.INPUT      INPUT @FILES        CHIP       IMAGE
-DVOCORR.REFHEAD    INPUT @FILES        CHIP       HEADER
-DVOFLAT.INPUT      INPUT @FILES        CHIP       IMAGE
-DVOFLAT.CORR       INPUT @DETDB        CHIP       IMAGE
-
-## files used by psphot 
-PSPHOT.LOAD        INPUT @FILES        CHIP       IMAGE
-PSPHOT.INPUT       INPUT @FILES        CHIP       IMAGE
-PSPHOT.MASK        INPUT @FILES        CHIP       MASK     
-PSPHOT.WEIGHT      INPUT @FILES        CHIP       WEIGHT     
-PSPHOT.PSF.LOAD    INPUT @FILES        CHIP       PSF       
-PSPHOT.INPUT.CMF   INPUT @FILES        CHIP       CMF       
-
-## files used by psastro 
-PSASTRO.WCS        INPUT none.fits     CHIP       CMF
-PSASTRO.MODEL      INPUT @DETDB        FPA        ASTROM
-PSASTRO.INPUT.CMP  INPUT @FILES        CHIP       CMP
-PSASTRO.INPUT.CMF  INPUT @FILES        CHIP       CMF
-
-## files used by pswarp
-PSWARP.INPUT       INPUT @FILES        CHIP       IMAGE
-PSWARP.WEIGHT      INPUT @FILES        CHIP       WEIGHT
-PSWARP.MASK        INPUT @FILES        CHIP       MASK
-PSWARP.SKYCELL     INPUT @FILES        CHIP       IMAGE
-PSWARP.ASTROM      INPUT @FILES        CHIP       CMF
-
-PPSUB.INPUT        INPUT @FILES        FPA        IMAGE
-PPSUB.INPUT.MASK   INPUT @FILES        FPA        MASK
-PPSUB.INPUT.WEIGHT INPUT @FILES        FPA        WEIGHT
-PPSUB.REF          INPUT @FILES        FPA        IMAGE
-PPSUB.REF.MASK     INPUT @FILES        FPA        MASK
-PPSUB.REF.WEIGHT   INPUT @FILES        FPA        WEIGHT
-PPSUB.SOURCES      INPUT @FILES        FPA        CMF
-
-PPSTACK.INPUT      INPUT @FILES        FPA        IMAGE
-PPSTACK.INPUT.MASK INPUT @FILES        FPA        MASK
-PPSTACK.INPUT.WEIGHT INPUT @FILES      FPA        WEIGHT
-PPSTACK.INPUT.PSF  INPUT @FILES        CHIP       PSF
-PPSTACK.SOURCES    INPUT @FILES        FPA        CMF
-
-PPSTAMP.INPUT      INPUT @FILES        CHIP       IMAGE
-
-PPARITH.INPUT.IMAGE INPUT @FILES       CHIP       IMAGE
-PPARITH.INPUT.MASK  INPUT @FILES       CHIP       MASK
-
-### output file definitions
-TYPE                  OUTPUT FILENAME.RULE                    FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-PPIMAGE.OUTPUT.MEF    OUTPUT {OUTPUT}.b0.fits                 IMAGE     NONE      CHIP       TRUE      MEF
-PPIMAGE.OUT.MK.MEF    OUTPUT {OUTPUT}.mk.fits                 MASK      NONE      CHIP       TRUE      MEF
-PPIMAGE.OUT.WT.MEF    OUTPUT {OUTPUT}.wt.fits                 WEIGHT    NONE      CHIP       TRUE      MEF
-PPIMAGE.OUTPUT.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.b0.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUT.MK.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.mk.fits     MASK      NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUT.WT.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits     WEIGHT    NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUTPUT.DETMASK OUTPUT {OUTPUT}.fits                   IMAGE     MASK      CHIP       TRUE      MEF
-
-PPIMAGE.CHIP.MEF      OUTPUT {OUTPUT}.ch.fits                 IMAGE     NONE      CHIP       TRUE      MEF
-PPIMAGE.CHIP.MK.MEF   OUTPUT {OUTPUT}.ch.mk.fits              MASK      NONE      CHIP       TRUE      MEF
-PPIMAGE.CHIP.WT.MEF   OUTPUT {OUTPUT}.ch.wt.fits              WEIGHT    NONE      CHIP       TRUE      MEF
-PPIMAGE.CHIP.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.MK.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.ch.mk.fits  MASK      NONE      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.WT.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.ch.wt.fits  WEIGHT    NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.OUTPUT.FPA1.MEF OUTPUT {OUTPUT}.b1.fits               IMAGE     NONE      FPA        TRUE      MEF
-PPIMAGE.OUTPUT.FPA2.MEF OUTPUT {OUTPUT}.b2.fits               IMAGE     NONE      FPA        TRUE      MEF
-PPIMAGE.OUTPUT.FPA1.SPL OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits   IMAGE     NONE      FPA        TRUE      SPLIT
-PPIMAGE.OUTPUT.FPA2.SPL OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits   IMAGE     NONE      FPA        TRUE      SPLIT
-
-PPIMAGE.STATS         OUTPUT {OUTPUT}.stats                   STATS     NONE      FPA        TRUE      MEF
-
-PPIMAGE.BIN1.MEF      OUTPUT {OUTPUT}.b1c.fits                IMAGE     NONE  CHIP       TRUE      MEF
-PPIMAGE.BIN2.MEF      OUTPUT {OUTPUT}.b2c.fits                IMAGE     NONE  CHIP       TRUE      MEF
-PPIMAGE.BIN1.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits     IMAGE     NONE  CHIP       TRUE      SPLIT
-PPIMAGE.BIN2.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits     IMAGE     NONE  CHIP       TRUE      SPLIT
-
-PPIMAGE.JPEG1         OUTPUT {OUTPUT}.b1.jpg                  JPEG      NONE      FPA        TRUE      NONE
-PPIMAGE.JPEG2         OUTPUT {OUTPUT}.b2.jpg                  JPEG      NONE      FPA        TRUE      NONE
-
-PPMERGE.OUTPUT.MASK   OUTPUT {OUTPUT}.fits                    MASK      NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.BIAS   OUTPUT {OUTPUT}.fits                    IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.DARK   OUTPUT {OUTPUT}.fits                    DARK      NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.SHUTTER OUTPUT {OUTPUT}.fits                   IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.FLAT   OUTPUT {OUTPUT}.fits                    IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.FRINGE OUTPUT {OUTPUT}.fits                    FRINGE    NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.SIGMA  OUTPUT {OUTPUT}.sigma.fits              IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.COUNT  OUTPUT {OUTPUT}.count.fits              IMAGE     NONE      CHIP       TRUE      NONE
-
-DVOCORR.MEF.OUTPUT    OUTPUT {OUTPUT}.fc.fits                 IMAGE     NONE      CHIP       TRUE      MEF
-DVOCORR.SPL.OUTPUT    OUTPUT {OUTPUT}.{CHIP.NAME}.fc.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-DVOFLAT.MEF.OUTPUT    OUTPUT {OUTPUT}.co.fits                 IMAGE     NONE      CHIP       TRUE      MEF
-DVOFLAT.SPL.OUTPUT    OUTPUT {OUTPUT}.{CHIP.NAME}.co.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-
-PSPHOT.RESID          OUTPUT {OUTPUT}.res.fits                IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKGND        OUTPUT {OUTPUT}.bck.fits                IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKSUB        OUTPUT {OUTPUT}.sub.fits                IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKMDL        OUTPUT {OUTPUT}.mdl.fits                IMAGE     NONE      CHIP       FALSE     MEF
-
-PSPHOT.OUTPUT.RAW     OUTPUT {OUTPUT}.{CHIP.NAME}             RAW       NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.SX      OUTPUT {OUTPUT}.{CHIP.NAME}.sx          SX        NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.OBJ     OUTPUT {OUTPUT}.{CHIP.NAME}.obj         OBJ       NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.CMP     OUTPUT {OUTPUT}.{CHIP.NAME}.cmp         CMP       NONE      CHIP       TRUE      NONE
-PSPHOT.OUT.CMF.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.cmf         CMF       NONE      CHIP       TRUE      SPLIT
-PSPHOT.OUT.CMF.MEF    OUTPUT {OUTPUT}.cmf                     CMF       NONE      CHIP       TRUE      MEF
-
-PSPHOT.PSF.SAVE       OUTPUT {OUTPUT}.psf                     PSF       NONE      CHIP       TRUE      MEF
-
-SOURCE.PLOT.MOMENTS   OUTPUT {OUTPUT}.mnt.png                 KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.PSFMODEL  OUTPUT {OUTPUT}.psf.png                 KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.APRESID   OUTPUT {OUTPUT}.dap.png                 KAPA      NONE      FPA        TRUE      NONE
-
-PSASTRO.OUTPUT.CMP    OUTPUT {OUTPUT}.{CHIP.NAME}.smp         CMP       NONE      CHIP       TRUE      NONE
-PSASTRO.OUT.CMF.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.smf         CMF       NONE      CHIP       TRUE      SPLIT
-PSASTRO.OUT.CMF.MEF   OUTPUT {OUTPUT}.smf                     CMF       NONE      FPA        TRUE      MEF
-PSASTRO.OUT.MODEL     OUTPUT {OUTPUT}.asm              ASTROM.MODEL     NONE      FPA        TRUE      NONE
-PSASTRO.OUT.REFSTARS  OUTPUT {OUTPUT}.aref.fits        ASTROM.REFSTARS  NONE      FPA        TRUE      NONE
-
-PSWARP.OUTPUT         OUTPUT {OUTPUT}.fits                    IMAGE     NONE     FPA        TRUE      NONE
-PSWARP.OUTPUT.MASK    OUTPUT {OUTPUT}.mk.fits                 MASK      NONE     FPA        TRUE      NONE
-PSWARP.OUTPUT.WEIGHT  OUTPUT {OUTPUT}.wt.fits                 WEIGHT    NONE     FPA        TRUE      NONE
-PSWARP.OUTPUT.SOURCES OUTPUT {OUTPUT}.cmf                     CMF       NONE     FPA        TRUE      NONE
-PSWARP.BIN1           OUTPUT {OUTPUT}.b1.fits                 IMAGE     NONE     FPA        TRUE      NONE
-PSWARP.BIN2           OUTPUT {OUTPUT}.b2.fits                 IMAGE     NONE     FPA        TRUE      NONE
-
-SKYCELL.STATS         OUTPUT {OUTPUT}.stats                   STATS     NONE      FPA        TRUE      NONE
-SKYCELL.TEMPLATE      OUTPUT {OUTPUT}.skycell                 SKYCELL   NONE      FPA        TRUE      NONE
-
-PPSUB.OUTPUT          OUTPUT {OUTPUT}.fits                    IMAGE     NONE      FPA        TRUE      NONE
-PPSUB.OUTPUT.MASK     OUTPUT {OUTPUT}.mk.fits                 MASK      NONE      FPA        TRUE      NONE
-PPSUB.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.wt.fits                 WEIGHT    NONE      FPA        TRUE      NONE
-
-PPSTACK.OUTPUT        OUTPUT {OUTPUT}.fits                    IMAGE     NONE      FPA        TRUE      NONE
-PPSTACK.OUTPUT.MASK   OUTPUT {OUTPUT}.mk.fits                 MASK      NONE      FPA        TRUE      NONE
-PPSTACK.OUTPUT.WEIGHT OUTPUT {OUTPUT}.wt.fits                 WEIGHT    NONE      FPA        TRUE      NONE
-
-PPSTAMP.OUTPUT        OUTPUT {OUTPUT}.fits                    IMAGE     NONE      FPA        TRUE      NONE
-PPSTAMP.CHIP.MEF      OUTPUT {OUTPUT}.ch.fits                 IMAGE     NONE      CHIP       FALSE     MEF
-
-PPSIM.OUTPUT.MEF      OUTPUT {OUTPUT}.fits                    IMAGE     NONE      CHIP       TRUE      MEF
-PPSIM.OUTPUT.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.fits        IMAGE     NONE      CHIP       TRUE      SPLIT
-PPSIM.SOURCES         OUTPUT {OUTPUT}.cmf                     CMF       NONE      FPA        TRUE      MEF
-
-PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits                    IMAGE     NONE  CHIP       TRUE      NONE
-PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits                    MASK      MASK CHIP       TRUE      NONE
-
-LOG.IMFILE            OUTPUT {OUTPUT}.{CHIP.NAME}.log         TEXT      NONE      CHIP       TRUE      NONE
-LOG.EXP               OUTPUT {OUTPUT}.log                     TEXT      NONE      FPA        TRUE      NONE
-
-TRACE.IMFILE          OUTPUT {OUTPUT}.{CHIP.NAME}.trace       TEXT      NONE      CHIP       TRUE      NONE
-TRACE.EXP             OUTPUT {OUTPUT}.trace                   TEXT      NONE      FPA        TRUE      NONE
Index: /trunk/ippconfig/mosaic2/Makefile.am
===================================================================
--- /trunk/ippconfig/mosaic2/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/mosaic2/Makefile.am	(revision 17523)
@@ -6,5 +6,4 @@
 	dvo.layout \
 	camera.config \
-        filerules-mef.mdc \
 	format.config \
 	ppImage.config \
Index: /trunk/ippconfig/mosaic2/camera.config
===================================================================
--- /trunk/ippconfig/mosaic2/camera.config	(revision 17522)
+++ /trunk/ippconfig/mosaic2/camera.config	(revision 17523)
@@ -76,191 +76,10 @@
 
 # Reduction classes
-REDUCTION	METADATA
-	# Detrend processing
-	DETREND		METADATA
-		BIAS_PROCESS	STR	PPIMAGE_O
-		BIAS_RESID	STR	PPIMAGE_B
-		BIAS_VERIFY	STR	PPIMAGE_OB
-		BIAS_STACK	STR	PPMERGE_BIAS
-		DARK_PROCESS	STR	PPIMAGE_OB
-		DARK_RESID	STR	PPIMAGE_D
-		DARK_VERIFY	STR	PPIMAGE_OBD
-		DARK_STACK	STR	PPMERGE_DARK
-		SHUTTER_PROCESS	STR	PPIMAGE_OBD
-		SHUTTER_RESID	STR	PPIMAGE_S
-		SHUTTER_VERIFY	STR	PPIMAGE_OBDS
-		SHUTTER_STACK	STR	PPMERGE_SHUTTER
-		FLAT_PROCESS	STR	PPIMAGE_OBDS
-		FLAT_RESID	STR	PPIMAGE_F
-		FLAT_VERIFY	STR	PPIMAGE_OBDSF
-		FLAT_STACK	STR	PPMERGE_FLAT
-		FRINGE_PROCESS	STR	PPIMAGE_OBDSF
-		FRINGE_RESID	STR	PPIMAGE_R
-		FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
-		FRINGE_STACK	STR	PPMERGE_FRINGE
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-		# Generation of pixel masks from darks and flats
-		DARKMASK_PROCESS	STR	PPIMAGE_OBD
-		DARKMASK_RESID		STR	PPIMAGE_N
-		DARKMASK_VERIFY		STR	PPIMAGE_OBD
-		DARKMASK_STACK		STR	PPMERGE_DARKMASK
-		FLATMASK_PROCESS	STR	PPIMAGE_OBDSF
-		FLATMASK_RESID		STR	PPIMAGE_N
-		FLATMASK_VERIFY		STR	PPIMAGE_OBDSF
-		FLATMASK_STACK		STR	PPMERGE_FLATMASK
-		JPEG_BIN1_IMAGE_DARKMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_DARKMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_IMAGE_FLATMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_FLATMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_RESID_DARKMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_DARKMASK STR	PPIMAGE_J2_RESID_M
-		JPEG_BIN1_RESID_FLATMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_FLATMASK STR	PPIMAGE_J2_RESID_M
+FITSTYPES       STR     recipes/fitstypes.mdc
 
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
-
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-	# Processing raw data
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-       # photometry & astrometry for pre-detrended images
-	PROCESSED	METADATA
-		CHIP		STR	PPIMAGE_PA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-	# Detrend Processing only for raw data
-	DETREND_ONLY		METADATA
-		CHIP		STR	PPIMAGE_DET_ONLY
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-	# Just apply a mask and do photometry
-	MASKPHOT		METADATA
-		CHIP		STR	PPIMAGE_MASKPHOT
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-
-END
-
-FITS    METADATA
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-        DET_IMAGE       METADATA
-                BITPIX          S32     -32
-        END
-        DET_MASK        METADATA
-                BITPIX          S32     8
-        END
-        DET_WEIGHT      METADATA
-                BITPIX          S32     -32
-        END
-
-        SKY_IMAGE       METADATA
-                BITPIX          S32     -32
-        END
-        SKY_MASK        METADATA
-                BITPIX          S32     8
-        END
-        SKY_WEIGHT      METADATA
-                BITPIX          S32     -32
-        END
-
-        # Compressed positive image
-        COMP_IMG        METADATA
-               BITPIX          S32     16
-               SCALING         STR     STDEV_POSITIVE
-               STDEV.BITS      S32     4
-               STDEV.NUM       F32     10
-               COMPRESSION     STR     RICE
-               TILE.X          S32     0
-               TILE.Y          S32     1
-               TILE.Z          S32     1
-               NOISE           S32     8
-        END
-        # Compressed mask
-        COMP_MASK       METADATA
-               BITPIX          S32     8
-               COMPRESSION     STR     PLIO
-               TILE.X          S32     0
-               TILE.Y          S32     1
-               TILE.Z          S32     1
-               NOISE           S32     8
-        END
-        # Compressed weight image
-        COMP_WT         METADATA
-               BITPIX          S32     16
-               SCALING         STR     STDEV_POSITIVE
-               STDEV.BITS      S32     4
-               STDEV.NUM       F32     10
-               COMPRESSION     STR     RICE
-               TILE.X          S32     0
-               TILE.Y          S32     1
-               TILE.Z          S32     1
-               NOISE           S32     8
-        END
-        # Compressed subtraction image
-        COMP_SUB        METADATA
-               BITPIX          S32     16
-               SCALING         STR     STDEV_BOTH
-               STDEV.BITS      S32     4
-               STDEV.NUM       F32     5
-               COMPRESSION     STR     RICE
-               TILE.X          S32     0
-               TILE.Y          S32     1
-               TILE.Z          S32     1
-               NOISE           S32     8
-        END
-
-END
-
-# Set file rules appropriate for mef format in separate file
-# (this is SR's local copy)
-FILERULES   STR   mosaic2/filerules-mef.mdc 
+# Set file rules appropriate for mef format (common to all mef cameras)
+FILERULES   STR   recipes/filerules-mef.mdc 
 
 EXTNAME.RULES METADATA
Index: /trunk/ippconfig/mosaic2/dvo.config
===================================================================
--- /trunk/ippconfig/mosaic2/dvo.config	(revision 17522)
+++ /trunk/ippconfig/mosaic2/dvo.config	(revision 17523)
@@ -8,7 +8,7 @@
 DATE-KEYWORD		DATE-OBS
 DATE-MODE		yyyy-mm-dd
-UT-KEYWORD		UTC-OBS
+UT-KEYWORD		NONE
 JD-KEYWORD		NONE
-MJD-KEYWORD		NONE
+MJD-KEYWORD		MJD-OBS
 
 # other keyword abstractions
Index: unk/ippconfig/mosaic2/filerules-mef.mdc
===================================================================
--- /trunk/ippconfig/mosaic2/filerules-mef.mdc	(revision 17522)
+++ 	(revision )
@@ -1,170 +1,0 @@
-### File rules for PHU=FPA, EXT=CHIP
-### Redirections
-PPIMAGE.OUTPUT        STR PPIMAGE.OUTPUT.MEF
-PPIMAGE.OUTPUT.MASK   STR PPIMAGE.OUT.MK.MEF
-PPIMAGE.OUTPUT.WEIGHT STR PPIMAGE.OUT.WT.MEF
-PPIMAGE.CHIP          STR PPIMAGE.CHIP.MEF
-PPIMAGE.CHIP.MASK     STR PPIMAGE.CHIP.MK.MEF
-PPIMAGE.CHIP.WEIGHT   STR PPIMAGE.CHIP.WT.MEF
-PPIMAGE.OUTPUT.FPA1   STR PPIMAGE.OUTPUT.FPA1.MEF
-PPIMAGE.OUTPUT.FPA2   STR PPIMAGE.OUTPUT.FPA2.MEF
-PPIMAGE.BIN1          STR PPIMAGE.BIN1.MEF
-PPIMAGE.BIN2          STR PPIMAGE.BIN2.MEF
-
-PPSTAMP.CHIP          STR PPSTAMP.CHIP.MEF
-PSASTRO.INPUT         STR PSASTRO.INPUT.CMF
-PSASTRO.OUTPUT        STR PSASTRO.OUT.CMF.MEF
-PSASTRO.OUTPUT.MEF    STR PSASTRO.OUT.CMF.MEF
-PSPHOT.OUTPUT         STR PSPHOT.OUT.CMF.MEF
-DVOCORR.OUTPUT        STR DVOCORR.MEF.OUTPUT
-DVOFLAT.OUTPUT        STR DVOFLAT.MEF.OUTPUT
-
-### input file definitions
-### use @DETDB entries to get the detrend images from the database
-### replace @DETDB with @FILES if you want to require it from the 
-### command line, or with an explicit name to require a specific file
-TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE
-
-## files used by ppImage
-PPIMAGE.INPUT      INPUT @FILES        CHIP       IMAGE
-PPIMAGE.MASK       INPUT @DETDB        CHIP       MASK
-PPIMAGE.BIAS       INPUT @DETDB        CHIP       IMAGE
-PPIMAGE.DARK       INPUT @DETDB        CHIP       DARK
-PPIMAGE.FLAT       INPUT @DETDB        CHIP       IMAGE
-PPIMAGE.FRINGE     INPUT @DETDB        CHIP       FRINGE
-PPIMAGE.SHUTTER    INPUT @DETDB        CHIP       IMAGE     
-
-## files used to build and apply the flat-field correction images
-DVOCORR.INPUT      INPUT @FILES        CHIP       IMAGE
-DVOCORR.REFHEAD    INPUT @FILES        CHIP       HEADER
-DVOFLAT.INPUT      INPUT @FILES        CHIP       IMAGE
-DVOFLAT.CORR       INPUT @DETDB        CHIP       IMAGE
-
-## files used by psphot 
-PSPHOT.LOAD        INPUT @FILES        CHIP       IMAGE
-PSPHOT.INPUT       INPUT @FILES        CHIP       IMAGE
-PSPHOT.MASK        INPUT @FILES        CHIP       MASK     
-PSPHOT.WEIGHT      INPUT @FILES        CHIP       WEIGHT     
-PSPHOT.PSF.LOAD    INPUT @FILES        CHIP       PSF       
-PSPHOT.INPUT.CMF   INPUT @FILES        CHIP       CMF       
-
-## files used by psastro 
-PSASTRO.INPUT.CMP  INPUT @FILES        CHIP       CMP
-PSASTRO.INPUT.CMF  INPUT @FILES        CHIP       CMF
-
-## files used by pswarp
-PSWARP.INPUT       INPUT @FILES        CHIP       IMAGE
-PSWARP.WEIGHT      INPUT @FILES        CHIP       WEIGHT
-PSWARP.MASK        INPUT @FILES        CHIP       MASK
-PSWARP.SKYCELL     INPUT @FILES        CHIP       IMAGE
-PSWARP.ASTROM      INPUT @FILES        CHIP       CMF
-
-PPSUB.INPUT        INPUT @FILES        FPA        IMAGE
-PPSUB.INPUT.MASK   INPUT @FILES        FPA        MASK
-PPSUB.INPUT.WEIGHT INPUT @FILES        FPA        WEIGHT
-PPSUB.REF          INPUT @FILES        FPA        IMAGE
-PPSUB.REF.MASK     INPUT @FILES        FPA        MASK
-PPSUB.REF.WEIGHT   INPUT @FILES        FPA        WEIGHT
-PPSUB.SOURCES      INPUT @FILES        FPA        CMF
-
-PPSTACK.INPUT      INPUT @FILES        FPA        IMAGE
-PPSTACK.INPUT.MASK INPUT @FILES        FPA        MASK
-PPSTACK.INPUT.WEIGHT INPUT @FILES      FPA        WEIGHT
-PPSTACK.SOURCES    INPUT @FILES        FPA        CMF
-
-PPSTAMP.INPUT      INPUT @FILES        CHIP       IMAGE
-
-PPARITH.INPUT.IMAGE INPUT @FILES        CHIP       IMAGE
-PPARITH.INPUT.MASK  INPUT @FILES        CHIP       MASK
-
-### output file definitions
-TYPE                  OUTPUT FILENAME.RULE                    FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-
-PPIMAGE.OUTPUT.DETMASK OUTPUT {OUTPUT}.detmask.fits	      IMAGE     COMP_MASK CHIP       TRUE      MEF
-PPIMAGE.OUTPUT.MEF    OUTPUT {OUTPUT}.b0.fits                 IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.OUT.MK.MEF    OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK CHIP       TRUE      MEF
-PPIMAGE.OUT.WT.MEF    OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   CHIP       TRUE      MEF
-PPIMAGE.OUTPUT.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.b0.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUT.MK.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.mk.fits     MASK      NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUT.WT.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits     WEIGHT    NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.CHIP.MEF      OUTPUT {OUTPUT}.ch.fits                 IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.CHIP.MK.MEF   OUTPUT {OUTPUT}.ch.mk.fits              MASK      COMP_MASK CHIP       TRUE      MEF
-PPIMAGE.CHIP.WT.MEF   OUTPUT {OUTPUT}.ch.wt.fits              WEIGHT    COMP_WT   CHIP       TRUE      MEF
-PPIMAGE.CHIP.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.MK.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.ch.mk.fits  MASK      NONE      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.WT.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.ch.wt.fits  WEIGHT    NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.OUTPUT.FPA1.MEF OUTPUT {OUTPUT}.b1.fits               IMAGE     COMP_IMG  FPA        TRUE      MEF
-PPIMAGE.OUTPUT.FPA2.MEF OUTPUT {OUTPUT}.b2.fits               IMAGE     COMP_IMG  FPA        TRUE      MEF
-PPIMAGE.OUTPUT.FPA1.SPL OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits   IMAGE     NONE      FPA        TRUE      SPLIT
-PPIMAGE.OUTPUT.FPA2.SPL OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits   IMAGE     NONE      FPA        TRUE      SPLIT
-
-PPIMAGE.STATS         OUTPUT {OUTPUT}.stats                   STATS     NONE      FPA        TRUE      MEF
-
-PPIMAGE.BIN1.MEF      OUTPUT {OUTPUT}.b1c.fits                IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.BIN2.MEF      OUTPUT {OUTPUT}.b2c.fits                IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.BIN1.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.BIN2.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.JPEG1         OUTPUT {OUTPUT}.b1.jpg                  JPEG      NONE      FPA        TRUE      NONE
-PPIMAGE.JPEG2         OUTPUT {OUTPUT}.b2.jpg                  JPEG      NONE      FPA        TRUE      NONE
-
-PPMERGE.OUTPUT        OUTPUT {OUTPUT}.fits                    IMAGE     NONE      FPA        TRUE      MEF
-
-DVOCORR.MEF.OUTPUT    OUTPUT {OUTPUT}.fc.fits                 IMAGE     NONE      CHIP       TRUE      MEF
-DVOCORR.SPL.OUTPUT    OUTPUT {OUTPUT}.{CHIP.NAME}.fc.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-DVOFLAT.MEF.OUTPUT    OUTPUT {OUTPUT}.co.fits                 IMAGE     NONE      CHIP       TRUE      MEF
-DVOFLAT.SPL.OUTPUT    OUTPUT {OUTPUT}.{CHIP.NAME}.co.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-
-PSPHOT.RESID          OUTPUT {OUTPUT}.res.fits                IMAGE     NONE      CHIP       FALSE     NONE
-PSPHOT.BACKGND        OUTPUT {OUTPUT}.bck.fits                IMAGE     NONE      CHIP       FALSE     NONE
-PSPHOT.BACKSUB        OUTPUT {OUTPUT}.sub.fits                IMAGE     NONE      CHIP       FALSE     NONE
-PSPHOT.BACKMDL        OUTPUT {OUTPUT}.mdl.fits                IMAGE     NONE      CHIP       FALSE     NONE
-
-PSPHOT.OUTPUT.RAW     OUTPUT {OUTPUT}.{CHIP.NAME}             RAW       NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.SX      OUTPUT {OUTPUT}.sx                      SX        NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.OBJ     OUTPUT {OUTPUT}.obj                     OBJ       NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.CMP     OUTPUT {OUTPUT}.{CHIP.NAME}.cmp         CMP       NONE      CHIP       TRUE      NONE
-PSPHOT.OUT.CMF.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.cmf         CMF       NONE      CHIP       TRUE      SPLIT
-PSPHOT.OUT.CMF.MEF    OUTPUT {OUTPUT}.cmf                     CMF       NONE      CHIP       TRUE      NONE
-
-PSPHOT.PSF.SAVE       OUTPUT {OUTPUT}.psf                     PSF       NONE      CHIP       TRUE      NONE
-
-SOURCE.PLOT.MOMENTS   OUTPUT {OUTPUT}.mnt.png                 KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.PSFMODEL  OUTPUT {OUTPUT}.psf.png                 KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.APRESID   OUTPUT {OUTPUT}.dap.png                 KAPA      NONE      FPA        TRUE      NONE
-
-PSASTRO.OUTPUT.CMP    OUTPUT {OUTPUT}.{CHIP.NAME}.smp         CMP       NONE      CHIP       TRUE      NONE
-PSASTRO.OUT.CMF.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.smf         CMF       NONE      CHIP       TRUE      NONE
-PSASTRO.OUT.CMF.MEF   OUTPUT {OUTPUT}.smf                     CMF       NONE      FPA        TRUE      NONE
-PSASTRO.OUT.ASTROM    OUTPUT {OUTPUT}.ast                     ASTROM    NONE      FPA        TRUE      NONE
-
-PSWARP.OUTPUT         OUTPUT {OUTPUT}.fits                    IMAGE     COMP_IMG  FPA        TRUE      NONE
-PSWARP.OUTPUT.MASK    OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK FPA        TRUE      NONE
-PSWARP.OUTPUT.WEIGHT  OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   FPA        TRUE      NONE
-PSWARP.OUTPUT.SOURCES OUTPUT {OUTPUT}.cmf                     CMF       NONE      FPA        TRUE      NONE
-PSWARP.BIN1           OUTPUT {OUTPUT}.b1.fits                 IMAGE     COMP_IMG  FPA        TRUE      NONE
-PSWARP.BIN2           OUTPUT {OUTPUT}.b2.fits                 IMAGE     COMP_IMG  FPA        TRUE      NONE
-
-PPSUB.OUTPUT          OUTPUT {OUTPUT}.fits                    IMAGE     COMP_IMG  FPA        TRUE      NONE
-PPSUB.OUTPUT.MASK     OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK FPA        TRUE      NONE
-PPSUB.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   FPA        TRUE      NONE
-
-PPSTACK.OUTPUT        OUTPUT {OUTPUT}.fits                    IMAGE     COMP_IMG  FPA        TRUE      NONE
-PPSTACK.OUTPUT.MASK   OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK FPA        TRUE      NONE
-PPSTACK.OUTPUT.WEIGHT OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   FPA        TRUE      NONE
-
-PPSTAMP.OUTPUT        OUTPUT {OUTPUT}.fits                    IMAGE     NONE      FPA        TRUE      NONE
-PPSTAMP.CHIP.MEF      OUTPUT {OUTPUT}.ch.fits                 IMAGE     NONE      CHIP       FALSE     MEF
-
-PPSIM.OUTPUT          OUTPUT {OUTPUT}.{CHIP.NAME}.fits        IMAGE     NONE      CHIP       TRUE      SPLIT
-
-PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits                    IMAGE     COMP_IMG  CHIP       TRUE      NONE
-PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits                    MASK      COMP_MASK CHIP       TRUE      NONE
-
-LOG.IMFILE            OUTPUT {OUTPUT}.{CHIP.NAME}.log         TEXT      NONE      CHIP       TRUE      NONE
-LOG.EXP               OUTPUT {OUTPUT}.log                     TEXT      NONE      FPA        TRUE      NONE
-
-TRACE.IMFILE          OUTPUT {OUTPUT}.{CHIP.NAME}.trace       TEXT      NONE      CHIP       TRUE      NONE
-TRACE.EXP             OUTPUT {OUTPUT}.trace                   TEXT      NONE      FPA        TRUE      NONE
Index: /trunk/ippconfig/recipes/Makefile.am
===================================================================
--- /trunk/ippconfig/recipes/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/recipes/Makefile.am	(revision 17523)
@@ -3,5 +3,9 @@
 
 install_files = \
+	filerules-simple.mdc \
+	filerules-mef.mdc \
+	filerules-split.mdc \
 	masks.config \
+	reductionClasses.mdc \
 	rejections.config \
 	ppImage.config \
Index: /trunk/ippconfig/recipes/filerules-mef.mdc
===================================================================
--- /trunk/ippconfig/recipes/filerules-mef.mdc	(revision 17522)
+++ /trunk/ippconfig/recipes/filerules-mef.mdc	(revision 17523)
@@ -1,5 +1,6 @@
-### File rules for PHU=FPA, EXT=CHIP
-
-### Redirections
+### File rules for PHU=FPA, EXT=CHIP (eg, Megacam)
+### this file specifies compression types for various output files
+
+### Redirections (MEF)
 PPIMAGE.OUTPUT        STR PPIMAGE.OUTPUT.MEF
 PPIMAGE.OUTPUT.MASK   STR PPIMAGE.OUT.MK.MEF
@@ -10,16 +11,32 @@
 PPIMAGE.CHIP.WEIGHT   STR PPIMAGE.CHIP.WT.MEF
 
+PPIMAGE.BIN1          STR PPIMAGE.BIN1.MEF
+PPIMAGE.BIN2          STR PPIMAGE.BIN2.MEF
+
+PSASTRO.OUTPUT        STR PSASTRO.OUT.CMF.MEF
+PSPHOT.OUTPUT         STR PSPHOT.OUT.CMF.MEF
+
+### Redirections (SPL)
+# PPIMAGE.OUTPUT        STR PPIMAGE.OUTPUT.SPL
+# PPIMAGE.OUTPUT.MASK   STR PPIMAGE.OUT.MK.SPL
+# PPIMAGE.OUTPUT.WEIGHT STR PPIMAGE.OUT.WT.SPL
+# 
+# PPIMAGE.CHIP          STR PPIMAGE.CHIP.SPL
+# PPIMAGE.CHIP.MASK     STR PPIMAGE.CHIP.MK.SPL
+# PPIMAGE.CHIP.WEIGHT   STR PPIMAGE.CHIP.WT.SPL
+# 
+# PPIMAGE.BIN1          STR PPIMAGE.BIN1.SPL
+# PPIMAGE.BIN2          STR PPIMAGE.BIN2.SPL
+# 
+# PSASTRO.OUTPUT        STR PSASTRO.OUT.CMF.SPL
+# PSPHOT.OUTPUT         STR PSPHOT.OUT.CMF.SPL
+
+### Redirections (common)
+
 PPIMAGE.OUTPUT.FPA1   STR PPIMAGE.OUTPUT.FPA1.MEF
 PPIMAGE.OUTPUT.FPA2   STR PPIMAGE.OUTPUT.FPA2.MEF
-PPIMAGE.BIN1          STR PPIMAGE.BIN1.MEF
-PPIMAGE.BIN2          STR PPIMAGE.BIN2.MEF
-
 PPSTAMP.CHIP          STR PPSTAMP.CHIP.MEF
-
 PSASTRO.INPUT         STR PSASTRO.INPUT.CMF
-PSASTRO.OUTPUT        STR PSASTRO.OUT.CMF.MEF
 PSASTRO.OUTPUT.MEF    STR PSASTRO.OUT.CMF.MEF
-PSPHOT.OUTPUT         STR PSPHOT.OUT.CMF.MEF
-
 DVOCORR.OUTPUT        STR DVOCORR.MEF.OUTPUT
 DVOFLAT.OUTPUT        STR DVOFLAT.MEF.OUTPUT
@@ -29,150 +46,175 @@
 ### replace @DETDB with @FILES if you want to require it from the 
 ### command line, or with an explicit name to require a specific file
-TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE
+TYPE                    INPUT    FILENAME.RULE DATA.LEVEL FILE.TYPE
 
 ## files used by ppImage
-PPIMAGE.INPUT      INPUT @FILES        CHIP       IMAGE
-PPIMAGE.MASK       INPUT @DETDB        CHIP       MASK
-PPIMAGE.BIAS       INPUT @DETDB        CHIP       IMAGE
-PPIMAGE.DARK       INPUT @DETDB        CHIP       DARK
-PPIMAGE.FLAT       INPUT @DETDB        CHIP       IMAGE
-PPIMAGE.FRINGE     INPUT @DETDB        CHIP       FRINGE
-PPIMAGE.SHUTTER    INPUT @DETDB        CHIP       IMAGE     
+PPIMAGE.INPUT           INPUT    @FILES        CHIP       IMAGE
+PPIMAGE.INPUT.MASK      INPUT    @FILES        CHIP       MASK
+PPIMAGE.INPUT.WEIGHT    INPUT    @FILES        CHIP       WEIGHT
+PPIMAGE.INPUT.PSF       INPUT    @FILES        CHIP       PSF
+PPIMAGE.INPUT.SRC       INPUT    @FILES        CHIP       CMF
+PPIMAGE.MASK       	INPUT 	 @DETDB        CHIP       MASK
+PPIMAGE.BIAS       	INPUT 	 @DETDB        CHIP       IMAGE
+PPIMAGE.DARK       	INPUT 	 @DETDB        CHIP       DARK
+PPIMAGE.FLAT       	INPUT 	 @DETDB        CHIP       IMAGE
+PPIMAGE.FRINGE     	INPUT 	 @DETDB        CHIP       FRINGE
+PPIMAGE.SHUTTER    	INPUT 	 @DETDB        CHIP       IMAGE     
+
+## Files used by ppMerge
+PPMERGE.INPUT           INPUT 	 @FILES        CHIP       IMAGE
+PPMERGE.INPUT.MASK      INPUT 	 @FILES        CHIP       MASK
+PPMERGE.INPUT.WEIGHT    INPUT 	 @FILES        CHIP       WEIGHT
 
 ## files used to build and apply the flat-field correction images
-DVOCORR.INPUT      INPUT @FILES        CHIP       IMAGE
-DVOCORR.REFHEAD    INPUT @FILES        CHIP       HEADER
-DVOFLAT.INPUT      INPUT @FILES        CHIP       IMAGE
-DVOFLAT.CORR       INPUT @DETDB        CHIP       IMAGE
+DVOCORR.INPUT      	INPUT 	 @FILES        CHIP       IMAGE
+DVOCORR.REFHEAD    	INPUT 	 @FILES        CHIP       HEADER
+DVOFLAT.INPUT      	INPUT 	 @FILES        CHIP       IMAGE
+DVOFLAT.CORR       	INPUT 	 @DETDB        CHIP       IMAGE
 
 ## files used by psphot 
-PSPHOT.LOAD        INPUT @FILES        CHIP       IMAGE
-PSPHOT.INPUT       INPUT @FILES        CHIP       IMAGE
-PSPHOT.MASK        INPUT @FILES        CHIP       MASK     
-PSPHOT.WEIGHT      INPUT @FILES        CHIP       WEIGHT     
-PSPHOT.PSF.LOAD    INPUT @FILES        CHIP       PSF       
-PSPHOT.INPUT.CMF   INPUT @FILES        CHIP       CMF       
+PSPHOT.LOAD        	INPUT 	 @FILES        CHIP       IMAGE
+PSPHOT.INPUT       	INPUT 	 @FILES        CHIP       IMAGE
+PSPHOT.MASK        	INPUT 	 @FILES        CHIP       MASK     
+PSPHOT.WEIGHT      	INPUT 	 @FILES        CHIP       WEIGHT     
+PSPHOT.PSF.LOAD    	INPUT 	 @FILES        CHIP       PSF       
+PSPHOT.INPUT.CMF   	INPUT 	 @FILES        CHIP       CMF       
 
 ## files used by psastro 
-PSASTRO.INPUT.CMP  INPUT @FILES        CHIP       CMP
-PSASTRO.INPUT.CMF  INPUT @FILES        CHIP       CMF
+PSASTRO.INPUT.CMP  	INPUT 	 @FILES        CHIP       CMP
+PSASTRO.INPUT.CMF  	INPUT 	 @FILES        CHIP       CMF
+PSASTRO.WCS        	INPUT 	 @FILES        CHIP       CMF
+PSASTRO.MODEL      	INPUT 	 @DETDB        FPA        ASTROM
 
 ## files used by pswarp
-PSWARP.INPUT       INPUT @FILES        CHIP       IMAGE
-PSWARP.WEIGHT      INPUT @FILES        CHIP       WEIGHT
-PSWARP.MASK        INPUT @FILES        CHIP       MASK
-PSWARP.SKYCELL     INPUT @FILES        CHIP       IMAGE
-PSWARP.ASTROM      INPUT @FILES        CHIP       CMF
-
-PPSUB.INPUT        INPUT @FILES        FPA        IMAGE
-PPSUB.INPUT.MASK   INPUT @FILES        FPA        MASK
-PPSUB.INPUT.WEIGHT INPUT @FILES        FPA        WEIGHT
-PPSUB.REF          INPUT @FILES        FPA        IMAGE
-PPSUB.REF.MASK     INPUT @FILES        FPA        MASK
-PPSUB.REF.WEIGHT   INPUT @FILES        FPA        WEIGHT
-PPSUB.SOURCES      INPUT @FILES        FPA        CMF
-
-PPSTACK.INPUT      INPUT @FILES        FPA        IMAGE
-PPSTACK.INPUT.MASK INPUT @FILES        FPA        MASK
-PPSTACK.INPUT.WEIGHT INPUT @FILES      FPA        WEIGHT
-PPSTACK.SOURCES    INPUT @FILES        FPA        CMF
-
-PPSTAMP.INPUT      INPUT @FILES        CHIP       IMAGE
-
-PPARITH.INPUT.IMAGE INPUT @FILES       CHIP       IMAGE
-PPARITH.INPUT.MASK  INPUT @FILES       CHIP       MASK
+PSWARP.INPUT       	INPUT 	 @FILES        CHIP       IMAGE
+PSWARP.WEIGHT      	INPUT 	 @FILES        CHIP       WEIGHT
+PSWARP.MASK        	INPUT 	 @FILES        CHIP       MASK
+PSWARP.SKYCELL     	INPUT 	 @FILES        CHIP       IMAGE
+PSWARP.ASTROM      	INPUT 	 @FILES        CHIP       CMF
+
+## files used by ppsub
+PPSUB.INPUT        	INPUT 	 @FILES        FPA        IMAGE
+PPSUB.INPUT.MASK   	INPUT 	 @FILES        FPA        MASK
+PPSUB.INPUT.WEIGHT 	INPUT 	 @FILES        FPA        WEIGHT
+PPSUB.REF          	INPUT 	 @FILES        FPA        IMAGE
+PPSUB.REF.MASK     	INPUT 	 @FILES        FPA        MASK
+PPSUB.REF.WEIGHT   	INPUT 	 @FILES        FPA        WEIGHT
+PPSUB.SOURCES      	INPUT 	 @FILES        FPA        CMF
+
+## files used by ppstack
+PPSTACK.INPUT      	INPUT 	 @FILES        FPA        IMAGE
+PPSTACK.INPUT.MASK 	INPUT 	 @FILES        FPA        MASK
+PPSTACK.INPUT.WEIGHT    INPUT 	 @FILES        FPA        WEIGHT
+PPSTACK.INPUT.PSF  	INPUT 	 @FILES        CHIP       PSF
+PPSTACK.SOURCES    	INPUT 	 @FILES        FPA        CMF
+
+## files used by ppstamp
+PPSTAMP.INPUT           INPUT 	 @FILES        CHIP       IMAGE
+
+# files used by pparith
+PPARITH.INPUT.IMAGE 	INPUT 	 @FILES        CHIP       IMAGE
+PPARITH.INPUT.MASK  	INPUT 	 @FILES        CHIP       MASK
 
 ### output file definitions
-TYPE                  OUTPUT FILENAME.RULE                    FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-PPIMAGE.OUTPUT.MEF    OUTPUT {OUTPUT}.b0.fits                 IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.OUT.MK.MEF    OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK CHIP       TRUE      MEF
-PPIMAGE.OUT.WT.MEF    OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   CHIP       TRUE      MEF
-PPIMAGE.OUTPUT.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.b0.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUT.MK.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.mk.fits     MASK      NONE      CHIP       TRUE      SPLIT
-PPIMAGE.OUT.WT.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits     WEIGHT    NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.CHIP.MEF      OUTPUT {OUTPUT}.ch.fits                 IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.CHIP.MK.MEF   OUTPUT {OUTPUT}.ch.mk.fits              MASK      COMP_MASK CHIP       TRUE      MEF
-PPIMAGE.CHIP.WT.MEF   OUTPUT {OUTPUT}.ch.wt.fits              WEIGHT    COMP_WT   CHIP       TRUE      MEF
-PPIMAGE.CHIP.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.MK.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.ch.mk.fits  MASK      NONE      CHIP       TRUE      SPLIT
-PPIMAGE.CHIP.WT.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.ch.wt.fits  WEIGHT    NONE      CHIP       TRUE      SPLIT
-
-PPIMAGE.OUTPUT.FPA1.MEF OUTPUT {OUTPUT}.b1.fits               IMAGE     COMP_IMG  FPA        TRUE      MEF
-PPIMAGE.OUTPUT.FPA2.MEF OUTPUT {OUTPUT}.b2.fits               IMAGE     COMP_IMG  FPA        TRUE      MEF
-PPIMAGE.OUTPUT.FPA1.SPL OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits   IMAGE     NONE      FPA        TRUE      SPLIT
-PPIMAGE.OUTPUT.FPA2.SPL OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits   IMAGE     NONE      FPA        TRUE      SPLIT
-
-PPIMAGE.STATS         OUTPUT {OUTPUT}.stats                   STATS     NONE      FPA        TRUE      MEF
-
-PPIMAGE.BIN1.MEF      OUTPUT {OUTPUT}.b1c.fits                IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.BIN2.MEF      OUTPUT {OUTPUT}.b2c.fits                IMAGE     COMP_IMG  CHIP       TRUE      MEF
-PPIMAGE.BIN1.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits     IMAGE     COMP_IMG  CHIP       TRUE      SPLIT
-PPIMAGE.BIN2.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits     IMAGE     COMP_IMG  CHIP       TRUE      SPLIT
-
-PPIMAGE.JPEG1         OUTPUT {OUTPUT}.b1.jpg                  JPEG      NONE      FPA        TRUE      NONE
-PPIMAGE.JPEG2         OUTPUT {OUTPUT}.b2.jpg                  JPEG      NONE      FPA        TRUE      NONE
-
-PPMERGE.OUTPUT        OUTPUT {OUTPUT}.fits                    IMAGE     NONE      FPA        TRUE      MEF
-
-DVOCORR.MEF.OUTPUT    OUTPUT {OUTPUT}.fc.fits                 IMAGE     NONE      CHIP       TRUE      MEF
-DVOCORR.SPL.OUTPUT    OUTPUT {OUTPUT}.{CHIP.NAME}.fc.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-DVOFLAT.MEF.OUTPUT    OUTPUT {OUTPUT}.co.fits                 IMAGE     NONE      CHIP       TRUE      MEF
-DVOFLAT.SPL.OUTPUT    OUTPUT {OUTPUT}.{CHIP.NAME}.co.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-
-PSPHOT.RESID          OUTPUT {OUTPUT}.res.fits                IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKGND        OUTPUT {OUTPUT}.bck.fits                IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKSUB        OUTPUT {OUTPUT}.sub.fits                IMAGE     NONE      CHIP       FALSE     MEF
-PSPHOT.BACKMDL        OUTPUT {OUTPUT}.mdl.fits                IMAGE     NONE      CHIP       FALSE     MEF
-
-PSPHOT.OUTPUT.RAW     OUTPUT {OUTPUT}.{CHIP.NAME}             RAW       NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.SX      OUTPUT {OUTPUT}.{CHIP.NAME}.sx          SX        NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.OBJ     OUTPUT {OUTPUT}.{CHIP.NAME}.obj         OBJ       NONE      CHIP       TRUE      NONE
-PSPHOT.OUTPUT.CMP     OUTPUT {OUTPUT}.{CHIP.NAME}.cmp         CMP       NONE      CHIP       TRUE      NONE
-PSPHOT.OUT.CMF.SPL    OUTPUT {OUTPUT}.{CHIP.NAME}.cmf         CMF       NONE      CHIP       TRUE      SPLIT
-PSPHOT.OUT.CMF.MEF    OUTPUT {OUTPUT}.cmf                     CMF       NONE      CHIP       TRUE      MEF
-
-PSPHOT.PSF.SAVE       OUTPUT {OUTPUT}.psf                     PSF       NONE      CHIP       TRUE      MEF
-
-SOURCE.PLOT.MOMENTS   OUTPUT {OUTPUT}.mnt.png                 KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.PSFMODEL  OUTPUT {OUTPUT}.psf.png                 KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.APRESID   OUTPUT {OUTPUT}.dap.png                 KAPA      NONE      FPA        TRUE      NONE
-
-PSASTRO.OUTPUT.CMP    OUTPUT {OUTPUT}.{CHIP.NAME}.smp         CMP       NONE      CHIP       TRUE      NONE
-PSASTRO.OUT.CMF.SPL   OUTPUT {OUTPUT}.{CHIP.NAME}.smf         CMF       NONE      CHIP       TRUE      SPLIT
-PSASTRO.OUT.CMF.MEF   OUTPUT {OUTPUT}.smf                     CMF       NONE      FPA        TRUE      MEF
-PSASTRO.OUT.ASTROM    OUTPUT {OUTPUT}.ast                     ASTROM    NONE      FPA        TRUE      NONE
-
-PSWARP.OUTPUT         OUTPUT {OUTPUT}.fits                    IMAGE     COMP_IMG  FPA        TRUE      NONE
-PSWARP.OUTPUT.MASK    OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK FPA        TRUE      NONE
-PSWARP.OUTPUT.WEIGHT  OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   FPA        TRUE      NONE
-PSWARP.OUTPUT.SOURCES OUTPUT {OUTPUT}.cmf                     CMF       NONE      FPA        TRUE      NONE
-PSWARP.BIN1           OUTPUT {OUTPUT}.b1.fits                 IMAGE     COMP_IMG  FPA        TRUE      NONE
-PSWARP.BIN2           OUTPUT {OUTPUT}.b2.fits                 IMAGE     COMP_IMG  FPA        TRUE      NONE
-
-SKYCELL.STATS         OUTPUT {OUTPUT}.stats                   STATS     NONE      FPA        TRUE      NONE
-SKYCELL.TEMPLATE      OUTPUT {OUTPUT}.skycell                 SKYCELL   NONE      FPA        TRUE      NONE
-
-PPSUB.OUTPUT          OUTPUT {OUTPUT}.fits                    IMAGE     COMP_IMG  FPA        TRUE      NONE
-PPSUB.OUTPUT.MASK     OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK FPA        TRUE      NONE
-PPSUB.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   FPA        TRUE      NONE
-
-PPSTACK.OUTPUT        OUTPUT {OUTPUT}.fits                    IMAGE     COMP_IMG  FPA        TRUE      NONE
-PPSTACK.OUTPUT.MASK   OUTPUT {OUTPUT}.mk.fits                 MASK      COMP_MASK FPA        TRUE      NONE
-PPSTACK.OUTPUT.WEIGHT OUTPUT {OUTPUT}.wt.fits                 WEIGHT    COMP_WT   FPA        TRUE      NONE
-
-PPSTAMP.OUTPUT        OUTPUT {OUTPUT}.fits                    IMAGE     NONE      FPA        TRUE      NONE
-PPSTAMP.CHIP.MEF      OUTPUT {OUTPUT}.ch.fits                 IMAGE     NONE      CHIP       FALSE     MEF
-
-PPSIM.OUTPUT.MEF      OUTPUT {OUTPUT}.fits                    IMAGE     NONE      CHIP       TRUE      MEF
-PPSIM.OUTPUT.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.fits        IMAGE     NONE      CHIP       TRUE      SPLIT
-PPSIM.SOURCES         OUTPUT {OUTPUT}.cmf                     CMF       NONE      FPA        TRUE      MEF
-
-PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits                    IMAGE     COMP_IMG  CHIP       TRUE      NONE
-PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits                    MASK      COMP_MASK CHIP       TRUE      NONE
-
-LOG.IMFILE            OUTPUT {OUTPUT}.{CHIP.NAME}.log         TEXT      NONE      CHIP       TRUE      NONE
-LOG.EXP               OUTPUT {OUTPUT}.log                     TEXT      NONE      FPA        TRUE      NONE
-
-TRACE.IMFILE          OUTPUT {OUTPUT}.{CHIP.NAME}.trace       TEXT      NONE      CHIP       TRUE      NONE
-TRACE.EXP             OUTPUT {OUTPUT}.trace                   TEXT      NONE      FPA        TRUE      NONE
+TYPE                    OUTPUT FILENAME.RULE                     FILE.TYPE FITS.TYPE  DATA.LEVEL FILE.SAVE FILE.FORMAT
+PPIMAGE.OUTPUT.MEF      OUTPUT {OUTPUT}.b0.fits                  IMAGE     COMP_IMG   CHIP       TRUE      MEF
+PPIMAGE.OUT.MK.MEF      OUTPUT {OUTPUT}.mk.fits                  MASK      COMP_MASK  CHIP       TRUE      MEF
+PPIMAGE.OUT.WT.MEF      OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_WT    CHIP       TRUE      MEF
+PPIMAGE.OUTPUT.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.b0.fits      IMAGE     NONE       CHIP       TRUE      SPLIT
+PPIMAGE.OUT.MK.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.mk.fits      MASK      NONE       CHIP       TRUE      SPLIT
+PPIMAGE.OUT.WT.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits      WEIGHT    NONE       CHIP       TRUE      SPLIT
+PPIMAGE.OUTPUT.DETMASK  OUTPUT {OUTPUT}.fits                     IMAGE     MASK       CHIP       TRUE      MEF
+		        					        		     
+PPIMAGE.CHIP.MEF        OUTPUT {OUTPUT}.ch.fits                  IMAGE     COMP_IMG   CHIP       TRUE      MEF
+PPIMAGE.CHIP.MK.MEF     OUTPUT {OUTPUT}.ch.mk.fits               MASK      COMP_MASK  CHIP       TRUE      MEF
+PPIMAGE.CHIP.WT.MEF     OUTPUT {OUTPUT}.ch.wt.fits               WEIGHT    COMP_WT    CHIP       TRUE      MEF
+PPIMAGE.CHIP.SPL        OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits      IMAGE     NONE       CHIP       TRUE      SPLIT
+PPIMAGE.CHIP.MK.SPL     OUTPUT {OUTPUT}.{CHIP.NAME}.ch.mk.fits   MASK      NONE       CHIP       TRUE      SPLIT
+PPIMAGE.CHIP.WT.SPL     OUTPUT {OUTPUT}.{CHIP.NAME}.ch.wt.fits   WEIGHT    NONE       CHIP       TRUE      SPLIT
+							        		     
+PPIMAGE.OUTPUT.FPA1.MEF OUTPUT {OUTPUT}.b1.fits                  IMAGE     COMP_IMG   FPA        TRUE      MEF
+PPIMAGE.OUTPUT.FPA2.MEF OUTPUT {OUTPUT}.b2.fits                  IMAGE     COMP_IMG   FPA        TRUE      MEF
+PPIMAGE.OUTPUT.FPA1.SPL OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits      IMAGE     NONE       CHIP       TRUE      SPLIT
+PPIMAGE.OUTPUT.FPA2.SPL OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits      IMAGE     NONE       CHIP       TRUE      SPLIT
+							        		     
+PPIMAGE.BIN1.MEF      	OUTPUT {OUTPUT}.b1c.fits                 IMAGE     COMP_IMG   CHIP       TRUE      MEF
+PPIMAGE.BIN2.MEF      	OUTPUT {OUTPUT}.b2c.fits                 IMAGE     COMP_IMG   CHIP       TRUE      MEF
+PPIMAGE.BIN1.SPL      	OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits      IMAGE     COMP_IMG   CHIP       TRUE      SPLIT
+PPIMAGE.BIN2.SPL      	OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits      IMAGE     COMP_IMG   CHIP       TRUE      SPLIT
+		      						       		     
+PPIMAGE.JPEG1         	OUTPUT {OUTPUT}.b1.jpg                   JPEG      NONE       FPA        TRUE      NONE
+PPIMAGE.JPEG2         	OUTPUT {OUTPUT}.b2.jpg                   JPEG      NONE       FPA        TRUE      NONE
+		      						       		     
+PPIMAGE.STATS         	OUTPUT {OUTPUT}.stats                    STATS     NONE       FPA        TRUE      MEF
+
+## note: these use the same output naming convention since they are used for different ppMerge runs
+PPMERGE.OUTPUT.MASK     OUTPUT {OUTPUT}.fits                   	 MASK      NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.BIAS     OUTPUT {OUTPUT}.fits                   	 IMAGE     NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.DARK     OUTPUT {OUTPUT}.fits                   	 DARK      NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.SHUTTER  OUTPUT {OUTPUT}.fits                   	 IMAGE     NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.FLAT     OUTPUT {OUTPUT}.fits                   	 IMAGE     NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.FRINGE   OUTPUT {OUTPUT}.fits                   	 FRINGE    NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.SIGMA    OUTPUT {OUTPUT}.sigma.fits             	 IMAGE     NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.COUNT    OUTPUT {OUTPUT}.count.fits             	 IMAGE     NONE       CHIP       TRUE      NONE
+							        		     
+DVOCORR.MEF.OUTPUT    	OUTPUT {OUTPUT}.fc.fits                  IMAGE     NONE       CHIP       TRUE      MEF
+DVOCORR.SPL.OUTPUT    	OUTPUT {OUTPUT}.{CHIP.NAME}.fc.fits      IMAGE     NONE       CHIP       TRUE      SPLIT
+DVOFLAT.MEF.OUTPUT    	OUTPUT {OUTPUT}.co.fits                  IMAGE     NONE       CHIP       TRUE      MEF
+DVOFLAT.SPL.OUTPUT    	OUTPUT {OUTPUT}.{CHIP.NAME}.co.fits      IMAGE     NONE       CHIP       TRUE      SPLIT
+		      						       		     
+PSPHOT.RESID          	OUTPUT {OUTPUT}.res.fits                 IMAGE     NONE       CHIP       FALSE     MEF
+PSPHOT.BACKGND        	OUTPUT {OUTPUT}.bck.fits                 IMAGE     NONE       CHIP       FALSE     MEF
+PSPHOT.BACKSUB        	OUTPUT {OUTPUT}.sub.fits                 IMAGE     NONE       CHIP       FALSE     MEF
+PSPHOT.BACKMDL        	OUTPUT {OUTPUT}.mdl.fits                 IMAGE     NONE       CHIP       FALSE     MEF
+		      						       		     
+PSPHOT.OUTPUT.RAW     	OUTPUT {OUTPUT}.{CHIP.NAME}              RAW       NONE       CHIP       TRUE      NONE
+PSPHOT.OUTPUT.SX      	OUTPUT {OUTPUT}.{CHIP.NAME}.sx           SX        NONE       CHIP       TRUE      NONE
+PSPHOT.OUTPUT.OBJ     	OUTPUT {OUTPUT}.{CHIP.NAME}.obj          OBJ       NONE       CHIP       TRUE      NONE
+PSPHOT.OUTPUT.CMP     	OUTPUT {OUTPUT}.{CHIP.NAME}.cmp          CMP       NONE       CHIP       TRUE      NONE
+PSPHOT.OUT.CMF.SPL    	OUTPUT {OUTPUT}.{CHIP.NAME}.cmf          CMF       NONE       CHIP       TRUE      SPLIT
+PSPHOT.OUT.CMF.MEF    	OUTPUT {OUTPUT}.cmf                      CMF       NONE       CHIP       TRUE      MEF
+PSPHOT.PSF.SAVE       	OUTPUT {OUTPUT}.psf                      PSF       NONE       CHIP       TRUE      MEF
+		      						       		     
+SOURCE.PLOT.MOMENTS   	OUTPUT {OUTPUT}.mnt.png                  KAPA      NONE       FPA        TRUE      NONE
+SOURCE.PLOT.PSFMODEL  	OUTPUT {OUTPUT}.psf.png                  KAPA      NONE       FPA        TRUE      NONE
+SOURCE.PLOT.APRESID   	OUTPUT {OUTPUT}.dap.png                  KAPA      NONE       FPA        TRUE      NONE
+		      						       		     
+PSASTRO.OUTPUT.CMP    	OUTPUT {OUTPUT}.{CHIP.NAME}.smp          CMP       NONE       CHIP       TRUE      NONE
+PSASTRO.OUT.CMF.SPL   	OUTPUT {OUTPUT}.{CHIP.NAME}.smf          CMF       NONE       CHIP       TRUE      SPLIT
+PSASTRO.OUT.CMF.MEF   	OUTPUT {OUTPUT}.smf                      CMF       NONE       FPA        TRUE      MEF
+PSASTRO.OUT.MODEL     	OUTPUT {OUTPUT}.asm                ASTROM.MODEL    NONE       FPA        TRUE      NONE
+PSASTRO.OUT.REFSTARS  	OUTPUT {OUTPUT}.aref.fits          ASTROM.REFSTARS NONE       FPA        TRUE      NONE
+		      									     
+PSWARP.OUTPUT         	OUTPUT {OUTPUT}.fits                     IMAGE     COMP_IMG   FPA        TRUE      NONE
+PSWARP.OUTPUT.MASK    	OUTPUT {OUTPUT}.mk.fits                  MASK      COMP_MASK  FPA        TRUE      NONE
+PSWARP.OUTPUT.WEIGHT  	OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_WT    FPA        TRUE      NONE
+PSWARP.OUTPUT.SOURCES 	OUTPUT {OUTPUT}.cmf                      CMF       NONE       FPA        TRUE      NONE
+PSWARP.BIN1           	OUTPUT {OUTPUT}.b1.fits                  IMAGE     COMP_IMG   FPA        TRUE      NONE
+PSWARP.BIN2           	OUTPUT {OUTPUT}.b2.fits                  IMAGE     COMP_IMG   FPA        TRUE      NONE
+		      						       		     
+SKYCELL.STATS         	OUTPUT {OUTPUT}.stats                    STATS     NONE       FPA        TRUE      NONE
+SKYCELL.TEMPLATE      	OUTPUT {OUTPUT}.skycell                  SKYCELL   NONE       FPA        TRUE      NONE
+		      						       		     
+PPSUB.OUTPUT          	OUTPUT {OUTPUT}.fits                     IMAGE     COMP_IMG   FPA        TRUE      NONE
+PPSUB.OUTPUT.MASK     	OUTPUT {OUTPUT}.mk.fits                  MASK      COMP_MASK  FPA        TRUE      NONE
+PPSUB.OUTPUT.WEIGHT   	OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_WT    FPA        TRUE      NONE
+		      						       		     
+PPSTACK.OUTPUT        	OUTPUT {OUTPUT}.fits                     IMAGE     COMP_IMG   FPA        TRUE      NONE
+PPSTACK.OUTPUT.MASK   	OUTPUT {OUTPUT}.mk.fits                  MASK      COMP_MASK  FPA        TRUE      NONE
+PPSTACK.OUTPUT.WEIGHT 	OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_WT    FPA        TRUE      NONE
+		      						       		     
+PPSTAMP.OUTPUT        	OUTPUT {OUTPUT}.fits                     IMAGE     NONE       FPA        TRUE      NONE
+PPSTAMP.CHIP.MEF      	OUTPUT {OUTPUT}.ch.fits                  IMAGE     NONE       CHIP       FALSE     MEF
+		      						       		     
+PPSIM.OUTPUT.MEF      	OUTPUT {OUTPUT}.fits                     IMAGE     NONE       CHIP       TRUE      MEF
+PPSIM.OUTPUT.SPL      	OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     NONE       CHIP       TRUE      SPLIT
+PPSIM.SOURCES         	OUTPUT {OUTPUT}.cmf                      CMF       NONE       FPA        TRUE      MEF
+		      						       		     
+PPARITH.OUTPUT.IMAGE  	OUTPUT {OUTPUT}.fits                     IMAGE     COMP_IMG   CHIP       TRUE      NONE
+PPARITH.OUTPUT.MASK   	OUTPUT {OUTPUT}.fits                     MASK      COMP_MASK  CHIP       TRUE      NONE
+		      						       		     
+LOG.IMFILE            	OUTPUT {OUTPUT}.{CHIP.NAME}.log          TEXT      NONE       CHIP       TRUE      NONE
+LOG.EXP               	OUTPUT {OUTPUT}.log                      TEXT      NONE       FPA        TRUE      NONE
+		      						       		     
+TRACE.IMFILE          	OUTPUT {OUTPUT}.{CHIP.NAME}.trace        TEXT      NONE       CHIP       TRUE      NONE
+TRACE.EXP             	OUTPUT {OUTPUT}.trace                    TEXT      NONE       FPA        TRUE      NONE
Index: /trunk/ippconfig/recipes/filerules-simple.mdc
===================================================================
--- /trunk/ippconfig/recipes/filerules-simple.mdc	(revision 17523)
+++ /trunk/ippconfig/recipes/filerules-simple.mdc	(revision 17523)
@@ -0,0 +1,169 @@
+### File rules for PHU=FPA, EXT=NONE
+
+PSASTRO.INPUT      STR PSASTRO.INPUT.CMF
+PSASTRO.OUTPUT     STR PSASTRO.OUTPUT.CMF
+PSASTRO.OUTPUT.MEF STR PSASTRO.OUTPUT.CMF
+PSPHOT.OUTPUT      STR PSPHOT.OUTPUT.CMF
+
+### input file definitions
+### use @DETDB entries to get the detrend images from the database
+### replace @DETDB with @FILES if you want to require it from the 
+### command line, or with an explicit name to require a specific file
+TYPE                    INPUT    FILENAME.RULE DATA.LEVEL FILE.TYPE
+
+## files used by ppImage
+PPIMAGE.INPUT           INPUT    @FILES        FPA        IMAGE     
+PPIMAGE.INPUT.MASK      INPUT    @FILES        FPA        MASK      
+PPIMAGE.INPUT.WEIGHT    INPUT    @FILES        FPA        WEIGHT    
+PPIMAGE.INPUT.PSF       INPUT    @FILES        READOUT    PSF       
+PPIMAGE.INPUT.SRC       INPUT    @FILES        READOUT    CMF       
+PPIMAGE.MASK       	INPUT    @DETDB        CHIP       IMAGE     
+PPIMAGE.BIAS       	INPUT    @DETDB        CHIP       IMAGE     
+PPIMAGE.DARK       	INPUT    @DETDB        CHIP       DARK     
+PPIMAGE.FLAT       	INPUT    @DETDB        CHIP       IMAGE     
+PPIMAGE.FRINGE     	INPUT 	 @DETDB        CHIP       FRINGE
+PPIMAGE.SHUTTER    	INPUT    @DETDB        CHIP       IMAGE     
+
+## Files used by ppMerge
+PPMERGE.INPUT      	INPUT    @FILES        CHIP       IMAGE
+PPMERGE.INPUT.MASK 	INPUT    @FILES        CHIP       MASK
+PPMERGE.INPUT.WEIGHT    INPUT    @FILES        CHIP       WEIGHT
+
+## files used to build and apply the flat-field correction images
+DVOCORR.INPUT      	INPUT 	 @FILES        CHIP       IMAGE
+DVOCORR.REFHEAD    	INPUT 	 @FILES        CHIP       HEADER
+DVOFLAT.INPUT      	INPUT 	 @FILES        CHIP       IMAGE
+DVOFLAT.CORR       	INPUT 	 @DETDB        CHIP       IMAGE
+
+## files used by psphot 
+PSPHOT.LOAD        	INPUT    @FILES        CHIP       IMAGE
+PSPHOT.INPUT       	INPUT    @FILES        CHIP       IMAGE     
+PSPHOT.MASK             INPUT    @FILES        CHIP       MASK     
+PSPHOT.WEIGHT           INPUT    @FILES        CHIP       WEIGHT     
+PSPHOT.PSF.LOAD         INPUT    @FILES        CHIP       PSF       
+PSPHOT.INPUT.CMF        INPUT    @FILES        CHIP       CMF       
+
+## files used by psastro 
+PSASTRO.INPUT.CMP  	INPUT    @FILES        CHIP       CMP       
+PSASTRO.INPUT.CMF  	INPUT    @FILES        CHIP       CMF       
+PSASTRO.WCS             INPUT    @FILES        CHIP       CMF
+PSASTRO.MODEL           INPUT    @DETDB        FPA        ASTROM
+
+## files used by pswarp
+PSWARP.INPUT       	INPUT    @FILES        FPA        IMAGE     
+PSWARP.WEIGHT      	INPUT    @FILES        FPA        WEIGHT
+PSWARP.MASK        	INPUT    @FILES        FPA        MASK
+PSWARP.SKYCELL     	INPUT    @FILES        FPA        IMAGE     
+PSWARP.ASTROM      	INPUT    @FILES        FPA        CMF
+
+## files used by ppsub
+PPSUB.INPUT        	INPUT    @FILES        FPA        IMAGE
+PPSUB.INPUT.MASK   	INPUT    @FILES        FPA        MASK
+PPSUB.INPUT.WEIGHT 	INPUT    @FILES        FPA        WEIGHT
+PPSUB.REF          	INPUT    @FILES        FPA        IMAGE
+PPSUB.REF.MASK     	INPUT    @FILES        FPA        MASK
+PPSUB.REF.WEIGHT   	INPUT    @FILES        FPA        WEIGHT
+PPSUB.SOURCES      	INPUT 	 @FILES        FPA        CMF
+
+## files used by ppstack
+PPSTACK.INPUT      	INPUT    @FILES        FPA        IMAGE
+PPSTACK.INPUT.MASK 	INPUT    @FILES        FPA        MASK
+PPSTACK.INPUT.WEIGHT    INPUT    @FILES        FPA        WEIGHT
+PPSTACK.INPUT.PSF  	INPUT 	 @FILES        CHIP       PSF
+PPSTACK.SOURCES         INPUT    @FILES        FPA        CMF
+
+## files used by ppstamp
+PPSTAMP.INPUT           INPUT    @FILES        FPA        IMAGE
+
+# files used by pparith
+PPARITH.INPUT.IMAGE    	INPUT    @FILES        CHIP       IMAGE
+PPARITH.INPUT.MASK     	INPUT    @FILES        CHIP       MASK
+
+### output file definitions
+TYPE                    OUTPUT FILENAME.RULE                     FILE.TYPE FITS.TYPE  DATA.LEVEL FILE.SAVE FILE.FORMAT
+PPIMAGE.OUTPUT          OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PPIMAGE.OUTPUT.MASK     OUTPUT {OUTPUT}.mk.fits      		 MASK      NONE       FPA        TRUE      NONE
+PPIMAGE.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.wt.fits        		 WEIGHT    NONE       FPA        TRUE      NONE
+PPIMAGE.OUTPUT.DETMASK  OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+
+PPIMAGE.CHIP        	OUTPUT {OUTPUT}.ch.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+PPIMAGE.CHIP.MASK   	OUTPUT {OUTPUT}.ch.mk.fits   		 MASK      NONE       FPA        TRUE      NONE
+PPIMAGE.CHIP.WEIGHT 	OUTPUT {OUTPUT}.ch.wt.fits     		 WEIGHT    NONE       FPA        TRUE      NONE
+
+PPIMAGE.OUTPUT.FPA1 	OUTPUT {OUTPUT}.b1.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+PPIMAGE.OUTPUT.FPA2 	OUTPUT {OUTPUT}.b2.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+
+PPIMAGE.BIN1        	OUTPUT {OUTPUT}.b1.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+PPIMAGE.BIN2        	OUTPUT {OUTPUT}.b2.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+
+PPIMAGE.JPEG1       	OUTPUT {OUTPUT}.b1.jpg         		 JPEG      NONE       FPA        TRUE      NONE
+PPIMAGE.JPEG2       	OUTPUT {OUTPUT}.b2.jpg         		 JPEG      NONE       FPA        TRUE      NONE
+
+PPIMAGE.STATS       	OUTPUT {OUTPUT}.stats          		 STATS     NONE       FPA        TRUE      NONE
+
+## note: these use the  same output naming convention since they are used for different ppMerge runs
+PPMERGE.OUTPUT.MASK   	OUTPUT {OUTPUT}.fits           		 MASK      NONE       FPA        TRUE      NONE
+PPMERGE.OUTPUT.BIAS   	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PPMERGE.OUTPUT.DARK   	OUTPUT {OUTPUT}.fits           		 DARK      NONE       FPA        TRUE      NONE
+PPMERGE.OUTPUT.SHUTTER	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PPMERGE.OUTPUT.FLAT   	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PPMERGE.OUTPUT.FRINGE 	OUTPUT {OUTPUT}.fits           		 FRINGE    NONE       FPA        TRUE      NONE
+PPMERGE.OUTPUT.SIGMA  	OUTPUT {OUTPUT}.sigma.fits     		 IMAGE     NONE       FPA        TRUE      NONE
+PPMERGE.OUTPUT.COUNT  	OUTPUT {OUTPUT}.count.fits     		 IMAGE     NONE       FPA        TRUE      NONE
+
+DVOCORR.OUTPUT      	OUTPUT {OUTPUT}.fc.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+DVOFLAT.OUTPUT      	OUTPUT {OUTPUT}.co.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+
+PSPHOT.RESID        	OUTPUT {OUTPUT}.res.fits       		 IMAGE     NONE       FPA        TRUE      NONE
+PSPHOT.BACKGND      	OUTPUT {OUTPUT}.bck.fits       		 IMAGE     NONE       FPA        TRUE      NONE
+PSPHOT.BACKSUB      	OUTPUT {OUTPUT}.sub.fits       		 IMAGE     NONE       FPA        TRUE      NONE
+PSPHOT.BACKMDL      	OUTPUT {OUTPUT}.mdl.fits       		 IMAGE     NONE       FPA        TRUE      NONE
+
+PSPHOT.OUTPUT.RAW   	OUTPUT {OUTPUT}                		 RAW       NONE       FPA        TRUE      NONE
+PSPHOT.OUTPUT.SX    	OUTPUT {OUTPUT}.sx             		 SX        NONE       FPA        TRUE      NONE
+PSPHOT.OUTPUT.OBJ   	OUTPUT {OUTPUT}.obj            		 OBJ       NONE       FPA        TRUE      NONE
+PSPHOT.OUTPUT.CMP   	OUTPUT {OUTPUT}.cmp            		 CMP       NONE       FPA        TRUE      NONE
+PSPHOT.OUTPUT.CMF   	OUTPUT {OUTPUT}.cmf            		 CMF       NONE       FPA        TRUE      NONE
+PSPHOT.PSF.SAVE     	OUTPUT {OUTPUT}.psf            		 PSF       NONE       FPA        TRUE      NONE
+
+SOURCE.PLOT.MOMENTS  	OUTPUT OUTPUT}.mnt.png         		 KAPA      NONE       FPA        TRUE      NONE
+SOURCE.PLOT.PSFMODEL 	OUTPUT OUTPUT}.psf.png         		 KAPA      NONE       FPA        TRUE      NONE
+SOURCE.PLOT.APRESID  	OUTPUT OUTPUT}.dap.png         		 KAPA      NONE       FPA        TRUE      NONE
+
+PSASTRO.OUTPUT.CMP  	OUTPUT {OUTPUT}.smp            		 CMP       NONE       FPA        TRUE      NONE
+PSASTRO.OUTPUT.CMF  	OUTPUT {OUTPUT}.smf            		 CMF       NONE       FPA        TRUE      NONE
+PSASTRO.OUT.MODEL       OUTPUT {OUTPUT}.asm               ASTROM.MODEL     NONE       FPA        TRUE      NONE
+PSASTRO.OUT.REFSTARS    OUTPUT {OUTPUT}.aref.fits         ASTROM.REFSTARS  NONE       FPA        TRUE      NONE
+
+PSWARP.OUTPUT       	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PSWARP.OUTPUT.MASK  	OUTPUT {OUTPUT}.mask.fits      		 MASK      NONE       FPA        TRUE      NONE
+PSWARP.OUTPUT.WEIGHT    OUTPUT {OUTPUT}.wt.fits        		 WEIGHT    NONE       FPA        TRUE      NONE
+PSWARP.OUTPUT.SOURCES   OUTPUT {OUTPUT}.cmf                      CMF       NONE       FPA        TRUE      NONE
+PSWARP.BIN1         	OUTPUT {OUTPUT}.b1.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+PSWARP.BIN2         	OUTPUT {OUTPUT}.b2.fits        		 IMAGE     NONE       FPA        TRUE      NONE
+
+SKYCELL.STATS       	OUTPUT {OUTPUT}.stats          		 STATS     NONE       FPA        TRUE      NONE
+SKYCELL.TEMPLATE    	OUTPUT {OUTPUT}.skycell        		 SKYCELL   NONE       FPA        TRUE      NONE
+
+PPSUB.OUTPUT        	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PPSUB.OUTPUT.MASK   	OUTPUT {OUTPUT}.mask.fits      		 MASK      NONE       FPA        TRUE      NONE
+PPSUB.OUTPUT.WEIGHT 	OUTPUT {OUTPUT}.wt.fits        		 WEIGHT    NONE       FPA        TRUE      NONE
+
+PPSTACK.OUTPUT      	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PPSTACK.OUTPUT.MASK 	OUTPUT {OUTPUT}.mask.fits      		 MASK      NONE       FPA        TRUE      NONE
+PPSTACK.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.weight.fits    		 WEIGHT    NONE       FPA        TRUE      NONE
+
+PPSTAMP.OUTPUT      	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PPSTAMP.CHIP        	OUTPUT {OUTPUT}.ch.fits        		 IMAGE     NONE       CHIP       FALSE     MEF
+
+PPSIM.OUTPUT        	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      SIMTEST
+PPSIM.SOURCES       	OUTPUT {OUTPUT}.cmf            		 CMF       NONE       FPA        TRUE      NONE
+
+PPARITH.OUTPUT.IMAGE  	OUTPUT {OUTPUT}.fits           		 IMAGE     NONE       FPA        TRUE      NONE
+PPARITH.OUTPUT.MASK   	OUTPUT {OUTPUT}.fits           		 MASK      NONE       FPA        TRUE      NONE
+
+LOG.IMFILE            	OUTPUT {OUTPUT}.imfile.log     		 TEXT      NONE       FPA        TRUE      NONE
+LOG.EXP               	OUTPUT {OUTPUT}.exp.log        		 TEXT      NONE       FPA        TRUE      NONE
+
+TRACE.IMFILE          	OUTPUT {OUTPUT}.imfile.trace   		 TEXT      NONE       FPA        TRUE      NONE
+TRACE.EXP             	OUTPUT {OUTPUT}.exp.trace      		 TEXT      NONE       FPA        TRUE      NONE
Index: /trunk/ippconfig/recipes/filerules-split.mdc
===================================================================
--- /trunk/ippconfig/recipes/filerules-split.mdc	(revision 17523)
+++ /trunk/ippconfig/recipes/filerules-split.mdc	(revision 17523)
@@ -0,0 +1,175 @@
+### File rules for PHU=CHIP, EXT=CELL (eg, GPC1)
+### this file specifies compression types for various output files
+
+# for basic chip analysis, psphot should produce SPLIT output
+# for basic camera analysis, psastro should produce MEF output
+PSPHOT.OUTPUT      STR PSPHOT.OUT.CMF.SPL
+PSASTRO.INPUT      STR PSASTRO.INPUT.CMF
+PSASTRO.OUTPUT     STR PSASTRO.OUT.CMF.MEF
+PSASTRO.OUTPUT.SPL STR PSASTRO.OUT.CMF.SPL
+PSASTRO.OUTPUT.MEF STR PSASTRO.OUT.CMF.MEF
+
+### input file definitions
+### use @DETDB entries to get the detrend images from the database
+### replace @DETDB with @FILES if you want to require it from the 
+### command line, or with an explicit name to require a specific file
+TYPE                    INPUT    FILENAME.RULE DATA.LEVEL FILE.TYPE
+
+## files used by ppImage
+PPIMAGE.INPUT           INPUT    @FILES        CHIP       IMAGE
+PPIMAGE.INPUT.MASK      INPUT    @FILES        CHIP       MASK
+PPIMAGE.INPUT.WEIGHT    INPUT    @FILES        CHIP       WEIGHT
+PPIMAGE.INPUT.PSF       INPUT    @FILES        CHIP       PSF
+PPIMAGE.INPUT.SRC       INPUT    @FILES        CHIP       CMF
+PPIMAGE.MASK            INPUT    @DETDB        CHIP       MASK
+PPIMAGE.BIAS            INPUT    @DETDB        CHIP       IMAGE
+PPIMAGE.DARK            INPUT    @DETDB        CHIP       DARK
+PPIMAGE.FLAT            INPUT    @DETDB        CHIP       IMAGE
+PPIMAGE.FRINGE     	INPUT 	 @DETDB        CHIP       FRINGE
+PPIMAGE.SHUTTER         INPUT    @DETDB        CHIP       IMAGE
+
+## Files used by ppMerge
+PPMERGE.INPUT           INPUT    @FILES        CHIP       IMAGE
+PPMERGE.INPUT.MASK      INPUT    @FILES        CHIP       MASK
+PPMERGE.INPUT.WEIGHT    INPUT    @FILES        CHIP       WEIGHT
+
+## files used to build and apply the flat-field correction images
+DVOCORR.INPUT      	INPUT 	 @FILES        CHIP       IMAGE
+DVOCORR.REFHEAD    	INPUT 	 @FILES        CHIP       HEADER
+DVOFLAT.INPUT      	INPUT 	 @FILES        CHIP       IMAGE
+DVOFLAT.CORR       	INPUT 	 @DETDB        CHIP       IMAGE
+
+## files used by psphot
+PSPHOT.LOAD             INPUT    @FILES        CHIP       IMAGE
+PSPHOT.INPUT            INPUT    @FILES        CHIP       IMAGE
+PSPHOT.MASK             INPUT    @FILES        CHIP       MASK     
+PSPHOT.WEIGHT           INPUT    @FILES        CHIP       WEIGHT     
+PSPHOT.PSF.LOAD         INPUT    @FILES        CHIP       PSF       
+PSPHOT.INPUT.CMF        INPUT    @FILES        CHIP       CMF       
+
+## files used by psastro 
+PSASTRO.INPUT.CMP       INPUT    @FILES        CHIP       CMP
+PSASTRO.INPUT.CMF       INPUT    @FILES        CHIP       CMF
+PSASTRO.WCS             INPUT    @FILES        CHIP       CMF
+PSASTRO.MODEL           INPUT    @DETDB        FPA        ASTROM
+
+## files used by pswarp
+PSWARP.INPUT            INPUT    @FILES        CHIP       IMAGE
+PSWARP.WEIGHT           INPUT    @FILES        CHIP       WEIGHT
+PSWARP.MASK             INPUT    @FILES        CHIP       MASK
+PSWARP.SKYCELL          INPUT    @FILES        FPA        IMAGE
+PSWARP.ASTROM           INPUT    @FILES        CHIP       CMF
+
+## files used by ppsub
+PPSUB.INPUT             INPUT    @FILES        FPA        IMAGE
+PPSUB.INPUT.MASK        INPUT    @FILES        FPA        MASK
+PPSUB.INPUT.WEIGHT      INPUT    @FILES        FPA        WEIGHT
+PPSUB.REF               INPUT    @FILES        FPA        IMAGE
+PPSUB.REF.MASK          INPUT    @FILES        FPA        MASK
+PPSUB.REF.WEIGHT        INPUT    @FILES        FPA        WEIGHT
+PPSUB.SOURCES      	INPUT 	 @FILES        FPA        CMF
+
+## files used by ppstack
+PPSTACK.INPUT           INPUT    @FILES        FPA        IMAGE
+PPSTACK.INPUT.MASK      INPUT    @FILES        FPA        MASK
+PPSTACK.INPUT.WEIGHT    INPUT    @FILES        FPA        WEIGHT
+PPSTACK.INPUT.PSF  	INPUT 	 @FILES        CHIP       PSF
+PPSTACK.SOURCES         INPUT    @FILES        FPA        CMF
+
+## files used by ppstamp
+PPSTAMP.INPUT           INPUT    @FILES        CHIP       IMAGE
+
+# files used by pparith
+PPARITH.INPUT.IMAGE     INPUT    @FILES        CHIP       IMAGE
+PPARITH.INPUT.MASK      INPUT    @FILES        CHIP       MASK
+
+### output file definitions
+TYPE                    OUTPUT FILENAME.RULE                     FILE.TYPE FITS.TYPE  DATA.LEVEL FILE.SAVE FILE.FORMAT
+PPIMAGE.OUTPUT          OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     COMP_IMG   CHIP       TRUE      NONE
+PPIMAGE.OUTPUT.MASK     OUTPUT {OUTPUT}.{CHIP.NAME}.mk.fits      MASK      COMP_MASK  CHIP       TRUE      NONE
+PPIMAGE.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits      WEIGHT    COMP_WT    CHIP       TRUE      NONE
+PPIMAGE.OUTPUT.DETMASK  OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     COMP_MASK  CHIP       TRUE      NONE
+		        									        
+PPIMAGE.CHIP            OUTPUT {OUTPUT}.{CHIP.NAME}.ch.fits      IMAGE     COMP_IMG   CHIP       TRUE      NONE
+PPIMAGE.CHIP.MASK       OUTPUT {OUTPUT}.{CHIP.NAME}.ch.mk.fits   MASK      COMP_MASK  CHIP       TRUE      NONE
+PPIMAGE.CHIP.WEIGHT     OUTPUT {OUTPUT}.{CHIP.NAME}.ch.wt.fits   WEIGHT    COMP_WT    CHIP       TRUE      NONE
+		        									        
+PPIMAGE.OUTPUT.FPA1     OUTPUT {OUTPUT}.b1.fits                  IMAGE     NONE       FPA        TRUE      NONE
+PPIMAGE.OUTPUT.FPA2     OUTPUT {OUTPUT}.b2.fits                  IMAGE     NONE       FPA        TRUE      NONE
+		        									        
+PPIMAGE.BIN1            OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits      IMAGE     NONE       CHIP       TRUE      NONE
+PPIMAGE.BIN2            OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits      IMAGE     NONE       CHIP       TRUE      NONE
+		        									        
+PPIMAGE.JPEG1           OUTPUT {OUTPUT}.b1.jpg                   JPEG      NONE       FPA        TRUE      NONE
+PPIMAGE.JPEG2           OUTPUT {OUTPUT}.b2.jpg                   JPEG      NONE       FPA        TRUE      NONE
+		        									        
+PPIMAGE.STATS           OUTPUT {OUTPUT}.{CHIP.NAME}.stats        STATS     NONE       CHIP       TRUE      NONE
+		        									        
+## note: these use the  same output naming convention since they are used for different ppMerge runs
+PPMERGE.OUTPUT.MASK     OUTPUT {OUTPUT}.{CHIP.NAME}.fits         MASK      NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.BIAS     OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.DARK     OUTPUT {OUTPUT}.{CHIP.NAME}.fits         DARK      NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.SHUTTER  OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.FLAT     OUTPUT {OUTPUT}.{CHIP.NAME}.fits         IMAGE     NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.FRINGE   OUTPUT {OUTPUT}.{CHIP.NAME}.fits         FRINGE    NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.SIGMA    OUTPUT {OUTPUT}.sigma.fits               IMAGE     NONE       CHIP       TRUE      NONE
+PPMERGE.OUTPUT.COUNT    OUTPUT {OUTPUT}.count.fits               IMAGE     NONE       CHIP       TRUE      NONE
+		        									        
+DVOCORR.OUTPUT          OUTPUT {OUTPUT}.{CHIP.NAME}.fc.fits      IMAGE     NONE       CHIP       TRUE      NONE
+DVOFLAT.OUTPUT          OUTPUT {OUTPUT}.{CHIP.NAME}.co.fits      IMAGE     NONE       CHIP       TRUE      NONE
+		        									        
+PSPHOT.RESID            OUTPUT {OUTPUT}.{CHIP.NAME}.res.fits     IMAGE     COMP_SUB   CHIP       TRUE      NONE
+PSPHOT.BACKGND          OUTPUT {OUTPUT}.{CHIP.NAME}.bck.fits     IMAGE     COMP_IMG   CHIP       TRUE      NONE
+PSPHOT.BACKSUB          OUTPUT {OUTPUT}.{CHIP.NAME}.sub.fits     IMAGE     COMP_SUB   CHIP       TRUE      NONE
+PSPHOT.BACKMDL          OUTPUT {OUTPUT}.{CHIP.NAME}.mdl.fits     IMAGE     COMP_IMG   CHIP       TRUE      NONE
+		        									        
+PSPHOT.OUTPUT.RAW       OUTPUT {OUTPUT}.{CHIP.NAME}              RAW       NONE       CHIP       TRUE      NONE
+PSPHOT.OUTPUT.SX        OUTPUT {OUTPUT}.{CHIP.NAME}.sx           SX        NONE       CHIP       TRUE      NONE
+PSPHOT.OUTPUT.OBJ       OUTPUT {OUTPUT}.{CHIP.NAME}.obj          OBJ       NONE       CHIP       TRUE      NONE
+PSPHOT.OUTPUT.CMP       OUTPUT {OUTPUT}.{CHIP.NAME}.cmp          CMP       NONE       CHIP       TRUE      NONE
+PSPHOT.OUT.CMF.SPL      OUTPUT {OUTPUT}.{CHIP.NAME}.cmf          CMF       NONE       CHIP       TRUE      NONE
+PSPHOT.OUT.CMF.MEF      OUTPUT {OUTPUT}.cmf                      CMF       NONE       FPA        TRUE      MEF
+PSPHOT.PSF.SAVE         OUTPUT {OUTPUT}.psf                      PSF       NONE       CHIP       TRUE      MEF
+		        									        
+SOURCE.PLOT.MOMENTS     OUTPUT {OUTPUT}.{CHIP.NAME}.mnt.png      KAPA      NONE       CHIP       TRUE      NONE
+SOURCE.PLOT.PSFMODEL    OUTPUT {OUTPUT}.{CHIP.NAME}.psf.png      KAPA      NONE       CHIP       TRUE      NONE
+SOURCE.PLOT.APRESID     OUTPUT {OUTPUT}.{CHIP.NAME}.dap.png      KAPA      NONE       CHIP       TRUE      NONE
+		        									        
+PSASTRO.OUTPUT.CMP      OUTPUT {OUTPUT}.{CHIP.NAME}.smp          CMP       NONE       CHIP       TRUE      NONE
+PSASTRO.OUT.CMF.SPL     OUTPUT {OUTPUT}.{CHIP.NAME}.smf          CMF       NONE       CHIP       TRUE      NONE
+PSASTRO.OUT.CMF.MEF     OUTPUT {OUTPUT}.smf                      CMF       NONE       FPA        TRUE      MEF
+PSASTRO.OUT.MODEL       OUTPUT {OUTPUT}.asm               ASTROM.MODEL     NONE       FPA        TRUE      NONE
+PSASTRO.OUT.REFSTARS    OUTPUT {OUTPUT}.aref.fits         ASTROM.REFSTARS  NONE       FPA        TRUE      NONE
+		        									        
+PSWARP.OUTPUT           OUTPUT {OUTPUT}.fits                     IMAGE     COMP_IMG   FPA        TRUE      NONE
+PSWARP.OUTPUT.MASK      OUTPUT {OUTPUT}.mask.fits                MASK      COMP_MASK  FPA        TRUE      NONE
+PSWARP.OUTPUT.WEIGHT    OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_WT    FPA        TRUE      NONE
+PSWARP.OUTPUT.SOURCES   OUTPUT {OUTPUT}.cmf                      CMF       NONE       FPA        TRUE      NONE
+PSWARP.BIN1             OUTPUT {OUTPUT}.b1.fits                  IMAGE     NONE       FPA        TRUE      NONE
+PSWARP.BIN2             OUTPUT {OUTPUT}.b2.fits                  IMAGE     NONE       FPA        TRUE      NONE
+		        									        
+SKYCELL.STATS           OUTPUT {OUTPUT}.stats                    STATS     NONE       FPA        TRUE      NONE
+SKYCELL.TEMPLATE        OUTPUT {OUTPUT}.skycell                  SKYCELL   NONE       FPA        TRUE      NONE
+		        									        
+PPSUB.OUTPUT            OUTPUT {OUTPUT}.fits                     IMAGE     COMP_SUB   FPA        TRUE      NONE
+PPSUB.OUTPUT.MASK       OUTPUT {OUTPUT}.mask.fits                MASK      COMP_MASK  FPA        TRUE      NONE
+PPSUB.OUTPUT.WEIGHT     OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_WT    FPA        TRUE      NONE
+											        
+PPSTACK.OUTPUT          OUTPUT {OUTPUT}.fits                     IMAGE     COMP_IMG   FPA        TRUE      NONE
+PPSTACK.OUTPUT.MASK     OUTPUT {OUTPUT}.mask.fits                MASK      COMP_MASK  FPA        TRUE      NONE
+PPSTACK.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.wt.fits                  WEIGHT    COMP_WT    FPA        TRUE      NONE
+		        									        
+PPSTAMP.OUTPUT          OUTPUT {OUTPUT}.fits                     IMAGE     NONE       FPA        TRUE      NONE
+PPSTAMP.CHIP            OUTPUT {OUTPUT}.ch.fits                  IMAGE     NONE       CHIP       FALSE     MEF
+		        									        
+PPSIM.OUTPUT            OUTPUT {OUTPUT}.fits                     IMAGE     NONE       FPA        TRUE      MEF
+PPSIM.SOURCES           OUTPUT {OUTPUT}.cmf                      CMF       NONE       FPA        TRUE      MEF
+											        
+PPARITH.OUTPUT.IMAGE   	OUTPUT {OUTPUT}.fits                     IMAGE     COMP_IMG   CHIP       TRUE      NONE
+PPARITH.OUTPUT.MASK    	OUTPUT {OUTPUT}.fits                     MASK      COMP_MASK  CHIP       TRUE      NONE
+		       										        
+LOG.IMFILE             	OUTPUT {OUTPUT}.{CHIP.NAME}.log          TEXT      NONE       CHIP       TRUE      NONE
+LOG.EXP                	OUTPUT {OUTPUT}.log                      TEXT      NONE       FPA        TRUE      NONE
+		       										        
+TRACE.IMFILE           	OUTPUT {OUTPUT}.{CHIP.NAME}.trace        TEXT      NONE       CHIP       TRUE      NONE
+TRACE.EXP              	OUTPUT {OUTPUT}.trace                    TEXT      NONE       FPA        TRUE      NONE
Index: /trunk/ippconfig/recipes/fitstypes.mdc
===================================================================
--- /trunk/ippconfig/recipes/fitstypes.mdc	(revision 17523)
+++ /trunk/ippconfig/recipes/fitstypes.mdc	(revision 17523)
@@ -0,0 +1,87 @@
+
+# BITPIX is the bits per pixel for writing the output data
+# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
+# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
+# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
+# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
+# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
+
+# BITPIX(S32) is the bits per pixel for writing the output data
+# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
+# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
+# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
+# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
+# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
+# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
+# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
+# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
+# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
+# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
+# FLOAT(STR) is the name of a custom floating-point type
+
+DET_IMAGE	METADATA
+	BITPIX		S32	-32
+END
+DET_MASK	METADATA
+	BITPIX		S32	8
+END
+DET_WEIGHT	METADATA
+	BITPIX		S32	-32
+END
+
+SKY_IMAGE	METADATA
+	BITPIX		S32	-32
+END
+SKY_MASK	METADATA
+	BITPIX		S32	8
+END
+SKY_WEIGHT	METADATA
+	BITPIX		S32	-32
+END
+
+# Compressed positive image
+COMP_IMG	METADATA
+	BITPIX		S32	16
+	SCALING		STR	STDEV_POSITIVE
+	STDEV.BITS	S32	4
+	STDEV.NUM	F32	10
+	COMPRESSION	STR	RICE
+	TILE.X		S32	0
+	TILE.Y		S32	1
+	TILE.Z		S32	1
+	NOISE		S32	8
+END
+# Compressed mask
+COMP_MASK	METADATA
+	BITPIX		S32	8
+	COMPRESSION	STR	PLIO
+	TILE.X		S32	0
+	TILE.Y		S32	1
+	TILE.Z		S32	1
+	NOISE		S32	8
+END
+# Compressed weight image
+COMP_WT		METADATA
+	BITPIX		S32	16
+	SCALING		STR	STDEV_POSITIVE
+	STDEV.BITS	S32	4
+	STDEV.NUM	F32	10
+	COMPRESSION	STR	RICE
+	TILE.X		S32	0
+	TILE.Y		S32	1
+	TILE.Z		S32	1
+	NOISE		S32	8
+END
+# Compressed subtraction image
+COMP_SUB	METADATA
+	BITPIX		S32	16
+	SCALING		STR	STDEV_BOTH
+	STDEV.BITS	S32	4
+	STDEV.NUM	F32	5
+	COMPRESSION	STR	RICE
+	TILE.X		S32	0
+	TILE.Y		S32	1
+	TILE.Z		S32	1
+	NOISE		S32	8
+END
+
Index: /trunk/ippconfig/recipes/ppImage.config
===================================================================
--- /trunk/ippconfig/recipes/ppImage.config	(revision 17522)
+++ /trunk/ippconfig/recipes/ppImage.config	(revision 17523)
@@ -482,5 +482,5 @@
   BIN2.FITS        BOOL    TRUE            # Save 2nd binned chip image?
   PHOTOM           BOOL    TRUE            # Source identification and photometry
-  ASTROM.CHIP      BOOL    TRUE            # Astrometry per chip?
+  ASTROM.CHIP      BOOL    FALSE           # Astrometry per chip?
   ASTROM.MOSAIC    BOOL    FALSE           # Astrometry for mosaic?
 END
Index: /trunk/ippconfig/recipes/reductionClasses.mdc
===================================================================
--- /trunk/ippconfig/recipes/reductionClasses.mdc	(revision 17523)
+++ /trunk/ippconfig/recipes/reductionClasses.mdc	(revision 17523)
@@ -0,0 +1,104 @@
+# These reduction classes define recipes that go together as a group
+
+DETREND		METADATA
+	BIAS_PROCESS	STR	PPIMAGE_O
+	BIAS_RESID	STR	PPIMAGE_B
+	BIAS_VERIFY	STR	PPIMAGE_OB
+        BIAS_STACK      STR     PPMERGE_BIAS
+	DARK_PROCESS	STR	PPIMAGE_OB
+	DARK_RESID	STR	PPIMAGE_D
+	DARK_VERIFY	STR	PPIMAGE_OBD
+        DARK_STACK      STR     PPMERGE_DARK
+	SHUTTER_PROCESS	STR	PPIMAGE_OBD
+	SHUTTER_RESID	STR	PPIMAGE_S
+	SHUTTER_VERIFY	STR	PPIMAGE_OBDS
+        SHUTTER_STACK   STR     PPMERGE_SHUTTER
+	FLAT_PROCESS	STR	PPIMAGE_OBDS
+	FLAT_RESID	STR	PPIMAGE_F
+	FLAT_VERIFY	STR	PPIMAGE_OBDSF
+        FLAT_STACK      STR     PPMERGE_FLAT
+	FRINGE_PROCESS	STR	PPIMAGE_OBDSF
+	FRINGE_RESID	STR	PPIMAGE_R
+	FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
+        FRINGE_STACK    STR     PPMERGE_FRINGE
+
+	# Generation of pixel masks from darks and flats
+	DARKMASK_PROCESS	STR	PPIMAGE_OBD
+	DARKMASK_RESID		STR	PPIMAGE_N
+	DARKMASK_VERIFY		STR	PPIMAGE_OBD
+	DARKMASK_STACK		STR	PPMERGE_DARKMASK
+	FLATMASK_PROCESS	STR	PPIMAGE_OBDSF
+	FLATMASK_RESID		STR	PPIMAGE_N
+	FLATMASK_VERIFY		STR	PPIMAGE_OBDSF
+	FLATMASK_STACK		STR	PPMERGE_FLATMASK
+	JPEG_BIN1_IMAGE_DARKMASK STR	PPIMAGE_J1_IMAGE_M
+	JPEG_BIN2_IMAGE_DARKMASK STR	PPIMAGE_J2_IMAGE_M
+	JPEG_BIN1_IMAGE_FLATMASK STR	PPIMAGE_J1_IMAGE_M
+	JPEG_BIN2_IMAGE_FLATMASK STR	PPIMAGE_J2_IMAGE_M
+	JPEG_BIN1_RESID_DARKMASK STR	PPIMAGE_J1_RESID_M
+	JPEG_BIN2_RESID_DARKMASK STR	PPIMAGE_J2_RESID_M
+	JPEG_BIN1_RESID_FLATMASK STR	PPIMAGE_J1_RESID_M
+	JPEG_BIN2_RESID_FLATMASK STR	PPIMAGE_J2_RESID_M
+
+	JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
+	JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
+	JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
+	JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
+	JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
+	JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
+	JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
+	JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
+	JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
+	JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
+	JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
+	JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
+	JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
+	JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
+
+	JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
+	JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
+	JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
+	JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
+	JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
+	JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
+	JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
+	JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
+	JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
+	JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
+	JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
+	JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
+	JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
+	JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
+END
+
+# basic science analysis
+DEFAULT		METADATA
+	CHIP		STR	PPIMAGE_OBDSFRP
+	JPEG_BIN1       STR     PPIMAGE_J1
+	JPEG_BIN2       STR     PPIMAGE_J2
+END
+
+# photometry for pre-detrended images
+PROCESSED	METADATA
+	CHIP		STR	PPIMAGE_P
+	JPEG_BIN1       STR     PPIMAGE_J1
+	JPEG_BIN2       STR     PPIMAGE_J2
+END
+
+# Detrend Processing only for raw data
+DETREND_ONLY		METADATA
+	CHIP		STR	PPIMAGE_DET_ONLY
+	JPEG_BIN1       STR     PPIMAGE_J1
+	JPEG_BIN2       STR     PPIMAGE_J2
+END
+
+NO_PHOTOM	METADATA
+	CHIP		STR	PPIMAGE_OBDSF
+END
+
+# Detrend Processing only for raw data
+MASKPHOT		METADATA
+	CHIP		STR	PPIMAGE_MASKPHOT
+	JPEG_BIN1       STR     PPIMAGE_J1
+	JPEG_BIN2       STR     PPIMAGE_J2
+END
Index: /trunk/ippconfig/sdss/camera.config
===================================================================
--- /trunk/ippconfig/sdss/camera.config	(revision 17522)
+++ /trunk/ippconfig/sdss/camera.config	(revision 17523)
@@ -51,88 +51,10 @@
 END
 
-# Reduction classes
-REDUCTION	METADATA
-	# Detrend processing not needed for these
-        # photometry & astrometry for pre-detrended images
-	PROCESSED	METADATA
-		CHIP		STR	PPIMAGE_OP
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
+
+FITSTYPES       STR     recipes/fitstypes.mdc
+
+## XXX replace with appropriate common filerules?
 FILERULES METADATA
    PSASTRO.INPUT       STR PSASTRO.INPUT.CMF
Index: /trunk/ippconfig/simmosaic/camera.config
===================================================================
--- /trunk/ippconfig/simmosaic/camera.config	(revision 17522)
+++ /trunk/ippconfig/simmosaic/camera.config	(revision 17523)
@@ -60,317 +60,10 @@
 END
 
-# Reduction classes
-REDUCTION	METADATA
-	# Detrend processing
-	DETREND		METADATA
-		BIAS_PROCESS	STR	PPIMAGE_O
-		BIAS_RESID	STR	PPIMAGE_B
-		BIAS_VERIFY	STR	PPIMAGE_OB
-		BIAS_STACK	STR	PPMERGE_BIAS
-		DARK_PROCESS	STR	PPIMAGE_OB
-		DARK_RESID	STR	PPIMAGE_D
-		DARK_VERIFY	STR	PPIMAGE_OBD
-		DARK_STACK	STR	PPMERGE_DARK
-		SHUTTER_PROCESS	STR	PPIMAGE_OBD
-		SHUTTER_RESID	STR	PPIMAGE_S
-		SHUTTER_VERIFY	STR	PPIMAGE_OBDS
-		SHUTTER_STACK	STR	PPMERGE_SHUTTER
-		FLAT_PROCESS	STR	PPIMAGE_OBDS
-		FLAT_RESID	STR	PPIMAGE_F
-		FLAT_VERIFY	STR	PPIMAGE_OBDSF
-		FLAT_STACK	STR	PPMERGE_FLAT
-		FRINGE_PROCESS	STR	PPIMAGE_OBDSF
-		FRINGE_RESID	STR	PPIMAGE_R
-		FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
-		FRINGE_STACK	STR	PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-		# Generation of pixel masks from darks and flats
-		DARKMASK_PROCESS	STR	PPIMAGE_OBD
-		DARKMASK_RESID		STR	PPIMAGE_N
-		DARKMASK_VERIFY		STR	PPIMAGE_OBD
-		DARKMASK_STACK		STR	PPMERGE_DARKMASK
-		FLATMASK_PROCESS	STR	PPIMAGE_OBDSF
-		FLATMASK_RESID		STR	PPIMAGE_N
-		FLATMASK_VERIFY		STR	PPIMAGE_OBDSF
-		FLATMASK_STACK		STR	PPMERGE_FLATMASK
-		JPEG_BIN1_IMAGE_DARKMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_DARKMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_IMAGE_FLATMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_FLATMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_RESID_DARKMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_DARKMASK STR	PPIMAGE_J2_RESID_M
-		JPEG_BIN1_RESID_FLATMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_FLATMASK STR	PPIMAGE_J2_RESID_M
+FITSTYPES       STR     recipes/fitstypes.mdc
 
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
-
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-	# Processing raw data
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES METADATA
-   ### Redirections
-   PSASTRO.INPUT      STR PSASTRO.INPUT.CMF
-   PSASTRO.OUTPUT     STR PSASTRO.OUT.CMF.SPL
-   PSASTRO.OUTPUT.MEF STR PSASTRO.OUT.CMF.MEF
-   PSPHOT.OUTPUT      STR PSPHOT.OUT.CMF.SPL
-
-   ### input file definitions
-   ### use @DETDB entries to get the detrend images from the database
-   ### replace @DETDB with @FILES if you want to require it from the 
-   ### command line, or with an explicit name to require a specific file
-   TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE 
-
-   ## files used by ppImage
-   PPIMAGE.INPUT      INPUT @FILES        CHIP       IMAGE     
-   PPIMAGE.MASK       INPUT @DETDB        CELL       IMAGE     
-   PPIMAGE.BIAS       INPUT @DETDB        CELL       IMAGE     
-   PPIMAGE.DARK       INPUT @DETDB        CELL       DARK     
-   PPIMAGE.FLAT       INPUT @DETDB        CELL       IMAGE     
-   PPIMAGE.FRINGE     INPUT @DETDB        CHIP       FRINGE     
-   PPIMAGE.SHUTTER    INPUT @DETDB        CELL       IMAGE     
-
-   ## Files used by ppMerge
-   PPMERGE.INPUT      INPUT @FILES        CHIP       IMAGE
-   PPMERGE.INPUT.MASK INPUT @FILES        CHIP       MASK
-   PPMERGE.INPUT.WEIGHT INPUT @FILES      CHIP       WEIGHT
-
-   ## files used to build and apply the flat-field correction images
-   DVOCORR.INPUT      INPUT @FILES        CHIP       IMAGE     
-   DVOCORR.REFHEAD    INPUT @FILES        CHIP       HEADER     
-   DVOFLAT.INPUT      INPUT @FILES        CHIP       IMAGE 	
-   DVOFLAT.CORR       INPUT @DETDB        CHIP       IMAGE 	
-
-   ## files used by psphot 
-   PSPHOT.LOAD        INPUT @FILES        CHIP       IMAGE     
-   PSPHOT.INPUT       INPUT @FILES        CHIP       IMAGE     
-   PSPHOT.MASK        INPUT @FILES        CHIP       MASK     
-   PSPHOT.WEIGHT      INPUT @FILES        CHIP       WEIGHT     
-   PSPHOT.PSF.LOAD    INPUT @FILES        CHIP	     PSF       
-   PSPHOT.INPUT.CMF   INPUT @FILES        CHIP	     CMF       
-
-   ## files used by psastro 
-   PSASTRO.INPUT.CMF  INPUT @FILES        CHIP       CMF       
-
-   ## files used by pswarp
-   PSWARP.INPUT       INPUT @FILES        CHIP       IMAGE     
-   PSWARP.SKYCELL     INPUT @FILES        FPA        IMAGE     
-   PSWARP.WEIGHT      INPUT @FILES        CHIP       WEIGHT
-   PSWARP.MASK        INPUT @FILES        CHIP       MASK
-   PSWARP.ASTROM      INPUT @FILES        CHIP       CMF       
-
-   PPSUB.INPUT        INPUT    none.fits  FPA	     IMAGE
-   PPSUB.INPUT.MASK   INPUT    none.fits  FPA	     MASK
-   PPSUB.INPUT.WEIGHT INPUT    none.fits  FPA	     WEIGHT
-   PPSUB.REF          INPUT    none.fits  FPA	     IMAGE
-   PPSUB.REF.MASK     INPUT    none.fits  FPA	     MASK
-   PPSUB.REF.WEIGHT   INPUT    none.fits  FPA	     WEIGHT
-
-   PPSTACK.INPUT      INPUT    none.fits  FPA	     IMAGE
-   PPSTACK.INPUT.MASK INPUT    none.fits  FPA	     MASK
-   PPSTACK.INPUT.WEIGHT INPUT  none.fits  FPA	     WEIGHT
-
-   PPSTAMP.INPUT      INPUT @FILES        CHIP       IMAGE
-
-   PPARITH.INPUT.IMAGE INPUT @FILES        CHIP       IMAGE
-   PPARITH.INPUT.MASK  INPUT @FILES        CHIP       MASK
-
-
-   ### output file definitions
-   TYPE                OUTPUT   FILENAME.RULE      	       FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-   PPIMAGE.OUTPUT      OUTPUT   {OUTPUT}.{CHIP.NAME}.fits      IMAGE     NONE      CHIP       TRUE      SPLIT
-   PPIMAGE.OUTPUT.MASK OUTPUT   {OUTPUT}.{CHIP.NAME}.mask.fits MASK      NONE      CHIP       TRUE      SPLIT
-   PPIMAGE.OUTPUT.WEIGHT OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits   WEIGHT    NONE      CHIP       TRUE      SPLIT
-   PPIMAGE.CHIP        OUTPUT 	{OUTPUT}.{CHIP.NAME}.ch.fits   IMAGE     NONE      CHIP       TRUE      SPLIT
-   PPIMAGE.CHIP.MASK   OUTPUT 	{OUTPUT}.{CHIP.NAME}.ch.mask.fits MASK   NONE      CHIP       TRUE      SPLIT
-   PPIMAGE.CHIP.WEIGHT OUTPUT 	{OUTPUT}.{CHIP.NAME}.ch.wt.fits WEIGHT   NONE      CHIP       TRUE      SPLIT
-   PPIMAGE.OUTPUT.FPA1 OUTPUT 	{OUTPUT}.fpa1.fits             IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA2 OUTPUT 	{OUTPUT}.fpa2.fits             IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.STATS       OUTPUT   {OUTPUT}.stats                 STATS     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.JPEG1       OUTPUT   {OUTPUT}.b1.jpg    	       JPEG      NONE      FPA        TRUE      NONE
-   PPIMAGE.JPEG2       OUTPUT   {OUTPUT}.b2.jpg    	       JPEG      NONE      FPA        TRUE      NONE
-   PPIMAGE.BIN1        OUTPUT   {OUTPUT}.{CHIP.NAME}.b1.fits   IMAGE     NONE      CHIP       TRUE      SPLIT
-   PPIMAGE.BIN2        OUTPUT   {OUTPUT}.{CHIP.NAME}.b2.fits   IMAGE     NONE      CHIP       TRUE      SPLIT
-
-   PPMERGE.OUTPUT.MASK   OUTPUT {OUTPUT}.{CHIP.NAME}.fits      MASK      NONE      CHIP       TRUE      SPLIT
-   PPMERGE.OUTPUT.BIAS   OUTPUT {OUTPUT}.{CHIP.NAME}.fits      IMAGE     NONE      CHIP       TRUE      SPLIT
-   PPMERGE.OUTPUT.DARK   OUTPUT {OUTPUT}.{CHIP.NAME}.fits      DARK      NONE      CHIP       TRUE      SPLIT
-   PPMERGE.OUTPUT.SHUTTER OUTPUT {OUTPUT}.{CHIP.NAME}.fits     IMAGE     NONE      CHIP       TRUE      SPLIT
-   PPMERGE.OUTPUT.FLAT   OUTPUT {OUTPUT}.{CHIP.NAME}.fits      IMAGE     NONE      CHIP       TRUE      SPLIT
-   PPMERGE.OUTPUT.FRINGE OUTPUT {OUTPUT}.{CHIP.NAME}.fits      FRINGE    NONE      CHIP       TRUE      SPLIT
-   PPMERGE.OUTPUT.SIGMA  OUTPUT {OUTPUT}.sigma.fits            IMAGE     NONE      CHIP       TRUE      NONE
-   PPMERGE.OUTPUT.COUNT  OUTPUT {OUTPUT}.count.fits            IMAGE     NONE      CHIP       TRUE      NONE
-
-   DVOCORR.OUTPUT      OUTPUT 	{OUTPUT}.{CHIP.NAME}.fc.fits   IMAGE     NONE      CHIP       TRUE      NONE
-   DVOFLAT.OUTPUT      OUTPUT 	{OUTPUT}.{CHIP.NAME}.co.fits   IMAGE     NONE      CHIP       TRUE      NONE
-
-   PSPHOT.RESID        OUTPUT   {OUTPUT}.{CHIP.NAME}.res.fits  IMAGE     NONE      CHIP       TRUE      NONE
-   PSPHOT.BACKGND      OUTPUT   {OUTPUT}.{CHIP.NAME}.bck.fits  IMAGE     NONE      CHIP       TRUE      NONE
-   PSPHOT.BACKSUB      OUTPUT   {OUTPUT}.{CHIP.NAME}.sub.fits  IMAGE     NONE      CHIP       TRUE      NONE
-   PSPHOT.BACKMDL      OUTPUT   {OUTPUT}.{CHIP.NAME}.mdl.fits  IMAGE     NONE      CHIP       TRUE      NONE
-   PSPHOT.BACKMDL.STDEV OUTPUT   {OUTPUT}.{CHIP.NAME}.mdd.fits IMAGE     NONE      CHIP       TRUE      NONE
-
-   PSPHOT.OUTPUT.RAW   OUTPUT   {OUTPUT}.{CHIP.NAME}           RAW       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.SX    OUTPUT   {OUTPUT}.{CHIP.NAME}.sx        SX        NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.OBJ   OUTPUT   {OUTPUT}.{CHIP.NAME}.obj       OBJ       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUT.CMF.SPL  OUTPUT   {OUTPUT}.{CHIP.NAME}.cmf       CMF       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUT.CMF.MEF  OUTPUT   {OUTPUT}.cmf                   CMF       NONE      FPA        TRUE      NONE
-
-   PSPHOT.PSF.SAVE     OUTPUT   {OUTPUT}.{CHIP.NAME}.psf       PSF       NONE      CHIP       TRUE      NONE
-
-   SOURCE.PLOT.MOMENTS  OUTPUT  {OUTPUT}.{CHIP.NAME}.mnt.png   KAPA      NONE      CHIP       TRUE      NONE
-   SOURCE.PLOT.PSFMODEL OUTPUT  {OUTPUT}.{CHIP.NAME}.psf.png   KAPA      NONE      CHIP       TRUE      NONE
-   SOURCE.PLOT.APRESID  OUTPUT  {OUTPUT}.{CHIP.NAME}.dap.png   KAPA      NONE      CHIP       TRUE      NONE
-
-   PSASTRO.OUTPUT.CMP   OUTPUT   {OUTPUT}.{CHIP.NAME}.smp      CMP       NONE      CHIP       TRUE      SPLIT
-   PSASTRO.OUT.CMF.SPL  OUTPUT   {OUTPUT}.{CHIP.NAME}.smf      CMF       NONE      CHIP       TRUE      SPLIT
-   PSASTRO.OUT.CMF.MEF  OUTPUT   {OUTPUT}.smf		       CMF       NONE      FPA        TRUE      TOGETHER
-
-   PSWARP.OUTPUT       OUTPUT   {OUTPUT}.fits      	       IMAGE     NONE      FPA        TRUE      NONE
-   PSWARP.OUTPUT.MASK  OUTPUT   {OUTPUT}.mask.fits             MASK      NONE      FPA        TRUE      NONE
-   PSWARP.OUTPUT.WEIGHT OUTPUT  {OUTPUT}.wt.fits               WEIGHT    NONE      FPA        TRUE      NONE
-   PSWARP.BIN1         OUTPUT   {OUTPUT}.b1.fits   	       IMAGE     NONE      FPA        TRUE      NONE
-   PSWARP.BIN2         OUTPUT   {OUTPUT}.b2.fits   	       IMAGE     NONE      FPA        TRUE      NONE
-
-   SKYCELL.STATS       OUTPUT   {OUTPUT}.stats                 STATS     NONE      FPA        TRUE      NONE
-   SKYCELL.TEMPLATE    OUTPUT   {OUTPUT}.skycell               SKYCELL   NONE      FPA        TRUE      NONE
-
-   PPSUB.OUTPUT        OUTPUT   {OUTPUT}.fits                  IMAGE     NONE      FPA        TRUE      NONE
-   PPSUB.OUTPUT.MASK   OUTPUT   {OUTPUT}.mask.fits             MASK      NONE      FPA        TRUE      NONE
-   PPSUB.OUTPUT.WEIGHT OUTPUT   {OUTPUT}.wt.fits               WEIGHT    NONE      FPA        TRUE      NONE
-
-   PPSTACK.OUTPUT      OUTPUT   {OUTPUT}.fits                  IMAGE     NONE      FPA        TRUE      NONE
-   PPSTACK.OUTPUT.MASK OUTPUT   {OUTPUT}.mask.fits             MASK      NONE      FPA        TRUE      NONE
-   PPSTACK.OUTPUT.WEIGHT OUTPUT {OUTPUT}.weight.fits           WEIGHT    NONE      FPA        TRUE      NONE
-
-   PPSTAMP.OUTPUT        OUTPUT {OUTPUT}.fits                  IMAGE     NONE      FPA        TRUE      NONE
-   PPSTAMP.CHIP.MEF      OUTPUT {OUTPUT}.ch.fits               IMAGE     NONE      CHIP       FALSE     MEF
-
-   PPSIM.OUTPUT        OUTPUT   {OUTPUT}.{CHIP.NAME}.fits      IMAGE     NONE      CHIP       TRUE      SPLIT
-   PPSIM.SOURCES       OUTPUT   {OUTPUT}.cmf                   CMF       NONE      FPA        TRUE      NONE
-
-   PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits                  IMAGE     NONE      CHIP       TRUE      NONE
-   PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits                  MASK     NONE      CHIP       TRUE      NONE
-
-   LOG.IMFILE            OUTPUT {OUTPUT}.{CHIP.NAME}.log       TEXT      NONE      CHIP       TRUE      NONE
-   LOG.EXP               OUTPUT {OUTPUT}.log                   TEXT      NONE      FPA        TRUE      NONE
-END
-
-# FPA file defines properties of a possible input|output object
-# user can set the filename (I|O), filename rules (O), or abstract source (@FILES, @DETDB) (I) 
-# user can set the extension name, if used
-# user can set the file type (IMAGE, JPEG, RAW, SX, OBJ, CMP, CMF) : but these are not variable in most cases!
-# user can set the file depth: only valid for output files
-# user can set the data depth: must be >= file depth
-# user can set the file format: only valid for newly created FPAs
-# user can set the colormap, scaling method, scaling range (JPEG only)
-# user can set the extension name for the data and header segments (CMF only)
-
+FILERULES       STR     recipes/filerules-mef.mdc
 
 EXTNAME.RULES	METADATA
Index: /trunk/ippconfig/simple/Makefile.am
===================================================================
--- /trunk/ippconfig/simple/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/simple/Makefile.am	(revision 17523)
@@ -7,6 +7,5 @@
 	ppImage.config \
 	psastro.config \
-	psphot.config \
-	filerules.mdc
+	psphot.config
 
 install_DATA = $(install_files)
Index: /trunk/ippconfig/simple/camera.config
===================================================================
--- /trunk/ippconfig/simple/camera.config	(revision 17522)
+++ /trunk/ippconfig/simple/camera.config	(revision 17523)
@@ -45,109 +45,10 @@
 END
 
-# Reduction classes
-REDUCTION	METADATA
-	# Detrend processing
-	DETREND		METADATA
-		BIAS_PROCESS	STR	PPIMAGE_O
-		BIAS_RESID	STR	PPIMAGE_B
-		BIAS_VERIFY	STR	PPIMAGE_OB
-		BIAS_STACK	STR	PPMERGE_BIAS
-		DARK_PROCESS	STR	PPIMAGE_OB
-		DARK_RESID	STR	PPIMAGE_D
-		DARK_VERIFY	STR	PPIMAGE_OBD
-		DARK_STACK	STR	PPMERGE_DARK
-		SHUTTER_PROCESS	STR	PPIMAGE_OBD
-		SHUTTER_RESID	STR	PPIMAGE_S
-		SHUTTER_VERIFY	STR	PPIMAGE_OBDS
-		SHUTTER_STACK	STR	PPMERGE_SHUTTER
-		FLAT_PROCESS	STR	PPIMAGE_OBDS
-		FLAT_RESID	STR	PPIMAGE_F
-		FLAT_VERIFY	STR	PPIMAGE_OBDSF
-		FLAT_STACK	STR	PPMERGE_FLAT
-		FRINGE_PROCESS	STR	PPIMAGE_OBDSF
-		FRINGE_RESID	STR	PPIMAGE_R
-		FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
-		FRINGE_STACK	STR	PPMERGE_FRINGE
-	END
-	# Processing raw data
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
-	END
-END
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
+FITSTYPES       STR     recipes/fitstypes.mdc
 
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES STR simple/filerules.mdc
+FILERULES       STR     recipes/filerules-simple.mdc
 
 EXTNAME.RULES METADATA
Index: unk/ippconfig/simple/filerules.mdc
===================================================================
--- /trunk/ippconfig/simple/filerules.mdc	(revision 17522)
+++ 	(revision )
@@ -1,100 +1,0 @@
-PSASTRO.INPUT      STR PSASTRO.INPUT.CMP
-PSASTRO.OUTPUT     STR PSASTRO.OUTPUT.CMP
-PSPHOT.OUTPUT      STR PSPHOT.OUTPUT.CMF
-
-### input file definitions
-TYPE               INPUT    FILENAME.RULE                 DATA.LEVEL FILE.TYPE
-PPIMAGE.INPUT      INPUT    none.fits                     FPA        IMAGE
-INPUT.MASK         INPUT    none.fits                     FPA        MASK
-INPUT.WEIGHT       INPUT    none.fits                     FPA        WEIGHT
-PPIMAGE.BIAS       INPUT    @DETDB                        CHIP       IMAGE
-PPIMAGE.DARK       INPUT    @DETDB                        CHIP       DARK
-PPIMAGE.FLAT       INPUT    @DETDB                        CHIP       IMAGE
-PPIMAGE.MASK       INPUT    @DETDB                        CHIP       IMAGE
-PSPHOT.INPUT       INPUT    @FILES                        CHIP       IMAGE
-PSWARP.INPUT       INPUT    none.fits                     FPA        IMAGE
-PSWARP.SKYCELL     INPUT    none.fits                     FPA        IMAGE
-PSASTRO.INPUT.CMP  INPUT    none.fits                     CHIP       CMP
-PSASTRO.INPUT.CMF  INPUT    none.fits                     CHIP       CMF
-PSPHOT.LOAD        INPUT    none.fits                     CHIP       IMAGE
-PSPHOT.PSF.LOAD    INPUT    none.fits                     CHIP  PSF
-PSPHOT.INPUT.CMF   INPUT    none.fits                     CHIP  CMF
-
-PPSUB.INPUT        INPUT    none.fits                     FPA   IMAGE
-PPSUB.INPUT.MASK   INPUT    none.fits                     FPA   MASK
-PPSUB.INPUT.WEIGHT INPUT    none.fits                     FPA   WEIGHT
-PPSUB.REF          INPUT    none.fits                     FPA   IMAGE
-PPSUB.REF.MASK     INPUT    none.fits                     FPA   MASK
-PPSUB.REF.WEIGHT   INPUT    none.fits                     FPA   WEIGHT
-PPSUB.SOURCES      INPUT    none.fits                     FPA        CMF
-
-PPSTACK.INPUT      INPUT    none.fits                     FPA   IMAGE
-PPSTACK.INPUT.MASK INPUT    none.fits                     FPA   MASK
-PPSTACK.INPUT.WEIGHT INPUT  none.fits                     FPA   WEIGHT
-PPSTACK.SOURCES    INPUT    none.fits                     FPA        CMF
-
-PPARITH.INPUT.IMAGE INPUT   none.fits                     CHIP       IMAGE
-PPARITH.INPUT.MASK  INPUT   none.fits                     CHIP       MASK
-
-### output file definitions
-TYPE                OUTPUT   FILENAME.RULE         FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-PPIMAGE.OUTPUT      OUTPUT   {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      NONE
-PPIMAGE.OUTPUT.MASK OUTPUT   {OUTPUT}.mask.fits    MASK      NONE      FPA        TRUE      NONE
-PPIMAGE.OUTPUT.WEIGHT OUTPUT {OUTPUT}.wt.fits      WEIGHT    NONE      FPA        TRUE      NONE
-PPIMAGE.OUTPUT.CHIP OUTPUT   {OUTPUT}.ch.fits      IMAGE     NONE      FPA        TRUE      SIMPLE
-PPIMAGE.OUTPUT.FPA1 OUTPUT   {OUTPUT}.b1.fits      IMAGE     NONE      FPA        TRUE      SIMPLE
-PPIMAGE.OUTPUT.FPA2 OUTPUT   {OUTPUT}.b2.fits      IMAGE     NONE      FPA        TRUE      SIMPLE
-PPIMAGE.CHIP        OUTPUT   {OUTPUT}.ch.fits      IMAGE     NONE      FPA        FALSE     NONE
-PPIMAGE.CHIP.MASK   OUTPUT   {OUTPUT}.ch.mk.fits   MASK      NONE      FPA        FALSE     NONE
-PPIMAGE.CHIP.WEIGHT OUTPUT   {OUTPUT}.ch.wt.fits   WEIGHT    NONE      FPA        FALSE     NONE
-
-PPIMAGE.JPEG1       OUTPUT   {OUTPUT}.b1.jpg       JPEG      NONE      FPA        TRUE      SIMPLE
-PPIMAGE.JPEG2       OUTPUT   {OUTPUT}.b2.jpg       JPEG      NONE      FPA        TRUE      SIMPLE
-PPIMAGE.BIN1        OUTPUT   {OUTPUT}.b1.fits      IMAGE     NONE      FPA        TRUE      SIMPLE
-PPIMAGE.BIN2        OUTPUT   {OUTPUT}.b2.fits      IMAGE     NONE      FPA        TRUE      SIMPLE
-
-PSWARP.OUTPUT       OUTPUT   {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      NONE
-PSWARP.OUTPUT.MASK  OUTPUT   {OUTPUT}.mk.fits      MASK      NONE      FPA        TRUE      NONE
-PSWARP.OUTPUT.WEIGHT OUTPUT  {OUTPUT}.wt.fits      WEIGHT    NONE      FPA        TRUE      NONE
-PSWARP.BIN1         OUTPUT   {OUTPUT}.b1.fits      IMAGE     NONE      FPA        TRUE      NONE
-PSWARP.BIN2         OUTPUT   {OUTPUT}.b2.fits      IMAGE     NONE      FPA        TRUE      NONE
-
-PSPHOT.RESID        OUTPUT   {OUTPUT}.res.fits     IMAGE     NONE      FPA        TRUE      SIMPLE
-PSPHOT.BACKGND      OUTPUT   {OUTPUT}.bck.fits     IMAGE     NONE      FPA        TRUE      SIMPLE
-PSPHOT.BACKSUB      OUTPUT   {OUTPUT}.sub.fits     IMAGE     NONE      FPA        TRUE      SIMPLE
-PSPHOT.BACKMDL      OUTPUT   {OUTPUT}.mdl.fits     IMAGE     NONE      FPA        TRUE      SIMPLE
-
-PSPHOT.OUTPUT.RAW   OUTPUT   {OUTPUT}              RAW       NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.SX    OUTPUT   {OUTPUT}.sx           SX        NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.OBJ   OUTPUT   {OUTPUT}.obj          OBJ       NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.CMP   OUTPUT   {OUTPUT}.cmp          CMP       NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.CMF   OUTPUT   {OUTPUT}.cmf          CMF       NONE      FPA        TRUE      NONE
-PSPHOT.PSF.SAVE     OUTPUT   {OUTPUT}.psf          PSF       NONE      FPA        TRUE      NONE
-
-PSPHOT.MOMENT.PLT   OUTPUT   {OUTPUT}.mnt.png      KAPA      NONE      FPA        TRUE      SIMPLE
-PSPHOT.PSFMODEL.PLT OUTPUT   {OUTPUT}.psf.png      KAPA      NONE      FPA        TRUE      SIMPLE
-
-SOURCE.PLOT.MOMENTS   OUTPUT {OUTPUT}.mnt.png      KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.PSFMODEL  OUTPUT {OUTPUT}.psf.png      KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.APRESID   OUTPUT {OUTPUT}.dap.png      KAPA      NONE      FPA        TRUE      NONE
-
-PSASTRO.OUTPUT.CMP  OUTPUT   {OUTPUT}.smp          CMP       NONE      FPA        TRUE      NONE
-
-SKYCELL.STATS         OUTPUT {OUTPUT}.stats        STATS     NONE      FPA        TRUE      NONE
-SKYCELL.TEMPLATE      OUTPUT {OUTPUT}.skycell      SKYCELL   NONE      FPA        TRUE      NONE
-
-PPSUB.OUTPUT        OUTPUT   {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      NONE
-PPSUB.OUTPUT.MASK   OUTPUT   {OUTPUT}.mask.fits    MASK      NONE      FPA        FALSE     NONE
-PPSUB.OUTPUT.WEIGHT OUTPUT   {OUTPUT}.wt.fits      WEIGHT    NONE      FPA        FALSE     NONE
-
-PPSTACK.OUTPUT      OUTPUT   {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      NONE
-PPSTACK.OUTPUT.MASK OUTPUT   {OUTPUT}.mask.fits    MASK      NONE      FPA        TRUE      NONE
-PPSTACK.OUTPUT.WEIGHT OUTPUT {OUTPUT}.weight.fits  WEIGHT    NONE      FPA        TRUE      NONE
-
-PPSIM.OUTPUT        OUTPUT   {OUTPUT}.fits         IMAGE     NONE      FPA        TRUE      SIMTEST
-
-LOG.IMFILE            OUTPUT {OUTPUT}.log          TEXT      NONE      CHIP       TRUE      NONE
-LOG.EXP               OUTPUT {OUTPUT}.log          TEXT      NONE      FPA        TRUE      NONE
-
-PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits         IMAGE     NONE      CHIP       TRUE      NONE
-PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits         MASK      NONE      CHIP       TRUE      NONE
Index: /trunk/ippconfig/simtest/Makefile.am
===================================================================
--- /trunk/ippconfig/simtest/Makefile.am	(revision 17522)
+++ /trunk/ippconfig/simtest/Makefile.am	(revision 17523)
@@ -10,6 +10,5 @@
 	rejections.config \
 	dvo.config \
-	ppSim.config \
-	filerules.mdc
+	ppSim.config
 
 install_DATA = $(install_files)
Index: /trunk/ippconfig/simtest/camera.config
===================================================================
--- /trunk/ippconfig/simtest/camera.config	(revision 17522)
+++ /trunk/ippconfig/simtest/camera.config	(revision 17523)
@@ -48,166 +48,10 @@
 END
 
-REDUCTION	METADATA
-	# Detrend processing
-	DETREND		METADATA
-		BIAS_PROCESS	STR	PPIMAGE_O
-		BIAS_RESID	STR	PPIMAGE_B
-		BIAS_VERIFY	STR	PPIMAGE_OB
-		BIAS_STACK	STR	PPMERGE_BIAS
-		DARK_PROCESS	STR	PPIMAGE_OB
-		DARK_RESID	STR	PPIMAGE_D
-		DARK_VERIFY	STR	PPIMAGE_OBD
-		DARK_STACK	STR	PPMERGE_DARK
-		SHUTTER_PROCESS	STR	PPIMAGE_OBD
-		SHUTTER_RESID	STR	PPIMAGE_S
-		SHUTTER_VERIFY	STR	PPIMAGE_OBDS
-		SHUTTER_STACK	STR	PPMERGE_SHUTTER
-		FLAT_PROCESS	STR	PPIMAGE_OBDS
-		FLAT_RESID	STR	PPIMAGE_F
-		FLAT_VERIFY	STR	PPIMAGE_OBDSF
-		FLAT_STACK	STR	PPMERGE_FLAT
-		FRINGE_PROCESS	STR	PPIMAGE_OBDSF
-		FRINGE_RESID	STR	PPIMAGE_R
-		FRINGE_VERIFY	STR	PPIMAGE_OBDSFR
-		FRINGE_STACK	STR	PPMERGE_FRINGE
+# reduction classes (recipes which are grouped together)
+REDUCTION	STR	recipes/reductionClasses.mdc
 
-		# Generation of pixel masks from darks and flats
-		DARKMASK_PROCESS	STR	PPIMAGE_OBD
-		DARKMASK_RESID		STR	PPIMAGE_N
-		DARKMASK_VERIFY		STR	PPIMAGE_OBD
-		DARKMASK_STACK		STR	PPMERGE_DARKMASK
-		FLATMASK_PROCESS	STR	PPIMAGE_OBDSF
-		FLATMASK_RESID		STR	PPIMAGE_N
-		FLATMASK_VERIFY		STR	PPIMAGE_OBDSF
-		FLATMASK_STACK		STR	PPMERGE_FLATMASK
-		JPEG_BIN1_IMAGE_DARKMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_DARKMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_IMAGE_FLATMASK STR	PPIMAGE_J1_IMAGE_M
-		JPEG_BIN2_IMAGE_FLATMASK STR	PPIMAGE_J2_IMAGE_M
-		JPEG_BIN1_RESID_DARKMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_DARKMASK STR	PPIMAGE_J2_RESID_M
-		JPEG_BIN1_RESID_FLATMASK STR	PPIMAGE_J1_RESID_M
-		JPEG_BIN2_RESID_FLATMASK STR	PPIMAGE_J2_RESID_M
+FITSTYPES       STR     recipes/fitstypes.mdc
 
- 		JPEG_BIN1_IMAGE_BIAS     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_DARK     STR  PPIMAGE_J1_IMAGE_B
-		JPEG_BIN1_IMAGE_SHUTTER  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FLAT     STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_DOMEFLAT STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_SKYFLAT  STR  PPIMAGE_J1_IMAGE_F
-		JPEG_BIN1_IMAGE_FRINGE   STR  PPIMAGE_J1_IMAGE_R
- 		JPEG_BIN2_IMAGE_BIAS     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_DARK     STR  PPIMAGE_J2_IMAGE_B
-		JPEG_BIN2_IMAGE_SHUTTER  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FLAT     STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_DOMEFLAT STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_SKYFLAT  STR  PPIMAGE_J2_IMAGE_F
-		JPEG_BIN2_IMAGE_FRINGE   STR  PPIMAGE_J2_IMAGE_R
-
- 		JPEG_BIN1_RESID_BIAS     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_DARK     STR  PPIMAGE_J1_RESID_B
-		JPEG_BIN1_RESID_SHUTTER  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FLAT     STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_DOMEFLAT STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_SKYFLAT  STR  PPIMAGE_J1_RESID_F
-		JPEG_BIN1_RESID_FRINGE   STR  PPIMAGE_J1_RESID_R
- 		JPEG_BIN2_RESID_BIAS     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_DARK     STR  PPIMAGE_J2_RESID_B
-		JPEG_BIN2_RESID_SHUTTER  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FLAT     STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_DOMEFLAT STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_SKYFLAT  STR  PPIMAGE_J2_RESID_F
-		JPEG_BIN2_RESID_FRINGE   STR  PPIMAGE_J2_RESID_R
-	END
-	# Processing raw data
-	DEFAULT		METADATA
-		CHIP		STR	PPIMAGE_OBDSFRA
- 		JPEG_BIN1       STR     PPIMAGE_J1
- 		JPEG_BIN2       STR     PPIMAGE_J2
-	END
-	NO_PHOTOM	METADATA
-		CHIP		STR	PPIMAGE_OBDSF
-	END
-	# Photometry and astrometry of data that's already processed
-	PROCESSED	METADATA
-		CHIP		STR	PPIMAGE_PA
-	END
-
-END
-
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES	STR	simtest/filerules.mdc
+FILERULES	STR	recipes/filerules-simple.mdc
 
 EXTNAME.RULES METADATA
Index: unk/ippconfig/simtest/filerules.mdc
===================================================================
--- /trunk/ippconfig/simtest/filerules.mdc	(revision 17522)
+++ 	(revision )
@@ -1,137 +1,0 @@
-### File rules for PHU=FPA, EXT=NONE
-
-
-PSASTRO.INPUT      STR PSASTRO.INPUT.CMF
-PSASTRO.OUTPUT     STR PSASTRO.OUTPUT.CMF
-PSASTRO.OUTPUT.MEF STR PSASTRO.OUTPUT.CMF
-PSPHOT.OUTPUT      STR PSPHOT.OUTPUT.CMF
-
-### input file definitions
-TYPE               INPUT    FILENAME.RULE                 DATA.LEVEL FILE.TYPE 
-PPIMAGE.INPUT      INPUT    none.fits                     FPA        IMAGE     
-INPUT.MASK         INPUT    none.fits                     FPA        MASK      
-INPUT.WEIGHT       INPUT    none.fits                     FPA        WEIGHT    
-INPUT.PSF          INPUT    none.fits                     READOUT    PSF       
-INPUT.SRC          INPUT    none.fits                     READOUT    CMF       
-PPIMAGE.BIAS       INPUT    @DETDB                        CHIP       IMAGE     
-PPIMAGE.DARK       INPUT    @DETDB                        CHIP       DARK     
-PPIMAGE.SHUTTER    INPUT    @DETDB                        CHIP       IMAGE     
-PPIMAGE.FLAT       INPUT    @DETDB                        CHIP       IMAGE     
-PPIMAGE.MASK       INPUT    @DETDB                        CHIP       IMAGE     
-
-## Files used by ppMerge
-PPMERGE.INPUT      INPUT    @FILES                        CHIP       IMAGE
-PPMERGE.INPUT.MASK INPUT    @FILES                        CHIP       MASK
-PPMERGE.INPUT.WEIGHT INPUT  @FILES                        CHIP       WEIGHT
-
-## files used by psphot 
-PSPHOT.LOAD        INPUT    @FILES                        CHIP       IMAGE
-PSPHOT.INPUT       INPUT    none.fits                     CHIP       IMAGE     
-
-PSWARP.INPUT       INPUT    none.fits                     FPA        IMAGE     
-PSWARP.WEIGHT      INPUT    none.fits                     FPA        WEIGHT
-PSWARP.MASK        INPUT    none.fits                     FPA        MASK
-PSWARP.SKYCELL     INPUT    none.fits                     FPA        IMAGE     
-PSWARP.ASTROM      INPUT    none.fits                     FPA        CMF
-
-PSASTRO.INPUT.CMP  INPUT    none.fits                     CHIP       CMP       
-PSASTRO.INPUT.CMF  INPUT    none.fits                     CHIP       CMF       
-PSPHOT.PSF.LOAD    INPUT    none.psf                      CHIP       PSF       
-PSPHOT.INPUT.CMF   INPUT    none.fits                     CHIP       CMF       
-
-PPSUB.INPUT        INPUT    none.fits                     FPA        IMAGE
-PPSUB.INPUT.MASK   INPUT    none.fits                     FPA        MASK
-PPSUB.INPUT.WEIGHT INPUT    none.fits                     FPA        WEIGHT
-PPSUB.REF          INPUT    none.fits                     FPA        IMAGE
-PPSUB.REF.MASK     INPUT    none.fits                     FPA        MASK
-PPSUB.REF.WEIGHT   INPUT    none.fits                     FPA        WEIGHT
-
-PPSTACK.INPUT      INPUT    none.fits                     FPA        IMAGE
-PPSTACK.INPUT.MASK INPUT    none.fits                     FPA        MASK
-PPSTACK.INPUT.WEIGHT INPUT  none.fits                     FPA        WEIGHT
-
-PPSTAMP.INPUT      INPUT    none.fits                     FPA	     IMAGE
-
-PPARITH.INPUT.IMAGE INPUT @FILES        CHIP       IMAGE
-PPARITH.INPUT.MASK  INPUT @FILES        CHIP       MASK
-
-### output file definitions
-TYPE                OUTPUT   FILENAME.RULE           FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-PPIMAGE.OUTPUT      OUTPUT   {OUTPUT}.fits           IMAGE     NONE      FPA        TRUE      NONE
-PPIMAGE.OUTPUT.DETMASK OUTPUT {OUTPUT}.fits          IMAGE     NONE      FPA        TRUE      NONE
-PPIMAGE.OUTPUT.MASK OUTPUT   {OUTPUT}.mask.fits      MASK      NONE      FPA        TRUE      NONE
-PPIMAGE.OUTPUT.WEIGHT OUTPUT {OUTPUT}.wt.fits        WEIGHT    NONE      FPA        TRUE      NONE
-PPIMAGE.CHIP        OUTPUT   {OUTPUT}.ch.fits        IMAGE     NONE      FPA        TRUE      NONE
-PPIMAGE.CHIP.MASK   OUTPUT   {OUTPUT}.ch.mask.fits   MASK      NONE      FPA        TRUE      NONE
-PPIMAGE.CHIP.WEIGHT OUTPUT   {OUTPUT}.ch.wt.fits     WEIGHT    NONE      FPA        TRUE      NONE
-PPIMAGE.OUTPUT.FPA1 OUTPUT   {OUTPUT}.b1.fits        IMAGE     NONE      FPA        TRUE      NONE
-PPIMAGE.OUTPUT.FPA2 OUTPUT   {OUTPUT}.b2.fits        IMAGE     NONE      FPA        TRUE      NONE
-PPIMAGE.STATS       OUTPUT   {OUTPUT}.stats          STATS     NONE      FPA        TRUE      NONE
-
-PPIMAGE.JPEG1       OUTPUT   {OUTPUT}.b1.jpg         JPEG      NONE      FPA        TRUE      NONE
-PPIMAGE.JPEG2       OUTPUT   {OUTPUT}.b2.jpg         JPEG      NONE      FPA        TRUE      NONE
-PPIMAGE.BIN1        OUTPUT   {OUTPUT}.b1.fits        IMAGE     NONE      FPA        TRUE      NONE
-PPIMAGE.BIN2        OUTPUT   {OUTPUT}.b2.fits        IMAGE     NONE      FPA        TRUE      NONE
-
-PPMERGE.OUTPUT.MASK   OUTPUT {OUTPUT}.fits           MASK      NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.BIAS   OUTPUT {OUTPUT}.fits           IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.DARK   OUTPUT {OUTPUT}.fits           DARK      NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.SHUTTER OUTPUT {OUTPUT}.fits          IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.FLAT   OUTPUT {OUTPUT}.fits           IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.FRINGE OUTPUT {OUTPUT}.fits           FRINGE    NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.SIGMA  OUTPUT {OUTPUT}.sigma.fits     IMAGE     NONE      CHIP       TRUE      NONE
-PPMERGE.OUTPUT.COUNT  OUTPUT {OUTPUT}.count.fits     IMAGE     NONE      CHIP       TRUE      NONE
-
-DVOCORR.OUTPUT      OUTPUT   {OUTPUT}.fc.fits        IMAGE     NONE      FPA        TRUE      NONE
-DVOFLAT.OUTPUT      OUTPUT   {OUTPUT}.co.fits        IMAGE     NONE      FPA        TRUE      NONE
-
-PSPHOT.RESID        OUTPUT   {OUTPUT}.res.fits       IMAGE     NONE      FPA        TRUE      NONE
-PSPHOT.BACKGND      OUTPUT   {OUTPUT}.bck.fits       IMAGE     NONE      FPA        TRUE      NONE
-PSPHOT.BACKSUB      OUTPUT   {OUTPUT}.sub.fits       IMAGE     NONE      FPA        TRUE      NONE
-PSPHOT.BACKMDL      OUTPUT   {OUTPUT}.mdl.fits       IMAGE     NONE      FPA        TRUE      NONE
-
-PSPHOT.OUTPUT.RAW   OUTPUT   {OUTPUT}                RAW       NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.SX    OUTPUT   {OUTPUT}.sx             SX        NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.OBJ   OUTPUT   {OUTPUT}.obj            OBJ       NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.CMP   OUTPUT   {OUTPUT}.cmp            CMP       NONE      FPA        TRUE      NONE
-PSPHOT.OUTPUT.CMF   OUTPUT   {OUTPUT}.cmf            CMF       NONE      FPA        TRUE      NONE
-PSPHOT.PSF.SAVE     OUTPUT   {OUTPUT}.psf            PSF       NONE      FPA        TRUE      NONE
-
-SOURCE.PLOT.MOMENTS  OUTPUT  {OUTPUT}.mnt.png        KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.PSFMODEL OUTPUT  {OUTPUT}.psf.png        KAPA      NONE      FPA        TRUE      NONE
-SOURCE.PLOT.APRESID  OUTPUT  {OUTPUT}.dap.png        KAPA      NONE      FPA        TRUE      NONE
-
-PSASTRO.OUTPUT.CMP  OUTPUT   {OUTPUT}.smp            CMP       NONE      FPA        TRUE      NONE
-PSASTRO.OUTPUT.CMF  OUTPUT   {OUTPUT}.smf            CMF       NONE      FPA        TRUE      NONE
-
-PSWARP.OUTPUT       OUTPUT   {OUTPUT}.fits           IMAGE     NONE      FPA        TRUE      NONE
-PSWARP.OUTPUT.MASK  OUTPUT   {OUTPUT}.mask.fits      MASK      NONE      FPA        TRUE      NONE
-PSWARP.OUTPUT.WEIGHT OUTPUT  {OUTPUT}.wt.fits        WEIGHT    NONE      FPA        TRUE      NONE
-PSWARP.BIN1         OUTPUT   {OUTPUT}.b1.fits        IMAGE     NONE      FPA        TRUE      NONE
-PSWARP.BIN2         OUTPUT   {OUTPUT}.b2.fits        IMAGE     NONE      FPA        TRUE      NONE
-
-SKYCELL.STATS       OUTPUT   {OUTPUT}.stats          STATS     NONE      FPA        TRUE      NONE
-SKYCELL.TEMPLATE    OUTPUT   {OUTPUT}.skycell        SKYCELL   NONE      FPA        TRUE      NONE
-
-PPSUB.OUTPUT        OUTPUT   {OUTPUT}.fits           IMAGE     NONE      FPA        TRUE      NONE
-PPSUB.OUTPUT.MASK   OUTPUT   {OUTPUT}.mask.fits      MASK      NONE      FPA        TRUE      NONE
-PPSUB.OUTPUT.WEIGHT OUTPUT   {OUTPUT}.wt.fits        WEIGHT    NONE      FPA        TRUE      NONE
-
-PPSTACK.OUTPUT      OUTPUT   {OUTPUT}.fits           IMAGE     NONE      FPA        TRUE      NONE
-PPSTACK.OUTPUT.MASK OUTPUT   {OUTPUT}.mask.fits      MASK      NONE      FPA        TRUE      NONE
-PPSTACK.OUTPUT.WEIGHT OUTPUT {OUTPUT}.weight.fits    WEIGHT    NONE      FPA        TRUE      NONE
-
-PPSTAMP.OUTPUT      OUTPUT   {OUTPUT}.fits           IMAGE     NONE      FPA        TRUE      NONE
-PPSTAMP.CHIP        OUTPUT   {OUTPUT}.ch.fits        IMAGE     NONE      CHIP       FALSE     MEF
-
-PPSIM.OUTPUT        OUTPUT   {OUTPUT}.fits           IMAGE     NONE      FPA        TRUE      SIMTEST
-PPSIM.SOURCES       OUTPUT   {OUTPUT}.cmf            CMF       NONE      FPA        TRUE      NONE
-
-PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits           IMAGE     NONE      CHIP       TRUE      NONE
-PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits           MASK      NONE      CHIP       TRUE      NONE
-
-LOG.IMFILE            OUTPUT {OUTPUT}.imfile.log     TEXT      NONE      FPA        TRUE      NONE
-LOG.EXP               OUTPUT {OUTPUT}.exp.log        TEXT      NONE      FPA        TRUE      NONE
-
-TRACE.IMFILE          OUTPUT {OUTPUT}.imfile.trace   TEXT      NONE      FPA        TRUE      NONE
-TRACE.EXP             OUTPUT {OUTPUT}.exp.trace      TEXT      NONE      FPA        TRUE      NONE
Index: /trunk/ippconfig/tc3/camera.config
===================================================================
--- /trunk/ippconfig/tc3/camera.config	(revision 17522)
+++ /trunk/ippconfig/tc3/camera.config	(revision 17523)
@@ -65,143 +65,7 @@
 END
 
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
+FITSTYPES       STR     recipes/fitstypes.mdc
 
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES METADATA
-   ### Redirections
-   PSASTRO.INPUT      STR PSASTRO.INPUT.CMP
-   PSASTRO.OUTPUT     STR PSASTRO.OUTPUT.CMP
-   PSPHOT.OUTPUT      STR PSPHOT.OUTPUT.CMF
-   DVOCORR.OUTPUT     STR DVOCORR.MEF.OUTPUT
-   DVOFLAT.OUTPUT     STR DVOFLAT.MEF.OUTPUT
-
-   ### input file definitions
-   TYPE               INPUT FILENAME.RULE                 DATA.LEVEL FILE.TYPE 
-   PPIMAGE.INPUT      INPUT @FILES                        CHIP       IMAGE
-
-   ## can we just use PPIMAGE.INPUT as the pmFPAfile name?
-   DVOCORR.INPUT      INPUT @FILES                        CHIP       IMAGE     
-   DVOCORR.REFHEAD    INPUT @FILES                        CHIP       HEADER     
-
-   DVOFLAT.INPUT      INPUT @FILES                        CHIP       IMAGE 	
-   DVOFLAT.CORR       INPUT @DETDB                        CHIP       IMAGE 	
-
-   ### use these entries to get the detrend images from the database
-   PPIMAGE.MASK       INPUT @DETDB                        CHIP       IMAGE
-   PPIMAGE.BIAS       INPUT @DETDB                        CHIP       IMAGE
-   PPIMAGE.DARK       INPUT @DETDB                        CHIP       IMAGE
-   PPIMAGE.FLAT       INPUT @DETDB                        CHIP       IMAGE
-   PPIMAGE.FRINGE     INPUT @DETDB                        CHIP       FRINGE     
-
-   PSPHOT.INPUT       INPUT @FILES                        CHIP       IMAGE     
-   PSASTRO.INPUT.CMP  INPUT @FILES                        CHIP       CMP       
-   PSASTRO.INPUT.CMF  INPUT @FILES                        CHIP       CMF       
-
-
-   ### output file definitions
-   TYPE                OUTPUT FILENAME.RULE                  FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-   PPIMAGE.OUTPUT      OUTPUT {OUTPUT}.{CHIP.NAME}.fits      IMAGE     NONE      CHIP       TRUE      NONE
-   PPIMAGE.OUTPUT.MASK OUTPUT {OUTPUT}.{CHIP.NAME}.mask.fits MASK      NONE      CHIP       TRUE      NONE
-   PPIMAGE.OUTPUT.WEIGHT OUTPUT {OUTPUT}.{CHIP.NAME}.wt.fits WEIGHT    NONE      CHIP       TRUE      NONE
-   PPIMAGE.BIN1        OUTPUT {OUTPUT}.{CHIP.NAME}.b1.fits   IMAGE     NONE      CHIP       TRUE      NONE
-   PPIMAGE.BIN2        OUTPUT {OUTPUT}.{CHIP.NAME}.b2.fits   IMAGE     NONE      CHIP       TRUE      NONE
-   DVOCORR.MEF.OUTPUT  OUTPUT {OUTPUT}.fc.fits               IMAGE     NONE      CHIP       TRUE      NONE
-   DVOCORR.SPL.OUTPUT  OUTPUT {OUTPUT}.{CHIP.NAME}.fc.fits   IMAGE     NONE      CHIP       TRUE      NONE
-   DVOFLAT.MEF.OUTPUT  OUTPUT {OUTPUT}.co.fits               IMAGE     NONE      CHIP       TRUE      NONE
-   DVOFLAT.SPL.OUTPUT  OUTPUT {OUTPUT}.{CHIP.NAME}.co.fits   IMAGE     NONE      CHIP       TRUE      NONE
-
-   PPIMAGE.OUTPUT.CHIP OUTPUT {OUTPUT}.{CHIP.NAME}.chip.fits IMAGE     NONE      CHIP       TRUE      NONE
-   PPIMAGE.OUTPUT.FPA1 OUTPUT {OUTPUT}.b1.fits               IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA2 OUTPUT {OUTPUT}.b2.fits               IMAGE     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.JPEG1       OUTPUT {OUTPUT}.b1.jpg                JPEG      NONE      FPA        TRUE      NONE
-   PPIMAGE.JPEG2       OUTPUT {OUTPUT}.b2.jpg                JPEG      NONE      FPA        TRUE      NONE
-
-   PSPHOT.RESID        OUTPUT {OUTPUT}.res.fits              IMAGE     NONE      CHIP       TRUE      NONE
-   PSPHOT.BACKGND      OUTPUT {OUTPUT}.bck.fits              IMAGE     NONE      CHIP       TRUE      NONE
-   PSPHOT.BACKSUB      OUTPUT {OUTPUT}.sub.fits              IMAGE     NONE      CHIP       TRUE      NONE
-   PSPHOT.BACKMDL      OUTPUT {OUTPUT}.mdl.fits              IMAGE     NONE      CHIP       TRUE      NONE
-
-   PSPHOT.OUTPUT.RAW   OUTPUT {OUTPUT}.{CHIP.NAME}           RAW       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.SX    OUTPUT {OUTPUT}.sx                    SX        NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.OBJ   OUTPUT {OUTPUT}.obj                   OBJ       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.CMF   OUTPUT {OUTPUT}.cmf                   CMF       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.CMP   OUTPUT {OUTPUT}.{CHIP.NAME}.cmp       CMP       NONE      CHIP       TRUE      NONE
-
-   PSASTRO.OUTPUT.CMP  OUTPUT {OUTPUT}.{CHIP.NAME}.smp       CMP       NONE      CHIP       TRUE      NONE
-
-   LOG.IMFILE            OUTPUT {OUTPUT}.{CHIP.NAME}.log     TEXT      NONE      CHIP       TRUE      NONE
-   LOG.EXP               OUTPUT {OUTPUT}.log                 TEXT      NONE      FPA        TRUE      NONE
-END
+FILERULES       STR     recipes/filerules-split.mdc
 
 BLANK.HEADERS	METADATA
Index: /trunk/ippconfig/tek/camera.config
===================================================================
--- /trunk/ippconfig/tek/camera.config	(revision 17522)
+++ /trunk/ippconfig/tek/camera.config	(revision 17523)
@@ -51,196 +51,7 @@
 END
 
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
+FITSTYPES       STR     recipes/fitstypes.mdc
 
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES METADATA
-   PSASTRO.INPUT       STR PSASTRO.INPUT.CMF
-   PSASTRO.OUTPUT      STR PSASTRO.OUTPUT.CMF
-   PSASTRO.OUTPUT.MEF  STR PSASTRO.OUTPUT.CMF
-   PSPHOT.OUTPUT       STR PSPHOT.OUTPUT.CMF
-
-   ### input file definitions
-   ### use @DETDB entries to get the detrend images from the database
-   ### replace @DETDB with @FILES if you want to require it from the 
-   ### command line, or with an explicit name to require a specific file
-   TYPE               INPUT FILENAME.RULE DATA.LEVEL FILE.TYPE 
-
-   ## files used by ppImage
-   PPIMAGE.INPUT      INPUT @FILES        FPA        IMAGE     
-   PPIMAGE.MASK       INPUT mask.fits     FPA        IMAGE     
-   PPIMAGE.BIAS       INPUT @DETDB        FPA        IMAGE     
-   PPIMAGE.DARK       INPUT @DETDB        FPA        IMAGE     
-   PPIMAGE.FLAT       INPUT @DETDB        FPA        IMAGE     
-   PPIMAGE.FRINGE     INPUT @DETDB        FPA        FRINGE
-   PPIMAGE.SHUTTER    INPUT @DETDB        FPA        IMAGE     
-
-   ## files used to build and apply the flat-field correction images
-   DVOCORR.INPUT      INPUT @FILES        FPA        IMAGE
-   DVOCORR.REFHEAD    INPUT @FILES        FPA        HEADER
-   DVOFLAT.INPUT      INPUT @FILES        FPA        IMAGE
-   DVOFLAT.CORR       INPUT @DETDB        FPA        IMAGE
-
-   ## files used by psphot 
-   PSPHOT.LOAD        INPUT @FILES        FPA        IMAGE
-   PSPHOT.INPUT       INPUT @FILES        FPA        IMAGE     
-   PSPHOT.MASK        INPUT @FILES        FPA        MASK     
-   PSPHOT.WEIGHT      INPUT @FILES        FPA        WEIGHT     
-   PSPHOT.PSF.LOAD    INPUT @FILES        FPA        PSF       
-
-   ## files used by psastro 
-   PSASTRO.INPUT.CMP  INPUT @FILES        FPA        CMP       
-   PSASTRO.INPUT.CMF  INPUT @FILES        FPA        CMF       
-
-   ## files used by pswarp
-   PSWARP.INPUT       INPUT @FILES        FPA        IMAGE
-   PSWARP.WEIGHT      INPUT @FILES        FPA        WEIGHT
-   PSWARP.MASK        INPUT @FILES        FPA        MASK
-   PSWARP.SKYCELL     INPUT @FILES        FPA        IMAGE
-   PSWARP.ASTROM      INPUT @FILES        FPA        CMF
-
-
-   PPSUB.INPUT        INPUT    none.fits                     FPA	IMAGE
-   PPSUB.INPUT.MASK   INPUT    none.fits                     FPA	MASK
-   PPSUB.INPUT.WEIGHT INPUT    none.fits                     FPA	WEIGHT
-   PPSUB.REF          INPUT    none.fits                     FPA	IMAGE
-   PPSUB.REF.MASK     INPUT    none.fits                     FPA	MASK
-   PPSUB.REF.WEIGHT   INPUT    none.fits                     FPA	WEIGHT
-
-   PPSTACK.INPUT      INPUT    none.fits                     FPA	IMAGE
-   PPSTACK.INPUT.MASK INPUT    none.fits                     FPA	MASK
-
-   PPARITH.INPUT.IMAGE INPUT @FILES        CHIP       IMAGE
-   PPARITH.INPUT.MASK  INPUT @FILES        CHIP       MASK
-
-   ### output file definitions
-   TYPE                  OUTPUT  FILENAME.RULE         FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-   PPIMAGE.OUTPUT      	 OUTPUT  {OUTPUT}.tek.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.MASK 	 OUTPUT  {OUTPUT}.mask.fits    MASK      NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.WEIGHT OUTPUT  {OUTPUT}.wt.fits      WEIGHT    NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP 	 OUTPUT  {OUTPUT}.chip.fits    IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP.MASK     OUTPUT  {OUTPUT}.chip.mk.fits MASK      NONE      FPA        TRUE      NONE
-   PPIMAGE.CHIP.WEIGHT   OUTPUT  {OUTPUT}.chip.wt.fits WEIGHT    NONE      FPA        TRUE      NONE
-
-   PPIMAGE.OUTPUT.FPA1 	 OUTPUT  {OUTPUT}.b1.fits      IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA2 	 OUTPUT  {OUTPUT}.b2.fits      IMAGE     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.BIN1        	 OUTPUT  {OUTPUT}.b1c.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.BIN2        	 OUTPUT  {OUTPUT}.b2c.fits     IMAGE     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.JPEG1       	 OUTPUT  {OUTPUT}.b1.jpg       JPEG      NONE      FPA        TRUE      NONE
-   PPIMAGE.JPEG2       	 OUTPUT  {OUTPUT}.b2.jpg       JPEG      NONE      FPA        TRUE      NONE
-
-   DVOCORR.OUTPUT    	 OUTPUT  {OUTPUT}.fc.fits      IMAGE     NONE      FPA        TRUE      NONE
-   DVOFLAT.OUTPUT    	 OUTPUT  {OUTPUT}.co.fits      IMAGE     NONE      FPA        TRUE      NONE
-
-   PSPHOT.RESID        	 OUTPUT  {OUTPUT}.res.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKGND      	 OUTPUT  {OUTPUT}.bck.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKSUB      	 OUTPUT  {OUTPUT}.sub.fits     IMAGE     NONE      FPA        TRUE      NONE
-   PSPHOT.BACKMDL      	 OUTPUT  {OUTPUT}.mdl.fits     IMAGE     NONE      FPA        TRUE      NONE
-
-   PSPHOT.OUTPUT.RAW   	 OUTPUT  {OUTPUT}              RAW       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.SX    	 OUTPUT  {OUTPUT}.sx           SX        NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.OBJ   	 OUTPUT  {OUTPUT}.obj          OBJ       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.CMP   	 OUTPUT  {OUTPUT}.cmp          CMP       NONE      FPA        TRUE      NONE
-   PSPHOT.OUTPUT.CMF   	 OUTPUT  {OUTPUT}.cmf          CMF       NONE      FPA        TRUE      NONE
-
-   PSPHOT.PSF.SAVE     	 OUTPUT  {OUTPUT}.psf          PSF       NONE      FPA        TRUE      NONE
-
-   SOURCE.PLOT.MOMENTS   OUTPUT  {OUTPUT}.mnt.png      KAPA      NONE      FPA        TRUE      NONE
-   SOURCE.PLOT.PSFMODEL  OUTPUT  {OUTPUT}.psf.png      KAPA      NONE      FPA        TRUE      NONE
-
-   PSASTRO.OUTPUT.CMP    OUTPUT  {OUTPUT}.smp          CMP       NONE      FPA        TRUE      NONE
-   PSASTRO.OUTPUT.CMF    OUTPUT  {OUTPUT}.smf          CMF       NONE      FPA        TRUE      NONE
-
-   PSWARP.OUTPUT         OUTPUT {OUTPUT}.fits          IMAGE     NONE      FPA        TRUE      NONE
-   PSWARP.OUTPUT.MASK    OUTPUT {OUTPUT}.mask.fits     MASK      NONE      FPA        TRUE      NONE
-   PSWARP.OUTPUT.WEIGHT  OUTPUT {OUTPUT}.wt.fits       WEIGHT    NONE      FPA        TRUE      NONE
-   PSWARP.BIN1           OUTPUT {OUTPUT}.b1.fits       IMAGE     NONE      FPA        TRUE      NONE
-   PSWARP.BIN2           OUTPUT {OUTPUT}.b2.fits       IMAGE     NONE      FPA        TRUE      NONE
-   PPSUB.OUTPUT          OUTPUT {OUTPUT}.fits          IMAGE     NONE      FPA        TRUE      NONE
-   PPSUB.OUTPUT.MASK     OUTPUT {OUTPUT}.mask.fits     MASK      NONE      FPA        TRUE      NONE
-   PPSUB.OUTPUT.WEIGHT   OUTPUT {OUTPUT}.wt.fits       WEIGHT    NONE      FPA        TRUE      NONE
-
-   PPSTACK.OUTPUT        OUTPUT {OUTPUT}.fits          IMAGE     NONE      FPA        TRUE      NONE
-   PPSTACK.OUTPUT.MASK   OUTPUT {OUTPUT}.mask.fits     MASK      NONE      FPA        TRUE      NONE
-
-   PPSIM.OUTPUT          OUTPUT {OUTPUT}.fits          IMAGE     NONE      FPA        TRUE      NONE
-
-   PPARITH.OUTPUT.IMAGE  OUTPUT {OUTPUT}.fits          IMAGE     NONE      CHIP       TRUE      NONE
-   PPARITH.OUTPUT.MASK   OUTPUT {OUTPUT}.fits          MASK      NONE      CHIP       TRUE      NONE
-
-   LOG.IMFILE            OUTPUT {OUTPUT}.log           TEXT      NONE      CHIP       TRUE      NONE
-   LOG.EXP               OUTPUT {OUTPUT}.log           TEXT      NONE      FPA        TRUE      NONE
-END
+FILERULES       STR     recipes/filerules-simple.mdc
 
 EXTNAME.RULES METADATA
Index: /trunk/ippconfig/ucam/camera.config
===================================================================
--- /trunk/ippconfig/ucam/camera.config	(revision 17522)
+++ /trunk/ippconfig/ucam/camera.config	(revision 17523)
@@ -46,136 +46,5 @@
 END
 
-FITS    METADATA
-# BITPIX is the bits per pixel for writing the output data
-# COMP = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ] are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE [0..16] is the number of "noise bits" to preserve when quantising floating point data; 16 for no loss
-# HSCALE is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
+FITSTYPES       STR     recipes/fitstypes.mdc
 
-# BITPIX(S32) is the bits per pixel for writing the output data
-# COMPRESSION(STR) = NONE|RICE|GZIP|HCOMPRESS|PLIO is the compression algorithm
-# TILE.[XYZ](S32) are the tile sizes.  0 means entire the dimension, so (0,1,1) forms tiles from rows
-# NOISE(S32) [0..16] is the number of "noise bits" to preserve when quantising floating point data
-# HSCALE(S32) is the scale factor for lossy compression with HCOMPRESS; 0 or 1 for none; 2*RMS --> 10x compression
-# HSMOOTH(S32) is the smoothing to apply to HCOMPRESSed data when decompressing; 0 for none
-# SCALING(STR) = NONE|RANGE|STDEV_POSITIVE|STDEV_NEGATIVE|STDEV_BOTH|MANUAL is the scaling scheme
-# BSCALE(F32) is the manual scaling to apply (when SCALING = MANUAL)
-# BZERO(F32) is the manual zero-point to apply (when SCALING = MANUAL)
-# STDEV.BITS(S32) is the number of bits to map to a standard deviation (when SCALING = STDEV_*)
-# STDEV.NUM(F32) is the number of standard deviations to the edge (when SCALING = STDEV_NEGATIVE|STDEV_POSITIVE)
-# FLOAT(STR) is the name of a custom floating-point type
-
-	DET_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	DET_MASK	METADATA
-		BITPIX		S32	8
-	END
-	DET_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	SKY_IMAGE	METADATA
-		BITPIX		S32	-32
-	END
-	SKY_MASK	METADATA
-		BITPIX		S32	8
-	END
-	SKY_WEIGHT	METADATA
-		BITPIX		S32	-32
-	END
-
-	COMPRESSED_POSITIVE	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_POSITIVE
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	10
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_MASK		METADATA
-		COMPRESSION	STR	PLIO
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-	COMPRESSED_SUBTRACTION	METADATA
-		BITPIX		S32	16
-		SCALING		STR	STDEV_BOTH
-		STDEV.BITS	S32	4
-		STDEV.NUM	F32	5
-		COMPRESSION	STR	RICE
-		TILE.X		S32	0
-		TILE.Y		S32	1
-		TILE.Z		S32	1
-		NOISE		S32	8
-	END
-
-END
-
-FILERULES METADATA
-   PPIMAGE.OUTPUT     STR PPIMAGE.OUTPUT
-   PPIMAGE.BIN1       STR PPIMAGE.BIN1.OUTPUT
-   PPIMAGE.BIN2	      STR PPIMAGE.BIN2.OUTPUT
-   PPIMAGE.JPEG1      STR PPIMAGE.JPEG1.OUTPUT
-   PPIMAGE.JPEG2      STR PPIMAGE.JPEG2.OUTPUT
-
-   PSASTRO.INPUT      STR PSASTRO.INPUT.CMP
-   PSASTRO.OUTPUT     STR PSASTRO.OUTPUT.CMP
-   PSPHOT.OUTPUT      STR PSPHOT.OUTPUT.CMF
-
-   ### input file definitions
-   TYPE               INPUT FILENAME.RULE                 DATA.LEVEL FILE.TYPE 
-   PPIMAGE.INPUT      INPUT @FILES                        CHIP       IMAGE
-   PPARITH.INPUT      INPUT @FILES                        CHIP       IMAGE
-
-   ### use these entries to get the detrend images from specific files
-   PPIMAGE.MASK       INPUT mask.fits                     CHIP       IMAGE
-   PPIMAGE.BIAS       INPUT bias.fit                      CHIP       IMAGE     
-   PPIMAGE.DARK       INPUT dark.fits                     CHIP       IMAGE     
-   PPIMAGE.FLAT       INPUT flat.fits                     CHIP       IMAGE     
-
-   ### use these entries to get the detrend images from the database
-   #PPIMAGE.MASK       INPUT @DETDB                       CHIP       IMAGE     
-   #PPIMAGE.BIAS       INPUT @DETDB                       CHIP       IMAGE     
-   #PPIMAGE.DARK       INPUT @DETDB                       CHIP       IMAGE     
-   #PPIMAGE.FLAT       INPUT @DETDB                       CHIP       IMAGE     
-
-   PSPHOT.INPUT       INPUT @FILES                        CHIP       IMAGE     
-
-   PSASTRO.INPUT.CMP  INPUT @FILES                        CHIP       CMP       
-   PSASTRO.INPUT.CMF  INPUT @FILES                        CHIP       CMF       
-
-   ### output file definitions
-   TYPE                OUTPUT FILENAME.RULE            FILE.TYPE FITS.TYPE DATA.LEVEL FILE.SAVE FILE.FORMAT
-   PPIMAGE.OUTPUT      OUTPUT     {OUTPUT}.fit         IMAGE     NONE      CHIP       TRUE      NONE
-   PPIMAGE.OUTPUT.CHIP OUTPUT     {OUTPUT}.chip.fit    IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA1 OUTPUT     {OUTPUT}.fpa1.fit    IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.OUTPUT.FPA2 OUTPUT     {OUTPUT}.fpa2.fit    IMAGE     NONE      FPA        TRUE      NONE
-
-   PPIMAGE.BIN1.OUTPUT OUTPUT {OUTPUT}.b1.fit          IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.BIN2.OUTPUT OUTPUT {OUTPUT}.b2.fit          IMAGE     NONE      FPA        TRUE      NONE
-   PPIMAGE.JPEG1.OUTPUT OUTPUT {OUTPUT}.b1.jpg         JPEG      NONE      FPA        TRUE      NONE
-   PPIMAGE.JPEG2.OUTPUT OUTPUT {OUTPUT}.b2.jpg         JPEG      NONE      FPA        TRUE      NONE
-
-   PSPHOT.RESID        OUTPUT {OUTPUT}.res.fits        IMAGE     NONE      CHIP       TRUE      RAW
-   PSPHOT.BACKGND      OUTPUT {OUTPUT}.bck.fits        IMAGE     NONE      CHIP       TRUE      RAW
-   PSPHOT.BACKSUB      OUTPUT {OUTPUT}.sub.fits        IMAGE     NONE      CHIP       TRUE      RAW
-   PSPHOT.BACKMDL      OUTPUT {OUTPUT}.mdl.fits        IMAGE     NONE      CHIP       TRUE      RAW
-
-   PSPHOT.OUTPUT.RAW   OUTPUT {OUTPUT}.{CHIP.NAME}     RAW       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.SX    OUTPUT {OUTPUT}.sx              SX        NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.OBJ   OUTPUT {OUTPUT}.obj             OBJ       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.CMF   OUTPUT {OUTPUT}.cmf             CMF       NONE      CHIP       TRUE      NONE
-   PSPHOT.OUTPUT.CMP   OUTPUT {OUTPUT}.{CHIP.NAME}.cmp CMP       NONE      CHIP       TRUE      NONE
-
-   PSASTRO.OUTPUT.CMP  OUTPUT {OUTPUT}.{CHIP.NAME}.smp CMP       NONE      CHIP       TRUE      NONE
-
-   LOG.IMFILE            OUTPUT {OUTPUT}.{CHIP.NAME}.log TEXT    NONE      CHIP       TRUE      NONE
-   LOG.EXP               OUTPUT {OUTPUT}.log           TEXT      NONE      FPA        TRUE      NONE
-END
+FILERULES       STR     recipes/filerules-simple.mdc
