Versions Compared

Key

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

...

Code Block
xtcexplorer /reg/d/psdm/mec/meca1113/xtc/e356-r0376-s03-c00.xtc

Pedestals and bad pixels

 

The configuration file for psana psana-meca1113-r0045-cspad-cspad2x2-dark-hotpix.cfg can be used to produce calibration files with pedestals (dark rate) and mask of bad pixels:

Code Block
# Run this script:
# psana -c psana-meca1113-r0045-cspad-cspad2x2-dark-hotpix.cfg

[psana]
# Default calibration directory:
# calib-dir = /reg/d/psdm/mec/meca1113/calib

files = exp=meca1113:run=45
events = 400
#skip-events = 0

modules = CSPadPixCoords.CSPadNDArrProducer \
          CSPadPixCoords.CSPad2x2NDArrProducer:1 \
          CSPadPixCoords.CSPad2x2NDArrProducer:2 \
          CSPadPixCoords.CSPad2x2NDArrProducer:3 \
          CSPadPixCoords.CSPad2x2NDArrProducer:4 \
          ImgAlgos.NDArrAverage \
          ImgAlgos.NDArrAverage:1 \
          ImgAlgos.NDArrAverage:2 \
          ImgAlgos.NDArrAverage:3 \
          ImgAlgos.NDArrAverage:4 \
          ImgAlgos.Tahometer


[CSPadPixCoords.CSPadNDArrProducer]
source       = MecTargetChamber.0:Cspad.0
inkey        = 
outkey       = cspad_ndarr
outtype      = int16
is_fullsize  = yes
print_bits   = 3

[CSPadPixCoords.CSPad2x2NDArrProducer:1]
source  = MecTargetChamber.0:Cspad2x2.1
inkey   = 
outkey  = cspad2x2.1_ndarr
outtype = int16
print_bits  = 3


[CSPadPixCoords.CSPad2x2NDArrProducer:2]
source  = MecTargetChamber.0:Cspad2x2.2
inkey   = 
outkey  = cspad2x2.2_ndarr
outtype = int16
print_bits  = 3


[CSPadPixCoords.CSPad2x2NDArrProducer:3]
source  = MecTargetChamber.0:Cspad2x2.3
inkey   = 
outkey  = cspad2x2.3_ndarr
outtype = int16
print_bits  = 3


[CSPadPixCoords.CSPad2x2NDArrProducer:4]
source  = MecTargetChamber.0:Cspad2x2.4
inkey   = 
outkey  = cspad2x2.4_ndarr
outtype = int16
print_bits  = 3


[ImgAlgos.NDArrAverage]
source       = MecTargetChamber.0:Cspad.0
key          = cspad_ndarr
avefile      = cspad.0-ave
rmsfile      = cspad.0-rms
maskfile     = cspad.0-msk
hotpixfile   = cspad.0-hot
thr_rms_ADU  = 10
thr_min_ADU  = 2
thr_max_ADU  = 65000
print_bits   = 93


[ImgAlgos.NDArrAverage:1]
source       = MecTargetChamber.0:Cspad2x2.1
key          = cspad2x2.1_ndarr
avefile      = cspad2x2.1-ave
rmsfile      = cspad2x2.1-rms
maskfile     = cspad2x2.1-msk
hotpixfile   = cspad2x2.1-hot
#evts_stage1  = 100
#gate_width1  = 100.
thr_rms_ADU  = 10
thr_min_ADU  = 2
thr_max_ADU  = 65000
print_bits   = 93


[ImgAlgos.NDArrAverage:2]
source       = MecTargetChamber.0:Cspad2x2.2
key          = cspad2x2.2_ndarr
avefile      = cspad2x2.2-ave
rmsfile      = cspad2x2.2-rms
maskfile     = cspad2x2.2-msk
hotpixfile   = cspad2x2.2-hot
#evts_stage1  = 100
#gate_width1  = 100.
thr_rms_ADU  = 10
thr_min_ADU  = 2
thr_max_ADU  = 65000
print_bits   = 93


[ImgAlgos.NDArrAverage:3]
source       = MecTargetChamber.0:Cspad2x2.3
key          = cspad2x2.3_ndarr
avefile      = cspad2x2.3-ave
rmsfile      = cspad2x2.3-rms
maskfile     = cspad2x2.3-msk
hotpixfile   = cspad2x2.3-hot
#evts_stage1  = 100
#gate_width1  = 100.
thr_rms_ADU  = 10
thr_min_ADU  = 2
thr_max_ADU  = 65000
print_bits   = 93


[ImgAlgos.NDArrAverage:4]
source       = MecTargetChamber.0:Cspad2x2.4
key          = cspad2x2.4_ndarr
avefile      = cspad2x2.4-ave
rmsfile      = cspad2x2.4-rms
maskfile     = cspad2x2.4-msk
hotpixfile   = cspad2x2.4-hot
#evts_stage1  = 100
#gate_width1  = 100.
thr_rms_ADU  = 10
thr_min_ADU  = 2
thr_max_ADU  = 65000
print_bits   = 93


[ImgAlgos.Tahometer]
dn         = 100
print_bits = 7

This script

  • runs through 400 events of the xtc file exp=meca1113:run=45,
  • uses CSPadNDArrProducer and CSPad2x2NDArrProducer modules to get cspad and four cspad2x2 data  and put them as universal ndarray<T,3> objects in psana event store,

  • uses NDArrAverage module to evaluate and save in file average, rms, mask, and hot pixel map for all array elements:

     

    No Format
    cspad.0-ave-meca1113-r0045.dat
    cspad.0-hot-meca1113-r0045.dat
    cspad.0-msk-meca1113-r0045.dat
    cspad.0-rms-meca1113-r0045.dat
    cspad2x2.1-ave-meca1113-r0045.dat
    cspad2x2.1-hot-meca1113-r0045.dat
    cspad2x2.1-msk-meca1113-r0045.dat
    cspad2x2.1-rms-meca1113-r0045.dat
    cspad2x2.2-ave-meca1113-r0045.dat
    cspad2x2.2-hot-meca1113-r0045.dat
    cspad2x2.2-msk-meca1113-r0045.dat
    cspad2x2.2-rms-meca1113-r0045.dat
    cspad2x2.3-ave-meca1113-r0045.dat
    cspad2x2.3-hot-meca1113-r0045.dat
    cspad2x2.3-msk-meca1113-r0045.dat
    cspad2x2.3-rms-meca1113-r0045.dat
    cspad2x2.4-ave-meca1113-r0045.dat
    cspad2x2.4-hot-meca1113-r0045.dat
    cspad2x2.4-msk-meca1113-r0045.dat
    cspad2x2.4-rms-meca1113-r0045.dat

NDArrAverage module has a bunch of parameters which depend on particular detector/experiments and need to be adjusted looking at spectra of average and rms values from these files. For example averaged image and spectrum and rms spectrum of pixel intensities for

cspad2x2.1-ave-meca1113-r0045.dat and cspad2x2.1-rms-meca1113-r0045.dat
are shown in plots:

Image Added Image Added Image Added

These spectra allow to use confidently parameters like

  • thr_rms_ADU = 10
  • thr_min_ADU = 2
  • thr_max_ADU = 65000

Files with mask and hot pixel map contain opposite meaning of 0/1 for bad/good pixels:

Image Added Image Added

Calibration

Default calibration in psana will be done if files are located in right place. So, they were deployed as:

No Format
cp cspad.0-ave-meca1113-r0045.dat    /reg/d/psdm/mec/meca1113/calib/CsPad::CalibV1/MecTargetChamber.0:Cspad.0/pedestals/45-end.data
cp cspad2x2.1-ave-meca1113-r0045.dat /reg/d/psdm/mec/meca1113/calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.1/pedestals/45-end.data
cp cspad2x2.2-ave-meca1113-r0045.dat /reg/d/psdm/mec/meca1113/calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.2/pedestals/45-end.data
...
cp cspad.0-hot-meca1113-r0045.dat    /reg/d/psdm/mec/meca1113/calib/CsPad::CalibV1/MecTargetChamber.0:Cspad.0/pixel_status/45-end.data
cp cspad2x2.1-hot-meca1113-r0045.dat /reg/d/psdm/mec/meca1113/calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.1/pixel_status/45-end.data
...

 

 

Create images in tiff format

...

 NDArrAverage module