Page History
Table of Contents |
---|
Setup environment
ssh pslogin
ssh psana
cd <your-directory>
sit_setup
...
In this section we show how to get CSPad2x2 pedestals using psana for "dark" run.
For this example we create the configuration file ana-xpp50312/psana-xpp50312-r0082-pedestals.cfg
:
Code Block |
---|
[psana]
files = /reg/d/ana01/xpp/xpp50312/xtc/e178-r0082-s04-c00.xtc
modules = cspad_mod.CsPad2x2Pedestals
[cspad_mod.CsPad2x2Pedestals]
#source = DetInfo(:Cspad2x2)
source = DetInfo(XppGon.0:Cspad2x2.0)
output = cspad-pedestals-ave-xpp50312-r0082.dat
noise = cspad-pedestals-rms-xpp50312-r0082.dat
|
...
By default psana assumes that all calibration files are located in the pre-defined directory
/reg/d/psdm/<INSTRUMENT>/<experiment>/calib/
as explained in Locating calibration files. However, for analysis it may be convenient to re-define the calibration directory through the psana parameters. In order to fulfill the naming conventions we have to create a tree of the calibration sub-directories somewhere in local user's space, for example:
Code Block |
---|
ana-xpp50312/calib/CsPad2x2::CalibV1/XppGon.0:Cspad2x2.0/pixel_gain/
pixel_status/
pedestals/
common_mode/
|
...
Another file for common mode correction common_mode/0-end.data
usually looks like
Code Block |
---|
1 50 10
|
The files for pixel_status
and pixel_gain
have the same structure like for pedestals
and can be supplied, if necessary, depending and based on analysis.
...
For this example we create the configuration file ana-xpp50312/psana-xpp50312-r0092.cfg
:
Code Block |
---|
[psana]
files = /reg/d/ana01/xpp/xpp50312/xtc/e178-r0092-s04-c00.xtc
experiment = xpp50312
calib-dir = ana-xpp50312/calib
events = 10
modules = cspad_mod.CsPadCalib CSPadPixCoords.CSPad2x2ImageProducer CSPadPixCoords.SaveImageInFile
[cspad_mod.CsPadCalib]
inputKey =
outputKey = calibrated
doPedestals = yes
doPixelStatus = no
doCommonMode = yes
doPixelGain = no
[CSPadPixCoords.CSPad2x2ImageProducer]
source = DetInfo(:Cspad2x2)
inkey = calibrated
outimgkey = Image
tiltIsApplied = true
print_bits = 15
[CSPadPixCoords.SaveImageInFile]
source = DetInfo(:Cspad2x2)
key = Image
fname = cspad2x2
eventSave = 5
#saveAll = true
|
...
Configuration file for dark run processing (assuming that meca6113-r0018 is a dark run...) psana-meca6113-r0018-cspad2x2-pedestals.cfg:
Code Block | ||
---|---|---|
| ||
# File: psana-meca6113-r0018-cspad2x2-pedestals.cfg
[psana]
files = /reg/d/psdm/mec/meca6113/xtc/e332-r0018-s03-c00.xtc
modules = cspad_mod.CsPad2x2Pedestals:1 \
cspad_mod.CsPad2x2Pedestals:2 \
cspad_mod.CsPad2x2Pedestals:3
[cspad_mod.CsPad2x2Pedestals:1]
source = DetInfo(MecTargetChamber.0:Cspad2x2.1)
output = pedestals-ave-meca6113-r0018-Cspad2x2.1.dat
noise = pedestals-rms-meca6113-r0018-Cspad2x2.1.dat
[cspad_mod.CsPad2x2Pedestals:2]
source = DetInfo(MecTargetChamber.0:Cspad2x2.2)
output = pedestals-ave-meca6113-r0018-Cspad2x2.2.dat
noise = pedestals-rms-meca6113-r0018-Cspad2x2.2.dat
[cspad_mod.CsPad2x2Pedestals:3]
source = DetInfo(MecTargetChamber.0:Cspad2x2.3)
output = pedestals-ave-meca6113-r0018-Cspad2x2.3.dat
noise = pedestals-rms-meca6113-r0018-Cspad2x2.3.dat
|
To produce files with pedestals use command:
Code Block | ||
---|---|---|
| ||
psana -c psana-meca6113-r0018-cspad2x2-pedestals.cfg
|
which produces 6 files with average and rms values for 3 detectors:
Code Block | ||
---|---|---|
| ||
pedestals-ave-meca6113-r0018-Cspad2x2.1.dat
pedestals-ave-meca6113-r0018-Cspad2x2.2.dat
pedestals-ave-meca6113-r0018-Cspad2x2.3.dat
pedestals-rms-meca6113-r0018-Cspad2x2.1.dat
pedestals-rms-meca6113-r0018-Cspad2x2.2.dat
pedestals-rms-meca6113-r0018-Cspad2x2.3.dat
|
...
Default calibration in psana will be done if files are located in right place. So, they were deployed as:
Code Block | ||
---|---|---|
| ||
cp pedestals-ave-meca6113-r0018-Cspad2x2.1.dat /reg/d/psdm/mec/meca6113/calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.1/pedestals/18-end.data
cp pedestals-ave-meca6113-r0018-Cspad2x2.2.dat /reg/d/psdm/mec/meca6113/calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.2/pedestals/18-end.data
cp pedestals-ave-meca6113-r0018-Cspad2x2.3.dat /reg/d/psdm/mec/meca6113/calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.3/pedestals/18-end.data
|
...
Configuration file for psana psana-meca6113-r0028-cspad2x2-tiff.cfg:
Code Block | ||
---|---|---|
| ||
# File: psana-meca6113-r0028-cspad2x2-tiff.cfg
#
# To run this script use command:
# % psana -c psana-meca6113-r0028-cspad2x2-tiff.cfg
#
# Also useful command:
# % psana -m EventKeys -n 10 /reg/d/psdm/mec/meca6113/xtc/e332-r0028-s03-c00.xtc
#
[psana]
files = /reg/d/psdm/mec/meca6113/xtc/e332-r0028-s03-c00.xtc
#calib-dir = ./calib
# Default calibration directory:
# calib-dir = /reg/d/psdm/mec/meca6113/calib
modules = cspad_mod.CsPadCalib:1 \
cspad_mod.CsPadCalib:2 \
cspad_mod.CsPadCalib:3 \
CSPadPixCoords.CSPad2x2ImageProducer:1 \
CSPadPixCoords.CSPad2x2ImageProducer:2 \
CSPadPixCoords.CSPad2x2ImageProducer:3 \
ImgAlgos.ImgSaveInFile:1 \
ImgAlgos.ImgSaveInFile:2 \
ImgAlgos.ImgSaveInFile:3
# events = 5
[cspad_mod.CsPadCalib:1]
source = DetInfo(MecTargetChamber.0:Cspad2x2.1)
inputKey =
outputKey = calibrated_arr1
doPedestals = yes
doPixelStatus = no
doCommonMode = no
[cspad_mod.CsPadCalib:2]
source = DetInfo(MecTargetChamber.0:Cspad2x2.2)
inputKey =
outputKey = calibrated_arr2
doPedestals = yes
doPixelStatus = no
doCommonMode = no
[cspad_mod.CsPadCalib:3]
source = DetInfo(MecTargetChamber.0:Cspad2x2.3)
inputKey =
outputKey = calibrated_arr3
doPedestals = yes
doPixelStatus = no
doCommonMode = no
[CSPadPixCoords.CSPad2x2ImageProducer:1]
calibDir = /reg/d/psdm/mec/meca6113/calib
typeGroupName = CsPad2x2::CalibV1
source = DetInfo(MecTargetChamber.0:Cspad2x2.1)
inkey = calibrated_arr1
outimgkey = Image
tiltIsApplied = true
useWidePixCenter = false
print_bits = 15
[CSPadPixCoords.CSPad2x2ImageProducer:2]
calibDir = /reg/d/psdm/mec/meca6113/calib
typeGroupName = CsPad2x2::CalibV1
source = DetInfo(MecTargetChamber.0:Cspad2x2.2)
inkey = calibrated_arr2
outimgkey = Image
tiltIsApplied = true
useWidePixCenter = false
print_bits = 15
[CSPadPixCoords.CSPad2x2ImageProducer:3]
calibDir = /reg/d/psdm/mec/meca6113/calib
typeGroupName = CsPad2x2::CalibV1
source = DetInfo(MecTargetChamber.0:Cspad2x2.3)
inkey = calibrated_arr3
outimgkey = Image
tiltIsApplied = true
useWidePixCenter = false
print_bits = 15
[ImgAlgos.ImgSaveInFile:1]
source = DetInfo(MecTargetChamber.0:Cspad2x2.1)
key = Image
fname = cspad2x2.1
#ftype = txt
ftype = tiff
saveAll = true
print_bits = 3
#eventSave = 5
[ImgAlgos.ImgSaveInFile:2]
source = DetInfo(MecTargetChamber.0:Cspad2x2.2)
key = Image
fname = cspad2x2.2
#ftype = txt
ftype = tiff
saveAll = true
print_bits = 3
#eventSave = 5
[ImgAlgos.ImgSaveInFile:3]
source = DetInfo(MecTargetChamber.0:Cspad2x2.3)
key = Image
fname = cspad2x2.3
#ftype = txt
ftype = tiff
saveAll = true
print_bits = 3
#eventSave = 5
|
To produce files with images in tiff format use command:
Code Block | ||
---|---|---|
| ||
psana -c psana-meca6113-r0028-cspad2x2-tiff.cfg
|
New files will be produced with names containing time stamp:
Code Block | ||
---|---|---|
| ||
cspad2x2.1-r0028-20131013-155538.754093925.tiff
cspad2x2.2-r0028-20131013-155538.754093925.tiff
cspad2x2.3-r0028-20131013-155538.754093925.tiff
|
Example of image and spectral plots for 3 detectors, respectively:
Display tiff image
To display image from tiff file use command:
Code Block | ||
---|---|---|
| ||
display <file-name>.tiff
|
then
- left mouse click on image
- click on "Enhance" button
- click on "Equalize" button
Examples for meca1113
Create images in tiff format:
Configuration file for psana psana-meca1113-r0376-cspad-cspad2x2-tiff.cfg:
Code Block |
---|
# Run this script:
# psana -c psana-meca1113-r0376-cspad-cspad2x2-tiff.cfg
#
# Useful commands:
# psana -m EventKeys -n 5 exp=meca1113:run=376
# or
# psana -m EventKeys -n 5 /reg/d/psdm/mec/meca1113/xtc/e356-r0376-s03-c00.xtc
[psana]
# Default calibration directory:
# calib-dir = /reg/d/psdm/mec/meca1113/calib
files = exp=meca1113:run=376
events = 5
#skip-events = 0
modules = cspad_mod.CsPadCalib \
CSPadPixCoords.CSPadImageProducer:0 \
CSPadPixCoords.CSPad2x2ImageProducer:1 \
CSPadPixCoords.CSPad2x2ImageProducer:2 \
CSPadPixCoords.CSPad2x2ImageProducer:3 \
CSPadPixCoords.CSPad2x2ImageProducer:4 \
ImgAlgos.ImgSaveInFile:0 \
ImgAlgos.ImgSaveInFile:1 \
ImgAlgos.ImgSaveInFile:2 \
ImgAlgos.ImgSaveInFile:3 \
ImgAlgos.ImgSaveInFile:4 \
ImgAlgos.Tahometer
# Calibrate all CSPAD and CSPAD2x2
[cspad_mod.CsPadCalib]
inputKey =
outputKey = calibrated_arr
doPedestals = yes
doPixelStatus = no
doCommonMode = yes
[CSPadPixCoords.CSPadImageProducer:0]
#calibDir = /reg/d/psdm/mec/meca1113/calib
#typeGroupName = CsPad::CalibV1
source = DetInfo(MecTargetChamber.0:Cspad.0)
key = calibrated_arr
imgkey = image0
tiltIsApplied = true
print_bits = 3
[CSPadPixCoords.CSPad2x2ImageProducer:1]
#calibDir = /reg/d/psdm/mec/meca1113/calib
#typeGroupName = CsPad2x2::CalibV1
source = DetInfo(MecTargetChamber.0:Cspad2x2.1)
inkey = calibrated_arr
outimgkey = image1
tiltIsApplied = true
useWidePixCenter = false
print_bits = 3
[CSPadPixCoords.CSPad2x2ImageProducer:2]
#calibDir = /reg/d/psdm/mec/meca1113/calib
#typeGroupName = CsPad2x2::CalibV1
source = DetInfo(MecTargetChamber.0:Cspad2x2.2)
inkey = calibrated_arr
outimgkey = image2
tiltIsApplied = true
useWidePixCenter = false
print_bits = 3
[CSPadPixCoords.CSPad2x2ImageProducer:3]
#calibDir = /reg/d/psdm/mec/meca1113/calib
#typeGroupName = CsPad2x2::CalibV1
source = DetInfo(MecTargetChamber.0:Cspad2x2.3)
inkey = calibrated_arr
outimgkey = image3
tiltIsApplied = true
useWidePixCenter = false
print_bits = 3
[CSPadPixCoords.CSPad2x2ImageProducer:4]
#calibDir = /reg/d/psdm/mec/meca1113/calib
#typeGroupName = CsPad2x2::CalibV1
source = DetInfo(MecTargetChamber.0:Cspad2x2.4)
inkey = calibrated_arr
outimgkey = image4
tiltIsApplied = true
useWidePixCenter = false
print_bits = 3
[ImgAlgos.ImgSaveInFile:0]
source = DetInfo(MecTargetChamber.0:Cspad.0)
key = image0
fname = cspad.0
#ftype = txt
ftype = tiff
saveAll = true
print_bits = 3
#eventSave = 5
[ImgAlgos.ImgSaveInFile:1]
source = DetInfo(MecTargetChamber.0:Cspad2x2.1)
key = image1
fname = cspad2x2.1
#ftype = txt
ftype = tiff
saveAll = true
print_bits = 3
#eventSave = 5
[ImgAlgos.ImgSaveInFile:2]
source = DetInfo(MecTargetChamber.0:Cspad2x2.2)
key = image2
fname = cspad2x2.2
#ftype = txt
ftype = tiff
saveAll = true
print_bits = 3
#eventSave = 5
[ImgAlgos.ImgSaveInFile:3]
source = DetInfo(MecTargetChamber.0:Cspad2x2.3)
key = image3
fname = cspad2x2.3
#ftype = txt
ftype = tiff
saveAll = true
print_bits = 3
#eventSave = 5
[ImgAlgos.ImgSaveInFile:4]
source = DetInfo(MecTargetChamber.0:Cspad2x2.4)
key = image4
fname = cspad2x2.4
#ftype = txt
ftype = tiff
saveAll = true
print_bits = 3
#eventSave = 5
[ImgAlgos.Tahometer]
dn = 100
print_bits = 7
|
Command:
% psana -c psana-meca1113-r0376-cspad-cspad2x2-tiff.cfg
or for other runs:
% psana -c psana-meca1113-r0376-cspad-cspad2x2-tiff.cfg exp=meca1113:run=378
will run over 5 events and save images for 1 cspad and 4 cspad2x2 detectors in 16-bit tiff files:
cspad.0-r0376-e0000000#-20131110-101607.736131763.tiff
cspad2x2.#-r0376-e0000000#-20131110-101546.244253562.tiff
Display tiff image
To display image from tiff file use command:
Code Block | ||
---|---|---|
| ||
display <file-name>.tiff
|
then
- left mouse click on image
- click on "Enhance" button
- click on "Equalize" button
Check tiff file
To check tiff file format one may use command:
% identify -verbose cspad.0-r0376-e00000001-20131110-101546.244253562.tiff
which prints information about tiff file structure.
Code Block |
---|
% identify -verbose cspad.0-r0376-e00000001-20131110-101546.244253562.tiff
Image: cspad.0-r0376-e00000001-20131110-101546.244253562.tiff
Format: TIFF (Tagged Image File Format)
Class: PseudoClass
Geometry: 1750x1750
Type: Grayscale
Endianess: MSB
Colorspace: Gray
Channel depth:
Gray: 16-bits
Channel statistics:
Gray:
Min: 0 (0)
Max: 16383 (0.249989)
Mean: 1023.37 (0.0156156)
Standard deviation: 2132.77 (0.0325439)
Colors: 65536
...
|
References