Apply the Time-Dependent ACIS Gain Correction
![[CXC Logo]](../../imgs/cxc-logo.gif)
CIAO 4.0 Science Threads
OverviewLast Update: 8 Feb 2008 - added deprecated thread message to Synopsis Synopsis: This thread has been deprecated and will be removed in the next CIAO release. Instead of running this thread, follow the Reprocessing Data to Create a New Level=2 Event File thread. The tool acis_process_events includes a time-dependent gain adjustment. This adjustment is necessary because the "effective gains" of the detectors are drifting with time as the result of an increasing CTI. There is CTI calibration data and time-dependent gain calibration data for the entire ACIS detector (chips I0-3 and S0-5). The correction for this problem became part of standard data processing (SDP) in DS 7.3.1. Purpose: To generate a new level=1 event file with the time-dependent gain adjustment applied. Read this thread if: you are working with a -120 C ACIS observation (imaging or grating) that took place after February 2000. Get Started shows how to check the temperature of your observation. Data taken since February 2000 may need to be reprocessed to apply newer TGAIN calibration. Read the Calibration Updates for a history of TGAIN calibration changes. Users interested in CCD spectroscopy should apply the T_GAIN adjustment. Grating spectroscopy may benefit marginally, in the form of improved order sorting. It is not necessary to apply this adjustment if you are only doing timing or imaging analysis, but it will not have a negative effect, either.
Related Links:
|
Contents
- Get Started
- Generate a New Level=1 Event File
- Generate a New Level=2 Event File
- Parameter files:
- History
Get Started
Sample ObsID used: 1838 (ACIS-S, G21.5-09)
File types needed: evt1; flt1; bpix1
If you created a new bad pixel file by running the New ACIS Bad Pixel File: Identify ACIS Hot Pixels and Cosmic Ray Afterglows thread, use that file in this analysis. Otherwise, use the bpix1.fits file from the Archive.
This thread must be run on the level=1 event file, regardless of whether you are working with imaging or grating data. This is because one of the columns generated is PHA_RO, which is the summed value of PHA without the CTI and time-dependent gain adjustments applied.
There are several pieces of information we need to get from the file header before proceeding:
-
Focal plane temperature (FP_TEMP keyword): the gain adjustment only applies to data taken at -120 C (153 K). See this FAQ for more information on checking the temperature of your observation.
-
Observation Date (DATE-OBS keyword): since the gain adjustment is calibrated for several periods since February 2000, it may improve the quality of any observation done after that time.
-
If the CTI correction has been applied (CTI_CORR and/or CTI_APP keyword): the CTI correction may have been applied in SDP or during previous CIAO analysis. The CTI_APP header keyword was added at CIAO 3.4 and DS 7.6.10 (see the ACIS CTI Correction why topic for more information); the older CTI_CORR keyword is retained for backward-compatibility.
-
If the time-dependent gain correction has been applied (TGAINCOR keyword): if this keyword does not exist, the correction has not yet been done. Additionally, if the keyword exists, but has any value other than "T" (TRUE), the correction has not been applied. We can also check the ASCDSVER header keyword to see if the data were processed before or after this correction was added to SDP.
The tool dmkeypar is used to get the header information:
unix% dmkeypar acisf01838_000N002_evt1.fits FP_TEMP echo+ 153.446014 unix% dmkeypar acisf01838_000N002_evt1.fits DATE-OBS echo+ 2000-09-02T01:10:14 unix% dmkeypar acisf01838_000N002_evt1.fits TGAINCOR echo+ T unix% dmkeypar acisf01838_000N002_evt1.fits CTI_CORR echo+ 1 unix% dmkeypar acisf01838_000N002_evt1.fits CTI_APP echo+ PPPPPBPBPP unix% dmkeypar acisf01838_000N002_evt1.fits ASCDSVER echo+ 7.6.10
This is a -120 C observation taken in September 2000 that has the time-dependent gain and CTI corrections applied to it already. Even though this dataset does not need to be reprocessed, we will use it to show how to run the thread.
In many cases, the TGAIN calibration has been applied to the data, but the data should still be reprocessed to apply a newer version of the calibration. Refer to the Calibration Updates for a history of TGAIN calibration changes and the relevant observation dates.
Note that although the adjustment is currently only applicable to -120 C data, there are no adverse effects to running it on other data (the outcome is the same as if apply_tgain=no).
Related acis_process_events threads
There are other options that should be considered, since they may affect how acis_process_events is run. The Create a New Level=2 Event File thread shows how to combine all of these options into a single run of acis_process_events.
Generate a New Level=1 Event File
Determine the eventdef parameter
The eventdef parameter specifies the names and data types of the columns in the output event data file. Four definitions are included in the parameter file for acis_process_events:
| READMODE | DATAMODE | event mode | eventdef string |
|---|---|---|---|
| TIMED | (V)FAINT | timed exposure (very) faint | stdlev1 |
| TIMED | GRADED | timed exposure graded | grdlev1 |
| CONTINUOUS | CC(33)_FAINT | continuous clocking (3x3) faint | cclev1 |
| CONTINUOUS | CC(33)_GRADED | continuous clocking (3x3) graded | ccgrdlev1 |
The event mode of an observation can be found in the READMODE and DATAMODE values stored in the file header:
unix% dmkeypar acisf01838_000N002_evt1.fits READMODE echo+ TIMED unix% dmkeypar acisf01838_000N002_evt1.fits DATAMODE echo+ FAINT
This is a timed exposure faint observation, so the proper eventdef parameter is "stdlev1."
Run acis_process_events
Running this tool with the SDP level=1 event file as the input will produce a new level=1 event file that has the latest CALDB applied. This means that the time-dependent gain correction will be applied.
The apply_cti parameter should always be set to yes, even if the data is already CTI-corrected. If it is set to no, the existing CTI correction is removed; see the Continuous Clocking Mode why topic for details.
unix% punlearn acis_process_events unix% pset acis_process_events infile=acisf01838_000N002_evt1.fits unix% pset acis_process_events outfile=acis_1838_new_evt1.fits unix% pset acis_process_events badpixfile=acis_1838_new_bpix1.fits unix% pset acis_process_events eventdef=")stdlev1" unix% pset acis_process_events stop=none unix% pset acis_process_events apply_tgain=yes unix% pset acis_process_events apply_cti=yes unix% acis_process_events Input event file or stack (acisf01838_000N002_evt1.fits): Output event file name (acis_1838_new_evt1.fits): aspect offset file ( NONE | none | <filename>) (NONE):
The apply_tgain and apply_cti parameters are both "on" by default (i.e. set to "yes"); the pset commands are used for emphasis in this example.
It is important to note the unusual syntax of the eventdef parameter; the tool will not access the predefined string if the leading ")" is missing (see example 6 of ahelp parameter).
The content of the parameter file may be checked using plist acis_process_events.
Examining the Output
There are a few things that may be checked in order to confirm that the gain adjustment was applied. First, the TGAINCOR and TGAINFIL header keyword values:
unix% dmlist acis_1838_new_evt1.fits header | grep TGAIN 0074 TGAINCOR T String 0075 TGAINFIL acisD2000-08-01t_gainN0006.fits String
TGAINCOR is set to "T" for true. If either of these keywords is missing or set to a different value ("F" or "none"), the gain adjustment was not applied.
Also, a PHA_RO column should exist in the output file and contain non-zero values:
unix% dmlist acis_1838_new_evt1.fits"[cols PHA_RO]" data rows="1:5"
--------------------------------------------------------------------------------
Data for Table Block EVENTS
--------------------------------------------------------------------------------
ROW pha_ro
1 202
2 183
3 107
4 2399
5 3660
It is recommended that you keep this column in your data file (i.e. do not use a DM filter to remove it). These are the original (RO = readout) PHA values which are needed if you later want to rerun with new calibration.
Generate a New Level=2 Event File
If you are working with grating data, you should proceed to the HETG/ACIS-S Grating Spectra thread or the LETG/ACIS-S Grating Spectra thread at this point to generate the correct level=1.5 and level=2 files. For non-grating data, continue with the following steps.
Apply grade/status filters
Filter for bad grades and for a "clean" status column (i.e. all bits set to 0):
unix% punlearn dmcopy unix% dmcopy "acis_1838_new_evt1.fits[EVENTS][grade=0,2,3,4,6,status=0]" \ acis_1838_flt_evt1.fits
Apply GTI filters
The Good Time Intervals (GTIs) supplied by the pipeline now need to be applied. Simultaneously, an unnecessary column is eliminated from the output:
unix% punlearn dmcopy
unix% dmcopy "acis_1838_flt_evt1.fits[EVENTS][@acisf01838_000N002_flt1.fits][cols -phas]" \
acis_1838_evt2.fits
Be sure to include the @ symbol in the filter expression; the command will not be executed properly if it is omitted.
Parameters for /home/username/cxcds_param/acis_process_events.par
#--------------------------------------------------------------------------
#
# acis_process_events.par- Parameter file for acis_process_events program
#
#--------------------------------------------------------------------------
infile = acisf01838_000N002_evt1.fits Input event file or stack
outfile = acis_1838_new_evt1.fits Output event file name
acaofffile = NONE aspect offset file ( NONE | none | <filename>)
(apply_cti = yes) Apply CTI adjustment?
(apply_tgain = yes) Apply time-dependent gain adjustment?
(alignmentfile = )acaofffile -> NONE) sim/fam alignment file ( NONE | none | <filename>)
(obsfile = NONE) obs.par file for output file keywords ( NONE | none | <filename>)
(geompar = geom) Parameter file for Pixlib Geometry files
(logfile = stdout) debug log file ( STDOUT | stdout | <filename>)
(gradefile = CALDB) grade mapping file ( NONE | none | CALDB | <filename>)
(gainfile = CALDB) acis gain file ( NONE | none | CALDB | <filename>)
(badpixfile = acis_1838_new_bpix1.fits) acis bad pixel file ( NONE | none | <filename>)
(threshfile = CALDB) split threshold file ( NONE | none | CALDB | <filename>)
(ctifile = CALDB) acis CTI file ( NONE | none | CALDB | <filename>)
(tgainfile = CALDB) gain adjustment file ( NONE | none | CALDB | <filename>)
(eventdef = )stdlev1 -> {d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdet,f:det,f:sky,s:phas,l:pha,l:pha_ro,
f:energy,l:pi,s:fltgrade,s:grade,x:status}) output format definition
(doevtgrade = yes) Determine event flight grade?
(check_vf_pha = no) Check very faint pixels?
(calc_cc_times = no) Estimate the times of arrival for CC-mode observation?
(trail = 0.027) Trail fraction
(spthresh = 13) Default split threshold level (overridden by values in threshfile)
(time_offset = 0) Offset to add to event time field to synch w/ fam data
(docentroid = no) Determine pixel centroid for coord. conversion?
(calculate_pi = yes) perform pha->pi conversion? (requires gain file)
(pi_bin_width = 14.6) Width of Pi bin in eV
(pi_num_bins = 1024) Number of values to bin energy into
(max_cti_iter = 15) Maximum iterations for the CTI adjustment of each event
(cti_converge = 0.1) The convergence criterion for each CTI-adjusted pixel in adu
(tstart = TSTART) header key containing start/default time value
(tstop = TSTOP) header key containing time of last event
(clobber = no) Overwrite output event file if it already exists?
(verbose = 0) level of debug detail (0=none, 5=most)
(stop = none) where to end transformations
(instrume = acis) axaf instrument- used for instrument parameter file
(rand_seed = 1) random seed (for pixlib), 0 = use time dependent seed
(rand_pha = yes) Randomize the pha value used in gain calculations
(rand_pix_size = 0.5) pixel randomization width (-size..+size) 0=no randomization
(stdlev1 = {d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdet,f:det,f:sky,s:phas,l:pha,l:pha_ro,f:energy,l:pi,
s:fltgrade,s:grade,x:status}) TE faint modes event definition string
(grdlev1 = {d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdet,f:det,f:sky,l:pha,s:corn_pha,f:energy,l:pi,
s:fltgrade,s:grade,x:status}) TE graded event format definition string
(cclev1 = {d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdet,f:det,f:sky,f:sky_1d,s:phas,l:pha,l:pha_ro,
f:energy,l:pi,s:fltgrade,s:grade,x:status}) CC faint event format definition string
(ccgrdlev1 = {d:time,s:ccd_id,s:node_id,i:expno,s:chip,s:tdet,f:det,f:sky,f:sky_1d,l:pha,f:energy,l:pi,
s:fltgrade,s:grade,x:status}) cc graded event format definition string
(mode = ql)
|
History
| 16 Dec 2004 | updated for CIAO 3.2; use ACIS bad pixel file (badpixfile parameter) |
| 01 Feb 2005 | added note about "Event island contains 1 or more bad pixels" warning |
| 23 Jun 2005 | CIAO 3.2.2 patch: new calibration files in CALDB 3.1.0; minor acis_process_events parameter change (default value of threshfile is CALDB instead of NONE) |
| 12 Dec 2005 | updated for CIAO 3.3: new time-dependent gain files in CALDB 3.2.0; output filenames include ObsID |
| 14 Jun 2006 | update to calibration info: new TGAIN files released in CALDB 3.2.2 |
| 07 Nov 2006 | update to calibration info: new TGAIN files released in CALDB 3.2.4 |
| 18 Dec 2006 | updated for CIAO 3.4: new calibration files in CALDB 3.3.0; include CTI_APP in keyword checks; removed use of "rand_pha=no" in acis_process_events, as most users should keep the PHA randomization (see the Apply/Remove PHA Randomization thread); CIAO version in errors |
| 15 May 2007 | updated for CIAO 4.0 [Beta 1] and CALDB 3.4.0: TGAIN files for August 2006 - April 2007; need to set stop=none if aspect solution is not provided (change not related to the software release) |
| 14 Sep 2007 | updated for CALDB 3.4.1: TGAIN files for May 2007 - July 2007 |
| 14 Dec 2007 | updated for CIAO 4.0 and CALDB 3.4.2: TGAIN files for August 2007 - October 2007; since ObsID 1838 went through Repro III (version N002 of the file), the TGAIN is applied to Archive products (the dataset is still used to show how to run this thread); added Generate a New Level=2 Event File section; removed outdated calibration updates |
| 08 Feb 2008 | added deprecated thread message to Synopsis |
