Artdaq Work List

This list was compiled on Jan 31, 2012. Please update the list as elements are finished, or as work items are changed.
We imagine several phases of development, but have only written about Phase 1.

Phase 1

  1. DS50 reading and writing library. This is code to be used by both the DS50EventReader and by the "detector" code. It should include reading of DS50 data files, writing of DS50 data files, and random generation of properly-formatted DS50 data, and could include a variety of configurable data distributions.
  2. RawEvent needs to be modified to hold onto Fragment objects through unique_ptr, to avoid copying bytes. The bytes must be copied out of the buffers managed by RHandles, but further copying should be avoided.
  3. The RawInput class needs to adapt to the new RawEvent interface. The first version will have to copy the bytes out of the unique_ptr<Fragment>, because the Event interface is expecting an auto_ptr.
  4. The Huffman compression module needs to be written, using the existing algorithm implementation.
  5. An analyzer that calculates and appropriately records the size of the input Fragment objects along with the size of the resulting CompressedFragment objects is needed. The output can be as simple as a text file to be analyzed with R.
  6. The RLE module needs to be written.
  7. The management of algorithm table files need to be improved. Specifying the name of the file in the FHiCL configuration, and expecting the file to be in the current working directory, seems sufficient for now.
  8. The Fragment should be changed from a typedef for vector<some-integer-type> to a class which contains such a vector, and which makes sure the resulting Fragment satisfies the require invariants (e.g. embedded run and event and board numbers)
  9. The compression test programs currently do not work on first run; a second run succeeds.
  10. We need a test that runs the DS50 "driver" program and makes sure the output is as expected.
  11. Untested elements in the system need to be identified and tested.
  12. Analysis scripts are needed to extract performance results from the output data:
    • review what is already in place
    • determine what plots we want to show and what statistics and figures of merit to report
    • perform a preliminary analysis to determine how long it takes the system to achieve steady-state performance conditions