New analysis code being developed for 2014 data format

New code is being developed by Daniel Arcaro with help from Eric Hazen and Dan Gastler to analyze the new/final data format documented here: AMC13CommonFirmwareProposal. Also Ted Laird has written a tool to convert to root format:

P.S. If you end up dumping the AMC13 monitor buffers, but would like
to convert the dumps to .root files with TTrees of
std::vector, so that you can use "ordinary" analysis
programs to analyze them, feel free to use this program:

Bug reports are quite welcome.  (to Ted Laird)


Unpacker consists of three classes to parse AMC13 data format: FedEvent, FedBlock, and FedAMC. Various tools have also been created to utilize these classes and analyze the data. All code can be found here:

Class documentation:

Build and Run Instructions:

Check out and build: List of tools and their uses:
  • dump64: Prints the raw data to screen in hex with 64bits per line. Used to sort through data by hand.
    • use: $ ./dump64 file.dat (usually followed by | less)
  • dump: Main dump tool to parse events and check for errors.
    • use: $ ./dump file.dat -v 1 -e 1 -c
    • -v flag for amount of information about the event printed to screen
    • -c flag to turn CRC checking on or off
    • -e flag to print specific errors to screen

Root and Histogram Options:

If root is installed can be made by $make root=1. dumptmp is identical to dump but also creates a root file with a histogram of the error array.

To Do List


  • Add a doxygen configuration file and "doc" target to makefile so one can do 'make doc' and get the doxygen output.

New Features


  • In FedEvent::PreParse the expression if(GetNAMC() > 0 || GetNAMC() < 13) is always true. I think you mean to use && instead of ||.
  • In FedEvent::PreParse there are two possibilities for size: a) 2 and b) 4...14. It should throw an exception if any other value is passed. The comments should reflect this.

  • Check for consistency of LMSEPVC bits through an entire event
    • MS should be "10" for first block, "11" for intermediate blocks, "01" for final blocks.
    • C should be 1 when MS="01".
    • EP should always be "11" I think
  • Check Blk_No, AmcNo, BoardID in block headers for consistency throughout event
  • Add option to dump entire AMC payloads

-- EricHazen - 04 Aug 2014

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf unpacker.pdf r1 manage 125.4 K 14 Aug 2015 - 16:00 DanielArcaro Documentation for classes in unpacker
Edit | Attach | Watch | Print version | History: r22 | r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r5 - 14 Aug 2015 - DanielArcaro
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback