00001 /* 00002 * This file is part of the ESO SINFONI Pipeline 00003 * Copyright (C) 2004,2005 European Southern Observatory 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation; either version 2 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software 00017 * Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA 00018 */ 00019 /*--------------------------------------------------------------------------- 00020 00021 File name : sinfo_wavecal_cfg.h 00022 Author : Juergen Schreiber 00023 Created on : September 2001 00024 Description : wavecal_ini definitions + handling prototypes 00025 00026 ---------------------------------------------------------------------------*/ 00027 #ifndef SINFO_FINDDIST_CFG_H 00028 #define SINFO_FINDDIST_CFG_H 00029 /*--------------------------------------------------------------------------- 00030 Includes 00031 ---------------------------------------------------------------------------*/ 00032 #include "sinfo_globals.h" 00033 #include <cpl.h> 00034 /*--------------------------------------------------------------------------- 00035 Defines 00036 ---------------------------------------------------------------------------*/ 00037 /*--------------------------------------------------------------------------- 00038 New types 00039 ---------------------------------------------------------------------------*/ 00040 /* 00041 Wavelength calibration blackboard container 00042 00043 This structure holds all information related to the wavelength calibration 00044 routine. It is used as a container for the flux of ancillary data, 00045 computed values, and algorithm status. Pixel flux is separated from 00046 the blackboard. 00047 */ 00048 00049 typedef struct finddist_config { 00050 /*-------General---------*/ 00051 char inFrame[FILE_NAME_SZ] ; /* input emission line frame */ 00052 char lineList[FILE_NAME_SZ] ; /* input wavelength and intensity 00053 line list */ 00054 char outName[FILE_NAME_SZ] ; /* output name of resulting fits 00055 wavelength map */ 00056 char nsFrame[FILE_NAME_SZ] ; /* input north-south frame */ 00057 char mask[FILE_NAME_SZ] ; /* input north-south frame */ 00058 char fitsname[FILE_NAME_SZ] ; 00059 char drs_setup[FILE_NAME_SZ] ; 00060 /*------ FindLines ------*/ 00061 /* estimated central wavelength of the image */ 00062 float guessBeginWavelength ; 00063 /* estimated linear dispersion of emission line frame */ 00064 float guessDispersion1 ; 00065 /* estimated square dispersion of emission line frame */ 00066 float guessDispersion2 ; 00067 /* minimal difference of mean and sinfo_median column intensity */ 00068 float mindiff ; 00069 /* half width of a box within which the line must sit */ 00070 int halfWidth ; 00071 /* sigma of Gaussian of artificial model spectra */ 00072 float sigma ; 00073 00074 /*------ WaveCalib ------*/ 00075 /* guess value for fwhm of emission lines */ 00076 float fwhm ; 00077 /* minimum amplitude of a line to be fitted */ 00078 float minAmplitude ; 00079 /* maximal residual value for a valid fit */ 00080 float maxResidual ; 00081 /* # of polynomial coefficients used for the dispersion relation */ 00082 int nrDispCoefficients ; 00083 /* # of polynomial coefficients used for the fit of the dispersion 00084 coefficients */ 00085 int nrCoefCoefficients ; 00086 /* minimal factor of the standard deviation of the fit coefficients */ 00087 float sigmaFactor ; 00088 /* number of slitlets */ 00089 int nslitlets ; 00090 /* minimal pixel distance of slitlets in spectral direction */ 00091 int pixeldist ; 00092 /* allowed pixel position tolerance between estimated and 00093 fitted line position */ 00094 float pixel_tolerance ; 00095 00096 /*------ WaveMap ------*/ 00097 /* magnifying factor for FFT */ 00098 int magFactor ; 00099 00100 /*------ FitSlits ------*/ 00101 /* pixel length of the row box within which the fit of the 00102 slitlet positions is carried out*/ 00103 int boxLength ; 00104 /* lower row position for the estimate fit */ 00105 int loPos ; 00106 /* upper row position for the estimate fit */ 00107 int hiPos ; 00108 /* float box half width in spectral direction */ 00109 float yBox ; 00110 /* maximal tolerable difference to the expected slitlet positions */ 00111 float diffTol ; 00112 /*------ NorthSouthTest ------*/ 00113 /* number of slitlets */ 00114 int nslits ; 00115 /* pixel half width of a box within which the spatial 00116 profile is fitted by a Gaussian */ 00117 int nshalfWidth ; 00118 /* first guess of the fwhm of the Gaussian fit function */ 00119 float nsfwhm ; 00120 /* minimum amplitude above which the fit is carried out */ 00121 float minDiff ; 00122 /* estimated average distance of spectra */ 00123 float estimated_dist ; 00124 /* maximal pixel tolerance of the slitlet distances */ 00125 float devtol ; 00126 00127 /*----qg log --------*/ 00128 int qc_thresh_min; 00129 int qc_thresh_max; 00130 00131 00132 } finddist_config ; 00133 /*--------------------------------------------------------------------------- 00134 Function prototypes 00135 ---------------------------------------------------------------------------*/ 00143 finddist_config * 00144 sinfo_finddist_cfg_create(void); 00145 00152 void 00153 sinfo_finddist_cfg_destroy(finddist_config * jc); 00154 00155 #endif