00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifdef HAVE_CONFIG_H
00029 #include <config.h>
00030 #endif
00031
00032
00033
00034
00035
00036 #include <cpl.h>
00037
00038 #include "irplib_detmon.h"
00039 #include "irplib_detmon_lg.h"
00040 #include "irplib_plugin.h"
00041
00042
00043 #define SINFO_LINGAIN_ON_RAW "ON_RAW"
00044 #define SINFO_LINGAIN_OFF_RAW "OFF_RAW"
00045
00046 #define RECIPE_NAME "sinfo_lingain"
00047
00048
00049 #define INSTREGEXP "ESO INS SETUP ID"
00050
00051 #define PAFREGEXP "^(" REGEXP "|" INSTREGEXP ")$"
00052
00053 #define NIR TRUE
00054
00055
00056
00057
00058
00059 cpl_error_code
00060 sinfo_lingain_fill_parlist_default(cpl_parameterlist * parlist,
00061 const char *recipe_name,
00062 const char *pipeline_name);
00063
00064 IRPLIB_RECIPE_DEFINE(sinfo_lingain, DETMON_BINARY_VERSION,
00065
00066
00067 sinfo_lingain_fill_parlist_default(recipe->parameters,
00068 RECIPE_NAME, "sinfoni"),
00069
00070
00071 "Lander de Bilbao", PACKAGE_BUGREPORT, "2007",
00072 "Linearity/Gain recipe for the IR domain",
00073 irplib_detmon_lg_get_description(RECIPE_NAME, "SINFONI",
00074 SINFO_LINGAIN_ON_RAW,
00075 SINFO_LINGAIN_OFF_RAW));
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 static int sinfo_lingain(cpl_frameset * frameset,
00088 const cpl_parameterlist * parlist)
00089 {
00090 cpl_propertylist * lintbl =
00091 irplib_detmon_fill_prolist("DET_LIN_INFO", "REDUCED", "TECH", CPL_FALSE);
00092
00093 cpl_propertylist * gaintbl =
00094 irplib_detmon_fill_prolist("GAIN_INFO", "REDUCED", "TECH", CPL_FALSE);
00095
00096 cpl_propertylist * coeffscube =
00097 irplib_detmon_fill_prolist("COEFFS_CUBE", "REDUCED", "TECH", CPL_FALSE);
00098
00099 cpl_propertylist * bpm =
00100 irplib_detmon_fill_prolist("BP_MAP_NL", "REDUCED", "TECH", CPL_FALSE);
00101
00102 cpl_propertylist * corr =
00103 irplib_detmon_fill_prolist("AUTOCORR", "REDUCED", "TECH", CPL_FALSE);
00104
00105 cpl_propertylist * diff_flat =
00106 irplib_detmon_fill_prolist("DIFF_FLAT", "REDUCED", "TECH", CPL_FALSE);
00107
00108 const cpl_error_code error = irplib_detmon_lg(frameset,
00109 parlist,
00110 SINFO_LINGAIN_ON_RAW,
00111 SINFO_LINGAIN_OFF_RAW,
00112 RECIPE_NAME,
00113 "sinfoni",
00114 PAFREGEXP,
00115 lintbl, gaintbl, coeffscube,
00116 bpm, corr, diff_flat,
00117 PACKAGE "/" PACKAGE_VERSION,
00118 NULL, NULL, NIR);
00119
00120 cpl_propertylist_delete(lintbl);
00121 cpl_propertylist_delete(gaintbl);
00122 cpl_propertylist_delete(coeffscube);
00123 cpl_propertylist_delete(bpm);
00124 cpl_propertylist_delete(corr);
00125 cpl_propertylist_delete(diff_flat);
00126
00127
00128 cpl_ensure_code(!error, error);
00129
00130 return CPL_ERROR_NONE;
00131 }
00132
00133 cpl_error_code
00134 sinfo_lingain_fill_parlist_default(cpl_parameterlist * parlist,
00135 const char *recipe_name,
00136 const char *pipeline_name)
00137 {
00138 const cpl_error_code error =
00139 irplib_detmon_lg_fill_parlist(parlist, recipe_name, pipeline_name,
00140 "PTC",
00141 3,
00142 3,
00143 25,
00144 -1,
00145 -1,
00146 -1,
00147 -1,
00148 10000,
00149 "CPL_FALSE",
00150 "CPL_FALSE",
00151 "CPL_FALSE",
00152 "CPL_TRUE",
00153 "CPL_TRUE",
00154 "CPL_TRUE",
00155 -1,
00156 26,
00157 26,
00158 1e-3, NULL,
00159 -1,
00160 -1,
00161 -1,
00162 -1,
00163 -1,
00164 -1,
00165 -1,
00166 -1,
00167 -1,
00168 -1,
00169 -1,
00170 -1,
00171 -1,
00172 -1,
00173 -1,
00174 -1,
00175 -1,
00176 -1,
00177 -1,
00178 -1,
00179 0,
00180 NIR);
00181
00182
00183 cpl_ensure_code(!error, error);
00184
00185 return cpl_error_get_code();
00186 }