/* CALNICA.H: Main include file for CALNICA. Defines things specific ** to CALNICA. ** ** Revision history: ** H.Bushouse Sept. 1995 Build 1 ** H.Bushouse Oct. 1996 Upgraded for Build 2 (Version 2.0) ** H.Bushouse 27-Jan-1997 Changed length of NicInfo.sampseq from 8 to ** SZ_STRKWVAL+1 chars. Changed NlinData struct ** elements coeff,error,nodes to type FloatHdrData ** and dqual to ShortHdrData (Version 2.1) ** H.Bushouse 28-Jul-1997 Changed NicInfo.bunit and tdftrans from scalar ** to vector of length MAX_MAREADS (Version 3.0) ** H.Bushouse 18-Aug-1997 Added zsci and zerr elements to NlinData struct ** (Version 3.0) ** H.Bushouse 11-Sep-1997 Added crthresh and zsthresh to NicInfo ** structure (Version 3.0) ** H.Bushouse 13-Feb-1998 Added sampzero to NicInfo structure; added ** ZSIG CalStep structure (Version 3.2) ** H.Bushouse 01-Oct-1998 Added samp_rej to NicInfo structure (Vsn 3.3) ** H.Bushouse 15-Oct-1998 Added barthresh and BARS CalStep to NicInfo ** structure (Version 3.3) */ # define CALNICA_VERSION "3.3" /* Dark image interpolation type */ enum DarkTypes_ {MATCH, INTERP, EXTRAP}; typedef enum DarkTypes_ DarkTypes; /* Data units */ enum DataUnits_ {COUNTS, COUNTRATE}; typedef enum DataUnits_ DataUnits; /* Observation and calibration information */ typedef struct { char filename[SZ_NAME+1]; /* input file name */ int group; /* current group */ int ngroups; /* total number of groups */ Bool NullData[MAX_MAREADS]; /* null data flag */ Bool RefDataLoaded; /* is static ref data loaded? */ DarkTypes DarkType; /* dark interpolation type */ int darkframe1; /* 1st dark ref frame used */ int darkframe2; /* 2nd dark ref frame used */ char instr[SZ_STRKWVAL+1]; /* instrument name */ int camera; /* camera number */ ObsModes obsmode; /* observation mode */ char filter[SZ_STRKWVAL+1]; /* filter name */ int nread; /* number of reads (MIFS) */ int nsamp; /* number of samples (MACCUM) */ char sampseq[SZ_STRKWVAL+1]; /* sample sequence (MACCUM) */ char readout[SZ_STRKWVAL+1]; /* readout speed */ float adcgain; /* ADC gain setting */ double exptime[MAX_MAREADS]; /* group exposure times */ double sampzero; /* sample zero exptime (MACCUM) */ DataUnits bunit[MAX_MAREADS]; /* BUNIT value */ int tdftrans[MAX_MAREADS]; /* number of TDF transitions */ float crthresh; /* CR rejection threshold */ float zsthresh; /* ZSIG signal threshold */ float barthresh; /* BAR detection threshold */ int samp_rej; /* Number of samples to reject */ CalStep ZSIG; /* ZSIG cal step structure */ CalStep ZOFF; /* ZOFF cal step structure */ CalStep MASK; /* MASK cal step structure */ CalStep BIAS; /* BIAS cal step structure */ CalStep NOIS; /* NOIS cal step structure */ CalStep DARK; /* DARK cal step structure */ CalStep NLIN; /* NLIN cal step structure */ CalStep BARS; /* BARS cal step structure */ CalStep FLAT; /* FLAT cal step structure */ CalStep UNIT; /* UNIT cal step structure */ CalStep PHOT; /* PHOT cal step structure */ CalStep CRID; /* CRID cal step structure */ CalStep BACK; /* BACK cal step structure */ CalStep WARN; /* WARN cal step structure */ } NicInfo; /* Non-linearity reference data structure */ typedef struct { Hdr *globalhdr; FloatHdrData *coeff; FloatHdrData *error; ShortHdrData *dqual; FloatHdrData *nodes; FloatHdrData *zsci; FloatHdrData *zerr; } NlinData; /* Photometry parameters data structure */ typedef struct { char mode[SZ_STRKWVAL+1]; /* PHOTMODE string */ float flam; /* PHOTFLAM value */ float fnu; /* PHOTFNU value */ float zpt; /* PHOTZPT value */ float plam; /* PHOTPLAM value */ float bw; /* PHOTBW value */ } PhotData;