Versions Compared

Key

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

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
bgColor#DDFFFF

# 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
bgColor#DDFFFF

psana -c psana-meca6113-r0018-cspad2x2-pedestals.cfg

which produces 6 files with average and rms values for 3 detectors:

Code Block
bgColor#AAFFFF

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
bgColor#AAFFFF

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
bgColor#AAFFFF

# 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
bgColor#DDFFFF

psana -c psana-meca6113-r0028-cspad2x2-tiff.cfg

New files will be produced with names containing time stamp:

Code Block
bgColor#AAFFFF

 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
bgColor#DDFFFF

display <file-name>.tiff

then

  1. left mouse click on image
  2. click on "Enhance" button
  3. 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
bgColor#DDFFFF
display <file-name>.tiff

then

  1. left mouse click on image
  2. click on "Enhance" button
  3. 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