Page History
Psana2 makes all events that are integrated by a user-specified detector available on the same process.
Test data
index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
data-r0001-s000-c000.xtc2 | 0 | 1 | 2 | 3 | | | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | | 11 | 12 | 13 | 14 | 15 | 16 | | | 17 | 18 | 19 | 20 | 21 | | | 22 | 23 | |
data-r0001-s001-c000.xtc2 | 0 | 1 | 2 | 3 | | | 7 | 10 | | | 13 | 16 | | | 19 | 21 | | | 22 | 23 | ← intg det | ||||||||||||
data-r0001-s002-c000.xtc2 | 0 | 1 | 2 | 3 | | | 10 | | | | | 20 | 21 | | | 22 | 23 | ||||||||||||||||
value | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
Note that ts 0, 1, 2, 3, 21, 22, 23 are Transtion events.
...
Here's the sample script reads a run with three stream files. In this run, the andor (s001) is to integrate over other detectors. You can see that the series of events show up correctly by looking at the sum of the hsd (s000) and epix (s002).
In this example, chunk size is 2 (PS_SMD_N_EVENTS=2/ two integrating events per chunk) and batch size is 1 (batch_size=1/ one integrating events per batch).
EventBuilder receives:
Note that 0 and 1 (Configure and BeginRun) are skipped
2-3
4-10
11-16
17-20
Bd 0 receives:
4-7
11-13
17-19
Bd 1 receives:
8-10
14-16
20-21
Design details
SMD0
Without an integrating detector, Smd0 reads chunks of data and sends these chunks of a defined size (PS_SMD_N_EVENTS) to EventBuilders. Since there can be different of events in each stream (depending on detector rates), no. of events from the slowest detector is used to identify the limiting timestamp. This timestamp is then used to locate the boundaries for other detectors.
...