Versions Compared

Key

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

Include Page
PSDM:PageMenuBegin
PSDM:PageMenuBegin
Table of Contents
Include Page
PSDM:PageMenuEnd
PSDM:PageMenuEnd

About

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.

...

This page provides examples for selected modules in Psana Module Examples.

Source Code Access

You can find the source code at SLAC (e.g. for module CSPadPixCoords::PixCoordsTest) in these two directories:

Code Block
/reg/g/psdm/sw/releases/ana-current/CSPadPixCoords/src/PixCoordsTest.cpp (.cpp for c++ source code, or .py for python source code)
/reg/g/psdm/sw/releases/ana-current/CSPadPixCoords/include/PixCoordsTest.h (c++ include file)

Package psana

Psana package include several simple modules which do generic tasks that do not need knowledge of the event data types.

...

See also Example for Package ImgPixSpectra.

Anchor
ImgAlgo
ImgAlgo

Package ImgAlgos

This packages contains a few psana modules for analysis and image processing.

Anchor
Tahometer
Tahometer

Module ImgAlgos::Tahometer

...

See also Example for Module ImgAlgos::Tahometer.

 

Anchor
TimeStampFilter
TimeStampFilter

Module ImgAlgos::TimeStampFilter

 

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.

...

See also Example for TimeStampFilter and XtcOutputModule.

 

Anchor
EventNumberFilter
EventNumberFilter

Module ImgAlgos::EventNumberFilter

...

  1. If the first and/or last event numbers are defined, then the filter will select events in this range only.
  2. If the evtstring is defined, only listed events of event ranges will be selected. For example, the evtstringparameter can be defined as

    Code Block
    bgColor#F7F7ED
     2,5,11-15,20-25,29,30
    

    that means the list of events:

    Code Block
    bgColor#F7F7ED
      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.

 

Anchor
EventCounterFilter
EventCounterFilter

Module ImgAlgos::EventCounterFilter

...

Code Block
2 3 6 7 9 11 15
17 28 32 ...

 

Anchor
EventCodeFilter
 
EventCodeFilter

Module ImgAlgos::

...

EventCodeFilter

Functionality:

...

ImgAlgos::EventCodeFilter (ImgAlgos > V00-03-80) module is created by request of Silke Nelson for dark image selection based on EvrData eventCode.

Functionality: Filter selects events which have requested evtcode in Psana::EvrData::DataV4, 3, ... data objects in the list of Psana::EvrData::FIFOEvent objects. Events which do not have the event code are skipped

...

.

"Andor" of data

parameter

default value

description

sourceDetInfo(:Evr)data source

key_in

 

key for input data

key_out

"andorimg"

output key for image saved in the event store

outtype

"asdata"

out data type: implemented values: asdata (default, uint16_t), float, double, int and int16.

evtcode0event code, unsigned number

mode

0

filter mode: 0-off, 1-on, -1-on in inverted decision mode

print_bits

0

verbosity:

  • =0 - print nothing

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input pars
  • +4 - filter summary
  • +2 8 - data from event()current event number and selection status
  • +4 - configuration parameters+8 - table with sizes of types16 - list of FIFO events

Example of configuration parameters for this module:

Code Block
modules = ... ImgAlgos.EventCodeFilter ...

[ImgAlgos.EventCodeFilter]
evtcode    = 41
mode       = 1
print_bits = 5

 

Anchor
AndorImageProducer
AndorImageProducer

Module ImgAlgos::

...

AndorImageProducer

Functionality:

  • gets Epix Andor data from the event store for specified source and key_in parameters,
  • puts the ndarray<const T,2> object with camera image in the event store using specified key_out parameter, where the output type T is defined by the outtype parameter.

parameter

default value

description

source

"DetInfo(:EpixAndor)"

source of data, it needs to be replaced for real detector to :Epix100a

key_in

 

key for input data

key_out

"epix-ndarrandorimg"

output key for image saved in the event store

outtype

"asdata"

out data type: implemented values: asdata (default, uint16_t), float, double, int and int16.

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input pars
  • +2 - data from event()
  • +4 - configuration parameters
  • +8 - table with sizes of types

...

Module ImgAlgos::EpixNDArrProducer

...

Module ImgAlgos::PnccdNDArrProducer

Functionality:

  • gets pnCCD data from Psana::PNCCD::FramesV1 object Epix data from the event store for specified source and key_in parameters,
  • puts the ndarray<const TOUTT,3> object of shape 4x512x512 specified 2> object with image in the event store using specified key_out parameter, where the output type T is defined by the outtype parameter.

parameter

default value

description

source

"DetInfo(:pnCCDEpix)"

source of data, it needs to be replaced for real detector to :Epix100a

key_in

 

key for input data

key_out

"pnccdepix-ndarr"

output key for image saved in the event store

outtype

"asdata"

out data type: implemented values: asdata (default, unsigned shortuint16_t), float, double, int and int16.

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input pars
  • +2 - data from event()
  • +4 - configuration parameters
  • +8 - table with sizes of types+16 - warning about missing data

See also Example for Module ImgAlgos::EpixNDArrProducer.

Module ImgAlgos::

...

PnccdNDArrProducer

Functionality:

  • gets from the event store the object with pnCCD data of typefrom Psana::PNCCD::FullFrameV1 containing four [512][512] frames with T=uint16_t, or
  • ndarray<const T,3> , where shape=[4][512][512], T=unsigned short, float, double, int, or int16,
  • FramesV1 object from the event for specified source and inkey key_in parameters,
  • puts the ndarray<const TTOUT,2> object with pnccd [1024+gap_rows][1024+gap_cols] image in the event using specified outimgkey 3> object of shape 4x512x512 specified key_out parameter.

parameter

default value

description

source

"DetInfo(:pnCCD)"

source of data

inkeykey_in

 

key for input data

outimgkeykey_out

"pnccdimgpnccd-ndarr"

output key for image saved in event

gap_rows0

gap between top and bottom segments in number of pixels

gap_cols0

gap between left and right segments in number of pixels

gap_value0Image effective pixel intensity value in the gap

outtype

"asdata"

out data type: implemented values: asdata (default, unsigned short), float, double, int and int16.

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input pars
  • +2 - initial portion of pnccd arraydata from event()
  • +4 - configuration parsparameters
  • +8 - table with sizes of types
  • +16 - warning about missing data

...

Module ImgAlgos::PnccdImageProducer

...

...

Functionality:

...

  • gets from the event store the object with pnCCD data of type
    • Psana::PNCCD::FullFrameV1 containing four [512][512] frames with T=uint16_t, or
    • ndarray<const T,3> , where shape=[4][512][512], T=unsigned short, float, double, int, or int16,
    for specified source and inkey parameters
  • puts the ndarray<const T,2> object with pnccd [1024+gap_rows][1024+gap_cols] image in the event using specified outimgkey parameter

This module works with any generic camera image stored in data type Camera::FrameV#:

  • gets any camera image data Camera::FrameV1 from the event store for specified source and key_in parameters,
  • puts the ndarray<const T,2> object with camera image in the event store using specified type outtype and key_out parameters.

     

    NoteSpecial treatment for fccd960: if  outtype is not "asdata" the gain factor depending on gain bits is applied, See FCCD-Detector.
on/off the amplitude offset using configuration data (not applied for outtype = asdata)

parameter

default value

description

source

"DetInfo(:CamerapnCCD)"

source of data

key_ininkey

 

key for input datakey_out

outimgkey

"pnccdimg"

output key for image saved in event

gap_rows

outtype

"asdata"

out data type: implemented values: asdata (default, uint16_t), float, double, int and int16.

0

gap between top and bottom segments in number of pixels

gap_cols0

gap between left and right segments in number of pixels

gap_value0Image effective pixel intensity value in the gap

subtract_offset

true

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input pars
  • +2 - time stamp for each eventinitial portion of pnccd array
  • +4 - summary at the endJobconfiguration pars
  • +8 16 - details about data format conversion and applied offset+16 - configuration data for each beginCalibCyclewarning about missing data

See also Example for Module ImgAlgos::CameraImageProducerPnccdImageProducer.

Module ImgAlgos::

...

CameraImageProducer

This module works with any generic camera image stored in data type Camera::FrameV#Functionality:

  • gets the Princeton or Pimax any camera image data PrincetonCamera::FrameV1 /2 or Pimax::FrameV1 from the event store for specified source and key_in parameters,
  • puts the ndarray<const T,2> object with camera image in the event store using specified type outtype and key_out parameters.

     

    Note

    Special treatment for fccd960: if  outtype is not "asdata" the gain factor depending on gain bits is applied, See FCCD-Detector.

parameter

default value

description

source

"DetInfo(:PrincetonCamera)"

source of data

key_in

 

key for input data (raw - by default)

key_out

"imagepnccdimg"

output key for image saved in event

outtype

"asdata"

out data type: implemented values: asdata (default, uint16_t), float, double, int and int16.

subtract_offset

true

on/off the amplitude offset using configuration data (not applied for outtype = asdata)

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input parameterspars
  • +2 - record time stamp for each event
  • +4 - summary at the endJob
  • +8 - first 10 elements of the data arraydetails about data format conversion and applied offset
  • +16 - configuration info data for each beginCalibCycle(...)

See also Example for Module ImgAlgos::PrincetonImageProducer.

 

AnchorAcqirisArrProducerAcqirisArrProducerCameraImageProducer.

Module ImgAlgos::PrincetonImageProducer

Functionality:

...

  • gets the Princeton or Pimax camera image data Princeton::FrameV1/2 or Pimax::FrameV1 from the event store for specified Gets acqiris configuration and data from Acqiris::ConfigV1 and Acqiris::DataDescV1,  objects using parameters source and key_in;
  • produces ndarray<const double,2> of shape[] = {nbrChannels, nbrSamples} for waveforms and time stamps;
  • saves configuration data in the file defined by fname_prefix;
  • parameters,
  • puts the ndarray<const T,2> object with camera image in the event using specified type outtype and key_out parameterssaves waveforms and time stamps in the event store with keys key_wform and key_wtime.
acq_wtime"

parameter

default value

description

source

"DetInfo(:AcqirisPrinceton)"

source of data

key_in

"" 

key for input data (by default  (empty)  – raw dataraw - by default)

key_wformout

"acq_wformimage"

output key for waveforms image saved in eventkey_wtime

outtype

"

output key for waveform times saved in event

fname_prefix

""

file name prefix for configuration parameters (by default  (empty)  – do not save file)

correct_ttrueon/off switch for time correction; if =false - array indexes are the same as in raw data waveform

asdata"

out data type: implemented values: asdata (default, uint16_t), float, double, int and int16.

print_bits

0

verbosity:

  • =0

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input parameters
  • +2 - configuration parametersrecord for each event
  • +4 - record about saving file with configuration parameterssummary at the endJob
  • +8 - print part of waveform for all channels and segments in each eventfirst 10 elements of the data array
  • +16 - print info about waveform indexes

...

  • configuration info for each beginCalibCycle(...)

See also Example for Module ImgAlgos::

...

PrincetonImageProducer.

 

Anchor

...

AcqirisArrProducer

...

AcqirisArrProducer

Module ImgAlgos::

...

AcqirisArrProducer

  • Gets Acqiris waveforms from event store as ndarray<const double,2> object acqiris configuration and data from Acqiris::ConfigV1 and Acqiris::DataDescV1,  objects using parameters source and key_in;
  • performs waveform selection controlled by parameters: thresholds, is_postive_signal, do_inverse_selection, in the range depending on local event numbers skip_events and proc_events;
  • produces ndarray<const double,2> of shape[] = {nbrChannels, nbrSamples} for waveforms and time stamps;
  • saves configuration data in the file defined by fname_prefix;
  • saves waveforms and time stamps in the event store with keys key_wform and key_wtimeafter number of 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.
average-aveKeyword averaged array the evt store. If empty – array is not saved._aveacq-aveText 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".

parameter

default value

description

source

"DetInfo(:Acqiris)"

Source source of data.

key_in

"acq_wform"

Key key for input data (raw - by default).by default  (empty)  – raw data)

key_wform

"acq_wform"

output key for waveforms saved in event

key_

wtime

"acq

_wtime"

output key for

waveform

times saved in

event

fname

_prefix

"

"

file name prefix for

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

0

Number of events (from the beginning of job) to skip before begin averaging.

proc_events

10000000

Number of events for averaging.

print_bits

0

Verbosity:

  • =0 - print nothing
  • +1 - input parameters
  • +2 - ndarray dimensions
  • +4 - begin/end accumulate statistics record
  • +8 - record about saving file with averaged array
  • +16 - statistics of averaged waveforms (number of accumulated)
  • +32 - part of the input waveform

 Example for Module ImgAlgos::AcqirisAverage

 

...

configuration parameters (by default  (empty)  – do not save file)

correct_ttrueon/off switch for time correction; if =false - array indexes are the same as in raw data waveform

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input parameters
  • +2 - configuration parameters
  • +4 - record about saving file with configuration parameters
  • +8 - print part of waveform for all channels and segments in each event
  • +16 - print info about waveform indexes

 

Anchor
AcqirisAverage
AcqirisAverage

Module ImgAlgos::AcqirisAverage

  • Gets Acqiris waveforms from event store as ndarray<const double,2> object using parameters source and key_in;
  • performs waveform selection controlled by parameters: thresholds, is_postive_signal, do_inverse_selection, in the range depending on local event numbers skip_events and proc_events;
  • after number of 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

"DetInfo(:Acqiris)"

Source of data.

key_in

"acq_wform"

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

0

Number of events (from the beginning of job) to skip before begin averaging.

proc_events

10000000

Number of events for averaging.

print_bits

0

Verbosity:

  • =0 - print nothing
  • +1 - input parameters
  • +2 - ndarray dimensions
  • +4 - begin/end accumulate statistics record
  • +8 - record about saving file with averaged array
  • +16 - statistics of averaged waveforms (number of accumulated)
  • +32 - part of the input waveform

 Example for Module ImgAlgos::AcqirisAverage

 

Anchor
AcqirisCalib
AcqirisCalib

Module ImgAlgos::AcqirisCalib

  • Gets

...

Module ImgAlgos::AcqirisCalib

  • Gets Acqiris waveforms from event store as ndarray<const double,2> object using parameters source and key_in;
  • processes events in the range depending on local event numbers skip_events and proc_events;
  • at the 1st processed event loads the fname_base_line file with baseline  ndarray<const double,2>;
  • subtract baseline from waveforms;
  • save corrected waveforms in the event store as ndarray<const double,2> object using parameters source and key_out.

...

parameter

default value

description

source

DetInfo(:Opal1000)

input source of data

key

 

key for input data, for example, it might be "calibrated"

sumfile

""

out file with sum of amplitudes, saved if the name is not empty

avefile

""

out file with averaged amplitudes, saved if the name is not empty

rmsfile

""

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

hotpixfile

""

out file with pixel bit-words: 0/1/2/4/8 for good/hot/saturated/cold/cold-rms, saved if the name is not empty

maxfile""out file with maximal value per pixel over events
ftypetxtout file type: txt (default), metatxt, bin

thr_rms_min

0.

minimal threshold on rms (in ADU);  If rms lower than this threshold - pixel is cold-rms.

thr_rms_ADU

10000.

maximal threshold on rms (in ADU); =0 - use auto-evaluated threshold. If rms exceeds this threshold - pixel is hot.

thr_min_ADU

-100000.

threshold on minimal intensity (in ADU); if ave exceeds this threshold - pixel is good

thr_max_ADU

100000.

threshold on maximal intensity (in ADU); if ave exceeds this threshold - pixel is bad

evts_stage1

1000000

number of events before stage 1

evts_stage2

0

additional number of events before stage 2

gate_width1

0

gate_width for stage 1

gate_width2

0

gate_width for stage 2

print_bits

0

module verbosity:

  • =0 - print nothing
  • +1 - input pars
  • +2 - event record
  • +4 - beginning of 3 stages
  • +8 - processed statistics at the end of each stage
  • +16 - records for saved files
  • +32 - summary with keywords for parser
  • +64 - statistics of bad pixels
  • +128 - mean and rms in 3 iterations of the threshold auto-evaluation algorithm and evaluated threshold
  • +256 - warning if ndarray shape is not defined yet

...

  • and saves the corrected ndarray<const doubleTOUT,NDim> NDim> in the event with key key_out, where TOUT is controlled by the parameter outtype, which can be set to double(default), float, int, and int16.
  • In ImgAlgos V00-02-01 implemented detectors: CsPad, CsPad2x2, Pnccd, Princeton, Andor, Opal1000, Opal4000

...

parameter

default value

description

source

DetInfo(:Camera)

source of data

key_in

 

key for input ndarray<const T,NDIM>

key_out

calibrated

output key for calibrated image saved in event

outtypedoubleoutput ndarray data type can be set to double(default), float, int, and int16.

do_peds

false

true: pedestals subtracted if available in calib store

do_cmod

false

true: common mode correction is evaluated and applied [Ref.]

do_stat

false

true: bad/hot pixels in pixel_status are masked

do_mask

false

true: mask is applied if the file fname_mask is available (1/0 = good/bad pixels)

do_bkgd

false

true: normalized background is subtracted if the file fname_bkgd is available

do_gain

false

true: pixel_gain correction is applied if available in calib store

do_nrms

false

true: per-pixel threshold is applied if pixel_rms  is available in calib store

do_thre

false

true: low level threshold in ADU is applied

fname_bkgd

 

input file name for background, applied if the file name is specified

fname_mask

 

input file name for mask, applied if the file name is specified

masked_value

0.

intensity value (in ADU) substituted for masked pixels

threshold_nrms

3.

threshold as a number of sigmas to pixel_rms parameters

threshold

0.

common low level threshold in ADU

below_thre_value

0.

intensity substituted for pixels below threshold

bkgd_ind_min

0

minimal index in flatten ndarray, which is used for background normalization

bkgd_ind_max

100

maximal index in flatten ndarray, which is used for background normalization

bkgd_ind_inc

2

index increment in flatten ndarray, which is used for background normalization

print_bits

0

verbosity:

  • =0 - print nothing
  • +1 - input pars
  • +2 - calibration parameters
  • +4 - common mode algorithm parameters
  • +8 - ndarray parameters; type, ndim, shape, etc.
  • +16- time stamp for each event
  • +32 - first 10 elements of the raw image data
  • +64 - first 10 elements of the calibrated image data

...

parameter

default value

description

source

"DetInfo()"

source of data

key

 

key for input data ndarray, default is empty - raw data

key_droplets

 

key for output list of peaks as std::vector<AlgDroplet::Droplet> (default is empty - do not save)threshold

key_smeared  

threshold_low

low10

low threshold on pixel amplitude

threshold_high

100

high threshold on pixel amplitude

sigma

1.5

width of the Gaussian for smearing; =0-no smearing

smear_radius

3

radius in pixel for smearing - radial size of matrix of weights

peak_radius

3

radius in pixel for peak finding - radial size of the region to search for local maximum

low_value0value substituted for pixels with intensity below threshold and outside window

windows

 

list of windows, each window is defined by 5 parameters; segment-index, rowmin, rowmax, colmin, colmax, separated by space. Default is empty - process all segments

mask path to the file with mask, by default (empty) mask is not used
masked_value0value substituted for masked pixels (0-masked, non-zero - good pixel)

fname_prefix

 

Common prefix for saved files. If non-empty - save files with image and list of droplets for each event with found droplets. The file name is formed as <prefix>-r####-e######-<suffix>.txt, where hash stands for number (0-9), suffix may be raw, smeared, or peaks. Default is empty - do not save files.

print_bits

0

module verbosity:

  • =0 - print nothing,
  • +1 - input pars in the beginJob(...),
  • +2 - summary in the endJob(...),
  • +4 - number of droplets/peaks in the event,
  • +8 - array of peak parameters in the event,
  • +16 - print info about saved files (if they are saved)
  • +64 - info messages from smearing and droplet finding algorithms, 
  • +128 - debugging messages from smearing and droplet finding algorithms,
  • +256 - details for debugging; messages from windows parser, window parameters accounting for segment limits,
  • != 0  - all warning messages

...

This module is a part of complex algorithm, described in Command Line Interface For Time Correlation Analysis.

This module is designed for parallel image processing for correlation analysis.
Functionality:

...

This package contains python modules which work with both frameworks pyana and psana. Functionality of these modules resembles modules from C++ package ImgAlgos. The difference between two frameworks at code level is explained in Migration from pyana to psana.

Module pyimgalgos.cspad_arr_producer

...

The translator package include the H5Output module which translates xtc to hdf5. For more  information see the page Outdated: The XTC - to - HDF5 Translator

Package psana_test
Anchor
psana_test
psana_test

...

epics = False       do not print epics
aliases = False do not print the EPICS alias list
dump_aliases=True follow EPICS aliases to print the EPICS pv's they point to
dump_sml=True dump the small data type (if found, psana should automatically replace these proxies)
regress_dump=True do not print the DAQ assigned pvId when printing EPICS
dump_beginjob_evt=False do not dump begin job data
output_file = filename write output to filename
config = False do not print the contents of the configStore, only regular event data
counter = False do not print the counter string that labels event numbers and calib cycle numbers
header = False
indent = 4 change the indent from the default of 2 to 4

...

The first just dumps datagram headers, the latter dumps xtc headers. There are some additional options, how much of the xtc payloads to print, and if you want parsed output for epics. A help string is available by typing xtclinedump with no arguments. Except for the non-default epics argument, xtclinedump does no parsing of the xtc payloads, it simply prints the first few bytes in hex. For reading through payloads, the intel architechture uses little endian, so 0x00040000 = 1024,

Package TimeTool

An example of how to use the TimeTool can be found Here.

Modules for analyzing recorded data from a timetool camera setup. The timetool camera measures the time difference between laser and FEL in one of two methods:

  1. spatial encoding, where the X-rays change the reflectivity of a material and the laser probesthat change by the incident angle of its wavefront; or
  2. spectral encoding, where the X-rays change the transmission of a material and the chirped laser probes it by a change in the spectral components of the transmitted laser.

Below the package modules are described. The package includes sample configuration files that describe all the options. From a psana release directory, users are encouraged to add the TimeTool package to obtain the latest source. For instance:

Code Block
newrel ana-current myrel
cd myrel
kinit             # get ticket to check out package from svn repository
addpkg TimeTool
sit_setup
scons
# now examine the files in TimeTool/data:  sxr_timetool.cfg  sxr_timetool_setup.cfg  timetool_setup.py  xpp_timetool.cfg  xpptut.cfg

 timetool_setup.py is a python script to calculate the digital filter weights.

Module Analyze

a module that analyzes the camera image by projecting a region of interest onto an axis and dividing by a reference projection acquired without the FEL.  The resulting projection is processed by a digital filter which yields a peak at the location of the change in reflectivity/transmission.  The resulting parameters are written into the psana event. The type of the parameter depends on the release. Starting with ana-0.13.10, a TimeTool::DataV2 object in put in the event store. ana-0.13.3 put a TimeTool::DataV1 object in the event store. This is the preferred method to retrieve the data that TimeTool.Analyze writes. The module also writes its output as a set of doubles, and can optionally be written as a set of ndarrays to help with C++ to Python conversion. To enable this, set the option

put_ndarrays=True

to the config file. However this is not neccessary in releases after ana-0.13.3.

Module Check

a module that retrieves results from the event for either the above module or from data recorded online.

Module Setup

a module that calculates the reference autocorrelation function from events without FEL for use in the digital filter construction.the latter dumps xtc headers. There are some additional options, how much of the xtc payloads to print, and if you want parsed output for epics. A help string is available by typing xtclinedump with no arguments. Except for the non-default epics argument, xtclinedump does no parsing of the xtc payloads, it simply prints the first few bytes in hex. For reading through payloads, the intel architechture uses little endian, so 0x00040000 = 1024,

References

 

 

 

 

 

 

 

 

 

 

dump_sml            dump small data type