Versions Compared

Key

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

...

  • the number of events
  • time records and average time interval

Pedestals averaging

Defines for the dark run

  • pedestals
  • RMS
  • hot pixel mask

Submit command

Code Block
psana -c /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0020-peds-scan.cfg /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0020-*.xtc

PSANA configuration script *peds-scan.cfg

Code Block
[psana] 
#files = /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0020-*.xtc 
skip#skip-events = 0IS_NOT_USED 
events#events = 75FOR_ALL_EVENTS 
modules = ImgAlgos.Tahometer ImgAlgos.PrincetonImageProducer ImgAlgos.ImgAverageImgTimeStampList 

[ImgAlgos.TahometerImgTimeStampList] 
print_bits = 713 

[ ImgAlgos.PrincetonImageProducer ] 
source = DetInfo(:Princeton) 
key_in = 
key_out = img 
print_bits = 1 

[ImgAlgos.ImgAverage] 
out_file = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0020-peds-scan-tstamp-list.txt 
#======EOF====== 

PSANA module ImgAlgos.ImgTimeStampList

Pedestals averaging

Defines for the dark run

  • pedestals
  • RMS
  • hot pixel mask

Submit command

Code Block

psana -c /regsource = DetInfo(:Princeton) 
key = img 
avefile = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0020-peds-ave.txt 
rmsfile =.cfg /reg/nehd/home1ana12/dubrovinxcs/LCLSxcsi0112/xtc/e167-r0020-*.xtc

PSANA configuration script *peds.cfg

Code Block

[psana] 
#filesPSANA-V01/work/t1-xcsi0112-r0020-peds-rms.txt 
hotpix_mask = /reg/nehd/home1ana12/dubrovinxcs/LCLSxcsi0112/PSANA-V01/work/t1-xcsi0112-r0020-hotpix-mask-thr-10.0ADU.txt 
hotpix_thr_adu = 10.0 
print_bits = 21 

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

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()

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;
        }
    }

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;
    }

Data scan

Defines for data run

  • the number of events in the run
  • saves time records and average time interval
  • saves intensity monitor data

Data averaging

Defines for data run

  • average image for selected range of events
  • evaluate saturated pixel mask

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

...

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.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 );
    

Module ImgAlgos.Tahometer

Data scan

Defines for data run

  • the number of events in the run
  • saves time records and average time interval
  • saves intensity monitor data

Submit command

Code Block

psana -c /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-data-scan.cfg /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0015-*.xtc

PSANA configuration script *data-scan.cfg

Code Block

[psana] 
#psana -m psana_examples.DumpPrinceton /reg/d/psdm/XCS/xcsi0112/xtc/e167-r0015-s00-c00.xtc 
#files = /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0015-*.xtc 
modules = ImgAlgos.Tahometer ImgAlgos.ImgTimeStampList ImgAlgos.IntensityMonitorsData 
#skip-events = IS_NOT_USED 
#events = FOR_ALL_EVENTS 

[ImgAlgos.Tahometer] 
print_bits = 11 

[ImgAlgos.ImgTimeStampList] 
print_bits = 13 
out_file = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-data-scan-tstamp-list.txt 

[ImgAlgos.IntensityMonitorsData] 
print_bits = 45 
#file_type = bin 
#file_data = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-data-scan-mons-data.txt 
file_data = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-data-scan-mons-data.txt 
file_header = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-data-scan-mons-comments.txt 
#======EOF====== 

Module ImgAlgos.ImgTimeStampList

  • ImgAlgos.ImgTimeStampList.cpp
  • ImgAlgos.ImgTimeStampList.h
    Produces file with time records *data-scan-tstamp-list.txt :
    Code Block
    
         0        0.000000  0.000000  20120616-080236.671607864    5366      0        0 
         1        8.026429  8.026429  20120616-080244.698036743    8255      1        1 
         2       16.144788  8.118359  20120616-080252.816395836   11177      2        2 
         3       24.154835  8.010048  20120616-080300.826443448   14060      3        3 
         4       32.281937  8.127102  20120616-080308.953545010   16985      4        4 
         5       40.400633  8.118696  20120616-080317.072241060   19907      5        5
    ...
    

Module ImgAlgos.IntensityMonitorsData

Intensity monitor records

IntensityMonitorsData produces files:

  • with headers for intensity monitor data data-scan-mons-comments.txt:
    Code Block
    
    Heder for the data file: /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-data-scan-mons-data.txt
    Number of sources: 5
    Four values per source:
    BldInfo(FEEGasDetEnergy) BldInfo(XCS-IPM-02) BldInfo(XCS-IPM-mono) DetInfo(XcsBeamline.1:Ipimb.4) DetInfo(XcsBeamline.1:Ipimb.5) 
    Number of records in file: 500
    
  • with intensity monitor data data-scan-mons-data.txt:
    Code Block
    
          0  2.19399 2.20273 0.05872 0.06004  0.62876 1.50444 0.60655 1.54488  0.00793 0.01758 0.00502 0.01968  0.00000 -0.00025 -0.00020 0.00000  0.00000 0.00000 0.00000 0.00000  
          1  2.10433 2.10410 0.06630 0.06703  0.66294 1.56792 0.62547 1.61347  0.00572 0.01147 0.00227 0.01366  0.00000 -0.00025 -0.00020 0.00000  0.00145 0.00610 0.00069 0.00153  
          2  2.40593 2.37730 0.06799 0.07501  0.69857 1.71524 0.70642 1.74614  0.00626 0.01590 0.00456 0.01946  0.00015 -0.00025 -0.00020 0.00000  0.00000 0.00000 0.00000 0.00000  
          3  2.44108 2.46661 0.07772 0.10092  0.69842 1.72280 0.71169 1.76384  0.00000 0.00064 -0.00040 0.00008  0.00000 -0.00025 -0.00020 0.00008  0.00000 0.00000 0.00000 0.00000  
          4  2.45779 2.45074 0.09505 0.08122  0.72374 1.71555 0.68254 1.74523  0.01320 0.03017 0.00952 0.03456  0.00000 -0.00025 -0.00020 0.00015  0.00000 0.00000 0.00000 0.00000  
          5  2.12671 2.13944 0.08422 0.07668  0.66477 1.61919 0.65263 1.63864  0.06844 0.15933 0.04858 0.17990  0.00000 -0.00025 -0.00020 0.00008  0.00000 0.00000 0.00114 0.00000  
    ...
    

Data averaging

Defines for data run

  • average image for selected range of events
  • evaluate saturated pixel mask

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

PSANA configuration script *data-aver.cfg

Code Block

[psana] 
#files = /reg/d/ana12/xcs/xcsi0112/xtc/e167-r0015-*.xtc 
skip-events = 0 
events = 500 
modules = ImgAlgos.Tahometer ImgAlgos.PrincetonImageProducer ImgAlgos.ImgAverage ImgAlgos.ImgMaskEvaluation 

[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-r0015-data-ave.txt 
rmsfile = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-data-rms.txt 
print_bits = 25 
#evts_stage1 = 100 
#evts_stage2 = 100 
#gate_width1 = 200 
#gate_width2 = 50 

[ImgAlgos.ImgMaskEvaluation] 
source = DetInfo(:Princeton) 
key = img 
file_mask_satu = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-satpix-mask-level-65000ADU.txt 
file_mask_nois =  
file_mask_comb = 
file_frac_satu = /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-xcsi0112-r0015-satpix-frac-level-65000ADU.txt 
file_frac_nois =  
thre_satu = 65000 
frac_satu = 0 
dr_SoN_ave = 1 
thre_SoN = 5 
frac_nois = 0.05 
print_bits = 29 
#======EOF====== 

Module ImgAlgos.ImgMaskEvaluation

Saturated pixel mask

The saturated pixel mask is produced in ImgAlgos.ImgMaskEvaluation

Time 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

...

Processing

Submit command

Code Block
corana -f /reg/neh/home1/dubrovin/LCLS/PSANA-V01/work/t1-cora-r0015-b0000.bin -t ./tau-list.txt

...

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

...