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.
A preliminary API is documented below. Three classes are foreseen:
Each class is documented below:
Function |
Description |
FedEvent( uint64_t* data, size_t size) |
Constructor using raw data |
EvN() , BcN() , OrN() |
Access Event, Bunch and Orbit numbers from event header |
vector amc |
Vector of 1...12 FedAmc objects representing AMC payloads |
CalcSize() |
Size calculated from structure (should match total word count) |
CRC() |
CRC16 from event trailer |
CalcCRC() |
CRC16 calculated from event data (should match CRC() ) |
To Do List
Bugs
- 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.
- Add a doxygen configuration file and "doc" target to makefile so one can do 'make doc' and get the doxygen output.
New Features
- 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