Content
Pre-processing
Pedestals
PSANA configuration script *peds.cfg
[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
PSANA module ImgAlgos.ImgAverage
- Unknown macro: {ImgAlgos.ImgAverage.cpp|https}
- Unknown macro: {ImgAlgos.ImgAverage.h|https}
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
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::
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; } }
Averaging in ImgAlgos::ImgAverage::procStatArrays()
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; } }
Hot pixel mask in ImgAlgos::ImgAverage::procStatArrays()
if (m_do_mask) { for (unsigned i=0; i!=m_size; ++i) m_hot[i] = (m_rms[i] > m_hot_thr) ? 0 : 1; }
Data scan
Saturated pixel mask
Time records
Intensity monitor records
Data processing
Split
Processing
Merging
Presentation of results
Summary
Overview
Content Tools