CIAO 1.1.5 Release Notes
CIAO ACIS FILTERING BUG
We regret to announce that a serious bug has been found in the filtering code used in dmcopy and dmmerge. The effect of this bug is that compound filters, such as separate good time intervals for each CCD chip on ACIS, are not handled correctly.
In most cases, the good time intervals for the separate ACIS chips are not very different, and only a few events are incorrectly filtered. However, if complicated filters have been applied by the user the bug may cause large errors in the number of events allowed through.
The code works correctly in the case of a single good time intervals list. Unfortunately you can't filter the flt1.fits file to get a GTI file for a single chip, but you can filter the evt2.fits file on CCD_ID to get the time filters for a single chip; the filtered evt2.fits file can be used in place of the flt1.fits file, since its subspace now contains the GTIs for a single chip
Make new evt1.fits file, e.g. acis_process_events old_evt1.fits new_evt1.fits (parameters...) Make single-chip event file with desired good time intervals dmmerge "old_evt2.fits[ccd_id=7]" outfile=old_evt2_ccd7.fits Verify good time intervals made correctly dmlist old_evt2_ccd7.fits subspace Filter new event file using single-chip time filter (will pass only ccd_id=7 events) dmmerge "new_evt1.fits[@old_evt2_ccd7.fits]" new_evt2_ccd7.fits Inspect number of events in result dmlist new_evt2_ccd7.fits blocks
As a temporary fix, a beta version of the new CIAO 2.0 dmcopy tool, which does not have this bug, has been released in the CIAO1.1.5 patch.
CIAO 1.1.5 upgrade
These enhancements apply to dmcopy, dmmerge and dmlist only in CIAO1.1.5. They will be extended to the remaining CIAO tools in the CIAO2.0 release.
Major bug fix: The filter
dmcopy "acis_evt1.fits[@flt1.fits]" ... or dmmerge "acis_evt1.fits[@flt1.fits]" ...
did not correctly handle the different good time intervals for different chips in earlier CIAO versions. This bug is now fixed.
Also, the ONTIME and LIVETIME and EXPOSURE keywords were not updated after a time filter by the earlier versions of dmcopy, which meant that you had to use dmmerge even when filtering a single file on the filter file. This is now fixed, so that dmcopy will now update the time intervals.
A number of minor bugs have also been fixed.
Support for filtering on table columns of bit and string datatype has been added. The bit filtering is useful for filtering on the STATUS column in event files. The syntax is
dmcopy "acis_evt1.fits[status=1x01x0]" ... dmcopy "acis_evt1.fits[status!=1x01x0]" ...
where the bit pattern 1x01x0 matches the rightmost 6 bits in the status variable with values
100100 110100 100110 110110
(in other words, the x is a wild card matching 0 or 1); all leftward bits must be zero. To filter requiring the leftmost two bits of a 16-bit status word to be zero, the string status=00xxxxxxxxxxxxxx would be needed. Only the operators = and != are supported.
dmcopy binning on a table which is filtered on the binning axes now shrinks the image to surround the filtered region. dmcopy evt.fits[sky=circle(4300,4200,100)][bin sky] will make a 100x100 image. The command [binf sky] will make the full image replicating the older behaviour.
As part of the CIAO 2.0 development process, we've added some extra experimental features in CIAO 1.1.5. These features are not guaranteed to work, but you may wish to try them out and give us feedback.
The filter [(ccd_id=0,chipx=257,513,769,fltgrade=16)|| (ccd_id=1:9,chipx=512,fltgrade=104)] is now supported. The || indicates a logical OR of the two component filters, corresponding to the union of two separate subsets of parameter space.
The filter [exclude pha=5:10] is now supported; with the exclude syntax, only rows in the table NOT passing the filter are copied. However, in CIAO1.1.5 there are known problems with the resulting good time intervals and data subspace, so experiment with caution.