Skip to content

Digitizer Event Decoder

Samuel Ross Meehan requested to merge meehan into master

This is implementing the first version of a decoder and testing code for the digitizer. There is also implemented a couple CI tests for the TLB and the Digitizer event decoders. The main changes are as such :

[1] Digitizer Decoder : This is contained all within EventFormats/EventFormats/DigitizerDataFragment.hpp and is based on the wonderful TLB decoder provided by @cantel (Thanks Claire!). It saves the digitizer payload in a structure that has separate members for the bits of the header and a map<int, vector<int>> to contain the ADC count data for each of the channels that have been enabled for readout. Getters have been enabled to retrieve the contents of this struct.

[2] eventDump : There was already a nice test code EventFormats/apps/eventDump.cxx which can run over a raw data file and parse the binary using the fragment decoders. I have implemented a section here for the Digitizer. I have also modified the command line argument parsing to allow for one to only dump the parsed fragment payload data for a particular system (TLB, TRB, Digitizer) as this may get cumbersome to use when the TRB people want to look only at TRB data if it still included the Digitizer dump.

[3] Continuous Integration Tests : I have implemented two CI tests in gitlab-ci.yml which runs over the test data that Claire took and was originally described here - https://indico.cern.ch/event/910789/. This data has been moved to the faserdaq service account EOS space - /eos/user/f/faserdaq/TestData/2020_April16/ - and I have put two hardcoded "reference" files in EventFormats/apps/ReferenceOutput that the output of the CI job is diffed against to verify whether the output changes as we develop further. Note that if the output does change, one should update these files accordingly.

Edited by Brian Petersen

Merge request reports