What is FPM Selection Information?


NICER's analysis software introduced a new concept in HEASoft 6.29 (NICERDAS 8) called "FPM Selection" information. This information allows the analyst to select and screen their NICER data, while still maintaining the accounting information needed to generate response products.

Read this thread if you want to: Understand NICER FPM Selection information

Last update: 2023-03-01


NICER is composed of 52 independently operating detectors. While each detector was designed to be identical to the other, they are in fact slightly different and may be operated separately.

While this may appear to be trivial information not worthy of consideration, the fact that NICER's detectors operate separately has an important consequence when generating the ARF respones files.

When generating the ARF, one must know exactly which detectors are active. The set of active detectors may change for several reasons:

  • the operations team may intentionally disable some detectors for maintenance reasons or because the target is expected to produce a high count rate
  • one or more detectors may have a fault condition
  • the analyst may wish to deselect certain detectors that are noisy or otherwise "bad"
Of course, the set of active detectors may change throughout an observation, or from observation to observation. Keeping track of this information becomes a difficult burden upon the analyst, and may lead to errors.

Incorrectly designating a detector as "on" when it is really "off" creates an error in the ARF of 1/52 or about 2%, which is larger than the claimed response uncertainties. Thus, one must accurately account for every active detector in order to obtain maximum calibrated accuracy.

The FPM Selection information provides a method to track and maintain which detectors are on or off, as well as enabled or disabled. This information is stored automatically as part of the "ufa" and cleaned "cl" event files for every observation processed by the nicerl2 task. This capability is available in HEASoft version 6.29 (NICERDAS 8) or later.

Frequently Asked Questions

Do I Need to Use FPM Selection Information?. No. If you have a workflow that allows you to track enabled or disabled detectors, you can continue to use it. What you lose is the ability for the response calculator 'nicerarf' to automatically calculate the weighting of each ARF. If you manually screen your event file without regard for FPM Selection information, you will need to manually specify to nicerarf which detectors have been screened out. This is discussed, with examples, on the NICER Responses analysis thread.

Do I have to do something special to get FPM Selection information? No. FPM Selection information is automatically added to every data set when processed by nicerl2 (HEASoft 6.29 / NICERDAS 8 and later).

What about old data? All NICER data can have FPM Selection information attached, which is done by reprocessing with nicerl2.

How do I keep FPM Selection information updated? As long as you use NICER tools to process your event files (nicerl2, niextract-events, nifpmsel, nimpumerge, nicerclean, etc), the FPM selection information will be maintained and updated. If you go outside the "NICER system" by using another tool to screen your event data, such as extractor, xselect, ftselect or your own software, then the FPM Selection information may be lost or become out of date, and you will be responsible to do your own accounting.

How do I manually screen data and keep FPM Selection information updated? Use the tool niextract-events to screen data by time, and nifpmsel to screen data by detector. See below for more details. These tools will maintain FPM Selection information. Since the other NICER tools use niextract-events and nifpmsel internally, those will also maintain this information.

What if I have some event data with FPM Selection information and some without? Unfortunately, there is no way to add this information without reprocessing with nicerl2. If you have mismatched event files, some with and some without FPM Selection information, the NICER tools will remove all FPM Selection information from any merged products.

Where is FPM Selection Information Stored?

FPM Selection information is added to your "ufa" and cleaned "cl" event files by the task nicerl2. It is stored as several trailing extensions in the event file that maintain the required accounting information.

Figure 1. High level layout of NICER event file with FPM Selection information. The FPM_SEL and trailing GTI extensions provide the required information.

Figure 1 shows the layout of an event file with FPM Selection information. The first three extensions, the primary HDU, the EVENTS extension and the GTI extension, are original to NICER data files and have not changed with the new system. The FPM_SEL extension contains index information about all detectors, and trailing GTI_* extensions contain exposure information for each MPU or GTI. This is the information that nicerarf uses to compute an accurate exposure per detector. In more detail, the FPM_SEL extension is an index that contains several key pieces of information. It contains a binary table of per-detector exposure information in a column called "FPM_SEL" (the same as the extension name). The table is sampled at 1 second intervals and provides the exposure of each detector in each of those one second samples. nicerarf uses this table to compute per-detector weights for accurate ARF responses. Also in this extension is a set of 56 keywords called SELDETnn, where nn is a detector ID number (00-67). The allowed values for these keywords are,

  • OFF - detector is off or has been entirely de-selected
  • NONE - detector is probably on, follows exposure recorded in GTI_MPUn extension
  • string - detector-specific time selection, name of extension containing GTI for this detector to be found in this file

Additionally there are eight or more GTI extensions that are also found in a NICER event file. These files contain the detailed, high-resolution good time information required to re-create the FPM_SEL table at any time. These extensions come in two flavors.

The extensions named GTI_MPUn (where n is the MPU number between 0-6), contain the good time of each MPU slice. In most cases, a NICER detector is "on" if its MPU is on, so it is only necessary to keep the GTI_MPUn extensions. This occurs when the keyword SELDETnn described above is 'NONE'.

However, in some cases, a detector-specific screening is applied (for example, de-selecting detector 14 for a certain time range). In that case, the detector-specific GTI is kept in an extension named GTI_DETnn, and the SELDETnn keyword is set to that extension name.

While this system seems complicated, it is not meant to be used "manually" by the typical analyst. These extensions are automatically updated by NICER selection tasks such as niextract-events, nifpmsel, nicerclean, and so on. This includes updating both the FPM_SEL table and associated SELDETnn keywords, as well as the associated GTI extensions. However, non-NICER tasks such as extractor, xselect or ftselect do not have a special understanding of this layout, and therefore they do no preserve the information when they are used. Thus, in order to maintain FPM selection information, the analyst must stay within the NICER system of tasks to process event files.

How Do I Actually Filter And Screen Data?

Please see the next article in this series, Screening Data with FPM Selection to learn about how to screen data with FPM Selections.


  • 2021-07-16 - initial draft
  • 2021-10-01 - add more information about event file layout