MUSE Pipeline Reference Manual  2.1.1
muse_dfs.h
1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim:set sw=2 sts=2 et cin: */
3 /*
4  * This file is part of the MUSE Instrument Pipeline
5  * Copyright (C) 2005-2014 European Southern Observatory
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  */
21 
22 #ifndef MUSE_DFS_H
23 #define MUSE_DFS_H
24 
25 /*----------------------------------------------------------------------------*
26  * Defines *
27  *----------------------------------------------------------------------------*/
28 /* data dictionary version to add into the product header */
29 #define MUSE_PRO_DID "PRO-1.16"
30 
31 /* regular expression of all FITS header keywords that *
32  * we want to keep from being overwritten by cpl_dfs */
33 #define MUSE_HEADERS_KEEP_REGEXP "^OBJECT$|ESO DRS MUSE"
34 
35 /* Define here the DO.CATG keywords */
36 #define MUSE_TAG_EMPTY ""
37 #define MUSE_TAG_BIAS "BIAS"
38 #define MUSE_TAG_DARK "DARK"
39 #define MUSE_TAG_FLAT "FLAT"
40 #define MUSE_TAG_ARC "ARC"
41 #define MUSE_TAG_WAVE "WAVE"
42 #define MUSE_TAG_MASK "MASK"
43 #define MUSE_TAG_ILLUM "ILLUM"
44 #define MUSE_TAG_NONLINGAIN "NONLINEARITY_GAIN"
45 #define MUSE_TAG_MASTER_BIAS "MASTER_BIAS"
46 #define MUSE_TAG_MASTER_DARK "MASTER_DARK"
47 #define MUSE_TAG_MASTER_FLAT "MASTER_FLAT"
48 #define MUSE_TAG_TRACE_TABLE "TRACE_TABLE"
49 #define MUSE_TAG_TRACE_SAMPLES "TRACE_SAMPLES"
50 #define MUSE_TAG_WAVECAL_TABLE "WAVECAL_TABLE"
51 #define MUSE_TAG_WAVECAL_DEBUG "WAVECAL_RESIDUALS"
52 #define MUSE_TAG_LINE_CATALOG "LINE_CATALOG"
53 #define MUSE_TAG_BADPIX_TABLE "BADPIX_TABLE"
54 #define MUSE_TAG_ARC_RED_LAMP "ARC_RED_LAMP"
55 #define MUSE_TAG_ARC_RED "ARC_RED"
56 #define MUSE_TAG_ARC_RESAMP "ARC_RESAMPLED"
57 #define MUSE_TAG_WAVE_MAP "WAVE_MAP"
58 #define MUSE_TAG_LSF_PROFILE "LSF_PROFILE"
59 #define MUSE_TAG_PT_SUB "PIXTABLE_SUBTRACTED"
60 #define MUSE_TAG_GEOMETRY_OLD "GEOMETRY_UNSMOOTHED"
61 #define MUSE_TAG_GEOMETRY_TABLE "GEOMETRY_TABLE"
62 #define MUSE_TAG_MASK_REDUCED "MASK_REDUCED"
63 #define MUSE_TAG_MASK_COMBINED "MASK_COMBINED"
64 #define MUSE_TAG_SPOTS_TABLE "SPOTS_TABLE"
65 #define MUSE_TAG_VIGN_MASK "VIGNETTING_MASK"
66 #define MUSE_TAG_CUBE_SKYFLAT "DATACUBE_SKYFLAT"
67 #define MUSE_TAG_TWILIGHT_CUBE "TWILIGHT_CUBE"
68 #define MUSE_TAG_EXTINCT_TABLE "EXTINCT_TABLE"
69 #define MUSE_TAG_STD_FLUX_TABLE "STD_FLUX_TABLE"
70 #define MUSE_TAG_TELLREG "TELLURIC_REGIONS"
71 #define MUSE_TAG_STD_RESPONSE "STD_RESPONSE"
72 #define MUSE_TAG_STD_TELLURIC "STD_TELLURIC"
73 #define MUSE_TAG_CUBE_STD "DATACUBE_STD"
74 #define MUSE_TAG_STD_INTIMAGE "STD_FLUXES"
75 #define MUSE_TAG_ASTROMETRY_REFERENCE "ASTROMETRY_REFERENCE"
76 #define MUSE_TAG_ASTROMETRY_WCS "ASTROMETRY_WCS"
77 #define MUSE_TAG_CUBE_ASTROMETRY "DATACUBE_ASTROMETRY"
78 #define MUSE_TAG_SKY_SPECTRUM "SKY_SPECTRUM"
79 #define MUSE_TAG_SKY_MASK "SKY_MASK"
80 #define MUSE_TAG_SKY_CONT "SKY_CONTINUUM"
81 #define MUSE_TAG_SKY_LINES "SKY_LINES"
82 #define MUSE_TAG_FILTER_LIST "FILTER_LIST"
83 #define MUSE_TAG_OUTPUT_WCS "OUTPUT_WCS"
84 #define MUSE_TAG_IMAGE_FOV "IMAGE_FOV"
85 #define MUSE_TAG_CUBE_FINAL "DATACUBE_FINAL"
86 #define MUSE_TAG_PIXTABLE_COMBINED "PIXTABLE_COMBINED"
87 #define MUSE_TAG_PIXTABLE_POSITIONED "PIXTABLE_POSITIONED"
88 #define MUSE_TAG_PIXTABLE_REDUCED "PIXTABLE_REDUCED"
89 #define MUSE_TAG_OBJECT_RESAMPLED "OBJECT_RESAMPLED"
90 #define MUSE_TAG_OFFSET_LIST "OFFSET_LIST"
91 /* tags used by the muse_qi_mask recipe */
92 #define MUSE_TAG_MASK_IMAGE "MASK_IMAGE"
93 /* tags from detmon used by the muse_lingain recipe */
94 #define MUSE_TAG_LINEARITY_BIAS "DETMON_LAMP_OFF"
95 #define MUSE_TAG_LINEARITY_FLAT "DETMON_LAMP_ON"
96 
97 /* Reasons to exclude frames from a framelist */
98 #define MUSE_EXCLUDE_OK 0 /* frame not excluded */
99 #define MUSE_EXCLUDE_WRONG_IFU 1 /* frame is from different IFU */
100 #define MUSE_EXCLUDE_BINNING 2 /* frame has different binning */
101 #define MUSE_EXCLUDE_NOT_RAW 3 /* frame is not a raw input frame */
102 #define MUSE_EXCLUDE_NO_HEADER 4 /* frame header cannot be loaded */
103 #define MUSE_EXCLUDE_WARN_NO_TAG 5 /* frame does not have a tag at all, outputting a warning recommended */
104 #define MUSE_EXCLUDE_WRONG_TAG 6 /* frame does not have the tag that the recipe needs */
105 
106 /* Table column names of tracing table *
107  * the single digit number gives the polynomial number *
108  * (see muse_tracing.h) */
109 #define MUSE_TRACE_TABLE_COL_SLICE_NO "SliceNo" /* number of slice */
110 #define MUSE_TRACE_TABLE_COL_WIDTH "Width" /* mean width of slice in pix */
111 #define MUSE_TRACE_TABLE_COL_COEFF "tc%1d_%02d" /* polynomial coefficient */
112 #define MUSE_TRACE_TABLE_COL_MSE "MSE%1d" /* mean squared error of fit */
113 
114 /* FITS headers of a LINE_CATALOG */
115 #define MUSE_HDR_LINE_CATALOG_VERSION "VERSION"
116 /* Table column names of wavelength calibration table (WAVECAL_TABLE) */
117 #define MUSE_WAVECAL_TABLE_COL_SLICE_NO "SliceNo" /* number of slice */
118 #define MUSE_WAVECAL_TABLE_COL_COEFF "wlc%1hu%1hu" /* polynomial coefficient */
119 #define MUSE_WAVECAL_TABLE_COL_MSE "MSE" /* mean squared error of fit */
120 /* Table column names of a GEOMETRY_TABLE */
121 #define MUSE_GEOTABLE_FIELD "SubField"
122 #define MUSE_GEOTABLE_CCD "SliceCCD"
123 #define MUSE_GEOTABLE_SKY "SliceSky"
124 #define MUSE_GEOTABLE_X "x"
125 #define MUSE_GEOTABLE_Y "y"
126 #define MUSE_GEOTABLE_ANGLE "angle"
127 #define MUSE_GEOTABLE_WIDTH "width"
128 
129 /* temporary properties to be propagated within the MUSE pipeline */
130 /* a regular expression for easy erasing */
131 #define MUSE_HDR_TMP_REGEXP "MUSE TMP( |[0-9]+ )(INTAG$|FILE$|NSATURATED$|QUAD)"
132 /* input filename to be used for diagnostic messages; *
133  * should be temporary and never saved to disk! */
134 #define MUSE_HDR_TMP_INTAG "MUSE TMP INTAG"
135 #define MUSE_HDR_TMP_FN "MUSE TMP FILE"
136 #define MUSE_HDR_TMP_NSAT "MUSE TMP NSATURATED" /* number of saturated pixels */
137 #define MUSE_HDR_TMPi_NSAT "MUSE TMP%d NSATURATED"
138 #define MUSE_HDR_TMP_QUADnMED "MUSE TMP QUAD%hhu MEDIAN" /* per-quadrant median */
139 
140 /* FITS keywords to store overscan statistics */
141 #define MUSE_HDR_OVSC_REGEXP "^ESO DRS MUSE OVSC"
142 #define MUSE_HDR_OVSC_MEAN "ESO DRS MUSE OVSC%1hhu MEAN"
143 #define MUSE_HDR_OVSC_STDEV "ESO DRS MUSE OVSC%1hhu STDEV"
144 #define MUSE_HDR_OVSC_PNC "ESO DRS MUSE OVSC%1hhu POLY NCOEFF"
145 #define MUSE_HDR_OVSC_PY "ESO DRS MUSE OVSC%1hhu POLY Y%hhu"
146 
147 /* FITS keywords to exchange the nonlinearity polynomials */
148 #define MUSE_HDR_NONLINn_ORDER "ESO DRS MUSE NONLIN%1hhu POLY ORDER"
149 #define MUSE_HDR_NONLINn_COEFFo "ESO DRS MUSE NONLIN%1hhu POLY COEFF%hhu"
150 #define MUSE_HDR_NONLINn_LLO "ESO DRS MUSE NONLIN%1hhu POLY LOLIMIT"
151 #define MUSE_HDR_NONLINn_LHI "ESO DRS MUSE NONLIN%1hhu POLY HILIMIT"
152 
153 /* FITS header keywords for the flat-field levels */
154 #define MUSE_HDR_FLAT_FLUX_LAMP "ESO DRS MUSE FLAT FLUX LAMP"
155 #define MUSE_HDR_FLAT_FLUX_SKY "ESO DRS MUSE FLAT FLUX SKY"
156 
157 /* FITS header keywords to store the applied RA/DEC offsets */
158 #define MUSE_HDR_OFFSETi_DATEOBS "ESO DRS MUSE OFFSET%d DATE-OBS"
159 #define MUSE_HDR_OFFSETi_DATEOBS_C "offset %d applied to exposure with this DATE-OBS"
160 #define MUSE_HDR_OFFSETi_DRA "ESO DRS MUSE OFFSET%d DRA"
161 #define MUSE_HDR_OFFSETi_DRA_C "[deg] (= %f arcsec) RA offset applied"
162 #define MUSE_HDR_OFFSETi_DDEC "ESO DRS MUSE OFFSET%d DDEC"
163 #define MUSE_HDR_OFFSETi_DDEC_C "[deg] (= %f arcsec) DEC offset applied"
164 #define MUSE_HDR_FLUX_SCALEi "ESO DRS MUSE FLUX SCALE%d"
165 #define MUSE_HDR_FLUX_SCALEi_C "flux scale factor applied"
166 
167 /* FITS header keyword to list the filter name and *
168  * properties in the collapsed images (IMAGE_FOV) */
169 #define MUSE_HDR_FILTER "ESO DRS MUSE FILTER NAME"
170 #define MUSE_HDR_FILTER_C "filter name used"
171 #define MUSE_HDR_FILTER_ZPVEGA "ESO DRS MUSE FILTER ZPVEGA"
172 #define MUSE_HDR_FILTER_ZPVEGA_C "[mag] Vega-mag zeropoint"
173 #define MUSE_HDR_FILTER_ZPAB "ESO DRS MUSE FILTER ZPAB"
174 #define MUSE_HDR_FILTER_ZPAB_C "[mag] AB-mag zeropoint"
175 #define MUSE_HDR_FILTER_FFRAC "ESO DRS MUSE FILTER FRACTION"
176 #define MUSE_HDR_FILTER_FFRAC_C "[%] fraction of filter covered by data"
177 #define MUSE_HDR_FILTER_REGEXP "^ESO DRS MUSE FILTER "
178 
179 /* informational keywords used when computing the WCS solution */
180 #define MUSE_HDR_WCS_DETSIGMA "ESO DRS MUSE WCS DETSIGMA"
181 #define MUSE_HDR_WCS_DETSIGMA_C "Final detsigma level used"
182 #define MUSE_HDR_WCS_DETSIGMA_C_ONE "detsigma used"
183 #define MUSE_HDR_WCS_RADIUS "ESO DRS MUSE WCS RADIUS"
184 #define MUSE_HDR_WCS_RADIUS_C "[pix] final ppm radius used"
185 #define MUSE_HDR_WCS_ACCURACY "ESO DRS MUSE WCS ACCURACY"
186 #define MUSE_HDR_WCS_ACCURACY_C "[pix] final ppm accuracy used"
187 #define MUSE_HDR_WCS_FACCURACY "ESO DRS MUSE WCS FACCURACY"
188 #define MUSE_HDR_WCS_FACCURACY_C "final fractional accuracy used"
189 
190 /* Bias QC headers */
191 #define QC_BIAS_PREFIXi "ESO QC BIAS INPUT%d"
192 #define QC_BIAS_MASTER_PREFIX "ESO QC BIAS MASTER"
193 #define QC_BIAS_MASTERn_PREFIX QC_BIAS_MASTER_PREFIX"%1hhu"
194 #define QC_BIAS_MASTER_RON QC_BIAS_MASTERn_PREFIX" RON"
195 #define QC_BIAS_MASTER_RONERR QC_BIAS_MASTERn_PREFIX" RONERR"
196 #define QC_BIAS_MASTER_SLOPEX QC_BIAS_MASTERn_PREFIX" SLOPE X"
197 #define QC_BIAS_MASTER_SLOPEY QC_BIAS_MASTERn_PREFIX" SLOPE Y"
198 #define QC_BIAS_MASTER_NBADPIX QC_BIAS_MASTER_PREFIX" NBADPIX"
199 #define QC_BIAS_LEVELi "ESO QC BIAS LEVEL%hhu"
200 #define QC_BIAS_LEVELi_MEAN QC_BIAS_LEVELi" MEAN"
201 #define QC_BIAS_LEVELi_STDEV QC_BIAS_LEVELi" STDEV"
202 #define QC_BIAS_LEVELi_MEDIAN QC_BIAS_LEVELi" MEDIAN"
203 
204 /* Dark QC headers */
205 #define QC_DARK_PREFIXi "ESO QC DARK INPUT%d"
206 #define QC_DARK_MASTER_PREFIX "ESO QC DARK MASTER"
207 #define QC_DARK_MASTER_NBADPIX QC_DARK_MASTER_PREFIX" NBADPIX"
208 #define QC_DARK_MASTER_DARKVALUE QC_DARK_MASTER_PREFIX" DC"
209 #define QC_DARK_MASTER_DARKERROR QC_DARK_MASTER_PREFIX" DCERR"
210 
211 /* Flat QC headers */
212 #define QC_FLAT_PREFIXi "ESO QC FLAT INPUT%d"
213 #define QC_FLAT_MASTER_PREFIX "ESO QC FLAT MASTER"
214 #define QC_FLAT_MASTER_INTFLUX QC_FLAT_MASTER_PREFIX" INTFLUX"
215 #define QC_FLAT_MASTER_THRUPUT QC_FLAT_MASTER_PREFIX" THRUPUT"
216 #define QC_FLAT_MASTER_SLICEj_MEAN QC_FLAT_MASTER_PREFIX" SLICE%d MEAN"
217 #define QC_FLAT_MASTER_SLICEj_STDEV QC_FLAT_MASTER_PREFIX" SLICE%d STDEV"
218 /* Tracing QC headers (also produced by flat recipe) */
219 #define QC_TRACE_PREFIX "ESO QC TRACE"
220 #define QC_TRACE_L_XPOS QC_TRACE_PREFIX" SLICE_L XPOS"
221 #define QC_TRACE_L_TILT QC_TRACE_PREFIX" SLICE_L TILT"
222 #define QC_TRACE_R_XPOS QC_TRACE_PREFIX" SLICE_R XPOS"
223 #define QC_TRACE_R_TILT QC_TRACE_PREFIX" SLICE_R TILT"
224 #define QC_TRACE_SLICEj_MXSLOP QC_TRACE_PREFIX" SLICE%d MAXSLOPE"
225 #define QC_TRACE_SLICEj_WIDTH QC_TRACE_PREFIX" SLICE%d WIDTH"
226 #define QC_TRACE_WIDTHS_MEDIAN QC_TRACE_PREFIX" WIDTHS MEDIAN"
227 #define QC_TRACE_WIDTHS_MEAN QC_TRACE_PREFIX" WIDTHS MEAN"
228 #define QC_TRACE_WIDTHS_STDEV QC_TRACE_PREFIX" WIDTHS STDEV"
229 #define QC_TRACE_WIDTHS_MIN QC_TRACE_PREFIX" WIDTHS MIN"
230 #define QC_TRACE_WIDTHS_MAX QC_TRACE_PREFIX" WIDTHS MAX"
231 #define QC_TRACE_WIDTHS_MAX QC_TRACE_PREFIX" WIDTHS MAX"
232 #define QC_TRACE_GAPS_MEDIAN QC_TRACE_PREFIX" GAPS MEDIAN"
233 #define QC_TRACE_GAPS_MEAN QC_TRACE_PREFIX" GAPS MEAN"
234 #define QC_TRACE_GAPS_STDEV QC_TRACE_PREFIX" GAPS STDEV"
235 #define QC_TRACE_GAPS_MIN QC_TRACE_PREFIX" GAPS MIN"
236 #define QC_TRACE_GAPS_MAX QC_TRACE_PREFIX" GAPS MAX"
237 
238 /* Arc QC headers */
239 #define QC_WAVECAL_PREFIX "ESO QC WAVECAL"
240 #define QC_WAVECAL_PREFIXi QC_WAVECAL_PREFIX" INPUT%u"
241 #define QC_WAVECAL_PREFIXli QC_WAVECAL_PREFIX" LAMP%u INPUT%u"
242 #define QC_WAVECAL_SLICEj_PREFIX QC_WAVECAL_PREFIX" SLICE%hu"
243 #define QC_WAVECAL_SLICEj_LINES_NDET QC_WAVECAL_SLICEj_PREFIX" LINES NDET"
244 #define QC_WAVECAL_SLICEj_LINES_NID QC_WAVECAL_SLICEj_PREFIX" LINES NID"
245 #define QC_WAVECAL_SLICEj_LINES_PEAK_MEAN QC_WAVECAL_SLICEj_PREFIX" LINES PEAK MEAN"
246 #define QC_WAVECAL_SLICEj_LINES_PEAK_STDEV QC_WAVECAL_SLICEj_PREFIX" LINES PEAK STDEV"
247 #define QC_WAVECAL_SLICEj_LINES_PEAK_MIN QC_WAVECAL_SLICEj_PREFIX" LINES PEAK MIN"
248 #define QC_WAVECAL_SLICEj_LINES_PEAK_MAX QC_WAVECAL_SLICEj_PREFIX" LINES PEAK MAX"
249 #define QC_WAVECAL_SLICEj_LAMPl_LINES_PEAK_MEAN \
250  QC_WAVECAL_SLICEj_PREFIX" LAMP%d LINES PEAK MEAN"
251 #define QC_WAVECAL_SLICEj_LAMPl_LINES_PEAK_STDEV \
252  QC_WAVECAL_SLICEj_PREFIX" LAMP%d LINES PEAK STDEV"
253 #define QC_WAVECAL_SLICEj_LAMPl_LINES_PEAK_MAX \
254  QC_WAVECAL_SLICEj_PREFIX" LAMP%d LINES PEAK MAX"
255 #define QC_WAVECAL_SLICEj_LINES_FWHM_MEAN QC_WAVECAL_SLICEj_PREFIX" LINES FWHM MEAN"
256 #define QC_WAVECAL_SLICEj_LINES_FWHM_STDEV QC_WAVECAL_SLICEj_PREFIX" LINES FWHM STDEV"
257 #define QC_WAVECAL_SLICEj_LINES_FWHM_MIN QC_WAVECAL_SLICEj_PREFIX" LINES FWHM MIN"
258 #define QC_WAVECAL_SLICEj_LINES_FWHM_MAX QC_WAVECAL_SLICEj_PREFIX" LINES FWHM MAX"
259 #define QC_WAVECAL_SLICEj_RESOL QC_WAVECAL_SLICEj_PREFIX" RESOL"
260 #define QC_WAVECAL_SLICEj_FIT_NLINES QC_WAVECAL_SLICEj_PREFIX" FIT NLINES"
261 #define QC_WAVECAL_SLICEj_FIT_RMS QC_WAVECAL_SLICEj_PREFIX" FIT RMS"
262 #define QC_WAVECAL_SLICEj_DWLEN_BOT QC_WAVECAL_SLICEj_PREFIX" DWLEN BOTTOM"
263 #define QC_WAVECAL_SLICEj_DWLEN_TOP QC_WAVECAL_SLICEj_PREFIX" DWLEN TOP"
264 #define QC_WAVECAL_SLICEj_WLPOS QC_WAVECAL_SLICEj_PREFIX" WLPOS"
265 #define QC_WAVECAL_SLICEj_WLEN QC_WAVECAL_SLICEj_PREFIX" WLEN"
266 
267 /* Geometry QC headers */
268 #define QC_GEO_PREFIX "ESO QC GEO "
269 #define QC_GEO_EXPk_MEAN QC_GEO_PREFIX"EXP%d FWHM MEAN"
270 #define QC_GEO_EXPk_MEDIAN QC_GEO_PREFIX"EXP%d FWHM MEDIAN"
271 #define QC_GEO_EXPk_STDEV QC_GEO_PREFIX"EXP%d FWHM STDEV"
272 #define QC_GEO_FWHM_MEAN QC_GEO_PREFIX"FWHM MEAN"
273 #define QC_GEO_FWHM_STDEV QC_GEO_PREFIX"FWHM STDEV"
274 #define QC_GEO_IFUi_ANGLE QC_GEO_PREFIX"IFU%hhu ANGLE"
275 #define QC_GEO_IFUi_WLENj QC_GEO_PREFIX"IFU%hhu WLEN%d"
276 #define QC_GEO_IFUi_MEANj QC_GEO_PREFIX"IFU%hhu WLEN%d FLUX MEAN"
277 #define QC_GEO_IFUi_MEDIANj QC_GEO_PREFIX"IFU%hhu WLEN%d FLUX MEDIAN"
278 #define QC_GEO_IFUi_STDEVj QC_GEO_PREFIX"IFU%hhu WLEN%d FLUX STDEV"
279 #define QC_GEO_IFUi_GAP QC_GEO_PREFIX"IFU%hhu GAPPOS MEAN"
280 #define QC_GEO_GAPS_MEAN QC_GEO_PREFIX"GAPPOS MEAN"
281 #define QC_GEO_GAPS_STDEV QC_GEO_PREFIX"GAPPOS STDEV"
282 #define QC_GEO_MASK_ANGLE QC_GEO_PREFIX"MASK ANGLE"
283 #define QC_GEO_SMOOTH_NX QC_GEO_PREFIX"SMOOTH NX"
284 #define QC_GEO_SMOOTH_NY QC_GEO_PREFIX"SMOOTH NY"
285 #define QC_GEO_SMOOTH_NA QC_GEO_PREFIX"SMOOTH NANGLE"
286 #define QC_GEO_SMOOTH_NW QC_GEO_PREFIX"SMOOTH NWIDTH"
287 
288 /* Twilight QC headers */
289 #define QC_TWILIGHTm_PREFIXi "ESO QC TWILIGHT%hhu INPUT%u"
290 #define QC_TWILIGHTm_MASTER_PREFIX "ESO QC TWILIGHT%hhu MASTER"
291 #define QC_TWILIGHTm_INTFLUX "ESO QC TWILIGHT%hhu INTFLUX"
292 #define QC_TWILIGHT_REGEXP "^ESO QC TWILIGHT[0-9]"
293 
294 /* SciBasic QC headers */
295 #define QC_SCIBASIC_PREFIX "ESO QC SCIBASIC "
296 #define QC_SCIBASIC_SHIFT QC_SCIBASIC_PREFIX"LAMBDA SHIFT"
297 
298 /* general basic reduction QC headers */
299 #define QC_BASIC_NSATURATED "NSATURATED" /* postfix! */
300 
301 /* SciPost QC headers */
302 /* header prefixes for the FWHMi.X and FWHMi.Y keywords, depending on recipe */
303 #define QC_POST_PREFIX_SCIPOST "ESO QC SCIPOST"
304 #define QC_POST_PREFIX_EXPCOMBINE "ESO QC EXPCOMB"
305 #define QC_POST_PREFIX_STANDARD "ESO QC STANDARD"
306 #define QC_POST_PREFIX_ASTROMETRY "ESO QC ASTRO"
307 /* end of the FWHMi.X and FWHMi.Y keywords, depending on recipe */
308 #define QC_POST_NDET "%s NDET"
309 #define QC_POST_LAMBDA "%s LAMBDA"
310 #define QC_POST_POSX "%s POS%d X"
311 #define QC_POST_POSY "%s POS%d Y"
312 #define QC_POST_FWHM_NVALID "%s FWHM NVALID"
313 #define QC_POST_FWHMX "%s FWHM%d X"
314 #define QC_POST_FWHMY "%s FWHM%d Y"
315 #define QC_POST_FWHM_MEDIAN "%s FWHM MEDIAN"
316 #define QC_POST_FWHM_MAD "%s FWHM MAD"
317 
318 /* Exposure alignment QC headers */
319 #define QC_ALIGN_NDETi "ESO QC EXPALIGN NDET%d"
320 #define QC_ALIGN_NMATCHi "ESO QC EXPALIGN NMATCH%d"
321 #define QC_ALIGN_NMATCH_MIN "ESO QC EXPALIGN NMATCH MIN"
322 #define QC_ALIGN_NOMATCH "ESO QC EXPALIGN NOMATCH"
323 #define QC_ALIGN_DRA_MIN "ESO QC EXPALIGN OFFSET RA MIN"
324 #define QC_ALIGN_DRA_MAX "ESO QC EXPALIGN OFFSET RA MAX"
325 #define QC_ALIGN_DRA_MEAN "ESO QC EXPALIGN OFFSET RA MEAN"
326 #define QC_ALIGN_DRA_STDEV "ESO QC EXPALIGN OFFSET RA STDEV"
327 #define QC_ALIGN_DDEC_MIN "ESO QC EXPALIGN OFFSET DEC MIN"
328 #define QC_ALIGN_DDEC_MAX "ESO QC EXPALIGN OFFSET DEC MAX"
329 #define QC_ALIGN_DDEC_MEAN "ESO QC EXPALIGN OFFSET DEC MEAN"
330 #define QC_ALIGN_DDEC_STDEV "ESO QC EXPALIGN OFFSET DEC STDEV"
331 
332 /* Standard star throughput estimates */
333 #define QC_STD_NAME "ESO QC STANDARD STARNAME"
334 #define QC_STD_THRU "ESO QC STANDARD THRU%04.0f"
335 #define QC_STD_ZP "ESO QC STANDARD ZP %s"
336 
337 /* Astrometric solution QC headers */
338 #define QC_ASTROMETRY_NSTARS "ESO QC ASTRO NSTARS"
339 #define QC_ASTROMETRY_SCX "ESO QC ASTRO SCALE X"
340 #define QC_ASTROMETRY_SCY "ESO QC ASTRO SCALE Y"
341 #define QC_ASTROMETRY_ANGX "ESO QC ASTRO ANGLE X"
342 #define QC_ASTROMETRY_ANGY "ESO QC ASTRO ANGLE Y"
343 #define QC_ASTROMETRY_RESX "ESO QC ASTRO MEDRES X"
344 #define QC_ASTROMETRY_RESY "ESO QC ASTRO MEDRES Y"
345 
346 /* Non-linearity gain QC headers */
347 #define QC_LINGAIN_PREFIX "ESO QC LINGAIN "
348 #define QC_LINGAIN_GFITi_RMS QC_LINGAIN_PREFIX "GFIT%u RMS"
349 #define QC_LINGAIN_NLFITi_RMS QC_LINGAIN_PREFIX "NLFIT%u RMS"
350 
351 #endif /* MUSE_DFS_H */