Last modified: 15 Feb 2022

URL: https://cxc.cfa.harvard.edu/ciao/threads/wresp_multiple_sources/

Extract Spectrum and Response Files for Multiple Sources

CIAO 4.15 Science Threads


Overview

Synopsis:

A set of sources may be treated as multiple point sources that are coadded together for spectral analysis or as a single, multi-source region. The appropriate Response Matrix Files (RMFs) and Ancillary Response Files (ARFs) are created for each spectrum. In the latter case, the responses are weighted because the RMF and ARF vary with detector location: the RMF is defined as constant across FEF tiles, whose size depends on both the position on and focal-plane temperature of the ACIS chip, while the ARF varies with position in the detector plane.

[CAUTION]
Warm ACIS observations taken after 2022-11-01

Due to on going thermal challenges, some ACIS observations will be taken with the focal plane temperature, FP_TEMP, warmer than the currently calibrated high temperature limit of -109 C (164.15 K). Use the following command to get the median FP_TEMP in degrees Kelvin for the observation:

unix% dmkeypar acis_repro_evt2.fits FP_TEMP echo+
170.2

Users fitting ACIS imaging spectra that fulfill all the following three conditions may see line-centroids shifted by 1-2% from systematic offsets due to calibration uncertainty:

  1. Spectra with more than 1000 counts on a front-illuminated (FI) chip or more than 2000 counts on a back-illuminated (BI) chip (CCD_ID 5,7).
  2. More than half of source counts were acquired above the current temperature limit of -109 C.
  3. More than half of source counts are in emission or absorption lines.

Under these conditions, users may benefit from trying to identify time periods when the focal plane temperature was within the currently calibrated range, below -109C, using the following thread: Removing Warm ACIS Data.

Purpose:

Create a spectrum for a set of sources in two ways:

The specextract script automates the analysis for each case when combining data from separate observations.

Related Links:

Last Update: 15 Feb 2022 - Review for CIAO 4.14. Updated for Repro-5/CALDB 4.9.6


Contents


Get Started

Download the sample data: 3207 (ACIS-S, 3C 294)

unix% chandra_repro 3207 outdir=
unix% cd 3207

A region file created by wavdetect is used as well; you should therefore have completed the Running wavdetect thread (or copy the region file listed below). Here we show a brief run through of creating such a source list; note that the parameter choices made here are for example purposes only and should not be assumed to be scientifically valid:

unix% punlearn fluximage
unix% fluximage "repro/acisf03207_repro_evt2.fits[ccd_id=7]" ./ bin=1 psfecf=0.393
Running fluximage
Version: 04 November 2021

Using CSC ACIS broad science energy band.
Aspect solution pcadf03207_000N001_asol1.fits found.
Bad-pixel file acisf03207_repro_bpix1.fits found.
Mask file acisf03207_000N004_msk1.fits found.

The output images will have 1312 by 1312 pixels, pixel size of 0.492 arcsec,
    and cover x=3375.5:4687.5:1,y=3155.5:4467.5:1.

Running tasks in parallel with 4 processors.
Creating aspect histogram for obsid 3207
Creating instrument map for obsid 3207
Creating exposure map for obsid 3207
Thresholding data for obsid 3207
Exposure-correcting image for obsid 3207
Creating PSF map for obsid 3207

The following files were created:

 The clipped counts image is:
     ./broad_thresh.img

 The observation FOV is:
     ./3207.fov

 The clipped exposure map is:
     ./broad_thresh.expmap

 The PSF map is:
     ./broad_thresh.psfmap

 The exposure-corrected image is:
     ./broad_flux.img
     
unix% punlearn wavdetect
unix% pset wavdetect infile=broad_thresh.img
unix% pset wavdetect outfile=wav.fits
unix% pset wavdetect scellfile=wav.scell
unix% pset wavdetect imagefile=wav.img
unix% pset wavdetect defnbkgfile=wav.nbkg
unix% pset wavdetect scales="2 4 8 16 32 64"
unix% pset wavdetect psffile=broad_thresh.psfmap
unix% pset wavdetect expfile=broad_thresh.expmap
unix% pset wavdetect regfile=wav.reg
unix% wavdetect mode=h

The source list has been edited to remove the three sources associated with the cluster (Figure 1) and to require a minimum of 100 net counts in the source (this latter constraint is just to reduce the number of sources to a manageable level for this example).

unix% dmlist wav.fits counts
44
unix% dmlist "wav.fits[exclude pos=circle(4070,3945,20)]" counts
41
unix% dmcopy "wav.fits[exclude pos=circle(4070,3945,20)]" no-clus.fits
unix% dmstat "no-clus.fits[cols net_counts]"
NET_COUNTS[count]
    min:	5.8839697838 	      @:	18 
    max:	497.70672607 	      @:	27 
   mean:	57.306036393 
  sigma:	84.038174795 
    sum:	2406.8535285 
   good:	42 
   null:	0 

unix% dmlist "no-clus.fits[net_counts=100:]" counts
8
unix% dmcopy "no-clus.fits[net_counts=100:]" ../src.fits

Figure 1: The source regions

[Thumbnail image: The regions are spread over ACIS-S3.]

[Version: full-size]

[Print media version: The regions are spread over ACIS-S3.]

Figure 1: The source regions

unix% ds9 -region width 2 broad_thresh.img -smooth -scale log -cmap b \
     -zoom 0.5 -pan to 4020 3990 physical -region ../src.fits &

We can convert the FITS format file to ASCII format using dmmakereg:

unix% cd ..
unix% punlearn dmmakereg
unix% dmmakereg region="region(src.fits)" out=src.reg kernel=ascii
unix% cat src.reg
# Region file format: DS9 version 4.1
global color=blue dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
physical
Ellipse(3953.95,3734.41,4.44352,2.49017,14.2196) #  
Ellipse(3820.95,3756.57,6.37797,3.51867,19.0266) #  
Ellipse(4326.69,3829.35,3.85743,2.73582,49.9681) #  
Ellipse(4062.42,3972.76,2.28739,1.85853,13.2286) #  
Ellipse(4193.79,4080.6,2.3092,2.11016,2.21776) #  
Ellipse(4454.03,4093.51,6.33803,3.9734,91.1321) #  
Ellipse(4204.58,4142.85,2.68711,2.52349,11.7844) #  
Ellipse(3702.08,4359.01,7.23923,4.487,149.215) #  

Option A: Coadding Multiple Spectra

A pointlike spectrum, an aperture-corrected ARF, and an RMF are extracted for each source in the list. The spectra and responses are then coadded for the spectral analysis. For a step-by-step explanation of the analysis, read the Extract Spectrum and Response Files for a Pointlike Source thread and the Coadding Spectra and Responses thread.

For this approach we need a stack which applies each source region from src.reg to the event file, which can be obtained using manual editing or a command like:

    
unix% grep Ellipse src.reg | sed 's:Ellipse(.*):repro/acisf03207_repro_evt2.fits[sky=&]:;s, #,,' > multi.lis
unix% cat multi.lis
acisf03207_repro_evt2.fits[sky=Ellipse(3953.95,3734.41,4.44352,2.49017,14.2196)]
acisf03207_repro_evt2.fits[sky=Ellipse(3820.95,3756.57,6.37797,3.51867,19.0266)]
acisf03207_repro_evt2.fits[sky=Ellipse(4326.69,3829.35,3.85743,2.73582,49.9681)]
acisf03207_repro_evt2.fits[sky=Ellipse(4062.42,3972.76,2.28739,1.85853,13.2286)]
acisf03207_repro_evt2.fits[sky=Ellipse(4193.79,4080.6,2.3092,2.11016,2.21776)]
acisf03207_repro_evt2.fits[sky=Ellipse(4454.03,4093.51,6.33803,3.9734,91.1321)]
acisf03207_repro_evt2.fits[sky=Ellipse(4204.58,4142.85,2.68711,2.52349,11.7844)]
acisf03207_repro_evt2.fits[sky=Ellipse(3702.08,4359.01,7.23923,4.487,149.215)]

We set an output root, multi/3c294, and allow specextract to number the spectra and responses (multi/3c294_src1, multi/3c294_src2, etc):

unix% mkdir multi
unix% cd multi
unix% punlearn specextract
unix% pset specextract infile=@../multi.lis
unix% pset specextract outroot=3c294
unix% pset specextract weight=no
unix% pset specextract correctpsf=yes
unix% pset specextract combine=no

The weight parameter is set to "no" to tell the script to make a pointlike ARF and the correctpsf parameter is set to "yes" so that arfcorr will be run to correct the ARF.

The final pset - combine=no - means the specextract will not combine_spectra to coadd the spectra and responses. Earlier versions of this thread ran with combine=yes however, that is only appropraite when combining data from different observations. Since this thread is combining data from the same observation, it must be combined seprately.

Note that the script picks up the location of the ancillary files - aspect solution, bad-pixel, mask file and parameter block - from keywords in the event file, even though they are not in the current working directory:

unix% specextract mode=h

Running specextract
Version: 11 January 2022

Aspect solution file pcadf03207_000N001_asol1.fits found.

Aspect solution file pcadf03207_000N001_asol1.fits found.

Aspect solution file pcadf03207_000N001_asol1.fits found.

Aspect solution file pcadf03207_000N001_asol1.fits found.

Aspect solution file pcadf03207_000N001_asol1.fits found.

Aspect solution file pcadf03207_000N001_asol1.fits found.

Aspect solution file pcadf03207_000N001_asol1.fits found.

Aspect solution file pcadf03207_000N001_asol1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Setting bad pixel file [1 of 8]

Setting bad pixel file [2 of 8]

Setting bad pixel file [3 of 8]

Setting bad pixel file [4 of 8]

Converting source region to physical coordinates [1 of 8]

Converting source region to physical coordinates [2 of 8]

Converting source region to physical coordinates [3 of 8]

Converting source region to physical coordinates [4 of 8]

Extracting src spectra [1 of 8]

Extracting src spectra [3 of 8]

Extracting src spectra [2 of 8]

Extracting src spectra [4 of 8]

Setting bad pixel file [5 of 8]

Setting bad pixel file [6 of 8]

Setting bad pixel file [7 of 8]

Setting bad pixel file [8 of 8]

Converting source region to physical coordinates [6 of 8]

Converting source region to physical coordinates [5 of 8]

Converting source region to physical coordinates [8 of 8]

Converting source region to physical coordinates [7 of 8]

Extracting src spectra [5 of 8]

Extracting src spectra [6 of 8]

Extracting src spectra [8 of 8]

Extracting src spectra [7 of 8]

Using mkacisrmf...

Using mkacisrmf...

Using mkacisrmf...

Using mkacisrmf...

Creating src ARF [4 of 8]

Creating src ARF [2 of 8]

Creating src ARF [1 of 8]

Creating src ARF [3 of 8]

Using mkacisrmf...

Creating src RMF [1 of 8]

Using mkacisrmf...

Creating src RMF [3 of 8]

Using mkacisrmf...

Creating src RMF [4 of 8]

Calculating aperture correction for src ARF [4 of 8]

Calculating aperture correction for src ARF [2 of 8]

Calculating aperture correction for src ARF [1 of 8]

Calculating aperture correction for src ARF [3 of 8]

Using mkacisrmf...

Creating src RMF [2 of 8]

Using mkacisrmf...

Using mkacisrmf...

Using mkacisrmf...

Creating src ARF [5 of 8]

Creating src ARF [6 of 8]

Creating src ARF [7 of 8]

Using mkacisrmf...

Creating src RMF [5 of 8]

Using mkacisrmf...

Creating src RMF [7 of 8]

Using mkacisrmf...

Creating src RMF [6 of 8]

Using mkacisrmf...

Calculating aperture correction for src ARF [5 of 8]

Calculating aperture correction for src ARF [6 of 8]

Calculating aperture correction for src ARF [7 of 8]

Creating src ARF [8 of 8]

Using mkacisrmf...

Creating src RMF [8 of 8]

Calculating aperture correction for src ARF [8 of 8]

Grouping src spectrum [1 of 8]

Grouping src spectrum [2 of 8]

Grouping src spectrum [3 of 8]

Grouping src spectrum [4 of 8]

Grouping src spectrum [5 of 8]

Grouping src spectrum [6 of 8]

Grouping src spectrum [7 of 8]

Grouping src spectrum [8 of 8]

Updating header of 3c294_src1.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src1_grp.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src2.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src2_grp.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src3.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src3_grp.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src4.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src4_grp.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src5.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src5_grp.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src6.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src6_grp.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src7.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src7_grp.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src8.pi with RESPFILE and ANCRFILE keywords.

Updating header of 3c294_src8_grp.pi with RESPFILE and ANCRFILE keywords.

The contents of the parameter file may be checked with plist specextract.

The important output files for each source are:

Filename Description
3c294_src<n>.pi Ungrouped spectrum
3c294_src<n>_grp.pi Grouped spectrum
3c294_src<n>.corr.arf ARF after being corrected by arfcorr
3c294_src<n>.arf ARF generated by mkarf
3c294_src<n>.rmf RMF generated by mkacisrmf

These spectra can now be combined together using the combine_spectra script. First we make a stack of the ungrouped source spectra:

unix% /bin/ls 3c294_src*.pi | grep -v _grp > src.lis
unix% cat src.lis
3c294_src1.pi
3c294_src2.pi
3c294_src3.pi
3c294_src4.pi
3c294_src5.pi
3c294_src6.pi
3c294_src7.pi
3c294_src8.pi

and then we combine them. The default is for combine_spectra to sum the exposure times from the spectra. However, since all these spectra are from the same observation, the exposure time in the combined output is unchanged. This is done by setting method=avg as shown here:

unix% pset combine_spectra src_spectra=@src.lis
unix% pset combine_spectra out=3c294_combined
unix% pset combine_spectra method=avg
unix% combine_spectra mode=h clobber=yes
Prepared to combine 8 spectra

source PHA: 3c294_src1.pi
       ARF: 3c294_src1.corr.arf
       RMF: 3c294_src1.rmf
source PHA: 3c294_src2.pi
       ARF: 3c294_src2.corr.arf
       RMF: 3c294_src2.rmf
source PHA: 3c294_src3.pi
       ARF: 3c294_src3.corr.arf
       RMF: 3c294_src3.rmf
source PHA: 3c294_src4.pi
       ARF: 3c294_src4.corr.arf
       RMF: 3c294_src4.rmf
source PHA: 3c294_src5.pi
       ARF: 3c294_src5.corr.arf
       RMF: 3c294_src5.rmf
source PHA: 3c294_src6.pi
       ARF: 3c294_src6.corr.arf
       RMF: 3c294_src6.rmf
source PHA: 3c294_src7.pi
       ARF: 3c294_src7.corr.arf
       RMF: 3c294_src7.rmf
source PHA: 3c294_src8.pi
       ARF: 3c294_src8.corr.arf
       RMF: 3c294_src8.rmf

The following files were created:
  3c294_combined_src.pi
  3c294_combined_src.arf
  3c294_combined_src.rmf

Note that combine_spectra ignored any grouping flags in the input spectra, so the output spectrum is ungrouped. It may be grouped using dmgroup or using the sherpa grouping commands.

Proceed to the Fitting section for instructions on how to analyse the data.


Option B: Extracting a Weighted Spectrum

A weighted spectrum and response files are extracted from the set of sources, essentially treating them as an extended source. For a step-by-step explanation of the analysis, read the Extract Spectrum and Response Files for an Extended Source thread.

unix% punlearn specextract
unix% pset specextract infile="repro/acisf03207_repro_evt2.fits[sky=region(src.fits)]"
unix% pset specextract outroot=field/combined

Note that unlike the point-source approach, we use the default settings for the weight, correctpsf, and combine parameters, namely yes, no, and no respectively.

unix% specextract mode=h

Running specextract
Version: 11 January 2022

Aspect solution file pcadf03207_000N001_asol1.fits found.

Bad pixel file acisf03207_repro_bpix1.fits found.

Mask file acisf03207_000N004_msk1.fits found.

Setting bad pixel file 

Extracting src spectra 

Using mkacisrmf...

Creating src ARF 

Using mkacisrmf...

Creating src RMF 

Grouping src spectrum 

Updating header of combined.pi with RESPFILE and ANCRFILE keywords.

Updating header of combined_grp.pi with RESPFILE and ANCRFILE keywords.

The contents of the parameter file may be checked with plist specextract.

The output files to use in fitting are:

Filename Description
field/combined.pi Ungrouped spectrum
field/combined_grp.pi Grouped spectrum
field/combined.warf ARF
field/combined.wrmf RMF

Proceed to the Fitting section for instructions on how to analyse the data.


Fitting

Either source spectrum can now be analyzed - using the related ARF and RMF - in Sherpa, as described in the Introduction to Fitting PHA Spectra thread.

In Figure 2 we plot the two data sets using Sherpa:

unix% sherpa

sherap In []: %matplotlib
Using matplotlib backend: TkAgg

sherpa In []: load_pha("multi/3c294_combined_src.pi")
read ARF file multi/3c294_combined_src.arf
read RMF file multi/3c294_combined_src.rmf
sherpa In []: load_pha(2, "field/combined.pi")
read ARF file field/combined.warf
read RMF file field/combined.wrmf
sherpa In []: notice(0,5, 7)
sherpa In []: group_counts(1, 20)
sherpa In []: group_counts(2, 20)
sherpa In []: plot_data(1)
sherpa In []: plot_data(2, overplot=True)

sherpa In []: last_curve = plt.gca().lines[-1]
sherpa In []: last_curve.set_mfc("none")
sherpa In []: last_curve.set_markersize(8)
sherpa In []: last_curve.set_mec("red")
sherpa In []: last_curve.set_marker("s")
sherpa In []: plt.xscale("log")
sherpa In []: plt.yscale("log")

Figure 2: Both spectra plotted in Sherpa

[Thumbnail image: The two spectra look to have the same shape but a different scaling factor.]

[Version: full-size]

[Print media version: The two spectra look to have the same shape but a different scaling factor.]

Figure 2: Both spectra plotted in Sherpa

The red curve (square symbols) shows multi/3c294_combined_src.pi and the blue symbols with orange error barrs curve is field/combined.pi, both having been grouped to 20 counts per bin.

The spectra combined in this way for data in the same observation are the same.


Improving the weights

In these examples, we used the detected counts to weight the responses, when what what we really should be using is the incident flux - i.e. the source spectrum before it passes through the telescope/detector system. If we assume an incident spectrum, we can correct the detected counts to give the incident flux, and use that for the weights. Since we do not know the source spectrum, we can use an iterative scheme - where the best-fit spectrum of the source from the previous iteration is used to correct the WMAP for the current iteration, until the results converge. An alternative scheme is to continue to use the detected counts - i.e. make no correction for the telescope/detector response - but only use a restricted energy range where the response + model does not vary much; an example being the soft energy band for clusters of galaxies.

The spectrumfile parameter of mkwarf accepts an ASCII file containing a model of the source spectrum, which may be created by running the Calculating Spectral Weights thread. Note that the energy range of the spectral model should match that used to create the WMAP. At this time specextract does not accept a spectrumfile.

Note that, unlike mkinstmap, the input spectrum does not need to be normalized to unit flux.


Analysis Caveats

The algorithm used to calculate the weighted responses requires that there are no spatial variations in the source spectrum.

Users should be cautious about analyzing the data for sources near the edges of the ACIS CCDs.

  1. For X-rays passing through the mirrors, the very bottom of each CCD is obscured by the frame store. As a result, some of the events in rows with CHIPY <= 8 are not detected. (The set of rows affected varies from CCD to CCD.) Since the CIAO tools do not compensate for this effect, the ARFs and exposure maps for sources in these regions may be inaccurate.

  2. For sources within about thirty-two pixels of any edge of a CCD, the source may be dithered off the CCD during part of an observation. The aspect histogram, which is used to create ARFs and exposure maps, is designed to compensate for this effect.

  3. An ARF calculated at the edge of a chip will not be accurate since the response tools for spectral extraction (specifically the ARF) assume that 100% of the PSF is enclosed - i.e. on the chip - all the time, which may not be the case. The amount of error introduced depends on how close the source is to the edge, the morphology of the source, and the characteristics of the PSF, which depends on the source spectrum.

  4. A contaminant has accumulated on the optical-blocking filters of the ACIS detectors, as described in the ACIS QE Contamination why topic. Since there is a gradient in the temperature across the filters (the edges are colder), there is a gradient in the amount of material on the filters. (The contaminant is thicker at the edges.) Within about 100 pixels of the outer edges of the ACIS-I and ACIS-S arrays, the gradient is relatively steep. Therefore, the effective low-energy (' 1 keV) detection efficiency may vary within the dither pattern in this region. The ARF and instrument map tools are designed to read a calibration file which describes this spatial dependence.



Parameters for /home/username/cxcds_param/specextract.par


        infile = @../multi.lis    Source event file(s)
       outroot = 3c294            Output directory path + root name for output files
      (bkgfile = )                Background event file(s)
          (asp = )                Source aspect solution or histogram file(s)
      (pbkfile = )                Parameter block file (input to mkwarf)
      (mskfile = )                Maskfile (input to mkwarf)
      (rmffile = CALDB)           rmffile input for CALDB
   (badpixfile = )                Bad pixel file for the observation
       (dafile = CALDB)           Dead area file (input to mkwarf)
      (bkgresp = yes)             Create background ARF and RMF?
       (weight = no)              Should response files be weighted?
   (correctpsf = yes)             Apply point source aperture correction to ARF?
      (combine = yes)             Combine ungrouped output spectra and responses?
    (grouptype = NUM_CTS)         Spectrum grouping type (same as grouptype in dmgroup)
      (binspec = 15)              Spectrum grouping specification (NONE,1:1024:10,etc)
(bkg_grouptype = NONE)            Background spectrum grouping type (NONE, BIN, SNR, NUM_BINS, NUM_CTS, or ADAPTIVE)
  (bkg_binspec = )                Background spectrum grouping specification (NONE,10,etc)
        (ptype = PI)              PI or PHA
       (energy = 0.3:11.0:0.01)   Energy grid
      (channel = 1:1024:1)        RMF binning attributes
  (energy_wmap = 300:2000)        Energy range for (dmextract) WMAP input to mkacisrmf
      (binwmap = tdet=8)          Binning factor for (dmextract) WMAP input to mkacisrmf
   (binarfwmap = 1)               Binning factor for (sky2tdet) WMAP input to mkwarf
      (clobber = no)              OK to overwrite existing output file?
      (verbose = 1)               Debug Level(0-5)
         (mode = ql)
    


Parameters for /home/username/cxcds_param/specextract.par


        infile = repro/acisf03207_repro_evt2.fits[sky=region(src.fits)] Source event file(s)
       outroot = field/combined   Output directory path + root name for output files
      (bkgfile = )                Background event file(s)
          (asp = )                Source aspect solution or histogram file(s)
      (pbkfile = )                Parameter block file (input to mkwarf)
      (mskfile = )                Maskfile (input to mkwarf)
      (rmffile = CALDB)           rmffile input for CALDB
   (badpixfile = )                Bad pixel file for the observation
       (dafile = CALDB)           Dead area file (input to mkwarf)
      (bkgresp = yes)             Create background ARF and RMF?
       (weight = yes)             Should response files be weighted?
   (correctpsf = no)              Apply point source aperture correction to ARF?
      (combine = no)              Combine ungrouped output spectra and responses?
    (grouptype = NUM_CTS)         Spectrum grouping type (same as grouptype in dmgroup)
      (binspec = 15)              Spectrum grouping specification (NONE,1:1024:10,etc)
(bkg_grouptype = NONE)            Background spectrum grouping type (NONE, BIN, SNR, NUM_BINS, NUM_CTS, or ADAPTIVE)
  (bkg_binspec = )                Background spectrum grouping specification (NONE,10,etc)
        (ptype = PI)              PI or PHA
       (energy = 0.3:11.0:0.01)   Energy grid
      (channel = 1:1024:1)        RMF binning attributes
  (energy_wmap = 300:2000)        Energy range for (dmextract) WMAP input to mkacisrmf
      (binwmap = tdet=8)          Binning factor for (dmextract) WMAP input to mkacisrmf
   (binarfwmap = 1)               Binning factor for (sky2tdet) WMAP input to mkwarf
      (clobber = no)              OK to overwrite existing output file?
      (verbose = 1)               Debug Level(0-5)
         (mode = ql)
    

History

04 Jan 2005 updated for CIAO 3.2: added information about mkacisrmf, see Creating the RMF: mkrmf vs mkacisrmf section (deprecated)
20 Dec 2005 updated for CIAO 3.3: default value of dmextract error and bkgerror parameters is "gaussian"; updated screen output accordingly
01 Feb 2006 added information about specextract thread
01 Dec 2006 updated for CIAO 3.4: CIAO and ChIPS versions; set mkrmf verbosity > 0 for screen output; parameter file updates for mkwarf
02 Feb 2007 updated for CALDB 3.3.0.1 patch
06 Mar 2007 added ACIS dead area correction section and example of setting the pbkfile and dafile parameters
24 Jan 2008 updated for CIAO 4.0: rewritten with ObsID 3207; turn off the ACIS dead area correction in the mkwarf step (application of the dead area correction is on by default); show_wgt.sl not included in this release; links point to Sherpa Beta website ; removed outdated calibration updates
04 Feb 2009 updated for CIAO 4.1: "ARDLIB warning ... Assuming the first "interesting" extension." no longer printed; updated path for CALDB 4; input data must have a CTI_APP keyword
19 Feb 2009 added a section on Fitting
12 Jan 2010 updated for CIAO 4.2: calibration update - the ACIS QE contamination model has been upgraded to vN0005.
09 Mar 2010 The ACIS detector is calibrated over the range 0.224004 - 12 keV; choosing values outside this range may result in errors from mkwarf.
15 Dec 2010 updated for CIAO 4.3: new ACIS contamination calibration file
01 Mar 2011 CALDB 4.4.2 release: fix to the header of the ACIS QE contamination file. Prior to this release, CIAO would fail when trying to look up the contamination model correction for chips ACIS-8 (S4) and ACIS-9 (S5).
26 Apr 2011 install version 2 of the tools package for CIAO 4.3 to fix the mkrmf bug.
20 Jul 2011 required software updates are listed in Synopsis
05 Mar 2012 revised for CIAO 4.4 (previous title was “Weighting ARFs and RMFs: multiple sources”): thread rewritten to show two cases - stack of sources and single, multi-source region; analysis is done with the specextract script.
03 Dec 2012 Review for CIAO 4.5; updated file versions
08 Aug 2013 Updated for the contributed scripts 4.5.4 release: the "ancillary" files - e.g. aspect solution and bad-pixel files - can now be picked up from information in the event file (in many cases).
23 Dec 2014 Review for CIAO 4.7.
30 Jan 2017 Updated for CIAO 4.9. Replaced the combine=yes step in specextract with a separate run of combine_spectra.
07 Dec 2018 Updated dmmakereg output for ds9 v4.1 syntax used in CIAO 4.11. Updated fluximage to create the PSF map.
08 Apr 2019 Updated sherpa commands for matplotlib plotting.
15 Feb 2022 Review for CIAO 4.14. Updated for Repro-5/CALDB 4.9.6