Setup environment
ssh pslogin
ssh psana
cd <your-directory>
sit_setup
Examples for xpp50312
Pedestals
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
:
[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
Run psana with this configuration file:
psana -c ana-xpp50312/psana-xpp50312-r0082-pedestals.cfg
In a few seconds this job produces two text files with averaged pedestals and rms values as one-dimensional (143560) array for CSPad2x2. Actual shape of these arrays is assumed to be (185,388,2).
Using, for example, a simple python script these files may be plotted
./PlotCSPad2x2ArrayFromFile.py cspad-pedestals-ave-xpp50312-r0082.dat 700 1400
./PlotCSPad2x2ArrayFromFile.py cspad-pedestals-rms-xpp50312-r0082.dat 0 20
Averaged pedestals:
RMS of pedestals:
Calibration
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:
ana-xpp50312/calib/CsPad2x2::CalibV1/XppGon.0:Cspad2x2.0/pixel_gain/ pixel_status/ pedestals/ common_mode/
and populate them with all necessary for analysis files. In particular, for pedestals we can use:
cp cspad-pedestals-ave-xpp50312-r0082.dat ana-xpp50312/calib/CsPad2x2::CalibV1/XppGon.0:Cspad2x2.0/pedestals/82-end.data
Another file for common mode correction common_mode/0-end.data
usually looks like
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.
Analysis
For this example we create the configuration file ana-xpp50312/psana-xpp50312-r0092.cfg
:
[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
This configuration file provides parameters for psana and three modules.
So far we setup calibration files for cspad_mod.CsPadCalib
module for pedestal subtraction and common mode correction. Module CSPadPixCoords.CSPad2x2ImageProducer
produces the CSPad2x2 image and saves it in the event. Module SaveImageInFile
saves indicated image(s) in the file(s).
Run psana with this configuration file:
psana -c ana-xpp50312/psana-xpp50312-r0092.cfg
Plot obtained text file with an image:
./PlotCameraImageFromFile.py cspad2x2-r0092-2012-07-20-154000.855680176.txt -20 120
Playing with doPedestals
and doCommonMode
parameters, we could get different images.
Raw data without any correction:
Pedestals subtracted:
Pedestals subtracted and common mode corrected:
Examples for meca6113
Pedestals
Configuration file for dark run processing (assuming that meca6113-r0018 is a dark run...):
# 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:
psana -c psana-meca6113-r0018-cspad2x2-pedestals.cfg
which produces 6 files with average and rms values for 3 detectors:
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
Calibration
Default calibration in psana will be done if files are located in right place. So, they were deployed as:
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