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:
badcoffee.cpp
Bug reports are quite welcome. (to Ted Laird)
A preliminary API is documented below. Three classes are foreseen:
Each class is documented below:
Function |
Description |
CalcCRC() |
CRC16 calculated from event data (should match CRC() ) |
CalcSize() |
Size calculated from structure (should match total word count) |
CRC() |
CRC16 from event trailer |
EvN() , BcN() , OrN() |
Access Event, Bunch and Orbit numbers from event header |
FedEvent( uint64_t* data, size_t size) |
Constructor using raw data |
vector amc |
Vector of 1...12 FedAmc objects representing AMC payloads |
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