Draft: ECDC-3593 ev44 fix
Issue
ECDC-3593
The nexus writer implmentation of the ev44 writer module is not consistent with ev43. The implementation does not meet our requirements but I cannot assess if it is a bug that affects ESS. The ev43 nxs writer implementation essentially merges the ev43 messages from kafka and provides similar structure using a pulse index and pulse time that points to section of events linked to a pulse. The ev44 implementation just appends the pulse times and index to the hdf dataset as EventTimeZero and EventTimeZeroIndex. An additional dataset (EventIndex) is included that increments the events written for each ev44 message. The problem there is no way of linking the EventIndex with EventTimeZeroIndex to adjust the offset.
There is a potential problem which is common to both ev43 qnd ev44 implementations in the nxs writer. The pulse times are assumed to be monotonically increasing but the reality is they are non-decreasing going forward, as an ev43/ev44 message may be flushed because it is full and the last pulse of the sent message is the same as first pulse of the next message. There is no error in recording the data with repeated pulse values as the cross reference relationship is correct but subsequent processing (such as Mantid loader) should handle this correctly. It may be better to merge the events for the same pulse time
Description of work
Add a description of the work done. The aim is provide information to help the reviewer review the PR efficiently. See CONTRIBUTING.MD for more information on code standards etc.
Checklist
-
Changes have been documented in changes.md
-
Documentation has been updated in documentation
directory