PSRCHIVE Software Changes

The following list roughly describes the changes made between version 4.0 and 3.1 of the PSRCHIVE software.

1) Pulsar::Receiver::get_reference_source - this method returns the
   expected Stokes parameters of the noise diode, given the receiver
   parameters.  In draft one notation (XPOL,YPOL,CPOL), these depended on
   CPOL, XPOL, and YPOL (which determined the handed-ness of the basis).
   In draft two notation (FD_HAND,FD_SANG,FD_XYPH), these depend only on
   FD_XYPH.  However, get_reference_source was still using the handedness
   tranformation (0 1  to modify the reference source stokes parameters.
                  1 0)

   This is incorrect, as FD_XYPH should describe the phase of the noise
   diode regardless of the handedness of the basis.  This bug will affect
   all calibrated data from receivers with a left-handed basis.

2) Pulsar::Receiver::set_calibrator_offset - was not converting to draft
   two notation properly.  It was simply setting FD_XYPH to be twice
   CPOL (which could be only 0 and =/- 90 degrees).  In the corrected
   version, FD_XYPH is set to depend on both CPOL and YPOL:

   if (CPOL==0 xor YPOL=0)
     FD_XYPH = 180
   else
     FD_XYPH = 0

   This bug will affect all calibrated data in which (CPOL=0 and
   YPOL=+/-180) or (CPOL=+/-90 and YPOL=0)

3) Pulsar::Pointing - the assignment operator (operator =) was not copying
   the attributes from the input Pointing instance.  Therefore, any time
   Integration data were copied (as in Archive::clone and ::extract)  the
   Pointing data (incl. feed angle, lst, g, l, az, zen, para) were lost.
   This bug will adversely affect archives that have non-zero feed angle
   and have gone through a processing step in which extract or clone was
   called (as in "paz -S ..." or "paz -s ...").  The software currently
   ignores the parallactic angle stored in the Pointing extension (instead
   it computes it from the r.a., dec., lst, and telescope latitude);
   therefore, this bug will not affect data with feed angle == 0.

4) FITSArchive - FluxCalOn and FluxCalOff archives will now have their
   state recorded in the OBSTYPE parameter of PSRFITS files.  This bug fix
   affects PSRFITS archives in which the source name was not recognized as
   a flux calibrator.

5) Not a bug fix, but perhaps helpful in tracking down the phase jump
   problem: The PRED_PHS parameter from the POLYCO HDU in PSRFITS files is
   now parsed and stored in the extra_polyco attribute of the FITSArchive
   class.  In verbose mode, this parameter is printed during
   FITSArchive::load_Integration.

6) In the ReceptionCalibrator class (used by pcm), the Pointing feed angle
   attribute is now included in the measurement equation used to solve for
   the receptor parameters.  This bug fix enables pcm to converge on a
   sensible solution when the receiver feed angle changes from observation
   to observation.

7) Also in the ReceptionCalibrator class, there are now three ways to deal
   with pulsar flux variations:
   1) ignore them
   2) normalize by the polarimetric invariant interval (pac -s)
   3) [new] for each observation, add a free gain parameter (pac -g)

   This new feature is not always helpful, as it can introduce near
   singularities in the Hessian matrix; I am still experimenting with it
   to characterize when it can and cannot be used.

8) A new channel-zapping algorithm has been added to paz

9) New parameter access has been added to psredit

10) The MEAL library has been completely reworked in order to
    eliminate excessive use of multiple inheritance.

Various bug fixes are also reported on the YAQ site.