uves_parameters.h

00001 /*
00002  * This file is part of the ESO UVES 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  * $Author: amodigli $
00022  * $Date: 2010/09/24 09:32:06 $
00023  * $Revision: 1.19 $
00024  * $Name: uves-4_9_1 $
00025  * $Log: uves_parameters.h,v $
00026  * Revision 1.19  2010/09/24 09:32:06  amodigli
00027  * put back QFITS dependency to fix problem spot by NRI on FIBER mode (with MIDAS calibs) data
00028  *
00029  * Revision 1.17  2010/06/09 07:17:14  amodigli
00030  * renamed parameter definition function used by response step in redchain recipe to make them more explicit
00031  *
00032  * Revision 1.16  2010/06/08 16:29:23  amodigli
00033  * Fixed problems in parameter definition for reduction chain recipe
00034  *
00035  * Revision 1.15  2010/05/18 11:35:18  amodigli
00036  * added uves_master_flat_define_parameters
00037  *
00038  * Revision 1.14  2010/04/28 08:46:17  amodigli
00039  * add uves_define_efficiency_parameters()
00040  *
00041  * Revision 1.13  2010/03/22 15:55:33  amodigli
00042  * added uves_master_stack_define_parameters
00043  *
00044  * Revision 1.12  2008/03/04 15:21:36  amodigli
00045  * fixed redchain problem with clean_traps parameter
00046  *
00047  * Revision 1.11  2008/03/03 16:35:07  amodigli
00048  * added parameter to control trap column correction
00049  *
00050  * Revision 1.10  2007/06/26 13:34:57  jmlarsen
00051  * Exported function for FLAMES
00052  *
00053  * Revision 1.9  2007/06/06 08:17:33  amodigli
00054  * replace tab with 4 spaces
00055  *
00056  * Revision 1.8  2007/03/15 12:34:08  jmlarsen
00057  * Added missing include directive
00058  *
00059  * Revision 1.7  2006/10/24 14:04:46  jmlarsen
00060  * Defined macros to provide minimal syntax for parameter creation
00061  *
00062  * Revision 1.6  2006/08/17 13:56:53  jmlarsen
00063  * Reduced max line length
00064  *
00065  * Revision 1.5  2006/08/07 11:35:35  jmlarsen
00066  * Disabled parameter environment variable mode
00067  *
00068  * Revision 1.4  2005/12/19 16:17:56  jmlarsen
00069  * Replaced bool -> int
00070  *
00071  */
00072 #ifndef UVES_PARAMETERS_H
00073 #define UVES_PARAMETERS_H
00074 
00075 /*-----------------------------------------------------------------------------
00076                     Includes
00077  -----------------------------------------------------------------------------*/
00078 
00079 #include <uves_utils_wrappers.h>
00080 
00081 #include <cpl.h>
00082 /*-----------------------------------------------------------------------------
00083                             Typedefs
00084  -----------------------------------------------------------------------------*/
00085 /*-----------------------------------------------------------------------------
00086                              Defines
00087  -----------------------------------------------------------------------------*/
00088 /*-----------------------------------------------------------------------------
00089                                    Prototypes
00090  -----------------------------------------------------------------------------*/
00091 
00092 cpl_error_code
00093 uves_define_global_parameters(cpl_parameterlist *parlist);
00094 
00095 cpl_error_code
00096 uves_define_efficiency_parameters(cpl_parameterlist *parlist);
00097 
00098 
00099 cpl_error_code
00100 uves_define_rebin_for_response_chain_parameters(cpl_parameterlist *parlist);
00101 
00102 cpl_error_code
00103 uves_define_reduce_for_response_chain_parameters(cpl_parameterlist *parlist);
00104 
00105 cpl_error_code
00106 uves_define_efficiency_for_response_chain_parameters(cpl_parameterlist *parlist);
00107 
00108 cpl_error_code
00109 uves_define_extract_for_response_chain_parameters(cpl_parameterlist *parlist);
00110 
00111 cpl_error_code
00112 uves_define_background_for_response_chain_parameters(cpl_parameterlist *parlist);
00113 
00114 cpl_error_code
00115 uves_master_stack_define_parameters(cpl_parameterlist *parlist, const char *recipe_id);
00116 cpl_error_code
00117 uves_master_flat_define_parameters(cpl_parameterlist *parlist, const char *recipe_id);
00118 
00119 int
00120 uves_exec_recipe(int (*get_info)(cpl_pluginlist *), 
00121                  const char *recipe_domain,
00122                  const cpl_parameterlist *parameters, 
00123                  cpl_frameset *frames,
00124                  const char *caller_id, const char *context);
00125 
00126 int
00127 uves_invoke_recipe(const char *recipe_id, const cpl_parameterlist *parameters, 
00128            cpl_frameset *frames,
00129            const char *caller_id, const char *context);
00130 
00131 int
00132 uves_propagate_parameters_step(const char *step_id,
00133                    cpl_parameterlist *parameters,
00134                    const char *recipe_id, const char *context);
00135 
00136 int
00137 uves_prop_par(int (*get_info)(cpl_pluginlist *),
00138           cpl_parameterlist *parameters,
00139           const char *recipe_id, const char *context);
00140 
00141 int
00142 uves_propagate_parameters(const char *subrecipe_id, 
00143               cpl_parameterlist *parameters,
00144               const char *recipe_id, const char *context);
00145 
00146 cpl_error_code
00147 uves_corr_traps_define_parameters(cpl_parameterlist * parameters,
00148                                   const char *recipe_id);
00149 
00150 
00151 /*----------------------------------------------------------------------------*/
00161 /*----------------------------------------------------------------------------*/
00162 #define uves_parameter_new_value(p, name, type, description, context, default) \
00163       do {                                                                     \
00164             p = cpl_parameter_new_value(                                       \
00165                          name, type, description, context, default);           \
00166             cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);                  \
00167       } while(false)
00168 
00169 /*----------------------------------------------------------------------------*/
00178 /*----------------------------------------------------------------------------*/
00179 #define uves_parameter_new_range(p, name, type, description, context,          \
00180                  default, min, max)                            \
00181       do {                                                                     \
00182             p = cpl_parameter_new_range(                                       \
00183                          name, type, description, context, default, min, max); \
00184             cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);                  \
00185       } while(false)
00186 
00187 /*----------------------------------------------------------------------------*/
00197 /*----------------------------------------------------------------------------*/
00198 #define uves_parameter_new_enum(p, name, type, description, context, nopt, ...)\
00199       do {                                                                     \
00200             p = cpl_parameter_new_enum(                                        \
00201                          name, type, description, context, nopt, __VA_ARGS__); \
00202             cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);                  \
00203       } while(false)
00204 
00205 
00206 
00207 /*----------------------------------------------------------------------------*/
00218 /*----------------------------------------------------------------------------*/
00219 #define uves_par_new_value(name, type, description, default)               \
00220     do {                                                                   \
00221         cpl_parameter *p;                                                  \
00222         char *context   = uves_sprintf("%s%s%s", recipe_id,                \
00223                                        subcontext != NULL ? "." : "",      \
00224                                        subcontext != NULL ? subcontext: "");\
00225         char *full_name = uves_sprintf("%s.%s", context, name);            \
00226         uves_parameter_new_value(p, full_name,                             \
00227                  type,                                     \
00228                  description,                              \
00229                                  context,                                  \
00230                  default);                                 \
00231        cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name);           \
00232        cpl_parameterlist_append(parameters, p);                            \
00233        cpl_free(context);                                                  \
00234        cpl_free(full_name);                                                \
00235     } while(false)
00236 
00237 /*----------------------------------------------------------------------------*/
00250 /*----------------------------------------------------------------------------*/
00251 #define uves_par_new_range(name, type, description, default, min, max)     \
00252     do {                                                                   \
00253         cpl_parameter *p;                                                  \
00254         char *context   = uves_sprintf("%s%s%s", recipe_id,                \
00255                                        subcontext != NULL ? "." : "",      \
00256                                        subcontext != NULL ? subcontext: "");\
00257         char *full_name = uves_sprintf("%s.%s", context, name);            \
00258         uves_parameter_new_range(p, full_name,                             \
00259                  type,                                     \
00260                  description,                              \
00261                                  context,                                  \
00262                  default, min, max);                       \
00263        cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name);           \
00264        cpl_parameterlist_append(parameters, p);                            \
00265        cpl_free(context);                                                  \
00266        cpl_free(full_name);                                                \
00267     } while(false)
00268 
00269 
00270 /*----------------------------------------------------------------------------*/
00282 /*----------------------------------------------------------------------------*/
00283 #define uves_par_new_enum(name, type, description, default, nopt, ...)       \
00284     do {                                                                     \
00285         cpl_parameter *p;                                                    \
00286         char *context   = uves_sprintf("%s%s%s", recipe_id,                \
00287                                        subcontext != NULL ? "." : "",      \
00288                                        subcontext != NULL ? subcontext: "");\
00289         char *full_name = uves_sprintf("%s.%s", context, name);              \
00290         uves_parameter_new_enum(p, full_name,                                \
00291                  type,                                       \
00292                  description,                                \
00293                                  context,                                    \
00294                  default, nopt, __VA_ARGS__);                \
00295        cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, name);             \
00296        cpl_parameterlist_append(parameters, p);                              \
00297        cpl_free(context);                                                    \
00298        cpl_free(full_name);                                                  \
00299     } while(false)
00300 
00301 
00302 
00303 
00304 #endif  /* UVES_PARAMETERS_H */

Generated on 8 Mar 2011 for UVES Pipeline Reference Manual by  doxygen 1.6.1