This page provides a list of existing modules for psana framework. Only the modules that are included in the standard analysis releases appear on this page.
Note that most modules have configuration parameters which are documented in tables. For example:
parameter | default value | description |
---|---|---|
| "=" | separator string |
| 80 | number of repeats of separator string on |
This page provides examples for selected modules in Psana Module Examples.
Psana package include several simple modules which do generic tasks that do not need knowledge of the event data types.
This module dumps the list of the event keys in the event or configuration store. Event key is a triplet of data type, data source address, and string key.
Example of the output produced by this module:
Event keys: EventKey(type=Psana::EvrData::DataV3, src=DetInfo(NoDetector.0:Evr.0)) EventKey(type=Psana::Camera::FrameV1, src=DetInfo(CxiDg1.0:Tm6740.0)) EventKey(type=Psana::Ipimb::DataV1, src=DetInfo(CxiDg1.0:Ipimb.0)) ... |
This module is useful to display the content of the events without dumping all the data. Example command which uses this module is:
% psana -m EventKeys <input-files> |
Note that one can specify EventKeys
instead of psana.EventKeys
as psana
package name is optional.
This module prints the content of the Event ID object on every event.
Example of the output produced by this module:
[info:psana.PrintEventId] event ID: XtcEventId(run=100, time=2010-12-12 11:09:36.300506429-08) [info:psana.PrintEventId] event ID: XtcEventId(run=100, time=2010-12-12 11:09:36.317163082-08) |
This module prints separator line on every event. Can be used to indicate event boundaries in job's log.
parameter | default value | description |
---|---|---|
| "=" | separator string |
| 80 | number of repeats of separator string on |
Example of the output produced by this module with the default parameters (including output from PrintEventId module):
[info:/root/] ================================================================================ [info:psana.PrintEventId] event ID: XtcEventId(run=100, time=2010-12-12 11:09:36.300506429-08) [info:/root/] ================================================================================ [info:psana.PrintEventId] event ID: XtcEventId(run=100, time=2010-12-12 11:09:36.317163082-08) |
This package contains modules that are meant to be used as examples of accessing different data types or framework services. Can be used by developers as templates for new modules. To find the code:
Extracts and dumps the content of Acqiris configuration (Psana::Acqiris::ConfigV1
) and event data (Psana::Acqiris::DataDescV1
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Acqiris)" | data source address |
Extracts and dumps the content of Acqiris TDC configuration (Psana::Acqiris::TdcConfigV1
) and event data (Psana::Acqiris::TdcDataV1
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:AcqTDC.0)" | data source address |
Extracts and dumps the content of beamline data objects (Psana::Bld::BldDataEBeamV0
, Psana::Bld::BldDataEBeam
, Psana::Bld::BldDataPhaseCavity
, Psana::Bld::BldDataFEEGasDetEnergy
, and Psana::Bld::BldDataIpimb
).
parameter | default value | description |
---|---|---|
| "BldInfo(EBeam)" | data source address for |
| "BldInfo(PhaseCavity)" | data source address for |
| "BldInfo(FEEGasDetEnergy)" | data source address for |
| "BldInfo(NH2-SB1-IPM-01)" | data source address for |
Extracts and dumps the content of camera configuration (Psana::Camera::FrameFexConfigV1
) and event data (Psana::Camera::FrameV1
and Psana::Camera::TwoDGaussianV1
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Opal1000)" | data source address |
Extracts and dumps the content of scan control configuration (Psana::ControlData::ConfigV1
) object.
parameter | default value | description |
---|---|---|
| "ProcInfo()" | data source address |
Extracts and dumps the content of CsPad configuration (Psana::CsPad::ConfigV*
) and event data (Psana::CsPad::DataV*
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Cspad)" | data source address |
Extracts and dumps the content of encoder configuration (Psana::Encoder::ConfigV1
) and event data (Psana::Encoder::DataV*
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Encoder)" | data source address |
Extracts and dumps the list of EPICS PVs and their values and status information on every event.
Extracts and dumps the content of Evr configuration (Psana::EvrData::ConfigV*
and Psana::EvrData::IOConfigV1
) and event data (Psana::EvrData::DataV*
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Evr)" | data source address |
Extracts and dumps the content of FCCD configuration (Psana::FCCD::FccdConfigV*
) objects. To dump event data objects use psana_examples.DumpCamera module.
parameter | default value | description |
---|---|---|
| "DetInfo(:Fccd)" | data source address |
Extracts and dumps the content of IPIMB configuration (Psana::Ipimb::ConfigV1
) and event data (Psana::Ipimb::DataV1
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Ipimb)" | data source address |
Extracts and dumps the content of LUSI configuration (Psana::Lusi::DiodeFexConfigV1
, Psana::Lusi::IpmFexConfigV1
, and Psana::Lusi::PimImageConfigV1
) and event data (Psana::Lusi::DiodeFexV1
and Psana::Lusi::IpmFexV1
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Tm6740)" | data source address for |
| "DetInfo(:Ipimb)" | data source address for other data |
Extracts and dumps the content of Opal1000 configuration (Psana::Opal1k::ConfigV1
) object. To dump event data objects use psana_examples.DumpCamera module.
parameter | default value | description |
---|---|---|
| "DetInfo(:Opal1000)" | data source address |
Extracts and dumps the content of pnCCD configuration (Psana::PNCCD::ConfigV*
) and event data (Psana::PNCCD::FrameV1
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:pnCCD)" | data source address |
Extracts and dumps the content of Princeton configuration (Psana::Princeton::ConfigV1
) and event data (Psana::Princeton::FrameV1
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Princeton)" | data source address |
Extracts and dumps the content of Pulnix configuration (Psana::Pulnix::TM6740ConfigV*
) objects.
parameter | default value | description |
---|---|---|
| "DetInfo(:Tm6740)" | data source address |
This module is an example of histogramming service usage. It extracts beam line data and fills couple of histograms with the beam parameters.
parameter | default value | description |
---|---|---|
| "BldInfo(EBeam)" | data source address |
Package cspad_mod contains common modules useful for analysis of data from CsPad detector.
This module is supposed to run on dark cspad2x2 frame data. It calculates average and standard deviation values for each pixel and writes these values to output files in text format.
parameter | default value | description |
---|---|---|
| "DetInfo(:Cspad)" | name of the data source; default value is adequate if there is only one CsPad device in setup, if there is more than one device then more specific value should be provided |
| "cspad-pedestals.dat" | name of the output file for average values, if empty file will not be written |
| "cspad-noise.dat" | name of the output file for standard deviation values, if empty file will not be written |
To use this module with default parameters one could use this command:
psana -m cspad_mod.CsPadPedestals input-files.xtc |
which will produce files cspad-pedestals.dat
and cspad-noise.dat
in the current directory (if input file contains CsPad data).
To change module parameters one could create file with name psana.cfg
in the current directory with a contents like this:
[psana] modules = cspad_mod.CsPadPedestals [cspad_mod.CsPadPedestals] source = DetInfo(CxiDs1.0:Cspad.0) output = pedestals.dat noise = |
and then run psana:
psana input-files.xtc |
This should produce file pedestals.dat
in the current directory. As the source address is more specific this configuration file can be used even if input data contain more than one CsPad device.
This module is supposed to run on cspad2x2 dark frame data. It calculates average and standard deviation values for each pixel and writes these values to output files in text format.
parameter | default value | description |
---|---|---|
| "DetInfo(:Cspad2x2)" | name of the data source; default value is adequate if there is only one CsPad2x2 device in setup, if there is more than one device then more specific value should be provided |
| "cspad2x2-pedestals.dat" | name of the output file for average values, if empty file will not be written |
| "cspad2x2-noise.dat" | name of the output file for standard deviation values, if empty file will not be written |
To use this module with default parameters one could use this command:
psana -m cspad_mod.CsPad2x2Pedestals input-files.xtc |
which will produce files cspad2x2-pedestals.dat
and cspad2x2-noise.dat
in the current directory (if input file contains CsPad2x2 data).
To change module parameters one could create file with name psana.cfg
in the current directory with a contents like this:
[psana] modules = cspad_mod.CsPad2x2Pedestals [cspad_mod.CsPad2x2Pedestals] source = DetInfo(CxiSc1.0:Cspad2x2.0) output = pedestals.dat noise = |
and then run psana:
psana input-files.xtc |
This should produce file pedestals.dat
in the current directory. As the source address is more specific this configuration file can be used even if input data contain more than one CsPad2x2 device.
This module performs standard CsPad calibration procedures: per-pixel pedestal subtraction and common mode correction. The algorithms used in calibrations are identical to translator algorithms, the result of calibration should be the same as the data stored in HDF5 files.
The module uses three input calibration files which should be located in the standard calibration directory of the corresponding experiment:
pedestals
– per-pixel pedestal data (produced by the CsPadPedestals module or standalone applications)pixel_status
– hot/dead status for every pixel, used by common mode algorithmcommon_mode
– file with parameters controlling common mode calculationpixel_gain
– per-pixel gain data, inverse pixel gain (1/gain) as floating numberIf any of the files is missing then corresponding algorithm is not executed, if pixel_status
file is missing then all pixels are assumed to have working status. Algorithms inside module are executed following this order:
The calibration is performed on every CsPad image (full or 2x2) found in the event and works even if there is more than one CsPad data object. The original objects are preserved in event and result of the calibration is stored in event with different string key ("calibrated" by default, can be changed with module parameter).
parameter | default value | description |
---|---|---|
| "" | string key used to locate uncalibrated data objects in event |
| "calibrated" | string key used to store calibrated data objects in event |
| "yes" | can be set to "no" to explicitly disable pedestal subtraction algorithm |
| "yes" | can be set to "no" to explicitly disable reading of pixel status data, all pixels will be used for common mode |
| "yes" | can be set to "no" to explicitly disable common mode algorithm |
| "yes" | can be set to "no" to explicitly disable pixel gain correction algorithm |
This is a filter module which implements skipping for the events which have too low signal in CsPad. filtering algorithm can be controlled trough the module parameter and/or parameters in calibration file. The name of the calibration file is "filter" and it will be searched in the standard calibration directories of the experiment.
parameter | default value | description |
---|---|---|
| '' | string key used to locate uncalibrated data objects in event |
| "DetInfo(:Cspad)" | data source address |
| "yes" | when set to "yes" if the module does not find CsPad data in an event then it skips event |
| -1 | filtering mode, see below |
| all 0 | list of parameters for filtering algorithm, up to 16 floating numbers |
Parameter mode
defines where the filter get its parameters and how it works. If set to -1 (default) then it reads parameters and actual mode value from a calibration text file which should contain one integer number for mode and up to 16 floating point parameters. If parameter is set to 0 or if the value read from file is 0 then no filtering is done, all events are passed through. If mode is set to 1 (from parameter or file) then filter calculates the number of pixels above certain threshold. Filter expects two values in parameter array: threshold for pixel value and minimum number of pixels above threshold. If second parameter is negative then it's assumed to be a percentage of the full number of pixels.
Filter works on individual image arrays (quadrants). Module checks for CsPad::DataV1, CsPad::DataV2, and CsPad2x2::ElementV1 objects in that order. If any object is found then module runs filter on images in that object. If any one image passes the filter then module returns and event is passed to downstream modules, otherwise framework skips this event.
With the default parameters module works with non-calibrated data, to switch to calibrated data add the module cspad_mod.CsPadCalib before filter and change inputKey
parameter to calibrated
.
Package CSPadPixCoords calculates the 2x1 section, quad, and CSPad pixel coordinates and produces the image.
For complete reference select Doxygen documentation.
This module demonstrates of how to use the PixCoords2x1, PixCoordsQuad, and PixCoordsCSPad classes
in order to pre-calculate pixel coordinates, taking into account the calibration parameters.
Relevant images are produced in combination of the pixel coordinates with event data and saved in text files.
parameter | default value | description |
---|---|---|
| "/reg/d/psdm/CXI/cxi35711/calib" | directory with calibration file |
| "CsPad::CalibV1" | data type and group names |
| "CxiDs1.0:Cspad.0" | source of data |
| 32 | run number for calibration file |
| 32 | number of events before stop a job |
| false | on/off for potential selection filter |
CSPadImageProducer works in psana framework. It does a few operation as follows:
const
T,3> of shape [N][185][388])ndarray<
const
double,2>
or Image2D<double>
object with CSPad image for each event,env.calibStore()
as ndarray<
const
int16_t ,2>
for source
. If the file name fname_pixmap
is not empty the map will be saved in this file in text format.env.calibStore()
as ndarray<
const
int32_t ,2>
for source
. If the file name fname_pixnum
is not empty the map will be saved in this file in text format.parameter | default value | description |
---|---|---|
|
| directory with calibration files, by default it is set to .../<experiment>/calib |
| "CsPad::CalibV1" | calibration type and group names |
| "CxiDs1.0:Cspad.0" | source of data |
| "" | key for data processing stage |
| "image" | output key for image saved in event |
fname_pixmap | "" | file name with pixel map of the image; real/fake pixels are marked as 1/0, respectively |
fname_pixnum | "" | file name with pixel indexes in the flatten [4][8][185][388] array; fake pixels are marked as -1 |
| true | on/off for tilt angle of 2x1-sections and quads. |
| 0 | verbosity:
|
Remarks:
key
corresponds to raw data.CSPadInterpolImageProducer works in psana framework. It does a few operation as follows:
ndarray<
const
double,2>
or CSPadPixCoords::Image2D<double>
object in the event for processing in other modules.Module configuration parameters are the same as for the CSPadPixCoords::CSPadImageProducer.
CSPad2x2ImageProducer works in psana framework. It does a few operation as follows:
center
and tilt
from /reg/d/psdm/<inst>/<experiment>/calib/...
directoryImage2D<double>
or ndarray<
const
double,2>
object with CSPad image for each event,parameter | default value | description |
---|---|---|
|
| path to the |
| "CsPad2x2::CalibV1" | calibration software version |
| "DetInfo(:Cspad2x2.1)" | source of data |
|
| key for data processing stage |
| "image" | output key for image saved in event |
| int16 | type of output data from the list of supported (float, double, int, int16) |
| true | on/off for tilt angle of 2x1-sections and quads - currently is not used |
| 0 | verbosity:
|
Remarks:
inkey
corresponds to raw data.outimgkey
is defined as "Image2D", the image is saved in the event as a CSPadPixCoords::Image2D<double>
object, otherwise (for other names) as a ndarray<
const
double,2>
object.See also Example for Module CSPadPixCoords::CSPad2x2ImageProducer.
CSPadNDArrProducer is a module for psana framework. It uses specified source
and inkey
parameters,
Psana::CsPad::ConfigV#
,Psana::CsPad::DataV#
, Psana::CsPad::ElementV#
,ndarray<
const
T,3>
, where T stands for outtype
, which may be double, float, int, or uint16,outkey
tag.The data array ndarray<
has a shape (N,185,388), where N≤32.const
T,3>
This array is combined from data arrays for quads, ndarray<
with shape (M,185,388), where M≤8, taking into account the CSPAD configuration.const
int32_t,3>
In real data some 2x1 may be turned off, that can be seen in configuration object. |
parameter | default value | description |
---|---|---|
| ":Cspad.0" | source of data |
|
| key for data processing stage |
| "cspad_ndarr" | output key for image saved in event |
| float | type of output data from the list of supported (float, double, int, int16) |
is_fullsize | false | size of output array; true means [32,185,388], false means "as data" [N,185,388] |
is_2darray | false | if is_fullsize=true &&
then shape of output 2-d array is [32*185,388] |
| 0 | verbosity:
|
See also Example for Module CSPadPixCoords::CSPadNDArrProducer.
CSPad2x2NDArrProducer is a module for psana framework. It uses specified source
and inkey
parameters,
Psana::CsPad2x2::ConfigV#
,Psana::CsPad2x2::ElementV#
,ndarray<
const
T,3>
, where T stands for outtype
, which may be double, float, int, or uint16,outkey
tag.The data array ndarray<
has a shape (185,388,2).const
T,3>
In real data some 2x1 may be turned off, that can be seen in configuration object. |
parameter | default value | description |
---|---|---|
| ":Cspad2x2.0" | source of data |
|
| key for data processing stage |
| "cspad2x2_ndarr" | output key for image saved in event |
| float | type of output data from the list of supported (float, double, int, int16) |
is_2darray | false | if
then shape of output 2-d array is [185,388*2] |
| 0 | verbosity:
|
See also Example for Module CSPadPixCoords::CSPad2x2NDArrProducer.
For complete reference see the Doxygen documentation.
Package ImgPixSpectra is available since release |
Package ImgPixSpectra is intended to accumulate the spectra for all pixels of the image array.
Different modules of this package work with different data types for detectors like CSPad, CSPad2x2, Opal, Princeton camera, etc. All modules have the same interface and the same functionality.
In the loop over events from beginJob
to endJob
the image pixel amplitudes are accumulated in the 2-d array,
of the shape (<number-of-pixels>, <number-of-spectral-bins>). The first parameter is defined by the image size. The second is passed as an external parameter of the psana configuration file (psana.cfg
) along with minimal and maximal amplitudes. At the endJob
the spectral array is saved in file with specified name. Auxiliary file with the name extension *.sha
is created in order to save the shape parameters. For example, the "cspad2x2-pix-spectra.txt.sha" outpuit file contains
NPIXELS 143560 NBINS 100 AMIN 500 AMAX 1000 NEVENTS 2549 ARRFNAME cspad2x2-pix-spectra.txt |
This information can be used in analysis or presentation of this array.
List of parameters:
parameter | default value | description |
---|---|---|
| "CxiDs1.0:Cspad.0" | source of data for CSPad |
| 1<<31U | number of events before stop a job |
|
| input key for data processing stage |
| 0. | minimal spectral amplitude |
| 1000. | maximal spectral amplitude |
| 100 | number of bins in spectra |
| "..._spectral_array.txt" | output file name |
See also: Example for Module ImgPixSpectra::CSPadPixSpectra.
The only difference in interface of this module from previous is in the default name for the source parameter and the output file name.
parameter | default value | description |
---|---|---|
| "DetInfo(:Cspad2x2)" | source of data for CSPad2x2 |
See also: Example for Module ImgPixSpectra::CSPad2x2PixSpectra.
The only difference in interface of this module from previous is in the default name for the source parameter and the output file name.
parameter | default value | description |
---|---|---|
| "DetInfo(SxrBeamline.0:Opal1000.1)" | source of data for Opal camera |
or:
parameter | default value | description |
---|---|---|
| "DetInfo(:Princeton)" | source of data for Princeton camera |
See also Example for Package ImgPixSpectra.
This packages contains a few psana
modules for analysis and image processing
This module measures the time interval for entire job and for each dn
events and prints the rate info as requested by the print_bits
parameter.
parameter | default value | description |
---|---|---|
| 100 | number of events between printout |
| 2 | filter verbosity:
|
See also Example for Module ImgAlgos::Tahometer.
This module passes only the events if their time stamp is in the requested range.
The range of allowed time stamps is defined by the configuration parameters.
parameter | default value | description |
---|---|---|
| "1970-01-01 00:00:00.000000000 / 2100-01-01 00:00:00.000000000" | time-stamp interval string |
| "1970-01-01 00:00:00.000000000" | minimal time-stamp string |
| "2100-01-01 00:00:00.000000000" | maximal time-stamp string |
| true | On/Off the filter |
| 0 | filter verbosity:
|
The time-stamp string is accepted in various formats:
YYYYMMDD HHMMSS.FFF
YYYYMMDDTHHMMSS.F
YYYY-MM-DD HH:MM:SS.FFF
tsinterval
is defined and is different from the default, it will be used in filter and override the tstamp_min
and tstamp_max
.See also Example for TimeStampFilter and XtcOutputModule.
This filter selects events by their number counting from the beginning of job, starting from 0. The event number is not a parameter which is associated with event. Use this filter cautiously on your own risk for debugging purpose only.
The unique parameter associated with the event is a time-stamp. The event number is not defined in the xtc file and is not a recommended to use parameter. The events are counted locally inside this filter from the beginning of job starting from 0. Be cautious of using this filter in consecutive jobs for different runs! For example, this filter returns different subsets of events for the files with raw and selected events. |
parameter | default value | description |
---|---|---|
| true | On/Off filter |
| 0 | the first event from the beginning of job, starting from 0 |
| 1<<31 | the last event from the beginning of job |
|
| the string of events of intervals from the beginning of job |
| 0 | filter verbosity:
|
There are two modes of operation of this filter.
first
and/or last
event numbers are defined, then the filter will select events in this range only.If the evtstring
is defined, only listed events of event ranges will be selected. For example, the evtstring
parameter can be defined as
2,5,11-15,20-25,29,30 |
that means the list of events:
2 5 11 12 13 14 15 20 21 22 23 24 25 29 30 |
In the evtstring
parameter the comma "," and sign minus "-" as a dash are the only allowed separators. Blank spaces are also allowed. Other characters may abort the program. The evtstring
mode has higher priority than the 1st mode.
The filterIsOn
allows easy turn on/off this filter in *.cfg
file.
ImgAlgos::EventCounterFilter (ImgAlgos > V00-03-46) module is created by request of Thomas Kroll for experiment with mobile rack in SACLA .
Functionality:
Filter select events which numbers are listed in the input file ifname
. This module uses local counter started from 1 for the 1-st event of the job and incremented in the event(...) method. The file ifname
contains the list of integer event numbers in ascending order separated by space or '\n'.
parameter | default value | description |
---|---|---|
| 1 | filter mode: 0-off, 1-on, -1-on in inverted decision mode |
| input file name, is empty by default | |
| 0 | verbosity:
|
Input file (ifname
)consists of integer numbers in ascending order separated by space or '\n', for example:
2 3 6 7 9 11 15 17 28 32 ... |
Functionality:
source
and key_in
parameters,ndarray<
const
double,2>
object with camera image in the event using specified key_out
parameter.parameter | default value | description |
---|---|---|
| "DetInfo(:Andor)" | source of data |
|
| key for input data |
| "andorimg" | output key for image saved in event |
| "asdata" | out data type: implemented values: asdata (default, uint16_t), float, double, int and int16. |
| 0 | verbosity:
|
Functionality:
source
and key_in
parameters,ndarray<
const
TOUT,3>
object of shape 4x512x512 specified key_out
parameter.parameter | default value | description |
---|---|---|
| "DetInfo(:pnCCD)" | source of data |
|
| key for input data |
| "andorimg" | output key for image saved in event |
| "asdata" | out data type: implemented values: asdata (default, unsigned short), float, double, int and int16. |
| 0 | verbosity:
|
Functionality:
ndarray<const T,3>
, where shape=[4][512][512], T=unsigned short, float, double, int, or int16,source
and inkey
parametersndarray<
const
T,2>
object with pnccd [1024+gap_rows][1024+gap_cols] image in the event using specified outimgkey
parameter.parameter | default value | description |
---|---|---|
| "DetInfo(:pnCCD)" | source of data |
|
| key for input data |
| "pnccdimg" | output key for image saved in event |
gap_rows | 0 | gap between top and bottom segments in number of pixels |
gap_cols | 0 | gap between left and right segments in number of pixels |
gap_value | 0 | Image effective pixel intensity value in the gap |
| 0 | verbosity:
|
See also Example for Module ImgAlgos::PnccdImageProducer.
This module takes care about any generic camera image.
Functionality:
source
and key_in
parameters,ndarray<
const
T,2>
object with camera image in the event using specified type outtype
and key_out
parameters.parameter | default value | description |
---|---|---|
| "DetInfo(:Camera)" | source of data |
|
| key for input data |
| "pnccdimg" | output key for image saved in event |
| "asdata" | out data type: implemented values: asdata (default, uint16_t), float, double, int and int16. |
| true | on/off the amplitude offset using configuration data (not applied for |
| 0 | verbosity:
|
See also Example for Module ImgAlgos::CameraImageProducer.
Functionality:
source
and key_in
parameters,ndarray<
const
T,2>
object with camera image in the event using specified type outtype
and key_out
parameters.parameter | default value | description |
---|---|---|
| "DetInfo(:Princeton)" | source of data |
|
| key for input data (raw - by default) |
| "image" | output key for image saved in event |
| "asdata" | out data type: implemented values: asdata (default, uint16_t), float, double, int and int16. |
| 0 | verbosity:
|
See also Example for Module ImgAlgos::PrincetonImageProducer.
Acqiris::ConfigV1
and Acqiris::DataDescV1
, objects using parameters source
and key_in
;ndarray<const double,2>
of shape[] = {nbrChannels, nbrSamples}
for waveforms and time stamps;fname_prefix
;key_wform
and key_wtime
.parameter | default value | description |
---|---|---|
|
| source of data |
|
| key for input data (by default (empty) – raw data) |
|
| output key for waveforms saved in event |
|
| output key for waveform times saved in event |
|
| file name prefix for configuration parameters (by default (empty) – do not save file) |
correct_t | true | on/off switch for time correction; if =false - array indexes are the same as in raw data waveform |
|
| verbosity:
|
Example for Module ImgAlgos::AcqirisArrProducer
ndarray<
const
double,2>
object using parameters source
and key_in
;thresholds
, is_postive_signal
, do_inverse_selection
, in the range depending on local event numbers skip_events
and proc_events;
proc_events
or at the end of job (whatever happens first), saves array of averaged waveforms in the text file with name constructed from fname_ave_prefix
and in the event store using parameters source
and key_average
.
parameter | default value | description |
---|---|---|
|
| Source of data. |
|
| Key for input data (raw - by default). |
key_average | "acq-ave" | Keyword for averaged waveform array saved in the evt store. If empty – array is not saved. |
fname_ave_prefix | "acq-ave" | Text file name prefix for averaged array, full name will be extended by the experiment name, run number and suffix "-ave-wfs.txt" , for example: "acq-amo01509-r0125-ave-wfs.txt". |
thresholds | "" | List of threshold values for all Acqiris channels separated by space. If empty – threshold selection is not applied, all waveforms are averaged. |
is_positive_signal |
| Space-separated list of 1/0 values indicating signal polarity. For example, "1 1 1 0 1" (without the quotes!) would indicate Acqiris channels 1,2,3,5 contained positive signal polarity, while channel 4 contained a negative signal polarity. |
do_inverse_selection |
| Space-separated ist of 1/0 values indicating which waveforms to include in average. For example, "0 0 0 1 0" (without the quotes) would tell the code to average only waveforms that do not cross the threshold for channels 1,2,3,5 while channel 4 would average only waveforms that do cross the threshold. |
skip_events |
| Number of events (from the beginning of job) to skip before begin averaging. |
|
| Number of events for averaging. |
|
| Verbosity:
|
Example for Module ImgAlgos::AcqirisAverage
ndarray<
const
double,2>
object using parameters source
and key_in
;skip_events
and proc_events;
ndarray<
const
double,2>
;ndarray<
const
double,2>
object using parameters source
and key_out.
parameter | default value | description |
---|---|---|
| "DetInfo(:Acqiris)" | Source of data. |
| "acq_wform" | Key for input ndarray with raw waveforms from
|
key_out | "wf-calibrated" | Key for output ndarray with calibrated waveforms. |
fname_base_line | "acq-ave" | Name of the input text file with array of the baselines for active Acqiris channels. By default this name coincides with the name of the file produced by the module |
skip_events |
| Number of events (from the beginning of job) to skip before begin subtraction. |
|
| Number of events for subtraction. |
| 0 | Verbosity:
|
Example for Module ImgAlgos::AcqirisCalib
ndarray<
const
double,2>
object using parameters source,
key_wform, key_wtime
;runs constant-fraction discriminator algorithm on all acqiris channels using user-specified per-channel parameters;
saves edges into the event as a set of ndarray<double,1>;
parameter | default value | description |
---|---|---|
| "DetInfo(:Acqiris)" | Source of data. |
| "acqiris_wform" | Key for input ndarray with waveforms (either raw, or subtracted using AcqirisCalib module) from |
| "acqiris_wtime" | Key for input ndarray with waveform times from |
key_edges | "acqiris_edges_" | Key for output ndarray<double,1> with calibrated waveforms. This key will have the acqiris channel number (1 thru 20) appended to the end of it, and the data for that channel will be added to the event only if edges were found. |
baselines | "" | A list of baseline values (one per channel) to subtract from the waveform in volts. |
fractions | "" | A list of fractions (one per channel) between 0 and 1. The edge-time reported will be at the time when the pulse is at this fraction of the peak value. |
thresholds | "" | A list of threshold values (one per channel) in volts that indicate a new edge should be found. If this value is less than the baseline, then the algorithm will look for negative pulses, otherwise it will look for positive pulses. |
deadtimes | "" | A list of deadtimes (one per channel) in seconds. After each edge the algorithm will ignore any new hits in this time interval. |
leading_edges | "" | A list of 0/1 values (one per channel) indicating whether edge-times are desired for leading edges (1) or falling edges (0). |
Example for Module ImgAlgos::AcqirisCFD
This module averages over events the per-element data of the image array (ndarray<
, where T is implemented for almost all types: int, int16, uint, float, double etc., NDim≤5) and saves files for sum, averaged, rms values, mask, and, the hot pixel map. Input const
T,NDim>ndarray
can be specified by the source
and key
parameters. Averaging may have up to three stages, depending on configuration parameters:
evts_stage1
, the preliminary averaged and rms values are defined for each pixel at the end of this stage.evts_stage1
the pixel data are collected only for abs(amplitude-average0) < gate_width1
. At the end of this stage the preliminary averaged and rms values are defined for each pixel.evts_stage1 + evts_stage2
the pixel data are collected only for abs(amplitude-average1) < gate_width2
. At the end of this stage the preliminary averaged and rms values are defined for each pixel and saved in the files specified by the avefile
and rmsfile
parameters, respectively.If the parameter thr_rms_ADU
is set ≤0 then threshold value is defined automatically using constrained averaging of pixel rms values in 3 iterations. The threshold value is defined as mean+5*rms
.
parameter | default value | description |
---|---|---|
| DetInfo(:Opal1000) | input source of data |
|
| key for input data, for example, it might be "calibrated" |
| "" | out file with sum of amplitudes, saved if the name is not empty |
| "" | out file with averaged amplitudes, saved if the name is not empty |
| "" | out file with rms, saved if the name is not empty |
maskfile | "" | out file with pixel mask with 0/1-for bad/good pixels, saved if the name is not empty |
| "" | out file with pixel bit-words: 0/1/2/4 for good/hot/saturated/cold, saved if the name is not empty |
maxfile | "" | out file with maximal value per pixel over events |
ftype | txt | out file type: txt (default), metatxt, bin |
| 10000. | threshold on rms (in ADU); =0 - use auto-evaluated threshold. If rms exceeds this threshold - pixel is hot. |
| -100000. | threshold on minimal intensity (in ADU); if ave exceeds this threshold - pixel is good |
| 100000. | threshold on maximal intensity (in ADU); if ave exceeds this threshold - pixel is bad |
| 1000000 | number of events before stage 1 |
| 0 | additional number of events before stage 2 |
| 0 | gate_width for stage 1 |
| 0 | gate_width for stage 2 |
| 0 | module verbosity:
|
If all file names are empty (by default), the files with pre-defined names "arr-ave-<exp>-r<run>.dat" and "arr-rms-<exp>-r<run>.dat" will be saved for averaged and rms arrays, respectively. Otherwise, the files with specified names will be saved.
Default parameters are set for regular single-stage averaging without any constrains.
See also Example for Module ImgAlgos::NDArrAverage.
Functionality
source
and key_in
parameters to get any ndarray<
const
T,NDIM>
object from the event store, where T
stands forint16_t,
uint16_t, int, float, uint8_t,
or double, 1≤NDim≤5
,pedestals, common_mode, pixel_status, pixel_gain,
and pixel_rms,
fname_bkgd
and fname_mask
, if their names are specified,the specified by the do_...
parameter corrections are applied to raw data ndarray<
as follows:const
T,NDIM>
const
double,NDim> in the event with key key_out
Control on corrections
A_cor = A_raw (1) - pedestal | if do_peds==true and pedestals are available in calib store (2) - common mode | if do_cmod==true and common_mode parameters are available in calib store (3) - N*background | if do_bkgd==true and the file name is specified in the parameter fname_bkgd and bkgd_ind_* are set (4) * gain | if do_gain==true and pixel_gain are available in calib store (5) apply bad pixel status | if do_stat==true and pixel_status are available in calib store (6) apply mask | if do_mask==true and the file name is specified in the parameter fname_mask. Parameter masked_value is used to substitute masked values. (7) apply N*RMS threshold | if do_nrms==true and pixel_rms are available in calib store, parameters threshold_nrms and below_thre_value are set (8) apply common threshold | if do_thre==true. Parameter below_thre_value is used to substitute below threshold values. |
Configuration parameters
parameter | default value | description |
---|---|---|
| DetInfo(:Camera) | source of data |
|
| key for input |
| calibrated | output key for calibrated image saved in event |
| false | true: pedestals subtracted if available in calib store |
| false | true: common mode correction is evaluated and applied [Ref.] |
| false | true: bad/hot pixels in pixel_status are masked |
| false | true: mask is applied if the file |
| false | true: normalized background is subtracted if the file |
| false | true: |
| false | true: per-pixel threshold is applied if |
| false | true: low level |
|
| input file name for background, applied if the file name is specified |
|
| input file name for mask, applied if the file name is specified |
| 0. | intensity value (in ADU) substituted for masked pixels |
| 3. | threshold as a number of sigmas to |
| 0. | common low level threshold in ADU |
| 0. | intensity substituted for pixels below threshold |
| 0 | minimal index in flatten ndarray, which is used for background normalization |
| 100 | maximal index in flatten ndarray, which is used for background normalization |
| 2 | index increment in flatten ndarray, which is used for background normalization |
| 0 | verbosity:
|
To add implementation for any other new detector "Det":
1) add file pdscalibdata/DetBaseV1.h 2) in PSCalib/src/GenericCalibPars.cpp add #include "pdscalibdata/DetBaseV1.h" ... template class PSCalib::GenericCalibPars<pdscalibdata::Opal4000BaseV1>; 3) in PSCalib/include/CalibParsStore.h add #include "pdscalibdata/DetBaseV1.h" ... return new PSCalib::GenericCalibPars<pdscalibdata::DetBaseV1>(calibdir, type_group, src, runnum, prbits); |
Doxygen documentation for interface: CalibParsStore, GenericCalibPars
See also Example for Module ImgAlgos::NDArrCalib,
Test of the NDArrCalib module for pnCCD.
Functionality
For data source
in each run loads/updates calibration geometry
file from the calibration DB, evaluates pixel coordinate arrays using class PSCalib::GeometryAccess and saves them as ndarray<const float,1> in the event store for keywords x-pix-coords,
y-pix-coords, and
z-pix-coords.
The main idea of this module is that calibration geometry
file will be found and loaded (if available) automatically.
Configuration parameters
parameter | default value | description |
---|---|---|
|
| source of data |
|
| group of calibration type, by default will be set from source |
|
| output key pixel x-coordinate[um] array |
|
| output key pixel y-coordinate[um] array |
|
| output key pixel z-coordinate[um] array |
| 0 | verbosity:
|
Current version of this module works with CSPAD and CSPAD2x2. It can be extended for other detectors, whenever necessary.
See Example for Module ImgAlgos::PixCoordsProducer,