Page History
Content
...
Table of Contents |
---|
This note describes the python modules which help to get calibrated geometry information for CSPAD2x2.
...
Class name | Functionality |
---|---|
CSPAD2x2CalibPars.py | Provides access to the calibration parameters through the DB |
CSPAD2x2CalibParsDefault.py | Sets default values for all calibration types |
CSPAD2x2Examples.py | Example of how to get calibrated data, get image, and plot it |
CSPAD2x2PixCoords.py | Provides access to the pixel coordinate arrays |
PixCoords2x1.py | Provides access to the pixel coordinate arrays for 2x1 sensor |
Interface
Mandatory imports
Code Block |
---|
import CSPAD2x2PixCoords as pixcoor import CSPAD2x2CalibPars as calpars |
Code Block |
Define path to the directory with calibration types and instantiate the calib
object
...
Code Block |
---|
import GlobalGraphics as gg my_range = None my_range = (-10,40) gg.plotImageLarge(img2d, range=my_range) gg.plotSpectrum(img2d, range=my_range) gg.show() |
Code example
Code of the module CSPAD2x2Examples.py
:
Code Block |
---|
import sys
import numpy as np
import CSPAD2x2PixCoords as pixcoor
import CSPAD2x2CalibPars as calpars
import HDF5Methods as hm
import GlobalGraphics as gg
#------------------------------
def test_cspad2x2_calib() :
#======= Input parameters
Ndet = 5
run = 180
path = '/reg/d/psdm/mec/mec73313/calib/CsPad2x2::CalibV1/MecTargetChamber.0:Cspad2x2.%1d/' % Ndet
#path = '/reg/neh/home1/dubrovin/LCLS/CSPad2x2Alignment/calib-cspad2x2-0%1d-2013-02-13/' % Ndet
#fname = '/reg/d/psdm/mec/mec73313/hdf5/mec73313-r%04d.h5' % run
fname = '/reg/neh/home1/dubrovin/LCLS/HDF5Analysis-v01/PyCSPadImage/src/mec73313-r%04d.h5' % run
dsname = '/Configure:0000/Run:0000/CalibCycle:0000/CsPad2x2::ElementV1/MecTargetChamber.0:Cspad2x2.%1d/data' % Ndet
#======= Get calibration parameters
calib = calpars.CSPAD2x2CalibPars(path, run, ['center', 'tilt', 'pedestals'])
#======= Get CSPAD2x2 pixel coordinate arrays
coord = pixcoor.CSPAD2x2PixCoords(calib)
X,Y = coord.get_cspad2x2_pix_coordinate_arrays_pix()
#======= Get CSPAD2x2 pedestals array
peds_arr = calib.getCalibPars('pedestals')
#======= Get data array from hdf5 dataset
data_arr = hm.getDataSetForOneEvent(fname, dsname, event=0) - peds_arr
ord_arr = calpars.data2x2ToTwo2x1(data_arr)
#======= Compose and plot CSPAD2x2 image from coordinate and intensity arrays
img2d = pixcoor.getImage(X,Y,ord_arr)
#======= Print for test purpose
calib.printCalibParsStatus()
#print 'pedestals:\n', calib.getCalibPars('pedestals')
print 'center:\n', calib.getCalibPars('center')
print 'tilt:\n', calib.getCalibPars('tilt')
print 'peds_arr.shape:', peds_arr.shape # = (185, 388, 2)
print 'Get data array from file: ' + fname
print 'data_arr.shape:', data_arr.shape
print 'ord_arr.shape:', ord_arr.shape
print 'img2d.shape:', img2d.shape
#======= Plot image and spectrum
my_range = (-10,40) # or None by default
gg.plotImageLarge(img2d, range=my_range)
gg.plotSpectrum(img2d, range=my_range)
gg.show()
#------------------------------
if __name__ == "__main__" :
test_cspad2x2_calib()
sys.exit ( 'End of test.' )
#------------------------------
|
Overview
Content Tools