ATLAS Offline Software
|
#include <EfexTrexFibrePacker.h>
Public Types | |
enum | InputDataFrameType { InputDataFrameType::Normal, InputDataFrameType::Alignement } |
type of input data frame More... | |
using | myDataWord = uint32_t |
Public Member Functions | |
EfexTrexFibrePacker () | |
Class implementing packing and unpacking data into TREX eFex format. More... | |
virtual | ~EfexTrexFibrePacker () |
virtual std::vector< myDataWord > | getPackedData (const std::vector< myDataWord > &inFrame, myDataWord bcNumber, InputDataFrameType frameType) const override |
Function packing the data into the LATOME format, either standard or alignement frame. More... | |
virtual std::vector< myDataWord > | getPackedControl (const std::vector< myDataWord > &inFrame, myDataWord bcNumber, InputDataFrameType frameType) const override |
Function returning control words. More... | |
virtual bool | checkCRC (const std::vector< myDataWord > &encodedData, InputDataFrameType frameType) const override |
virtual myDataWord | getBcNumber (const std::vector< myDataWord > &encodedData, InputDataFrameType frameType) const override |
virtual myDataWord | getBcMask (InputDataFrameType frameType) const override |
virtual std::vector< myDataWord > | getUnpackedData (const std::vector< myDataWord > &encodedData, InputDataFrameType frameType) const override |
Function unpacking the data from LATOME format, either standard or alignement frame. More... | |
virtual myDataWord | crc9full (const std::vector< myDataWord > &inwords, size_t num_bits) const |
Functions calculating CRC over input data. More... | |
virtual myDataWord | crc9d32 (const std::vector< myDataWord > &inwords, size_t num_words, bool bit_reverse) const |
virtual myDataWord | crc9d23 (myDataWord inword, myDataWord in_crc, bool bit_reverse) const |
Public Attributes | |
myDataWord | K_28_5 = 0xbc |
myDataWord | K_28_1 = 0x3c |
myDataWord | K_28_0 = 0x1c |
Definition at line 10 of file EfexTrexFibrePacker.h.
|
inherited |
Definition at line 25 of file FibrePackerBase.h.
|
stronginherited |
type of input data frame
Enumerator | |
---|---|
Normal | Standard data frame. |
Alignement | Special mapping/alignement frame. |
Definition at line 37 of file FibrePackerBase.h.
|
inline |
Class implementing packing and unpacking data into TREX eFex format.
The class does heavy lifting of packing and unpacking TREX data packet. The format is similar to one used by LATOME and stored at https://gitlab.cern.ch/atlas-lar-be-firmware/LATOME/LATOME/raw/master/LATOME/doc/LAr-LATOME-FW/LAr-LATOME-FW.pdf but different in few important details! Most recent version is called TREX-FEX Real-Time Data Formats v3 14.10.2019
Definition at line 21 of file EfexTrexFibrePacker.h.
|
inlinevirtual |
Definition at line 22 of file EfexTrexFibrePacker.h.
|
overridevirtual |
|
virtualinherited |
CRC9D23 as specified in LAr VHDL
Function does CRC9D23 calculation. Thanslated from LATOME VHDL to python by Ed Flaherty, then to c++ by jb
Definition at line 108 of file FibrePackerBase.cxx.
|
virtualinherited |
CRC9D32 as specified in LAr VHDL
Function does CRC9D32 calculation. Thanslated from LATOME VHDL to python by Ed Flaherty, then to c++ by jb
Definition at line 37 of file FibrePackerBase.cxx.
|
virtualinherited |
Functions calculating CRC over input data.
CRC9 with polynomial 1011111011 over num_bits bits
Uses a more succinct CRC calculation and flexible in terms of digits, checked versus old code but only supports bit reversal = true
Definition at line 8 of file FibrePackerBase.cxx.
|
overridevirtual |
Implements FibrePackerBase.
Definition at line 122 of file EfexTrexFibrePacker.cxx.
|
overridevirtual |
Implements FibrePackerBase.
Definition at line 116 of file EfexTrexFibrePacker.cxx.
|
overridevirtual |
Function returning control words.
The control words are used to distinguish between standard data and K characters. Each K character is 8 bit long and can be at one of four positions in 32 bit word. Control words encode location of K characters in 32 bit words, for example 0x1 means K character in the lowest byte, 0x3 means two K-characters in two lowest bytes
Implements FibrePackerBase.
Definition at line 72 of file EfexTrexFibrePacker.cxx.
|
overridevirtual |
Function packing the data into the LATOME format, either standard or alignement frame.
The function expects input data in vector inFrame. For normal frame, this is a vector of supercell energies. For alignement frame the function doesn't need any additional data.
Implements FibrePackerBase.
Definition at line 9 of file EfexTrexFibrePacker.cxx.
|
overridevirtual |
Function unpacking the data from LATOME format, either standard or alignement frame.
For normal frame, the function returns a vector of supercell energies. For alignement frame the function returns empty vector.
Implements FibrePackerBase.
Definition at line 127 of file EfexTrexFibrePacker.cxx.
|
inherited |
Definition at line 32 of file FibrePackerBase.h.
|
inherited |
Definition at line 31 of file FibrePackerBase.h.
|
inherited |
Definition at line 30 of file FibrePackerBase.h.