The original goal is to scale Roentdek and HitFinder (Xiang's reconstruction) algorithms for hexanode data. We started with the current quadanode due to the availability of the data. 

Test data preparation

We generated simulated fex data from the original quadanode raw data (amox27716 run 85). We extracted peaks (using CFD algorithm) and the windows of peaks with starting positions were saved into an xtc2 file. 

Notes:

1. We duplicate 30M events from the unique 1000 (original data) events

2. Out of 1000 events, 268 have no peaks (Runtime for Roentdek is 0s).

3. We checked the results of Roentdek algorithm and it appears that data is quite sparse

See results: /cds/data/drpsrcf/users/monarin/amox27716/results/amox27716/r0085/

Location of the simulated fex data: /cds/home/m/monarin/psana-nersc/psana2/dgrampy/amox27716

Script used for creating simulated fex and save to xtc2 file: https://github.com/monarin/psana-nersc/blob/master/psana2/dgrampy/ex-01-conv-raw-to-fex-wf.py

Roentdek Result

Note that Read levels off for both 1x- and 2x-detector cases. This is in reference with the performance of Smd0 and EventBuilder cores for N stream files.

More detail - see roentdek-pipeline tab here:

https://docs.google.com/spreadsheets/d/111exVHQH_zOTYJYSl6XrYtj22Z-jqC0YZg847kaVt_8/edit#gid=368970043

HitFinder Result

Keeping the script mostly the same as what is used for Roentdek test. The reconstruction (xyt) by Roentdek wrapper (DLDProcessor) is replaced with Xiang's HitFinder library.

Notes:

1. Need to comment out logging line for better performance:
https://github.com/slac-lcls/lcls2/blob/master/psana/psana/hexanode/DLDProcessor.py#L202
2. Need to comment out same event no. checking (to be able to process events
with more than one detector).
https://github.com/slac-lcls/lcls2/blob/master/psana/psana/hexanode/DLDProcessor.py#L221
3. Related to hidden rank problem in psana2
Traceback (most recent call last):
  File "./test_roentdek.py", line 325, in <module>
    proc_data(**kwargs)
  File "./test_roentdek.py", line 90, in proc_data
    dldpars = {'consts':det.calibconst}
AttributeError: 'NoneType' object has no attribute 'calibconst'

  • No labels