Difference: AMC13RawDataAnalysis (4 vs. 5)

Revision 514 Aug 2015 - DanielArcaro

Line: 1 to 1
 
META TOPICPARENT name="HcalDTC"

New analysis code being developed for 2014 data format

Line: 16 to 16
 Bug reports are quite welcome. (to Ted Laird)
Changed:
<
<
A preliminary API is documented below. Three classes are foreseen:
>
>

Unpacker:

 
Changed:
<
<
Class Description
FedEvent one event fragment as received from an AMC13 in response to a single L1A
FedAmc Payload for one AMC
FedBlock internal block structure of event fragment

Each class is documented below:

Class FedEvent

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())
>
>
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: http://edf.bu.edu/svn/edf/arcaro/

Class documentation: http://ohm.bu.edu/~djarcaro/Documentation/unpacker.pdf

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 dumptmp.cc 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

Bugs

Deleted:
<
<
  • 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

Added:
>
>

DONE:

  • 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".
Line: 52 to 59
 
  • Check Blk_No, AmcNo, BoardID in block headers for consistency throughout event
  • Add option to dump entire AMC payloads
Added:
>
>
 -- EricHazen - 04 Aug 2014
Added:
>
>
META FILEATTACHMENT attachment="unpacker.pdf" attr="" comment="Documentation for classes in unpacker" date="1439568028" name="unpacker.pdf" path="unpacker.pdf" size="128427" stream="unpacker.pdf" tmpFilename="/usr/tmp/CGItemp28297" user="djarcaro" version="1"
 
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