XMM-Newton Science Analysis System: User Guide


next up previous contents
Next: 4.12.3.2 Running the EPIC source detection chain Up: 4.12.3 Source detection example Previous: 4.12.3 Source detection example


4.12.3.1 EPIC source detection performed via single task commands

The user can further make use of the pipeline produced exposure maps (EXPMAP1 to EXPMAP5, see Table 4). Alternatively, exposure maps in different energy bands need to be generated with the eexpmap task. This task makes use of calibration information on the spatial quantum efficiency, filter transmission, mirror vignetting and field of view to calculate for each attitude bin the exposure time values projected onto the sky. Assuming that the attitude information is available from the file attitude.fits (created by the atthkgen task; alternatively, the attitude file exists as a pipeline product with file identification ATTTSR), exposure maps image_biexp.fits (i = 1 to 5) are generated in the following way:

eexpmap attitudeset=attitude.fits eventset=filtered.fits imageset=image.fits \
        expimageset='image_b1exp.fits image_b2exp.fits image_b3exp.fits \
                     image_b4exp.fits image_b5exp.fits' \
        pimin='200 500 2000 4500 7500' pimax='500 2000 4500 7500 12000'

The imageset image.fits can be any of the already created energy band images. It is only used to extract information from the FITS header about the Instrument ID, Mode/Submode, filter ID, GTI and WCS keywords.

In the next step, a detection mask needs to be generated. The detection mask is a FITS image containing the integer values 0 and 1 where 1 marks the image area on which subsequent source searching will be performed. The following command should be performed:

emask expimageset=image_biexp.fits detmaskset=mask.fits

The expimageset image_biexp.fits can be any of the previously created exposure maps. The user should inspect the created mask with ds9 to see if the area selection is appropriate for further source detections. If not, the values of the threshold parameters threshold1 and threshold2 can be tuned. By default, the detection mask contains 0 where the value of the exposure map is less than 30% of the maximum exposure (threshold1) and where the gradient of the exposure map is steeper than 0.5 (threshold2).

Now all necessary files have been generated to start the sliding box source detection in the so-called local mode. The purpose of the local detection step is to provide an input list of source positions for task esplinemap (see below) which then constructs a background map from the non-source locations. Source counts are accumulated from a $3\times3$ or $5\times5$ (controlled by parameter boxsize, default value = 5, also used in the SOC pipeline) pixel window and the background is determined from the surrounding 40 ($7\times7$ pixel window) or 56 pixels ($9\times9$ pixel window), respectively. Detection of moderately extended objects (up to several times the PSF size) is achieved by searching the image in up to four consecutive detection runs each doubling the pixel size (parameter nruns, default value = 3).

Following the definition which was, e.g., used by the ROSAT mission, detection likelihoods (per energy band and total) are given for each source in the form $L=-\ln{p}$ where $p$ is the probability of Poissonian random fluctuation of the counts in the detection cell which would have resulted in at least the observed number of source counts. The value of $p$ is calculated as a function of raw source counts and raw background counts in the detection box (see eboxdetect task description for further info on the detection algorithm).

The local mode sliding box source detection is performed executing the following command:

eboxdetect usemap=no likemin=8 withdetmask=yes detmasksets=mask.fits \
           imagesets='image_b1.fits image_b2.fits image_b3.fits \
                      image_b4.fits image_b5.fits' \
           expimagesets='image_b1exp.fits image_b2exp.fits image_b3exp.fits \
                         image_b4exp.fits image_b5exp.fits' \
           pimin='200 500 2000 4500 7500' pimax='500 2000 4500 7500 12000' \
           boxlistset=eboxlist_l.fits

The local mode detection is switched on setting usemap=no. It is recommended to use a detection threshold of likemin=8 to provide a complete source list as input for esplinemap. Note, the parameter ecf will need to be specified if one already at this stage of the source detection chain is interested in the computation of source fluxes (see section on emlselect below).

In the next step, the task esplinemap makes use of the eboxdetect generated local mode source list to derive spline background maps from the non-source regions. Sources found in the local detection step at significance levels (column SIGMA of the source list) exceeding a user-specifiable threshold (input parameter mlmin) are removed from the image using a suitable PSF and source brightness dependent cut-out radius (determined to be the radius at which each source contributes more than a user-specifiable number of counts/arcsec$^2$ to the background; parameter scut):

esplinemap bkgimageset=image_b1bkg.fits imageset=image_b1.fits \
           boxlistset=eboxlist_l.fits scut=0.005 nsplinenodes=16 \
           withdetmask=yes detmaskset=mask.fits \
           withexpimage=yes expimageset=image_b1exp.fits

This commands needs to be performed for all energy bands (b1 to b5) separately. An optionally diagnostic output photon image where sources have been masked out (the so called cheesed image) can be created setting withcheese=yes and defining the name of the cheesed image via cheeseimageset. In addition, esplinemap is able to determine the background caused by OoT events registered during the readout process of the pn CCDs (§ 4.9). If the flag withootset is set, the photon event table specified in ooteventset is read and the background caused by OoT events is included in the output background map.

To improve the detection sensitivity reached before with the local mode detection, the sliding box source detection now should be performed in map mode (usemap=yes). Here the background will be taken from the background maps that were determined by esplinemap:

eboxdetect usemap=yes likemin=8 withdetmask=yes detmasksets=mask.fits \
           imagesets='image_b1.fits image_b2.fits image_b3.fits \
                      image_b4.fits image_b5.fits' \
           expimagesets='image_b1exp.fits image_b2exp.fits image_b3exp.fits \
                         image_b4exp.fits image_b5exp.fits' \
           bkgimagesets='image_b1bkg.fits image_b2bkg.fits image_b3bkg.fits \
                         image_b4bkg.fits image_b5bkg.fits' \		 
           pimin='200 500 2000 4500 7500' pimax='500 2000 4500 7500 12000' \
           boxlistset=eboxlist_m.fits

The next step is to generate the final source list with the task emldetect: a simultaneous maximum likelihood PSF fit is performed to the source count distribution in all energy bands of each involved EPIC telescope with the following free parameters: source location (RA, Dec), source extent (Gaussian sigma) and source count rate. Source location and extent are constrained to the same best-fit value in all energy bands whereas count rates are the best-fit values in each band. The PSF fitting may either be performed in single source (default) or in multi-source mode (parameter nmaxfit $>$ 1). Unless nmaxfit $>$ 1, emldetect will not detect new sources, but characterizes the detected sources by making a PSF fit. Energy conversion factors (ECFs) can be supplied for a conversion of source count rates into flux values. The ECFs for each energy band depend on the pattern selection and the filter used during the observation (see the XMM-Newton Serendipitous Source Catalogue User Guide for the list of the ECFs values used in the processing of the XMM-Newton Serendipitous Source Catalogue [2]). Here, a pn thin filter observation where patterns 0 - 4 are considered, is assumed (note that the ECF values used in the example below are just illustrative):

emldetect imagesets='image_b1.fits image_b2.fits image_b3.fits \
                     image_b4.fits image_b5.fits' \
          expimagesets='image_b1exp.fits image_b2exp.fits image_b3exp.fits \
                        image_b4exp.fits image_b5exp.fits' \
          bkgimagesets='image_b1bkg.fits image_b2bkg.fits image_b3bkg.fits \
                        image_b4bkg.fits image_b5bkg.fits' \		 
          pimin='200 500 2000 4500 7500' pimax='500 2000 4500 7500 12000' \
          boxlistset=eboxlist_m.fits \
          ecf='10.596 6.816 2.054 0.995 0.259' \
          mlmin=10 mllistset=emllist.fits

Especially in cases where an expected X-ray source is not detected by the source detection steps described above, the user might be interested in using task esensmap to generate a sensitivity map giving (rough) point source detection upper limits (vignetting corrected source count rate corresponding to the likelihood of detection as specified in the parameter file) for each image pixel. The task esensmap may either be called for individual energy bands or combinations of energy bands and instruments. The upper limits are calculated by assuming Poissonian count statistics in each $3\times3$ pixel detection cell, using the exposure and background values read from the input images. In the case of multiple input energy bands the upper limits are expressed in units of counts per seconds for the combined band (i.e. they refer to the detection sensitivity which would be achieved by adding up the photons observed in the individual bands). Below, an example on how to compute a sensitivity map for a single energy band is given:

esensmap expimagesets=image_b1exp.fits bkgimagesets=image_b1bkg.fits \
         detmasksets=mask.fits mlmin=10 sensimageset=image_b1sen.fits

This command eventually should be performed for all energy bands (b1 to b5) separately.

Alternatively, if one is interested in a sensitivity map for the combined energy range, the command to be issued could be:

esensmap expimagesets='image_b1exp.fits image_b2exp.fits image_b3exp.fits \
                       image_b4exp.fits image_b5exp.fits' \
         bkgimagesets='image_b1bkg.fits image_b2bkg.fits image_b3bkg.fits \
                       image_b4bkg.fits image_b5bkg.fits' \
         detmasksets=mask.fits mlmin=10 sensimageset=image_sen.fits


next up previous contents
Next: 4.12.3.2 Running the EPIC source detection chain Up: 4.12.3 Source detection example Previous: 4.12.3 Source detection example
European Space Agency - XMM-Newton Science Operations Centre