The first stage in the DEEP2 pipeline produces calibSlit.xxxx.nnnB.fits and calibSlit.xxxx.nnnR.fits. These files contain information relevant to the arc and flat calibration frames. Reading one of these files can be done via the mrdfits command (this routine is part of the GODDARD IDL/FITS library and is contained in the SDSS IDLUTILS package). For example, the command

    IDL> cc = mrdfits('calibSlit.2200.004B.fits', 1)

reads the first extension of this calibSlit file into the variable cc. To find out what cc contains, execute

    IDL> help, cc, /str

which will list the IDL structure 'tags' showing the type and the size of each tag. Detailed defintions of the calibSlit structure tags, pertaining to the 1st extension of the calibSlit files, are given in below...


  FLAT: 2-d array used for defringing. Divide frame by 1+flat to correct for fringing.
  IVAR: inverse variance of flat (not used).
  MASK: describes whether this is a bad pixel, or vignetted: 1 = bad, 0 = good.
  SLITFN: 1-d array for correcting slitlet irregularities (normalized to 1).
  X0: 1-d array containing position of left edge of slitlet (in ccd pixels: 1 element for each pixel in spectral direction).
  X1: same as X0, but for right edge.
  DLAM: shift in wavelength for this row, relative to nominal fit. (All wavelengths are specified in Angstroms).
  LAMBDAX: coefficients for a Legendre polynomial over [0, 4095] defining wavelength as a function of pixel for the central row of the slitlet.
  TILTX: coefficients of Legendre polynomial giving tilt of constant lambda locus as a function of pixel (if x,y define postion in 2-d array, and P is the Legendre polyomial and yc is the central y value (in pixels), then
lambda(x,y) = P(x|LAMBDAX) * (1.0 + (y-yc)*P(x|TILTX)) + DLAM(y)
  RAWFLAT: 2-d array of raw flat image (for debugging purposes).
  RAWARC: 2-d array of raw arc image (for debugging purposes).

For a TRACESET wavelength solution, LAMBDAX and TILTX would be set to zero or omitted, and new parameters FUNC, COEFF, XMIN, and XMAX will appear. TRACESETs are more flexible than the POLYFLAG format, but testing has shown that the POLYFLAG scheme appears to be slightly more robust. In the TRACESET scheme, each row of COEFF is analogous to LAMBDAX; i.e., 6 coefficients defining a legendre polynomial. The traceset deals with the tilted lines by having a different wavelength solution for each row, rather than a global TILTX function.

Note that a 2-d wavelength array is NOT contained in the calibSlit structure. But the full wavelength solution can be obtained by using the simple routine lambda_eval.pro. The syntax for the lambda_eval function is as follows:

    IDL> wv = lambda_eval(cc)

where cc is the calibSlit structure contained in the first HDU of a calibSlit file (read using mrdfits). The result, wv, is a 2-d float array ([4096, 229]) containing the wavelength value at each pixel in units of angstroms. This same format of handling the wavelength solution (TILTX, LAMBDAX, DLAM) is propogated through the pipeline to the subsequent output files (spSlit and slit files). Using the same lambda_eval function, 2-d wavelength arrays can be determined using the spSlit and slit structures.