Deadtime

Deadtime fraction

DT: the fraction of counts or time lost due to pulse processing

1-DT: the fraction of counts or time left after pulse processing

COUNTS_MEASURED = COUNTS_REAL * (1-DT)
LIVE_TIME = REAL_TIME * (1-DT)

LIVE_TIME: the effective time of COUNTS_MEASURED

REAL_TIME: the effective time of COUNTS_REAL

Deadtime correction

Counts that would have been measured if there was no pulse loss:

    COUNTS_REAL = COUNTS_MEASURED * DT_COR
<=> DT_COR = 1 / (1-DT) = REAL_TIME / LIVE_TIME

Counts that would have been measured if there was no pulse loss and the exposure time was not REAL_TIME but NORM_TIME:

    COUNTS_NORM = COUNTS_MEASURED * LT_COR
<=> LT_COR = NORM_TIME / LIVE_TIME

The latter is referred to as a live time correction. So deadtime correction is a special case of live time correction with NORM_TIME=REAL_TIME. Both cannot be applied at the same time: only one or the other. The goal is to correct measured counts to a value that would have been measured in a specific time with a perfect detector (one that does not loose counts and therefore does not loose time).

Counting pulses

There are three types of “counts”:

  • PHOTONS: the real number of pulses

  • TRIGGERS: the number of pulses being detected

  • TOTAL_EVENTS: the number of pulses being accepted

Pulses are lost whenever counting something:

  • PHOTONS → TRIGGERS: pulses are lost due to overlap and

    electronics overhead, e.g. resets in a dual-channel signal processor

  • TRIGGERS → TOTAL_EVENTS: pulses are rejected if they do

    not fulfill certain criteria

Loss of pulses: PHOTONS ➡ TRIGGERS

    DT_TRIGGERS   = (PHOTONS-TRIGGERS)/PHOTONS       # lost fraction in counts
                = (REAL_TIME-LT_TRIGGERS)/REAL_TIME  # lost fraction in time
<=> 1-DT_TRIGGERS = TRIGGERS/PHOTONS                 # remaining fraction in counts
                = LT_TRIGGERS/REAL_TIME              # remaining fraction in time

LT_TRIGGERS: time not occupied by detected pulses and electronics overhead (e.g. resets)

Loss of pulses: PHOTONS ➡ TOTAL_EVENTS

    DT_EVENTS   = (PHOTONS-TOTAL_EVENTS)/PHOTONS    # lost fraction in counts
                = (REAL_TIME-LT_EVENTS)/REAL_TIME   # lost fraction in time
<=> 1-DT_EVENTS = TOTAL_EVENTS/PHOTONS              # remaining fraction in counts
                = LT_EVENTS/REAL_TIME               # remaining fraction in time

    LT_EVENTS   = REAL_TIME.TOTAL_EVENTS/PHOTONS
                = LT_TRIGGERS.TOTAL_EVENTS/TRIGGERS

LT_EVENTS (called “energy live time” by XIA): time remaining after loss due to pulse processing (pulse rejection and electronics overhead)

Correcting MCA counts

Correct measured counts to counts of a perfect detector with exposure time REAL_TIME:

MCA_REAL = MCA * DT_COR

DT_COR = 1/(1-DT_EVENTS) = REAL_TIME/LT_EVENTS = PHOTONS/TOTAL_EVENTS

Correct measured counts to counts of a perfect detector with exposure time NORM_TIME:

MCA_NORM = MCA * LT_COR

LT_COR = NORM_TIME/LT_EVENTS
LT_EVENTS = LT_TRIGGERS.TOTAL_EVENTS/TRIGGERS

XIA definitions

XIA defines the following quantities:

OCR       = TOTAL_EVENTS/REAL_TIME
ICR       = TRIGGERS/LT_TRIGGERS
LT_ENERGY = LT_EVENTS

As a result we can express LT_EVENTS and DT_COR as:

LT_EVENTS = LT_TRIGGERS.TOTAL_EVENTS/TRIGGERS
        = TOTAL_EVENTS/ICR
        = REAL_TIME.OCR/ICR

DT_COR = REAL_TIME/LT_EVENTS
    = REAL_TIME.ICR/TOTAL_EVENTS
    = ICR/OCR

You can use any of these expressions depending on which quantities are provided with the MCA data. Most data processing tools can handle only deadtime correction with LT_EVENTS.

XMAP/MERCURY/SATURN

TOTAL_EVENTS = EVENTS+OVER+UNDER

FALCONX

TRIGGERS     = PULSES_ACCEPTED + PULSES_REJECTED
TOTAL_EVENTS = PULSES_ACCEPTED