Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The best source of information about bad pixel content and statistics is the log file. Another option is to look at code. Tables in of this note contain references to both sources of information for different type of commands/detectors.

...

Code Block
title/cds/group/psdm/detector/gains2/epix10ka/panels/logs/2022/2022-04-06T163108_log_epix10ka_pedestals_calibration_xshen.txt
collapsetrue
[I] L0275 Pre-processing time 16.339 sec
Results for median over pixels intensities:
    0.500 fraction of the event spectrum is below 2901.542 ADU - pedestal estimator
    0.050 fraction of the event spectrum is below 2896.826 ADU - gate low limit
    0.950 fraction of the event spectrum is below 2906.187 ADU - gate upper limit
    event spectrum spread    median(abs(raw-med)): 1.869 ADU - spectral peak width estimator
[I] L0361 Bad pixel status:
  status  1:        6 pixel rms       > 3.898
  status  2:        0 pixel rms       < 0.944
  status  4:        0 pixel intensity > 16000 in more than 0.1 fraction of events
  status  8:        0 pixel intensity < 1 in more than 0.1 fraction of events
  status 16:        2 pixel average   > 3821.78
  status 32:        0 pixel average   < 1986.12

Algorithm

Bad pixel statistics output

raw data found/selected in 999 events

[I] L0688 begin data summary stage

[I] L0111 evaluate_limits RMS: ave=4.783 std=1.303 limits low=0.001 high=12.604

[I] L0111 evaluate_limits AVE: ave=14191.873 std=457.903 limits low=11444.455 high=16000.000

[I] L0733 bad pixel status:

status 1: 244 pixel rms > 12.604

status 2: 550 pixel rms < 0.001

status 4: 418 pixel intensity > 16000 in more than 0.1 fraction of events

status 8: 132 pixel intensity < 1 in more than 0.1 fraction of events

status 16: 0 pixel average > 16000

status 32: 918 pixel average < 11444.5

[I] L0108 status 64: 139 pixel with bad gain mode switch. For jungfrau only

Dark data processing algorithm

It was evolved for a long time. The most advanced version, implemented for calibration of jungfrau panels, is described here.

  1. dark raw data is accumulated in array block[nrecs1,<2d-shape-of-data>] for a portion of events nrecs1=50. It would be nice to accumulate it for entire volume of events (nrecs=1000), but some of detectors are too big, that causes problem with memory.
  2. pre-process data from block, use median and quantile for fraclo=0.05 and fcachi=0.95 fraction of spectral events to estimate mean value and valid gate intensity limits, resperctively.
  3. use gated average algorithm to process events in block and all other events (nrecs=1000) requested for dark processing.
  4. in summary, evaluate mean, rms, max/min values, and process a few statistical cumulative arrays, which produces information about bad pixels.

Bad pixel status algorithms

For arrays of per-pixel mean intensity and rms, obtained in gated average algorithm, we use parameters of absolute limits and number of sigma

    int_lo=1, int_hi=16000, intnlo=6.0, intnhi=6.0

    rms_lo=0.001, rms_hi=16000, rmsnlo=6.0, rmsnhi=6.0

and evaluate limits for good parameters.

Code Block
titleevaluate_limits
collapsetrue
def evaluate_limits(arr, nneg=5, npos=5, lim_lo=1, lim_hi=16000, ...):
    ave, std = (arr.mean(), arr.std())
    lo = ave-nneg*std if nneg>0 else lim_lo
    hi = ave+npos*std if npos>0 else lim_hi
    lo, hi = max(lo, lim_lo), min(hi, lim_hi)
    return lo, hi

status 1:  pixel rms exceeds its maximal value for good pixels

status 2: pixel rms lower than its minimal value for good pixels

status 4: pixel intensity exceeds int_hi=16000 in more than fraclm=0.1 fraction of events

status 8: pixel intensity lower than int_lo=1 in more than fraclm=0.1 fraction of events

status 16: pixel average intensity exceeds its maximal value for good pixels

status 32: pixel average intensity lower than its minimal value for good pixels

status 64: for jungfrau only pixel with bad gain mode switch.

References