epics-modules / Dante

EPICS module for support of Dante digital pulse processors
1 stars 4 forks source link

List mode needs to use external input #4

Open MarkRivers opened 4 years ago

MarkRivers commented 4 years ago

One of the powerful features of the Dante is List Mode. In terms of the competition the Xspress3 cannot do list mode at all. The FalconX can do it internally, but it is not currently available in the XIA Handel API. Thus, this is a feature that is unique to the Dante.

It is clear that many future applications will need list mode, because they want pixel times that are too short to read complete spectra. But to be useful there needs to be a way to record an external input into the List mode stream. This will allow knowing what the stage position in the list stream.

I think that the external triggers input should simply inject an extra event into the string. There are 4 spare bits in the 64-bit event words right now: 16, 17, 62, and 63. One of those bits should be set for a rising edge trigger event. Another bit should be set for a falling edge trigger event. The timestamp for such synthetic events should just be a normal timestamp. The energy can be 0. In Trig Rising mode it will only generate events for rising edge, in Trig Falling mode it will only generate events for falling edge, and in Trig Both it will generate events for both. Those synthetic events are all we need. In fact this is how the Maia detector electronics from CSIRO work.

MarkRivers commented 4 years ago

I should add that there was strong support for this suggestion during my talk to the TWG at the APS. Many beamlines would like to use list mode, but it will only be useful if we can get the external input into the event stream.