X-shooter Pipeline Reference Manual 3.8.15
xsh_pfits_qc.c
Go to the documentation of this file.
1/* *
2 * This file is part of the ESO X-shooter Pipeline *
3 * Copyright (C) 2006 European Southern Observatory *
4 * *
5 * This library is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the Free Software *
17 * Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA *
18 * */
19
20/*
21 * $Author: amodigli $
22 * $Date: 2013-04-26 10:44:01 $
23 * $Revision: 1.16 $
24 * $Name: not supported by cvs2svn $
25 */
26
27#ifdef HAVE_CONFIG_H
28#include <config.h>
29#endif
30
31/*----------------------------------------------------------------------------
32 Includes
33 ----------------------------------------------------------------------------*/
34
35
36#include <xsh_dump.h>
37#include <xsh_utils.h>
38#include <xsh_error.h>
39#include <xsh_msg.h>
40#include <xsh_qc_handling.h>
41#include <xsh_data_instrument.h>
42#include <xsh_pfits.h>
43#include <string.h>
44#include <cpl.h>
45#include <stdbool.h>
46#include <xsh_pfits_qc.h>
47
48/*---------------------------------------------------------------------------*/
54/*---------------------------------------------------------------------------*/
55
58/*----------------------------------------------------------------------------
59 Function prototypes
60 ----------------------------------------------------------------------------*/
61
62/*----------------------------------------------------------------------------
63 Function implementation
64 ----------------------------------------------------------------------------*/
65
74int xsh_pfits_get_qc_ncrh( const cpl_propertylist * plist)
75{
76 int returnvalue = -1 ;
77
79 CPL_TYPE_INT, &returnvalue ),
80 "Error reading Keyword '%s'", XSH_QC_CRH_NUMBER ) ;
81 cleanup:
82 return returnvalue ;
83}
84
93double xsh_pfits_get_qc_ncrh_mean( const cpl_propertylist * plist)
94{
95 double returnvalue = -1 ;
96
98 CPL_TYPE_DOUBLE, &returnvalue ),
99 "Error reading Keyword '%s'", XSH_QC_CRH_NUMBER_MEAN ) ;
100 cleanup:
101 return returnvalue ;
102}
103
104
105
106/*--------------------------------------------------------------------------- */
112/*--------------------------------------------------------------------------- */
113double
114xsh_pfits_get_qc_mbiasavg (const cpl_propertylist * plist)
115{
116 double returnvalue = 0.0;
117
119 CPL_TYPE_DOUBLE, &returnvalue),
120 "Error reading keyword '%s'", XSH_QC_MASTER_BIAS_MEAN);
121
122cleanup:
123 return returnvalue;
124}
125
126
132/*--------------------------------------------------------------------------- */
133double
134xsh_pfits_get_qc_mbiasmed (const cpl_propertylist * plist)
135{
136 double returnvalue = 0.0;
137
139 CPL_TYPE_DOUBLE, &returnvalue),
140 "Error reading keyword '%s'", XSH_QC_MASTER_BIAS_MEDIAN);
141
142cleanup:
143 return returnvalue;
144}
145
146
152/*--------------------------------------------------------------------------- */
153double
154xsh_pfits_get_qc_mbiasrms (const cpl_propertylist * plist)
155{
156 double returnvalue = 0.0;
157
159 CPL_TYPE_DOUBLE, &returnvalue),
160 "Error reading keyword '%s'", XSH_QC_MASTER_BIAS_RMS);
161
162cleanup:
163 return returnvalue;
164}
165
166
172/*--------------------------------------------------------------------------- */
173int
174xsh_pfits_get_qc_nhpix (const cpl_propertylist * plist)
175{
176 int returnvalue = 0.0;
177 cpl_type type;
178
179 type = cpl_propertylist_get_type (plist, XSH_QC_NHPIX);
180
182 type, &returnvalue),
183 "Error reading keyword '%s'", XSH_QC_NHPIX);
184
185cleanup:
186 return returnvalue;
187}
188
189
195/*--------------------------------------------------------------------------- */
196double
197xsh_pfits_get_qc_mbiasslope (const cpl_propertylist * plist)
198{
199 double returnvalue = 0.0;
200 cpl_type type;
201
202 type = cpl_propertylist_get_type (plist, XSH_QC_MBIASSLOPE);
203
205 type, &returnvalue),
206 "Error reading keyword '%s'", XSH_QC_MBIASSLOPE);
207
208cleanup:
209 return returnvalue;
210}
211
212/*-------------------------------------------------------------------------- */
213 /*
214 @brief
215 Find out the QC STRUCT X value
216 @param plist
217 The property list to read from
218 @return
219 The requested value
220 */
221/*-------------------------------------------------------------------------- */
222double xsh_pfits_get_qc_structx( const cpl_propertylist * plist)
223 {
224 double returnvalue = 0;
225
227 CPL_TYPE_DOUBLE, &returnvalue),
228 "Error reading keyword '%s'", XSH_QC_STRUCT_X_REG1);
229
230 cleanup:
231 return returnvalue;
232}
233
234/*-------------------------------------------------------------------------- */
235/*
236 @brief
237 Find out the QC STRUCTY value
238 @param plist
239 The property list to read from
240 @return
241 The requested value
242*/
243/*-------------------------------------------------------------------------- */
244double xsh_pfits_get_qc_structy( const cpl_propertylist * plist)
245{
246 double returnvalue = 0;
247
249 CPL_TYPE_DOUBLE, &returnvalue),
250 "Error reading keyword '%s'", XSH_QC_STRUCT_Y_REG1);
251
252cleanup:
253 return returnvalue;
254}
255
256
257/*-------------------------------------------------------------------------- */
258/*
259 @brief
260 Find out the QC RON value
261 @param plist
262 The property list to read from
263 @return
264 The requested value
265*/
266/*-------------------------------------------------------------------------- */
267double xsh_pfits_get_qc_ron( const cpl_propertylist * plist)
268{
269 double returnvalue = 0;
270
272 CPL_TYPE_DOUBLE, &returnvalue),
273 "Error reading keyword '%s'", XSH_QC_RON_REG1);
274
275cleanup:
276 return returnvalue;
277}
278
279
285/*-------------------------------------------------------------------------- */
286void
287xsh_pfits_set_qc_ron_master (cpl_propertylist * plist, double value)
288{
289 check_msg (cpl_propertylist_update_double (plist,XSH_QC_MASTER_RON,value),
290 "Error writing keyword '%s'", XSH_QC_MASTER_RON);
291 cpl_propertylist_set_comment(plist,XSH_QC_MASTER_RON,XSH_QC_MASTER_RON_C);
292
293cleanup:
294 return;
295}
296
302/*-------------------------------------------------------------------------- */
303void
304xsh_pfits_set_qc_fpn_master (cpl_propertylist * plist, double value)
305{
306 check_msg (cpl_propertylist_update_double (plist,XSH_QC_MASTER_FPN,value),
307 "Error writing keyword '%s'", XSH_QC_MASTER_FPN);
308 cpl_propertylist_set_comment(plist,XSH_QC_MASTER_FPN,XSH_QC_MASTER_FPN_C);
309
310cleanup:
311 return;
312}
313
319/*-------------------------------------------------------------------------- */
320void
321xsh_pfits_set_qc_fpn(cpl_propertylist * plist, double value)
322{
323 check_msg (cpl_propertylist_update_double (plist,XSH_QC_FPN,value),
324 "Error writing keyword '%s'", XSH_QC_FPN);
325 cpl_propertylist_set_comment(plist,XSH_QC_FPN,XSH_QC_FPN_C);
326
327cleanup:
328 return;
329}
330
331
337/*-------------------------------------------------------------------------- */
338void
339xsh_pfits_set_qc_fpn_err(cpl_propertylist * plist, double value)
340{
341 check_msg (cpl_propertylist_update_double (plist,XSH_QC_FPN_ERR,value),
342 "Error writing keyword '%s'", XSH_QC_FPN_ERR);
343 cpl_propertylist_set_comment(plist,XSH_QC_FPN_ERR,XSH_QC_FPN_ERR_C);
344
345cleanup:
346 return;
347}
348
349
355/*-------------------------------------------------------------------------- */
356void
357xsh_pfits_set_qc_norm_fpn(cpl_propertylist * plist, double value)
358{
359 check_msg (cpl_propertylist_update_double (plist,XSH_QC_NORM_FPN,value),
360 "Error writing keyword '%s'", XSH_QC_NORM_FPN);
361 cpl_propertylist_set_comment(plist,XSH_QC_NORM_FPN,XSH_QC_NORM_FPN_C);
362
363cleanup:
364 return;
365}
366
372/*-------------------------------------------------------------------------- */
373void
374xsh_pfits_set_qc_norm_fpn_err(cpl_propertylist * plist, double value)
375{
376 check_msg (cpl_propertylist_update_double (plist,XSH_QC_NORM_FPN_ERR,value),
377 "Error writing keyword '%s'", XSH_QC_NORM_FPN_ERR);
378 cpl_propertylist_set_comment(plist,XSH_QC_NORM_FPN_ERR,XSH_QC_NORM_FPN_ERR_C);
379
380cleanup:
381 return;
382}
383
384
390/*-------------------------------------------------------------------------- */
391void
392xsh_pfits_set_qc_reg1_structx (cpl_propertylist * plist, double value)
393{
394 check_msg (cpl_propertylist_update_double (plist,XSH_QC_STRUCT_X_REG1,value),
395 "Error writing keyword '%s'", XSH_QC_STRUCT_X_REG1);
396 cpl_propertylist_set_comment(plist,XSH_QC_STRUCT_X_REG1,XSH_QC_STRUCT_X_REG1_C);
397
398cleanup:
399 return;
400}
401
407/*--------------------------------------------------------------------------- */
408void
409xsh_pfits_set_qc_reg1_structy (cpl_propertylist * plist, double value)
410{
411 check_msg (cpl_propertylist_update_double (plist,XSH_QC_STRUCT_Y_REG1, value),
412 "Error writing keyword '%s'",XSH_QC_STRUCT_Y_REG1);
413 cpl_propertylist_set_comment(plist,XSH_QC_STRUCT_Y_REG1,XSH_QC_STRUCT_Y_REG1_C);
414
415cleanup:
416 return;
417}
418
419
420
426/*--------------------------------------------------------------------------- */
427void
428xsh_pfits_set_qc_reg2_structx (cpl_propertylist * plist, double value)
429{
430 check_msg (cpl_propertylist_update_double (plist,XSH_QC_STRUCT_X_REG2, value),
431 "Error writing keyword '%s'", XSH_QC_STRUCT_X_REG2);
432 cpl_propertylist_set_comment(plist,XSH_QC_STRUCT_X_REG2,XSH_QC_STRUCT_X_REG2_C);
433
434cleanup:
435 return;
436}
437
443/*--------------------------------------------------------------------------- */
444void
445xsh_pfits_set_qc_reg2_structy (cpl_propertylist * plist, double value)
446{
447 check_msg (cpl_propertylist_update_double (plist,XSH_QC_STRUCT_Y_REG2, value),
448 "Error writing keyword '%s'",XSH_QC_STRUCT_Y_REG2);
449 cpl_propertylist_set_comment(plist,XSH_QC_STRUCT_Y_REG2,XSH_QC_STRUCT_Y_REG2_C);
450
451cleanup:
452 return;
453}
454
455/*--------------------------------------------------------------------------- */
456/*
457 @brief
458 Write the QC RON value
459 @param plist
460 The property list to write to
461 @param value
462 The value to write
463 */
464/*--------------------------------------------------------------------------- */
465void
466xsh_pfits_set_qc_ron( cpl_propertylist * plist, double value)
467{
468 check_msg( cpl_propertylist_update_double( plist,XSH_QC_RON, value),
469 "Error writing keyword '%s'",XSH_QC_RON);
470 cpl_propertylist_set_comment( plist,XSH_QC_RON,XSH_QC_RON_C);
471
472cleanup:
473 return;
474}
475
476
477/*--------------------------------------------------------------------------- */
478/*
479 @brief
480 Write the QC RON ERR value
481 @param plist
482 The property list to write to
483 @param value
484 The value to write
485 */
486/*--------------------------------------------------------------------------- */
487void
488xsh_pfits_set_qc_ron_err( cpl_propertylist * plist, double value)
489{
490 check_msg( cpl_propertylist_update_double( plist,XSH_QC_RON_ERR, value),
491 "Error writing keyword '%s'",XSH_QC_RON_ERR);
492 cpl_propertylist_set_comment( plist,XSH_QC_RON_ERR,XSH_QC_RON_ERR_C);
493
494cleanup:
495 return;
496}
497
498/*--------------------------------------------------------------------------- */
499/*
500 @brief
501 Write the QC RON value
502 @param plist
503 The property list to write to
504 @param value
505 The value to write
506 */
507/*--------------------------------------------------------------------------- */
508void
509xsh_pfits_set_qc_ron1( cpl_propertylist * plist, double value)
510{
511 check_msg( cpl_propertylist_update_double( plist,XSH_QC_RON_REG1, value),
512 "Error writing keyword '%s'",XSH_QC_RON_REG1);
513 cpl_propertylist_set_comment( plist,XSH_QC_RON_REG1,XSH_QC_RON_REG1_C);
514
515cleanup:
516 return;
517}
518
519
520/*--------------------------------------------------------------------------- */
521/*
522 @brief
523 Write the QC RON value
524 @param plist
525 The property list to write to
526 @param value
527 The value to write
528 */
529/*--------------------------------------------------------------------------- */
530void
531xsh_pfits_set_qc_ron2( cpl_propertylist * plist, double value)
532{
533 check_msg( cpl_propertylist_update_double( plist,XSH_QC_RON_REG2, value),
534 "Error writing keyword '%s'",XSH_QC_RON_REG2);
535 cpl_propertylist_set_comment( plist,XSH_QC_RON_REG2,XSH_QC_RON_REG2_C);
536
537cleanup:
538 return;
539}
540
541
542
543/*--------------------------------------------------------------------------- */
544/*
545 @brief
546 Write the QC RON value
547 @param plist
548 The property list to write to
549 @param value
550 The value to write
551 */
552/*--------------------------------------------------------------------------- */
553void
554xsh_pfits_set_qc_ron1_err( cpl_propertylist * plist, double value)
555{
556 check_msg( cpl_propertylist_update_double( plist,XSH_QC_RON_REG1_ERR, value),
557 "Error writing keyword '%s'",XSH_QC_RON_REG1_ERR);
558 cpl_propertylist_set_comment( plist,XSH_QC_RON_REG1_ERR,XSH_QC_RON_REG1_ERR_C);
559
560cleanup:
561 return;
562}
563
564
565/*--------------------------------------------------------------------------- */
566/*
567 @brief
568 Write the QC RON ERR value
569 @param plist
570 The property list to write to
571 @param value
572 The value to write
573 */
574/*--------------------------------------------------------------------------- */
575void
576xsh_pfits_set_qc_ron2_err( cpl_propertylist * plist, double value)
577{
578 check_msg( cpl_propertylist_update_double( plist,XSH_QC_RON_REG2_ERR, value),
579 "Error writing keyword '%s'",XSH_QC_RON_REG2_ERR);
580 cpl_propertylist_set_comment( plist,XSH_QC_RON_REG2_ERR,XSH_QC_RON_REG2_ERR_C);
581
582cleanup:
583 return;
584}
585
586
587void xsh_pfits_set_qc_nlinecat(cpl_propertylist * plist, double value)
588{
589check_msg (cpl_propertylist_update_double (plist, XSH_QC_NLINE_CAT, value),
590 "Error writing keyword '%s'", XSH_QC_NLINE_CAT);
591cpl_propertylist_set_comment (plist, XSH_QC_NLINE_CAT,XSH_QC_NLINE_CAT_C);
592cleanup:
593 return;
594}
595
596
597void xsh_pfits_set_qc_nlinecat_clean(cpl_propertylist * plist, double value)
598{
599check_msg (cpl_propertylist_update_double (plist, XSH_QC_NLINE_CAT_CLEAN, value),
600 "Error writing keyword '%s'", XSH_QC_NLINE_CAT_CLEAN);
601cpl_propertylist_set_comment (plist, XSH_QC_NLINE_CAT_CLEAN,XSH_QC_NLINE_CAT_CLEAN_C);
602cleanup:
603 return;
604}
605
606
607void xsh_pfits_set_qc_nlinefound_fib4(cpl_propertylist * plist, double value)
608{
609check_msg (cpl_propertylist_update_double (plist, XSH_QC_NLINE4_FOUND, value),
610 "Error writing keyword '%s'", XSH_QC_NLINE4_FOUND);
611cpl_propertylist_set_comment (plist, XSH_QC_NLINE4_FOUND,XSH_QC_NLINE4_FOUND_C);
612cleanup:
613 return;
614}
615
616void xsh_pfits_set_qc_nlinefound_clean_fib4(cpl_propertylist * plist, double value)
617{
618check_msg (cpl_propertylist_update_double (plist, XSH_QC_NLINE4_FOUND_CLEAN, value),
619 "Error writing keyword '%s'", XSH_QC_NLINE4_FOUND_CLEAN);
620cpl_propertylist_set_comment (plist, XSH_QC_NLINE4_FOUND_CLEAN,XSH_QC_NLINE4_FOUND_CLEAN_C);
621cleanup:
622 return;
623}
624
625
626void xsh_pfits_set_qc_nlinefound(cpl_propertylist * plist, double value)
627{
628check_msg (cpl_propertylist_update_double (plist, XSH_QC_NLINE_FOUND, value),
629 "Error writing keyword '%s'", XSH_QC_NLINE_FOUND);
630cpl_propertylist_set_comment (plist, XSH_QC_NLINE_FOUND,XSH_QC_NLINE_FOUND_C);
631cleanup:
632 return;
633}
634
635void xsh_pfits_set_qc_nlinefound_clean(cpl_propertylist * plist, double value)
636{
637check_msg (cpl_propertylist_update_double (plist, XSH_QC_NLINE_FOUND_CLEAN, value),
638 "Error writing keyword '%s'", XSH_QC_NLINE_FOUND_CLEAN);
639cpl_propertylist_set_comment (plist, XSH_QC_NLINE_FOUND_CLEAN,XSH_QC_NLINE_FOUND_CLEAN_C);
640cleanup:
641 return;
642}
643
649/*--------------------------------------------------------------------------- */
650void
651xsh_pfits_set_qc_mbiasavg (cpl_propertylist * plist, double value)
652{
653 check_msg (cpl_propertylist_update_double (plist,XSH_QC_MASTER_BIAS_MEAN, value),
654 "Error writing keyword '%s'",XSH_QC_MASTER_BIAS_MEAN);
655 cpl_propertylist_set_comment(plist,XSH_QC_MASTER_BIAS_MEAN,XSH_QC_MASTER_BIAS_MEAN_C);
656
657cleanup:
658 return;
659}
660
666/*--------------------------------------------------------------------------- */
667void
668xsh_pfits_set_qc_mbiasmed (cpl_propertylist * plist, double value)
669{
670 check_msg (cpl_propertylist_update_double (plist,XSH_QC_MASTER_BIAS_MEDIAN, value),
671 "Error writing keyword '%s'",XSH_QC_MASTER_BIAS_MEDIAN);
672 cpl_propertylist_set_comment(plist,XSH_QC_MASTER_BIAS_MEDIAN,XSH_QC_MASTER_BIAS_MEDIAN_C);
673
674cleanup:
675 return;
676}
677
678
684/*--------------------------------------------------------------------------- */
685void
686xsh_pfits_set_qc_mbiasrms (cpl_propertylist * plist, double value)
687{
688 check_msg (cpl_propertylist_update_double (plist,XSH_QC_MASTER_BIAS_RMS, value),
689 "Error writing keyword '%s'",XSH_QC_MASTER_BIAS_RMS);
690 cpl_propertylist_set_comment(plist,XSH_QC_MASTER_BIAS_RMS,XSH_QC_MASTER_BIAS_RMS_C);
691
692cleanup:
693 return;
694}
695
701/*--------------------------------------------------------------------------- */
702void
703xsh_pfits_set_qc_nhpix (cpl_propertylist * plist, int value)
704{
705 check_msg (cpl_propertylist_update_int (plist, XSH_QC_NHPIX, value),
706 "Error writing keyword '%s'", XSH_QC_NHPIX);
707
708cleanup:
709 return;
710}
711
712
718/*--------------------------------------------------------------------------- */
719void
720xsh_pfits_set_qc_noisepix (cpl_propertylist * plist, int value)
721{
722 check_msg (cpl_propertylist_update_int (plist, XSH_QC_BP_MAP_PICKUP_NOISE_PIX, value),
723 "Error writing keyword '%s'", XSH_QC_BP_MAP_PICKUP_NOISE_PIX);
724
725cleanup:
726 return;
727}
728
729
735/*-------------------------------------------------------------------------- */
736void
737xsh_pfits_set_qc_mbiasslope (cpl_propertylist * plist, double value)
738{
739 check_msg (cpl_propertylist_update_double (plist, XSH_QC_MBIASSLOPE, value),
740 "Error writing keyword '%s'", XSH_QC_MBIASSLOPE);
741
742cleanup:
743 return;
744}
745
746
752/*-------------------------------------------------------------------------- */
753void
754xsh_pfits_set_qc_ncrh (cpl_propertylist * plist, int value)
755{
756 check_msg (cpl_propertylist_update_int (plist, XSH_QC_CRH_NUMBER, value),
757 "Error writing keyword '%s'", XSH_QC_CRH_NUMBER);
758 cpl_propertylist_set_comment(plist, XSH_QC_CRH_NUMBER,XSH_QC_CRH_NUMBER_C);
759
760cleanup:
761 return;
762}
763
769/*-------------------------------------------------------------------------- */
770void
771xsh_pfits_set_qc_ncrh_mean (cpl_propertylist * plist, const double value)
772{
773 check_msg (cpl_propertylist_update_double (plist, XSH_QC_CRH_NUMBER_MEAN, value),
774 "Error writing keyword '%s'", XSH_QC_CRH_NUMBER_MEAN);
775 cpl_propertylist_set_comment(plist, XSH_QC_CRH_NUMBER_MEAN,XSH_QC_CRH_NUMBER_MEAN_C);
776
777cleanup:
778 return;
779}
780
786/*-------------------------------------------------------------------------- */
787void
788xsh_pfits_set_qc_ncrh_tot (cpl_propertylist * plist, const int value)
789{
790 check_msg (cpl_propertylist_update_int (plist, XSH_QC_CRH_NUMBER_TOT, value),
791 "Error writing keyword '%s'", XSH_QC_CRH_NUMBER_TOT);
792 cpl_propertylist_set_comment(plist, XSH_QC_CRH_NUMBER_TOT,XSH_QC_CRH_NUMBER_TOT_C);
793
794cleanup:
795 return;
796}
797
803/*-------------------------------------------------------------------------- */
804void
805xsh_pfits_set_qc_crrate (cpl_propertylist * plist, double value)
806{
807 check_msg (cpl_propertylist_update_float (plist, XSH_QC_CRH_RATE, value),
808 "Error writing keyword '%s'", XSH_QC_CRH_RATE);
809 cpl_propertylist_set_comment(plist,XSH_QC_CRH_RATE,XSH_QC_CRH_RATE_C);
810
811cleanup:
812 return;
813}
814
820/*-------------------------------------------------------------------------- */
821void
822xsh_pfits_set_qc_mdarkmed (cpl_propertylist * plist, double value)
823{
824 check_msg (cpl_propertylist_update_double (plist, XSH_QC_MASTER_DARK_MEDIAN, value),
825 "Error writing keyword '%s'", XSH_QC_MASTER_DARK_MEDIAN);
826 cpl_propertylist_set_comment(plist, XSH_QC_MASTER_DARK_MEDIAN,XSH_QC_MASTER_DARK_MEDIAN_C);
827
828cleanup:
829 return;
830}
831
837/*-------------------------------------------------------------------------- */
838double
839xsh_pfits_get_qc_mdarkmed (cpl_propertylist * plist)
840{
841
842 double returnvalue = 0.0;
843
845 CPL_TYPE_DOUBLE, &returnvalue),
846 "Error reading keyword '%s'", XSH_QC_MASTER_DARK_MEDIAN);
847
848cleanup:
849 return returnvalue;
850}
851
857/*-------------------------------------------------------------------------- */
858void
859xsh_pfits_set_qc_mdarkrms (cpl_propertylist * plist, double value)
860{
861 check_msg (cpl_propertylist_update_double (plist, XSH_QC_MASTER_DARK_RMS, value),
862 "Error writing keyword '%s'", XSH_QC_MASTER_DARK_RMS);
863 cpl_propertylist_set_comment(plist, XSH_QC_MASTER_DARK_RMS,XSH_QC_MASTER_DARK_RMS_C);
864
865cleanup:
866 return;
867}
868
874/*-------------------------------------------------------------------------- */
875void
876xsh_pfits_set_qc_mdarkslope (cpl_propertylist * plist, double value)
877{
878 check_msg (cpl_propertylist_update_double (plist, XSH_QC_MDARKSLOPE, value),
879 "Error writing keyword '%s'", XSH_QC_MDARKSLOPE);
880
881cleanup:
882 return;
883}
884
885
886/*--------------------------------------------------------------------------- */
892/*--------------------------------------------------------------------------- */
893void
894xsh_pfits_set_qc_bp_map_ntotal(cpl_propertylist * plist, int value)
895{
896 check_msg (cpl_propertylist_update_int
897 (plist, XSH_QC_BP_MAP_NTOTAL, value),
898 "Error writing keyword '%s'", XSH_QC_BP_MAP_NTOTAL);
899 cpl_propertylist_set_comment(plist, XSH_QC_BP_MAP_NTOTAL, XSH_QC_BP_MAP_NTOTAL_C);
900
901cleanup:
902 return;
903}
904
905/*--------------------------------------------------------------------------- */
911/*--------------------------------------------------------------------------- */
912void
913xsh_pfits_set_qc_contamination(cpl_propertylist * plist, double value)
914{
915 check_msg (cpl_propertylist_update_double
916 (plist, XSH_QC_CONTAM, value),
917 "Error writing keyword '%s'", XSH_QC_CONTAM);
918 cpl_propertylist_set_comment(plist, XSH_QC_CONTAM, XSH_QC_CONTAM_C);
919
920cleanup:
921 return;
922}
923
924
925
931/*-------------------------------------------------------------------------- */
932void
933xsh_pfits_set_qc_mdarkavg (cpl_propertylist * plist, double value)
934{
935 check_msg(cpl_propertylist_update_double(plist,XSH_QC_MASTER_DARK_MEAN,value),
936 "Error writing keyword '%s'", XSH_QC_MASTER_DARK_MEAN);
937 cpl_propertylist_set_comment(plist, XSH_QC_MASTER_DARK_MEAN,XSH_QC_MASTER_DARK_MEAN_C);
938
939cleanup:
940 return;
941}
942
948/*-------------------------------------------------------------------------- */
949void
950xsh_pfits_set_qc_darkmed_ave (cpl_propertylist * plist, double value)
951{
952 check_msg (cpl_propertylist_update_double (plist, XSH_QC_DARKMED_AVE, value),
953 "Error writing keyword '%s'", XSH_QC_DARKMED_AVE);
954
955cleanup:
956 return;
957}
958
964/*-------------------------------------------------------------------------- */
965void
966xsh_pfits_set_qc_darkmed_stdev (cpl_propertylist * plist, double value)
967{
968 check_msg (cpl_propertylist_update_double
969 (plist, XSH_QC_DARKMED_STDEV, value),
970 "Error writing keyword '%s'", XSH_QC_DARKMED_STDEV);
971
972cleanup:
973 return;
974}
975
981/*-------------------------------------------------------------------------- */
982void xsh_pfits_set_qc_ord_orderpos_residmin( cpl_propertylist * plist,
983 double value )
984{
985 check_msg(cpl_propertylist_update_double(plist,QC_ORD_ORDERPOS_RESIDMIN,
986 value),
987 "error writing keyword '%s'", QC_ORD_ORDERPOS_RESIDMIN);
988 cleanup:
989 return ;
990}
991
992void xsh_pfits_set_qc_ord_orderpos_residmax( cpl_propertylist * plist,
993 double value )
994{
995 check_msg(cpl_propertylist_update_double(plist,QC_ORD_ORDERPOS_RESIDMAX,
996 value),
997 "error writing keyword '%s'", QC_ORD_ORDERPOS_RESIDMAX);
998 cleanup:
999 return ;
1000}
1001
1002void xsh_pfits_set_qc_ord_orderpos_residavg( cpl_propertylist * plist,
1003 double value )
1004{
1005 check_msg(cpl_propertylist_update_double(plist,QC_ORD_ORDERPOS_RESIDAVG,
1006 value),
1007 "error writing keyword '%s'", QC_ORD_ORDERPOS_RESIDAVG);
1008 cleanup:
1009 return ;
1010}
1011
1012void xsh_pfits_set_qc_ord_orderpos_residrms( cpl_propertylist * plist,
1013 double value )
1014{
1015 check_msg(cpl_propertylist_update_double(plist,QC_ORD_ORDERPOS_RESIDRMS,
1016 value),
1017 "error writing keyword '%s'", QC_ORD_ORDERPOS_RESIDRMS );
1018 cleanup:
1019 return ;
1020}
1021
1022
1023void xsh_pfits_set_qc_eff_fclip( cpl_propertylist * plist,
1024 double value )
1025{
1026 check_msg(cpl_propertylist_update_double(plist,XSH_QC_EFF_FCLIP,value),
1027 "error writing keyword '%s'", XSH_QC_EFF_FCLIP);
1028 cleanup:
1029 return ;
1030}
1031
1032void xsh_pfits_set_qc_eff_nclip( cpl_propertylist * plist,
1033 int value )
1034{
1035 check_msg(cpl_propertylist_update_int(plist,XSH_QC_EFF_NCLIP,value),
1036 "error writing keyword '%s'", XSH_QC_EFF_NCLIP);
1037 cleanup:
1038 return ;
1039}
1040
1041void xsh_pfits_set_qc_ord_orderpos_max_pred( cpl_propertylist * plist,
1042 int value )
1043{
1044 check_msg(cpl_propertylist_update_int(plist,QC_ORD_ORDERPOS_MAX_PRED,value),
1045 "error writing keyword '%s'", QC_ORD_ORDERPOS_MAX_PRED);
1046 cleanup:
1047 return ;
1048}
1049
1050void xsh_pfits_set_qc_ord_orderpos_min_pred( cpl_propertylist * plist,
1051 int value )
1052{
1053 check_msg(cpl_propertylist_update_int(plist,QC_ORD_ORDERPOS_MIN_PRED,value),
1054 "error writing keyword '%s'", QC_ORD_ORDERPOS_MIN_PRED);
1055 cleanup:
1056 return ;
1057}
1058
1059void xsh_pfits_set_qc_ord_orderpos_ndet( cpl_propertylist * plist,
1060 int value )
1061{
1062 check_msg(cpl_propertylist_update_int(plist,QC_ORD_ORDERPOS_NDET,value),
1063 "error writing keyword '%s'", QC_ORD_ORDERPOS_NDET);
1064 cleanup:
1065 return ;
1066}
1067
1068void xsh_pfits_set_qc_ord_orderpos_nposall( cpl_propertylist * plist,
1069 int value )
1070{
1071 check_msg(cpl_propertylist_update_int(plist,QC_ORD_ORDERPOS_NPOSALL,value),
1072 "error writing keyword '%s'", QC_ORD_ORDERPOS_NPOSALL);
1073 cleanup:
1074 return ;
1075}
1076
1077void xsh_pfits_set_qc_ord_orderpos_npossel( cpl_propertylist * plist,
1078 int value )
1079{
1080 check_msg(cpl_propertylist_update_int(plist,QC_ORD_ORDERPOS_NPOSSEL,value),
1081 "error writing keyword '%s'", QC_ORD_ORDERPOS_NPOSSEL);
1082 cleanup:
1083 return ;
1084}
1085
1086void xsh_pfits_set_qc_ord_orderpos_npred( cpl_propertylist * plist,
1087 int value )
1088{
1089 check_msg(cpl_propertylist_update_int(plist,QC_ORD_ORDERPOS_NPRED,value),
1090 "error writing keyword '%s'", QC_ORD_ORDERPOS_NPRED);
1091 cleanup:
1092 return ;
1093}
1094
1095void xsh_pfits_set_qc_slit_width( cpl_propertylist * source_list, cpl_propertylist* set_list, xsh_instrument* instrument)
1096{
1097
1098 const char* slit_width_kw = "NONE";
1100 slit_width_kw = "ESO INS OPTI3 NAME";
1102 slit_width_kw = "ESO INS OPTI4 NAME";
1104 slit_width_kw = "ESO INS OPTI5 NAME";
1105 }
1106 if(source_list != NULL && cpl_propertylist_has(source_list,slit_width_kw)){
1107 cpl_property *prop_hval = cpl_propertylist_get_property(source_list, slit_width_kw);
1108 if(prop_hval){
1109 const char* hval = cpl_property_get_string(prop_hval);
1110 if(hval){
1111 cpl_propertylist_update_string(set_list,"ESO QC SLIT WIDTH",strtok(hval,"x"));
1112 }
1113 }
1114 }
1115 cleanup:
1116 return ;
1117}
1118
1134void xsh_pfits_set_qc_multi( cpl_propertylist *plist, void *value,
1135 const char * kw, xsh_instrument * instrument,
1136 int idx )
1137{
1138 qc_description *pqc = NULL ;
1139 char real_kw[32] ;
1140
1141 XSH_ASSURE_NOT_NULL( plist ) ;
1142 XSH_ASSURE_NOT_NULL( value ) ;
1143 XSH_ASSURE_NOT_NULL( kw ) ;
1146
1147 pqc = xsh_get_qc_desc_by_kw( kw ) ;
1148 XSH_ASSURE_NOT_NULL( pqc ) ;
1149 /* Check that this kw is to be set by the recipe */
1150 if ( xsh_qc_in_recipe( pqc, instrument ) != 0 ) {
1151 xsh_msg( "QC Parameter '%s' not in recipe '%s'",
1152 kw, instrument->recipe_id ) ;
1153 return ;
1154 }
1155 /* Compute real kw */
1156
1157 if ( strchr( pqc->kw_name, 'i' ) != NULL ) {
1158 /* Special multiple kw with 0, 1, 2, .. */
1159 char kformat[256];
1160 const char *pk;
1161 char* pm;
1162 xsh_msg_dbg_high( " ++++ Multiple KW '%s'", pqc->kw_name ) ;
1163
1164 for( pk = pqc->kw_name, pm = kformat ; *pk != '\0' ; pk++ )
1165 if ( *pk == 'i' ) {
1166 strcpy( pm, "%d" ) ;
1167 pm += 2 ;
1168 }
1169 else *pm++ = *pk ;
1170 *pm = '\0' ;
1171
1172 sprintf( real_kw, kformat, idx ) ;
1173 }
1174 /* Search qc type */
1175 switch ( pqc->kw_type ) {
1176 case CPL_TYPE_INT:
1177 check_msg(cpl_propertylist_update_int( plist, real_kw,
1178 *(int *)value),
1179 "error writing keyword '%s'", kw ) ;
1180 break ;
1181 case CPL_TYPE_FLOAT:
1182 check_msg(cpl_propertylist_update_float( plist, real_kw,
1183 *(float *)value),
1184 "error writing keyword '%s'", kw ) ;
1185 break ;
1186 case CPL_TYPE_DOUBLE:
1187 check_msg(cpl_propertylist_update_double( plist, real_kw,
1188 *(double *)value),
1189 "error writing keyword '%s'", kw ) ;
1190 break ;
1191 case CPL_TYPE_STRING:
1192 check_msg(cpl_propertylist_update_string( plist, real_kw, (char *)value),
1193 "error writing keyword '%s'", kw ) ;
1194 break ;
1195 default:
1196 break ;
1197 }
1198 cleanup:
1199 return ;
1200}
1201
1213void xsh_pfits_set_qc( cpl_propertylist *plist, void *value,
1214 const char *kw, xsh_instrument * instrument )
1215{
1216 qc_description *pqc = NULL ;
1217
1218 XSH_ASSURE_NOT_NULL( plist ) ;
1219 XSH_ASSURE_NOT_NULL( value ) ;
1220 XSH_ASSURE_NOT_NULL( kw ) ;
1223
1224 pqc = xsh_get_qc_desc_by_kw( kw);
1225 XSH_ASSURE_NOT_NULL( pqc ) ;
1226 /* Check that this kw is to be set by the recipe */
1227 if ( xsh_qc_in_recipe( pqc, instrument ) != 0 ) {
1228 xsh_msg( "QC Parameter '%s' not in recipe '%s'",
1229 kw, instrument->recipe_id ) ;
1230 return ;
1231 }
1232
1233 /* Search qc type */
1234 switch ( pqc->kw_type ) {
1235 case CPL_TYPE_INT:
1236 check_msg(cpl_propertylist_update_int( plist, pqc->kw_name,
1237 *(int *)value),
1238 "error writing keyword '%s'", kw ) ;
1239 break ;
1240 case CPL_TYPE_FLOAT:
1241 check_msg(cpl_propertylist_update_float( plist, pqc->kw_name,
1242 *(float *)value),
1243 "error writing keyword '%s'", kw ) ;
1244 break ;
1245 case CPL_TYPE_DOUBLE:
1246 check_msg(cpl_propertylist_update_double( plist, pqc->kw_name,
1247 *(double *)value),
1248 "error writing keyword '%s'", kw ) ;
1249 break ;
1250 case CPL_TYPE_STRING:
1251 check_msg(cpl_propertylist_update_string( plist, pqc->kw_name,
1252 (char *)value),
1253 "error writing keyword '%s'", kw ) ;
1254 break ;
1255 default:
1256 break ;
1257 }
1258 cleanup:
1259 return ;
1260}
1261
static xsh_instrument * instrument
#define check_msg(COMMAND,...)
Definition: xsh_error.h:62
#define XSH_ASSURE_NOT_NULL(pointer)
Definition: xsh_error.h:99
XSH_ARM xsh_instrument_get_arm(xsh_instrument *i)
Get an arm on instrument structure.
#define xsh_msg(...)
Print a message on info level.
Definition: xsh_msg.h:121
#define xsh_msg_dbg_high(...)
Definition: xsh_msg.h:40
void xsh_pfits_set_qc_mbiasrms(cpl_propertylist *plist, double value)
Write the QC.MBIASRMS value.
Definition: xsh_pfits_qc.c:686
void xsh_pfits_set_qc_mdarkmed(cpl_propertylist *plist, double value)
Write the QC.MDARKMED value.
Definition: xsh_pfits_qc.c:822
double xsh_pfits_get_qc_structy(const cpl_propertylist *plist)
Definition: xsh_pfits_qc.c:244
int xsh_pfits_get_qc_ncrh(const cpl_propertylist *plist)
Find out the QC NCRH value.
Definition: xsh_pfits_qc.c:74
void xsh_pfits_set_qc_ord_orderpos_residavg(cpl_propertylist *plist, double value)
void xsh_pfits_set_qc_ncrh_mean(cpl_propertylist *plist, const double value)
Write the QC.NCRH.AVG value.
Definition: xsh_pfits_qc.c:771
void xsh_pfits_set_qc_mbiasmed(cpl_propertylist *plist, double value)
Write the QC.MBIASMED value.
Definition: xsh_pfits_qc.c:668
void xsh_pfits_set_qc_ord_orderpos_residmax(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:992
void xsh_pfits_set_qc_ord_orderpos_residrms(cpl_propertylist *plist, double value)
double xsh_pfits_get_qc_mbiasavg(const cpl_propertylist *plist)
find out the QC.MBIASAVG value
Definition: xsh_pfits_qc.c:114
void xsh_pfits_set_qc_darkmed_ave(cpl_propertylist *plist, double value)
Write the QC.DARKMED_AVE value.
Definition: xsh_pfits_qc.c:950
void xsh_pfits_set_qc_nlinecat(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:587
void xsh_pfits_set_qc_ord_orderpos_max_pred(cpl_propertylist *plist, int value)
void xsh_pfits_set_qc_ord_orderpos_nposall(cpl_propertylist *plist, int value)
double xsh_pfits_get_qc_ncrh_mean(const cpl_propertylist *plist)
Find out the QC NCRH value.
Definition: xsh_pfits_qc.c:93
double xsh_pfits_get_qc_mbiasrms(const cpl_propertylist *plist)
find out the QC.MBIASRMS value
Definition: xsh_pfits_qc.c:154
void xsh_pfits_set_qc_ord_orderpos_ndet(cpl_propertylist *plist, int value)
void xsh_pfits_set_qc_norm_fpn(cpl_propertylist *plist, double value)
Write the QC.NORMFPN value.
Definition: xsh_pfits_qc.c:357
int xsh_pfits_get_qc_nhpix(const cpl_propertylist *plist)
find out the QC.NHPIX value
Definition: xsh_pfits_qc.c:174
void xsh_pfits_set_qc_ron_master(cpl_propertylist *plist, double value)
Write the QC.RON.MASTER value.
Definition: xsh_pfits_qc.c:287
void xsh_pfits_set_qc_nlinecat_clean(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:597
void xsh_pfits_set_qc_ord_orderpos_npred(cpl_propertylist *plist, int value)
void xsh_pfits_set_qc_multi(cpl_propertylist *plist, void *value, const char *kw, xsh_instrument *instrument, int idx)
double xsh_pfits_get_qc_ron(const cpl_propertylist *plist)
Definition: xsh_pfits_qc.c:267
void xsh_pfits_set_qc_darkmed_stdev(cpl_propertylist *plist, double value)
Write the QC.MDARKAVG value.
Definition: xsh_pfits_qc.c:966
void xsh_pfits_set_qc_ron_err(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:488
void xsh_pfits_set_qc_ncrh(cpl_propertylist *plist, int value)
Write the QC.NCRH value.
Definition: xsh_pfits_qc.c:754
double xsh_pfits_get_qc_mbiasslope(const cpl_propertylist *plist)
find out the QC.MBIASSLOPE value
Definition: xsh_pfits_qc.c:197
void xsh_pfits_set_qc_nlinefound_clean(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:635
void xsh_pfits_set_qc_nlinefound_fib4(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:607
void xsh_pfits_set_qc_mbiasavg(cpl_propertylist *plist, double value)
Write the QC.MBIASAVG value.
Definition: xsh_pfits_qc.c:651
void xsh_pfits_set_qc_ron1(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:509
void xsh_pfits_set_qc_crrate(cpl_propertylist *plist, double value)
Write the QC.CRRATE value.
Definition: xsh_pfits_qc.c:805
void xsh_pfits_set_qc_ron1_err(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:554
void xsh_pfits_set_qc_ncrh_tot(cpl_propertylist *plist, const int value)
Write the QC.NCRH.TOT value.
Definition: xsh_pfits_qc.c:788
void xsh_pfits_set_qc_nhpix(cpl_propertylist *plist, int value)
Write the QC.NHPIX value.
Definition: xsh_pfits_qc.c:703
void xsh_pfits_set_qc_contamination(cpl_propertylist *plist, double value)
Write the contamination value.
Definition: xsh_pfits_qc.c:913
void xsh_pfits_set_qc_nlinefound(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:626
void xsh_pfits_set_qc_ron2_err(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:576
double xsh_pfits_get_qc_mbiasmed(const cpl_propertylist *plist)
find out the QC.MBIASMED value
Definition: xsh_pfits_qc.c:134
void xsh_pfits_set_qc_ord_orderpos_min_pred(cpl_propertylist *plist, int value)
void xsh_pfits_set_qc_noisepix(cpl_propertylist *plist, int value)
Write the QC.NHPIX value.
Definition: xsh_pfits_qc.c:720
void xsh_pfits_set_qc_ord_orderpos_residmin(cpl_propertylist *plist, double value)
Write the ? value.
Definition: xsh_pfits_qc.c:982
void xsh_pfits_set_qc_eff_fclip(cpl_propertylist *plist, double value)
void xsh_pfits_set_qc_reg1_structy(cpl_propertylist *plist, double value)
Write the QC.STRUCTY value.
Definition: xsh_pfits_qc.c:409
double xsh_pfits_get_qc_mdarkmed(cpl_propertylist *plist)
Read the QC.MDARKMED value.
Definition: xsh_pfits_qc.c:839
void xsh_pfits_set_qc_bp_map_ntotal(cpl_propertylist *plist, int value)
Write the contamination value.
Definition: xsh_pfits_qc.c:894
double xsh_pfits_get_qc_structx(const cpl_propertylist *plist)
Definition: xsh_pfits_qc.c:222
void xsh_pfits_set_qc_fpn_err(cpl_propertylist *plist, double value)
Write the QC.FPN value.
Definition: xsh_pfits_qc.c:339
void xsh_pfits_set_qc_mdarkavg(cpl_propertylist *plist, double value)
Write the QC.MDARKAVG value.
Definition: xsh_pfits_qc.c:933
void xsh_pfits_set_qc_fpn_master(cpl_propertylist *plist, double value)
Write the QC.FPN.MASTER value.
Definition: xsh_pfits_qc.c:304
void xsh_pfits_set_qc_ron(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:466
void xsh_pfits_set_qc_fpn(cpl_propertylist *plist, double value)
Write the QC.FPN value.
Definition: xsh_pfits_qc.c:321
void xsh_pfits_set_qc_nlinefound_clean_fib4(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:616
void xsh_pfits_set_qc_ord_orderpos_npossel(cpl_propertylist *plist, int value)
void xsh_pfits_set_qc_mdarkslope(cpl_propertylist *plist, double value)
Write the QC.MDARKSLOPE value.
Definition: xsh_pfits_qc.c:876
void xsh_pfits_set_qc_mdarkrms(cpl_propertylist *plist, double value)
Write the QC.MDARKRMS value.
Definition: xsh_pfits_qc.c:859
void xsh_pfits_set_qc_mbiasslope(cpl_propertylist *plist, double value)
Write the QC.MBIASSLOPE value.
Definition: xsh_pfits_qc.c:737
void xsh_pfits_set_qc_norm_fpn_err(cpl_propertylist *plist, double value)
Write the QC.NORMFPN.ERR value.
Definition: xsh_pfits_qc.c:374
void xsh_pfits_set_qc_ron2(cpl_propertylist *plist, double value)
Definition: xsh_pfits_qc.c:531
void xsh_pfits_set_qc_reg2_structx(cpl_propertylist *plist, double value)
Write the QC.STRUCTX value.
Definition: xsh_pfits_qc.c:428
void xsh_pfits_set_qc_reg1_structx(cpl_propertylist *plist, double value)
Write the QC.STRUCTX value.
Definition: xsh_pfits_qc.c:392
void xsh_pfits_set_qc_slit_width(cpl_propertylist *source_list, cpl_propertylist *set_list, xsh_instrument *instrument)
void xsh_pfits_set_qc_eff_nclip(cpl_propertylist *plist, int value)
void xsh_pfits_set_qc_reg2_structy(cpl_propertylist *plist, double value)
Write the QC.STRUCTY value.
Definition: xsh_pfits_qc.c:445
void xsh_pfits_set_qc(cpl_propertylist *plist, void *value, const char *kw, xsh_instrument *instrument)
int xsh_qc_in_recipe(qc_description *pqc, xsh_instrument *instrument)
qc_description * xsh_get_qc_desc_by_kw(const char *kw)
cpl_error_code xsh_get_property_value(const cpl_propertylist *plist, const char *keyword, cpl_type keywordtype, void *result)
Read a property value from a property list.
Definition: xsh_utils.c:1600
const char * kw_name
const char * recipe_id
@ XSH_ARM_UVB
@ XSH_ARM_NIR
@ XSH_ARM_VIS
#define XSH_QC_EFF_NCLIP
Definition: xsh_pfits_qc.h:143
#define QC_ORD_ORDERPOS_NPOSSEL
Definition: xsh_pfits_qc.h:189
#define QC_ORD_ORDERPOS_RESIDMAX
Definition: xsh_pfits_qc.h:175
#define XSH_QC_EFF_FCLIP
Definition: xsh_pfits_qc.h:142
#define XSH_QC_MBIASSLOPE
Definition: xsh_pfits_qc.h:120
#define XSH_QC_MASTER_RON
Definition: xsh_pfits_qc.h:126
#define XSH_QC_DARKMED_STDEV
Definition: xsh_pfits_qc.h:172
#define QC_ORD_ORDERPOS_RESIDAVG
Definition: xsh_pfits_qc.h:176
#define QC_ORD_ORDERPOS_MAX_PRED
Definition: xsh_pfits_qc.h:185
#define XSH_QC_FPN
Definition: xsh_pfits_qc.h:145
#define XSH_QC_CONTAM
Definition: xsh_pfits_qc.h:152
#define XSH_QC_MDARKSLOPE
Definition: xsh_pfits_qc.h:151
#define XSH_QC_NHPIX
Definition: xsh_pfits_qc.h:122
#define QC_ORD_ORDERPOS_NPRED
Definition: xsh_pfits_qc.h:190
#define XSH_QC_DARKMED_AVE
Definition: xsh_pfits_qc.h:171
#define QC_ORD_ORDERPOS_RESIDMIN
Definition: xsh_pfits_qc.h:174
#define XSH_QC_MASTER_FPN
Definition: xsh_pfits_qc.h:137
#define XSH_QC_MASTER_FPN_C
Definition: xsh_pfits_qc.h:138
#define XSH_QC_FPN_ERR
Definition: xsh_pfits_qc.h:146
#define QC_ORD_ORDERPOS_NPOSALL
Definition: xsh_pfits_qc.h:188
#define QC_ORD_ORDERPOS_RESIDRMS
Definition: xsh_pfits_qc.h:177
#define XSH_QC_MASTER_RON_C
Definition: xsh_pfits_qc.h:127
#define XSH_QC_CONTAM_C
Definition: xsh_pfits_qc.h:153
#define QC_ORD_ORDERPOS_NDET
Definition: xsh_pfits_qc.h:187
#define XSH_QC_BP_MAP_PICKUP_NOISE_PIX
Definition: xsh_pfits_qc.h:164
#define QC_ORD_ORDERPOS_MIN_PRED
Definition: xsh_pfits_qc.h:186
#define XSH_QC_STRUCT_X_REG1
#define XSH_QC_MASTER_DARK_MEDIAN
#define XSH_QC_CRH_RATE
#define XSH_QC_STRUCT_Y_REG2
#define XSH_QC_BP_MAP_NTOTAL
#define XSH_QC_MASTER_DARK_MEAN
#define XSH_QC_FPN_ERR_C
#define XSH_QC_NLINE_CAT
#define XSH_QC_RON_REG1_ERR
#define XSH_QC_RON_REG2_ERR
#define XSH_QC_RON_REG2
#define XSH_QC_MASTER_BIAS_MEAN
#define XSH_QC_MASTER_DARK_RMS
#define XSH_QC_NLINE_CAT_CLEAN_C
#define XSH_QC_CRH_NUMBER_C
#define XSH_QC_NORM_FPN
#define XSH_QC_CRH_NUMBER_TOT_C
#define XSH_QC_RON_REG1_C
#define XSH_QC_RON_REG2_C
#define XSH_QC_RON_REG1
#define XSH_QC_STRUCT_X_REG2
#define XSH_QC_NLINE_FOUND
#define XSH_QC_CRH_NUMBER_TOT
#define XSH_QC_BP_MAP_NTOTAL_C
#define XSH_QC_MASTER_BIAS_RMS
#define XSH_QC_MASTER_BIAS_MEDIAN_C
#define XSH_QC_STRUCT_X_REG1_C
#define XSH_QC_STRUCT_X_REG2_C
#define XSH_QC_CRH_NUMBER_MEAN
#define XSH_QC_MASTER_DARK_MEAN_C
#define XSH_QC_MASTER_DARK_MEDIAN_C
#define XSH_QC_MASTER_BIAS_RMS_C
#define XSH_QC_FPN_C
#define XSH_QC_NLINE4_FOUND_C
#define XSH_QC_STRUCT_Y_REG2_C
#define XSH_QC_RON
#define XSH_QC_NLINE_FOUND_CLEAN
#define XSH_QC_RON_C
#define XSH_QC_RON_ERR
#define XSH_QC_CRH_NUMBER
#define XSH_QC_RON_REG2_ERR_C
#define XSH_QC_MASTER_BIAS_MEDIAN
#define XSH_QC_NORM_FPN_ERR
#define XSH_QC_MASTER_DARK_RMS_C
#define XSH_QC_NLINE_FOUND_C
#define XSH_QC_NLINE_FOUND_CLEAN_C
#define XSH_QC_STRUCT_Y_REG1
#define XSH_QC_CRH_RATE_C
#define XSH_QC_MASTER_BIAS_MEAN_C
#define XSH_QC_CRH_NUMBER_MEAN_C
#define XSH_QC_RON_ERR_C
#define XSH_QC_STRUCT_Y_REG1_C
#define XSH_QC_NLINE4_FOUND_CLEAN
#define XSH_QC_NLINE4_FOUND
#define XSH_QC_NLINE_CAT_C
#define XSH_QC_RON_REG1_ERR_C
#define XSH_QC_NORM_FPN_C
#define XSH_QC_NLINE4_FOUND_CLEAN_C
#define XSH_QC_NORM_FPN_ERR_C
#define XSH_QC_NLINE_CAT_CLEAN