Page History
...
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:
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:
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