Index: trunk/ippconfig/megacam/.cvsignore
===================================================================
--- trunk/ippconfig/megacam/.cvsignore	(revision 11576)
+++ trunk/ippconfig/megacam/.cvsignore	(revision 11576)
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
Index: trunk/ippconfig/megacam/Makefile.am
===================================================================
--- trunk/ippconfig/megacam/Makefile.am	(revision 11576)
+++ trunk/ippconfig/megacam/Makefile.am	(revision 11576)
@@ -0,0 +1,22 @@
+
+installdir = $(datadir)/ippconfig/megacam
+
+install_files = \
+	camera.config \
+	format_raw.config \
+	format_split.config \
+	format_spliced.config \
+	ppImage.config \
+	ppMerge.config \
+	ppStats.config \
+	psastro.config \
+	psphot.config
+
+install_DATA = $(install_files)
+
+install-data-hook:
+	chmod 0755 $(installdir)
+
+EXTRA_DIST = $(install_files)
+
+ACLOCAL_AMFLAGS = -I m4
Index: trunk/ippconfig/megacam/format_spliced_mask.config
===================================================================
--- trunk/ippconfig/megacam/format_spliced_mask.config	(revision 11367)
+++ 	(revision )
@@ -1,143 +1,0 @@
-# The spliced MecaCam data is stored in single extensions for each chip
-
-# How to recognise this type
-RULE	METADATA
-	OBSTYPE         STR     MASK
-	ORIGIN  	STR	CFHT
-	INSTRUME	STR	MegaPrime
-	EXTEND		BOOL	T
-	NEXTEND		S32	36
-END
-
-FILE	METADATA
-	# How to read this data
-	PHU		STR	FPA	 # The FITS file represents an entire FPA
-	EXTENSIONS	STR	CHIP	 # The extensions represent chips
-	FPA.NAME	STR	FILENAME # A PHU keyword for unique identifier
-END
-
-# What's in the FITS file?
-CONTENTS	METADATA
-	# Extension name, chip name:component cell
-	ccd00		STR	ccd00:LeftAmp:left ccd00:RightAmp:right
-	ccd01		STR	ccd01:LeftAmp:left ccd01:RightAmp:right
-	ccd02		STR	ccd02:LeftAmp:left ccd02:RightAmp:right
-	ccd03		STR	ccd03:LeftAmp:left ccd03:RightAmp:right
-	ccd04		STR	ccd04:LeftAmp:left ccd04:RightAmp:right
-	ccd05		STR	ccd05:LeftAmp:left ccd05:RightAmp:right
-	ccd06		STR	ccd06:LeftAmp:left ccd06:RightAmp:right
-	ccd07		STR	ccd07:LeftAmp:left ccd07:RightAmp:right
-	ccd08		STR	ccd08:LeftAmp:left ccd08:RightAmp:right
-	ccd09		STR	ccd09:LeftAmp:left ccd09:RightAmp:right
-	ccd10		STR	ccd10:LeftAmp:left ccd10:RightAmp:right
-	ccd11		STR	ccd11:LeftAmp:left ccd11:RightAmp:right
-	ccd12		STR	ccd12:LeftAmp:left ccd12:RightAmp:right
-	ccd13		STR	ccd13:LeftAmp:left ccd13:RightAmp:right
-	ccd14		STR	ccd14:LeftAmp:left ccd14:RightAmp:right
-	ccd15		STR	ccd15:LeftAmp:left ccd15:RightAmp:right
-	ccd16		STR	ccd16:LeftAmp:left ccd16:RightAmp:right
-	ccd17		STR	ccd17:LeftAmp:left ccd17:RightAmp:right
-	ccd18		STR	ccd18:LeftAmp:left ccd18:RightAmp:right
-	ccd19		STR	ccd19:LeftAmp:left ccd19:RightAmp:right
-	ccd20		STR	ccd20:LeftAmp:left ccd20:RightAmp:right
-	ccd21		STR	ccd21:LeftAmp:left ccd21:RightAmp:right
-	ccd22		STR	ccd22:LeftAmp:left ccd22:RightAmp:right
-	ccd23		STR	ccd23:LeftAmp:left ccd23:RightAmp:right
-	ccd24		STR	ccd24:LeftAmp:left ccd24:RightAmp:right
-	ccd25		STR	ccd25:LeftAmp:left ccd25:RightAmp:right
-	ccd26		STR	ccd26:LeftAmp:left ccd26:RightAmp:right
-	ccd27		STR	ccd27:LeftAmp:left ccd27:RightAmp:right
-	ccd28		STR	ccd28:LeftAmp:left ccd28:RightAmp:right
-	ccd29		STR	ccd29:LeftAmp:left ccd29:RightAmp:right
-	ccd30		STR	ccd30:LeftAmp:left ccd30:RightAmp:right
-	ccd31		STR	ccd31:LeftAmp:left ccd31:RightAmp:right
-	ccd32		STR	ccd32:LeftAmp:left ccd32:RightAmp:right
-	ccd33		STR	ccd33:LeftAmp:left ccd33:RightAmp:right
-	ccd34		STR	ccd34:LeftAmp:left ccd34:RightAmp:right
-	ccd35		STR	ccd35:LeftAmp:left ccd35:RightAmp:right
-END
-
-# Specify the cells
-CELLS		METADATA
-	left		METADATA
-		CELL.NAME		STR	LeftSide
-		CELL.BIASSEC.SOURCE	STR	VALUE
-		CELL.TRIMSEC.SOURCE	STR	VALUE
-		CELL.BIASSEC		STR	[1:32,1:4644]
-		CELL.TRIMSEC		STR	[33:1056,1:4612]
-		CELL.X0			S32	0
-	END
-
-	right		METADATA
-		CELL.NAME		STR	RightSide
-		CELL.BIASSEC.SOURCE	STR	VALUE
-		CELL.TRIMSEC.SOURCE	STR	VALUE
-		CELL.BIASSEC		STR	[2081:2112,1:4644]
-		CELL.TRIMSEC		STR	[1057:2080,1:4612]
-		CELL.X0			S32	1024
-	END
-END
-
-# How to translate PS concepts into FITS headers
-TRANSLATION	METADATA
-        FPA.NAME        STR     EXPNUM
-        FPA.AIRMASS     STR     AIRMASS
-        FPA.FILTER      STR     FILTER
-        FPA.POSANGLE    STR     ROTANGLE
-        FPA.RA          STR     RA
-        FPA.DEC         STR     DEC
-        FPA.RADECSYS    STR     RADECSYS
-        CELL.EXPOSURE   STR     EXPTIME
-        CELL.DARKTIME   STR     DARKTIME
-        CELL.GAIN       STR     GAIN
-        CELL.READNOISE  STR     RDNOISE
-        CELL.SATURATION STR     SATURATE
-	CELL.TIME	STR	MJD-OBS
-        CELL.XBIN       STR     CCDBIN1
-        CELL.YBIN       STR     CCDBIN2
-END
-
-# Default PS concepts that may be specified by value
-DEFAULTS        METADATA
-	CELL.READDIR		S32	1		# Cell is read in x direction
-        CELL.BAD                S32     0
-	CELL.TIMESYS		STR	UTC
-	CELL.XPARITY		S32	1
-	CELL.YPARITY		S32	1
-	CELL.Y0			S32	0
-END
-
-
-# How to translation PS concepts into database lookups
-DATABASE	METADATA
-	TYPE		dbEntry		TABLE		COLUMN		GIVENDBCOL	GIVENPS
-#	CELL.GAIN	dbEntry		Camera		gain		chipId,cellId	CHIP.NAME,CELL.NAME
-#	CELL.READNOISE	dbEntry		Camera		readNoise	chipId,cellId	CHIP.NAME,CELL.NAME
-
-# A database entry refers to a particular column (COLUMN) in a
-# particular table (TABLE), given certain PS concepts (GIVENPS) that
-# match certain database columns (GIVENDBCOL).
-END		
-
-
-# Where there might be some ambiguity, specify the format
-FORMATS		METADATA
-	FPA.RA		STR	HOURS
-	FPA.DEC		STR	DEGREES
-	CELL.TIME	STR	MJD
-END
- 
-# Recipe options
-RECIPES		METADATA
-	PHASE2		STR	phase2.config		# Phase 2 recipe details
-END
- 
-
-# How to get the supplementary stuff: mask and weight
-SUPPLEMENTARY	METADATA
-	MASK.SOURCE	STR	FILE		# Source type for mask: EXT | FILE
-	MASK.NAME	STR	%a_mask.fits	# Name for mask extension or filename
-	WEIGHT.SOURCE	STR	FILE		# Source type for weight: EXT | FILE
-	WEIGHT.NAME	STR	%a_weight.fits	# Name for weight extension or filename
-END
-
Index: trunk/ippconfig/megacam/format_split_mask.config
===================================================================
--- trunk/ippconfig/megacam/format_split_mask.config	(revision 11367)
+++ 	(revision )
@@ -1,284 +1,0 @@
-# The split MecaCam data is stored in single file for each chip
-
-# How to recognise this type
-RULE	METADATA
-	OBSTYPE         STR     MASK
-	ORIGIN		STR	CFHT
-	DETECTOR	STR	MegaCam
-END
-
-# How to read this dataF
-FILE	METADATA
-	PHU		STR	CHIP	 # The FITS file represents an entire FPA
-	EXTENSIONS	STR	NONE	 # The extensions represent chips
-	FPA.NAME	STR	FILENAME # A PHU keyword for the FPA name
-	CHIP.NAME	STR	EXTNAME	 # A PHU keyword for the chip name
-	CONTENT		STR	{CHIP.NAME} # A string to index the CONTENTS menu; required because EXT=NONE
-END
-
-# What's in the FITS file?
-CONTENTS	METADATA
-	# Chip name, components
-	ccd00		STR	LeftAmp:left RightAmp:right
-	ccd01		STR	LeftAmp:left RightAmp:right
-	ccd02		STR	LeftAmp:left RightAmp:right
-	ccd03		STR	LeftAmp:left RightAmp:right
-	ccd04		STR	LeftAmp:left RightAmp:right
-	ccd05		STR	LeftAmp:left RightAmp:right
-	ccd06		STR	LeftAmp:left RightAmp:right
-	ccd07		STR	LeftAmp:left RightAmp:right
-	ccd08		STR	LeftAmp:left RightAmp:right
-	ccd09		STR	LeftAmp:left RightAmp:right
-	ccd10		STR	LeftAmp:left RightAmp:right
-	ccd11		STR	LeftAmp:left RightAmp:right
-	ccd12		STR	LeftAmp:left RightAmp:right
-	ccd13		STR	LeftAmp:left RightAmp:right
-	ccd14		STR	LeftAmp:left RightAmp:right
-	ccd15		STR	LeftAmp:left RightAmp:right
-	ccd16		STR	LeftAmp:left RightAmp:right
-	ccd17		STR	LeftAmp:left RightAmp:right
-	ccd18		STR	LeftAmp:left RightAmp:right
-	ccd19		STR	LeftAmp:left RightAmp:right
-	ccd20		STR	LeftAmp:left RightAmp:right
-	ccd21		STR	LeftAmp:left RightAmp:right
-	ccd22		STR	LeftAmp:left RightAmp:right
-	ccd23		STR	LeftAmp:left RightAmp:right
-	ccd24		STR	LeftAmp:left RightAmp:right
-	ccd25		STR	LeftAmp:left RightAmp:right
-	ccd26		STR	LeftAmp:left RightAmp:right
-	ccd27		STR	LeftAmp:left RightAmp:right
-	ccd28		STR	LeftAmp:left RightAmp:right
-	ccd29		STR	LeftAmp:left RightAmp:right
-	ccd30		STR	LeftAmp:left RightAmp:right
-	ccd31		STR	LeftAmp:left RightAmp:right
-	ccd32		STR	LeftAmp:left RightAmp:right
-	ccd33		STR	LeftAmp:left RightAmp:right
-	ccd34		STR	LeftAmp:left RightAmp:right
-	ccd35		STR	LeftAmp:left RightAmp:right
-END
-
-# Specify the cells
-CELLS		METADATA
-	left	METADATA
-		CELL.BIASSEC.SOURCE	STR	HEADER
-		CELL.TRIMSEC.SOURCE	STR	VALUE
-		CELL.BIASSEC		STR	BSECA
-		CELL.TRIMSEC		STR	[33:1056,1:4612]
-		CELL.X0			S32	0
-	END
-
-	right	METADATA
-		CELL.BIASSEC.SOURCE	STR	HEADER
-		CELL.TRIMSEC.SOURCE	STR	VALUE
-		CELL.BIASSEC		STR	BSECB
-		CELL.TRIMSEC		STR	[1057:2080,1:4612]
-		CELL.X0			S32	1024
-	END
-END
-
-# How to translate PS concepts into FITS headers
-TRANSLATION	METADATA
-        FPA.NAME        STR     EXPNUM
-        FPA.AIRMASS     STR     AIRMASS
-        FPA.FILTER      STR     FILTER
-        FPA.POSANGLE    STR     ROTANGLE
-        FPA.RA          STR     RA
-        FPA.DEC         STR     DEC
-        FPA.RADECSYS    STR     RADECSYS
-        CELL.EXPOSURE   STR     EXPTIME
-        CELL.DARKTIME   STR     DARKTIME
-        CELL.GAIN       STR     GAIN
-        CELL.READNOISE  STR     RDNOISE
-        CELL.SATURATION STR     SATURATE
-	CELL.TIME	STR	MJD-OBS
-        CELL.XBIN       STR     CCDBIN1
-        CELL.YBIN       STR     CCDBIN2
-END
-
-# Default PS concepts that may be specified by value
-DEFAULTS        METADATA
-	CELL.READDIR		S32	1		# Cell is read in x direction
-        CELL.BAD                S32     0
-	CELL.TIMESYS		STR	UTC
-	CELL.XPARITY		S32	1
-	CELL.YPARITY		S32	1
-	CELL.Y0			S32	0
-
-	CHIP.X0.DEPEND		STR	CHIP.NAME
-	CHIP.X0		METADATA
-		ccd00	S32	0
-		ccd01	S32	2048
-		ccd02	S32	4096
-		ccd03	S32	6144
-		ccd04	S32	8192
-		ccd05	S32	10240
-		ccd06	S32	12288
-		ccd07	S32	14336
-		ccd08	S32	16384
-		ccd09	S32	0
-		ccd10	S32	2048
-		ccd11	S32	4096
-		ccd12	S32	6144
-		ccd13	S32	8192
-		ccd14	S32	10240
-		ccd15	S32	12288
-		ccd16	S32	14336
-		ccd17	S32	16384
-		ccd18	S32	0
-		ccd19	S32	2048
-		ccd20	S32	4096
-		ccd21	S32	6144
-		ccd22	S32	8192
-		ccd23	S32	10240
-		ccd24	S32	12288
-		ccd25	S32	14336
-		ccd26	S32	16384
-		ccd27	S32	0
-		ccd28	S32	2048
-		ccd29	S32	4096
-		ccd30	S32	6144
-		ccd31	S32	8192
-		ccd32	S32	10240
-		ccd33	S32	12288
-		ccd34	S32	14336
-		ccd35	S32	16384
-	END
-	CHIP.Y0.DEPEND		STR	CHIP.NAME
-	CHIP.Y0		METADATA
-		ccd00	S32	18447
-		ccd01	S32	18447
-		ccd02	S32	18447
-		ccd03	S32	18447
-		ccd04	S32	18447
-		ccd05	S32	18447
-		ccd06	S32	18447
-		ccd07	S32	18447
-		ccd08	S32	18447
-		ccd09	S32	13835
-		ccd10	S32	13835
-		ccd11	S32	13835
-		ccd12	S32	13835
-		ccd13	S32	13835
-		ccd14	S32	13835
-		ccd15	S32	13835
-		ccd16	S32	13835
-		ccd17	S32	13835
-		ccd18	S32	4612
-		ccd19	S32	4612
-		ccd20	S32	4612
-		ccd21	S32	4612
-		ccd22	S32	4612
-		ccd23	S32	4612
-		ccd24	S32	4612
-		ccd25	S32	4612
-		ccd26	S32	4612
-		ccd27	S32	0
-		ccd28	S32	0
-		ccd29	S32	0
-		ccd30	S32	0
-		ccd31	S32	0
-		ccd32	S32	0
-		ccd33	S32	0
-		ccd34	S32	0
-		ccd35	S32	0
-	END
-	CHIP.XPARITY.DEPEND	STR	CHIP.NAME
-	CHIP.XPARITY	METADATA
-		ccd00	S32	1
-		ccd01	S32	1
-		ccd02	S32	1
-		ccd03	S32	1
-		ccd04	S32	1
-		ccd05	S32	1
-		ccd06	S32	1
-		ccd07	S32	1
-		ccd08	S32	1
-		ccd09	S32	1
-		ccd10	S32	1
-		ccd11	S32	1
-		ccd12	S32	1
-		ccd13	S32	1
-		ccd14	S32	1
-		ccd15	S32	1
-		ccd16	S32	1
-		ccd17	S32	1
-		ccd18	S32	1
-		ccd19	S32	1
-		ccd20	S32	1
-		ccd21	S32	1
-		ccd22	S32	1
-		ccd23	S32	1
-		ccd24	S32	1
-		ccd25	S32	1
-		ccd26	S32	1
-		ccd27	S32	1
-		ccd28	S32	1
-		ccd29	S32	1
-		ccd30	S32	1
-		ccd31	S32	1
-		ccd32	S32	1
-		ccd33	S32	1
-		ccd34	S32	1
-		ccd35	S32	1
-	END
-	CHIP.YPARITY.DEPEND	STR	CHIP.NAME
-	CHIP.YPARITY	METADATA
-		ccd00	S32	-1
-		ccd01	S32	-1
-		ccd02	S32	-1
-		ccd03	S32	-1
-		ccd04	S32	-1
-		ccd05	S32	-1
-		ccd06	S32	-1
-		ccd07	S32	-1
-		ccd08	S32	-1
-		ccd09	S32	-1
-		ccd10	S32	-1
-		ccd11	S32	-1
-		ccd12	S32	-1
-		ccd13	S32	-1
-		ccd14	S32	-1
-		ccd15	S32	-1
-		ccd16	S32	-1
-		ccd17	S32	-1
-		ccd18	S32	1
-		ccd19	S32	1
-		ccd20	S32	1
-		ccd21	S32	1
-		ccd22	S32	1
-		ccd23	S32	1
-		ccd24	S32	1
-		ccd25	S32	1
-		ccd26	S32	1
-		ccd27	S32	1
-		ccd28	S32	1
-		ccd29	S32	1
-		ccd30	S32	1
-		ccd31	S32	1
-		ccd32	S32	1
-		ccd33	S32	1
-		ccd34	S32	1
-		ccd35	S32	1
-	END
-END
-
-
-# How to translation PS concepts into database lookups
-DATABASE	METADATA
-	TYPE		dbEntry		TABLE		COLUMN		GIVENDBCOL	GIVENPS
-#	CELL.GAIN	dbEntry		Camera		gain		chipId,cellId	CHIP.NAME,CELL.NAME
-#	CELL.READNOISE	dbEntry		Camera		readNoise	chipId,cellId	CHIP.NAME,CELL.NAME
-
-# A database entry refers to a particular column (COLUMN) in a
-# particular table (TABLE), given certain PS concepts (GIVENPS) that
-# match certain database columns (GIVENDBCOL).
-END		
-
-
-# Where there might be some ambiguity, specify the format
-FORMATS		METADATA
-	FPA.RA		STR	HOURS
-	FPA.DEC		STR	DEGREES
-	CELL.TIME	STR	MJD
-END
-
Index: trunk/ippconfig/megacam/ppMerge.config
===================================================================
--- trunk/ippconfig/megacam/ppMerge.config	(revision 11576)
+++ trunk/ippconfig/megacam/ppMerge.config	(revision 11576)
@@ -0,0 +1,44 @@
+
+# Bias combination --- don't want min/max rejection
+PPMERGE_BIAS	METADATA
+   REJ		F32	3.0		# Rejection threshold (sigma)
+   ITER		S32	2		# Number of rejection iterations
+   FRACHIGH	F32	0.0		# Fraction of high pixels to reject immediately
+   FRACLOW	F32	0.0		# Fraction of low pixels to reject immediately
+   WEIGHTS	BOOL	FALSE		# Use image weights?
+   COMBINE	STR	CLIPPED		# Statistic to use for combination: 
+END
+
+# Dark combination --- don't want min/max rejection
+# More aggressive clipping than bias, so as to remove CRs
+PPMERGE_DARK	METADATA
+  REJ		F32	2.0		# Rejection threshold (sigma)
+  ITER		S32	4		# Number of rejection iterations
+  FRACHIGH	F32	0.0		# Fraction of high pixels to reject immediately
+  FRACLOW	F32	0.0		# Fraction of low pixels to reject immediately
+  WEIGHTS	BOOL	FALSE		# Use image weights?
+  COMBINE	STR	CLIPPED		# Statistic to use for combination: 
+END
+
+# Flat combination --- use min/max rejection
+PPMERGE_FLAT	METADATA
+	REJ		F32	3.0		# Rejection threshold (sigma)
+	ITER		S32	1		# Number of rejection iterations
+	FRACHIGH	F32	0.3		# Fraction of high pixels to reject immediately
+	FRACLOW		F32	0.1		# Fraction of low pixels to reject immediately
+	NKEEP		S32	5		# Minimum number of pixels in stack to keep
+	MASKVAL		S32	0xff		# Mask value for input data
+	WEIGHTS		BOOL	TRUE		# Use image weights?
+	COMBINE		STR	MEAN		# Statistic to use for combination: 
+END
+
+
+# Fringe combination --- already included in default, above
+PPMERGE_FRINGE	METADATA
+	FRACHIGH	F32	0.1		# Fraction of high pixels to reject immediately
+	WEIGHTS		BOOL	TRUE		# Use image weights?
+END
+
+# Mask generation --- already included in default, above
+PPMERGE_MASK	METADATA
+END
Index: trunk/ippconfig/megacam/ppMerge_bias.config
===================================================================
--- trunk/ippconfig/megacam/ppMerge_bias.config	(revision 11367)
+++ 	(revision )
@@ -1,6 +1,0 @@
-REJ		F32	3.0		# Rejection threshold (sigma)
-ITER		S32	2		# Number of rejection iterations
-FRACHIGH	F32	0.0		# Fraction of high pixels to reject immediately
-FRACLOW		F32	0.0		# Fraction of low pixels to reject immediately
-WEIGHTS		BOOL	FALSE		# Use image weights?
-COMBINE		STR	CLIPPED		# Statistic to use for combination: 
Index: trunk/ippconfig/megacam/ppMerge_dark.config
===================================================================
--- trunk/ippconfig/megacam/ppMerge_dark.config	(revision 11367)
+++ 	(revision )
@@ -1,6 +1,0 @@
-REJ		F32	2.0		# Rejection threshold (sigma)
-ITER		S32	4		# Number of rejection iterations
-FRACHIGH	F32	0.0		# Fraction of high pixels to reject immediately
-FRACLOW		F32	0.0		# Fraction of low pixels to reject immediately
-WEIGHTS		BOOL	FALSE		# Use image weights?
-COMBINE		STR	CLIPPED		# Statistic to use for combination: 
Index: trunk/ippconfig/megacam/ppMerge_flat.config
===================================================================
--- trunk/ippconfig/megacam/ppMerge_flat.config	(revision 11367)
+++ 	(revision )
@@ -1,8 +1,0 @@
-REJ		F32	3.0		# Rejection threshold (sigma)
-ITER		S32	1		# Number of rejection iterations
-FRACHIGH	F32	0.3		# Fraction of high pixels to reject immediately
-FRACLOW		F32	0.1		# Fraction of low pixels to reject immediately
-NKEEP		S32	5		# Minimum number of pixels in stack to keep
-MASKVAL		S32	0xff		# Mask value for input data
-WEIGHTS		BOOL	TRUE		# Use image weights?
-COMBINE		STR	MEAN		# Statistic to use for combination: 
