DUNE-DAQ / readout

This package contains Upstream DAQ Readout specific software and utilities, appfwk DAQModules, CCM interface implementations, and software emulators.
2 stars 1 forks source link

Hristova/raw wib tp consolidation #142

Open hristovaivana opened 2 years ago

hristovaivana commented 2 years ago

This is an attempt to move raw WIB TP frame unpacking from emulator to link handler (processor). N.B.

  1. For fake data read out from a binary file, the unpacking is still done in the emulator, however, now it's not the only place.
    1. Currently the unpacking done in the RAWWIBTriggerPrimitiveProcessor expects a chunk of binary data, they should be indeed TP frames (e.g. as coming out from real FELIX links), and the size of the chunk should be provided, via RAW_WIB_TRIGGERPRIMITIVE_STRUCT in ReadoutTypes. The chunk can contain many frames and its size should be known. This interface can be improved. [use unique_ptr] [use conf command]
    2. Now the unpacked RawWIBTp frames are not connected to another processor.
    3. Both the unpacking and stitching functionalities are in RAWWIBTriggerPrimitiveProcessor but can be decoupled in two different processors.
    4. This branch relies on special configuration generation which accounts for the split between firmware TPs and software TP generation. [by Florian]

Questions

  1. How to better separate the functionalities and make the structure cleaner?
  2. Is another ReadoutType needed for the TP chunk transmission? By "TP chunk" I mean a stream (of non-fixed size data chunks) of TP binary data which may or may not be stored in a file. The "TP chunk" is meant to contain one or many TP frames. How are the data from the FELIX TP link coming in to the readout? This means adding a layer to abstract/unify the TP data input, i.e. binary data either from a file or from a real FELIX TP link?
roland-sipos commented 2 years ago

Hi Ivana, 1.: Let's not worry about the restructuring for now, that will be the next step. You will see what goes where when we merge this back. 2.: The transformation of a "TP chunk" to RawWIBTPFrame should be done in flxlibs. I will help with that. 3.: I don't see the stitching algorithm anymore. Will that also be added to the RAWWIBTriggerPrimitiveProcessor?

I also see merge conflicts in include/readout/ReadoutTypes.hpp. Please fix that, then we merge.