Page History
Content
Table of Contents |
---|
Pre-processing
Dark run scan scan
Submit command
Code Block |
---|
psana -c /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0020-peds.cfg /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0020-*.xtc
|
PSANA configuration script *peds.cfg
Code Block |
---|
Wiki Markup |
h1. Content {toc} h1. Pre-processing h2. Pedestals h3. PSANA configuration script {{*peds.cfg}} {code} [psana] #files = /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0020-*.xtc skip-events = 0 events = 75 modules = ImgAlgos.Tahometer ImgAlgos.PrincetonImageProducer ImgAlgos.ImgAverage [ImgAlgos.Tahometer] print_bits = 7 [ ImgAlgos.PrincetonImageProducer ] source = DetInfo(:Princeton) key_in = key_out = img print_bits = 1 [ImgAlgos.ImgAverage] source = DetInfo(:Princeton) key = img avefile = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0020-peds-ave.txt rmsfile = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0020-peds-rms.txt hotpix_mask = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0020-hotpix-mask-thr-10.0ADU.txt hotpix_thr_adu = 10.0 print_bits = 21 {code} h3. PSANA module {{ImgAlgos.ImgAverage}} * {ImgAlgos.ImgAverage.cpp|https://pswww.slac.stanford.edu/trac/psdm/browser/psdm/ImgAlgos/trunk/src/ImgAverage.cpp} * {ImgAlgos.ImgAverage.h|https://pswww.slac.stanford.edu/trac/psdm/browser/psdm/ImgAlgos/trunk/include/ImgAverage.h} Data types: * Input image may be : double, float, int, uint16_t, uint8_t * Calculation: intensity in double, statistics in unsigned * Save arrays in txt for {code} |
PSANA module ImgAlgos.PrincetonImageProducer
PSANA module ImgAlgos.ImgAverage
Data types:
- Input image may be : double, float, int, uint16_t, uint8_t
- Calculation: intensity in double, statistics in unsigned
- Save arrays in txt for
Code Block save2DArrayInFile<double> ( m_aveFile, m_ave, m_rows, m_cols, m_print_bits & 16 ); save2DArrayInFile<double> ( m_rmsFile, m_rms, m_rows, m_cols, m_print_bits & 16 ); if (m_do_mask) save2DArrayInFile<int> ( m_hotFile, m_hot, m_rows, m_cols, m_print_bits & 16 );
...
Averaging
...
in
...
ImgAlgos::ImgAverage::
Code Block |
---|
{code} template <typename T> void accumulateCorrelators(const T* data) { double amp(0); for (unsigned i=0; i<m_size; ++i) { amp = (double)data[i]; if ( m_gate_width > 0 && std::abs(amp-m_ave[i]) > m_gate_width ) continue; m_stat[i] ++; m_sum [i] += amp; m_sum2[i] += amp*amp; } } {code} |
Averaging
...
in
...
ImgAlgos::ImgAverage::procStatArrays()
Code Block |
---|
} for (unsigned i=0; i!=m_size; ++i) { double stat = m_stat[i]; if (stat > 0) { double ave = m_sum[i] / stat; m_ave[i] = ave; m_rms[i] = std::sqrt(m_sum2[i] / stat - ave*ave); } else { m_ave[i] = 0; m_rms[i] = 0; } } {code} Hot pixel mask in |
Hot pixel mask in ImgAlgos::ImgAverage::procStatArrays()
Code Block |
---|
} if (m_do_mask) { for (unsigned i=0; i!=m_size; ++i) m_hot[i] = (m_rms[i] > m_hot_thr) ? 0 : 1; } {code} h2. Data scan h3. Saturated pixel mask {code} {code} h3. Time records {code} {code} h3. Intensity monitor records {code} {code} h1. Data processing h2. Split {code} {code} h2. Processing {code} {code} h2. Merging {code} {code} h1. Presentation of results h1. Summary |
Data scan
Submit command
Code Block |
---|
psana -c /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-data-aver.cfg /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0015-*.xtc
|
Saturated pixel mask
Code Block |
---|
Time records
Code Block |
---|
Intensity monitor records
Code Block |
---|
Data processing
Split
Submit command
Code Block |
---|
psana -c /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora-xcsi0112-r0015-split.cfg /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0015-*.xtc
|
PSANA configuration script *split.cfg
Code Block |
---|
[psana]
# Command to run this script from release directory:
# psana -c ImgAlgos/data/psana-split.cfg <path-to-xtc-file-name-pattern-for-one-run>
#files = /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0015-*.xtc
skip-events = 0
events = 500
modules = ImgAlgos.Tahometer ImgAlgos.PrincetonImageProducer ImgAlgos.ImgCalib ImgAlgos.ImgIntMonCorr ImgAlgos.ImgIntForBins ImgAlgos.ImgVsTimeSplitInFiles
[ImgAlgos.Tahometer]
print_bits = 7
[ ImgAlgos.PrincetonImageProducer ]
source = DetInfo(:Princeton)
key_in =
key_out = img
print_bits = 1
[ImgAlgos.ImgCalib]
source = DetInfo(:Princeton)
key_in = img
key_out = calibrated
fname_peds = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0020-peds-ave.txt
fname_bkgd =
fname_gain =
fname_mask =
fname_rms =
threshold_nrms = 0
do_threshold = true
threshold = 20.0
below_thre_value = 0
print_bits = 5
[ImgAlgos.ImgIntMonCorr]
source = DetInfo(:Princeton)
key_in = calibrated
key_out = imon_corrected
fname_imon_cfg = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora-xcsi0112-r0015-imon-cfg.txt
print_bits = 1
[ImgAlgos.ImgIntForBins]
source = DetInfo(:Princeton)
key_in = imon_corrected
fname_map_bins = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora-r0015-map-static-q.txt
fname_int_bins = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora-r0015-int-static-q.txt
number_of_bins = 1
print_bits = 33
[ImgAlgos.ImgVsTimeSplitInFiles]
source = DetInfo(:Princeton)
key = imon_corrected
fname_prefix = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora
file_type = bin
add_tstamp = false
ampl_thr = 0
ampl_min = 0
nfiles_out = 8
print_bits = 29
#======EOF======
|
PSANA module ImgAlgos.ImgCalib
PSANA module ImgAlgos.ImgIntMonCorr
PSANA module ImgAlgos.ImgIntForBins
PSANA module ImgAlgos.ImgVsTimeSplitInFiles
Processing
Submit command
Code Block |
---|
corana -f /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora-r0015-b0000.bin -t ./tau-list.txt
|
Module ImgAlgos.corana
Module ImgAlgos.CorAnaData.cpp
Module ImgAlgos.CorAna.cpp
Module ImgAlgos.CorAnaInputParameters
Merging
Submit command
Code Block |
---|
corana_merge -f /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora-r0015-b0000-result.bin -t /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora-r0015-tau.txt
|
Module ImgAlgos.corana_merge
PSANA module ImgAlgos.CorAnaMergeFiles
Presentation of results
<!--
Module ImgAlgos.
Summary
Overview
Content Tools