40 #include <irplib_utils.h>
42 #include <sinfo_tpl_utils.h>
43 #include <sinfo_pfits.h>
44 #include <sinfo_tpl_dfs.h>
45 #include <sinfo_msg.h>
46 #include <sinfo_utl_spectrum_divide_by_blackbody.h>
51 static int sinfo_utl_spectrum_divide_by_blackbody_create(cpl_plugin *) ;
52 static int sinfo_utl_spectrum_divide_by_blackbody_exec(cpl_plugin *) ;
53 static int sinfo_utl_spectrum_divide_by_blackbody_destroy(cpl_plugin *) ;
59 static char sinfo_utl_spectrum_divide_by_blackbody_description1[] =
60 "This recipe divides a spectrum by a black body "
61 "spectrum of given temperature.\n"
62 "The input file is a spectrum. Its associated tag must be SPECTRUM.\n"
63 "The output is a spectrum\n";
66 static char sinfo_utl_spectrum_divide_by_blackbody_description2[] =
68 "sinfoni.sinfo_utl_spectrum_divide_by_blackbody.temperature\n"
69 "having aliases 'temp' \n"
72 static char sinfo_utl_spectrum_divide_by_blackbody_description[900];
96 cpl_recipe * recipe = cpl_calloc(1,
sizeof *recipe ) ;
97 cpl_plugin * plugin = &recipe->interface ;
99 strcpy(sinfo_utl_spectrum_divide_by_blackbody_description,
100 sinfo_utl_spectrum_divide_by_blackbody_description1);
101 strcat(sinfo_utl_spectrum_divide_by_blackbody_description,
102 sinfo_utl_spectrum_divide_by_blackbody_description2);
104 cpl_plugin_init(plugin,
106 SINFONI_BINARY_VERSION,
107 CPL_PLUGIN_TYPE_RECIPE,
108 "sinfo_utl_spectrum_divide_by_blackbody",
109 "Spectrum normalization by a blackbody",
110 sinfo_utl_spectrum_divide_by_blackbody_description,
112 "Andrea.Modigliani@eso.org",
114 sinfo_utl_spectrum_divide_by_blackbody_create,
115 sinfo_utl_spectrum_divide_by_blackbody_exec,
116 sinfo_utl_spectrum_divide_by_blackbody_destroy) ;
118 cpl_pluginlist_append(list, plugin) ;
133 static int sinfo_utl_spectrum_divide_by_blackbody_create(cpl_plugin * plugin)
135 cpl_recipe * recipe ;
139 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
140 recipe = (cpl_recipe *)plugin ;
146 recipe->parameters = cpl_parameterlist_new() ;
151 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_spectrum_divide_by_blackbody.temperature",
152 CPL_TYPE_DOUBLE,
"Black Body Temperature",
153 "sinfoni.sinfo_utl_spectrum_divide_by_blackbody", 100000.) ;
154 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"temp") ;
155 cpl_parameterlist_append(recipe->parameters, p) ;
168 static int sinfo_utl_spectrum_divide_by_blackbody_exec(cpl_plugin * plugin)
170 cpl_recipe * recipe ;
174 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
175 recipe = (cpl_recipe *)plugin ;
178 sinfo_msg(
"Welcome to SINFONI Pipeline release %d.%d.%d",
179 SINFONI_MAJOR_VERSION,SINFONI_MINOR_VERSION,SINFONI_MICRO_VERSION);
180 code=sinfo_utl_spectrum_divide_by_blackbody(recipe->parameters,
192 static int sinfo_utl_spectrum_divide_by_blackbody_destroy(cpl_plugin * plugin)
194 cpl_recipe * recipe ;
197 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
198 recipe = (cpl_recipe *)plugin ;
201 cpl_parameterlist_delete(recipe->parameters) ;