ATLAS Offline Software
Loading...
Searching...
No Matches
FibrePackerBase.h
Go to the documentation of this file.
1
2#ifndef FIBRE_PACKER_BASE_H
3#define FIBRE_PACKER_BASE_H
4
5#include <vector>
6#include <cstddef>
7#include <cstdint>
8
10
20
21public:
23 virtual ~FibrePackerBase() {}
24
25 using myDataWord = uint32_t;
26
27 /*
28 * \brief comma characters definition
29 */
33
41
45 virtual myDataWord crc9full(const std::vector<myDataWord>& inwords, size_t num_bits ) const;
46 virtual myDataWord crc9d32(const std::vector<myDataWord>& inwords, size_t num_words, bool bit_reverse) const;
47 virtual myDataWord crc9d23(myDataWord inword,myDataWord in_crc, bool bit_reverse) const;
48
52 virtual std::vector<myDataWord> getPackedData(const std::vector<myDataWord>& inFrame,myDataWord bcNumber, InputDataFrameType frameType) const = 0;
53
63 virtual std::vector<myDataWord> getPackedControl(const std::vector<myDataWord>& inFrame,myDataWord bcNumber, InputDataFrameType frameType) const = 0;
64
65 virtual bool checkCRC(const std::vector<myDataWord>& encodedData, InputDataFrameType frameType) const = 0;
66 virtual myDataWord getBcNumber(const std::vector<myDataWord>& encodedData, InputDataFrameType frameType) const = 0;
67 virtual myDataWord getBcMask(InputDataFrameType frameType) const = 0;
68 virtual std::vector<myDataWord> getUnpackedData(const std::vector<myDataWord>& encodedData, InputDataFrameType frameType) const = 0;
69
70private:
71
72};
73
74#endif
virtual std::vector< myDataWord > getPackedControl(const std::vector< myDataWord > &inFrame, myDataWord bcNumber, InputDataFrameType frameType) const =0
Function returning control words.
virtual myDataWord crc9d32(const std::vector< myDataWord > &inwords, size_t num_words, bool bit_reverse) const
FibrePackerBase()
Basic class for FEX input data packers.
virtual myDataWord getBcNumber(const std::vector< myDataWord > &encodedData, InputDataFrameType frameType) const =0
virtual myDataWord crc9full(const std::vector< myDataWord > &inwords, size_t num_bits) const
Functions calculating CRC over input data.
virtual ~FibrePackerBase()
InputDataFrameType
type of input data frame
@ Alignement
Special mapping/alignement frame.
virtual std::vector< myDataWord > getPackedData(const std::vector< myDataWord > &inFrame, myDataWord bcNumber, InputDataFrameType frameType) const =0
Function taking SC energies and other stuff and packing them into a data packet.
virtual bool checkCRC(const std::vector< myDataWord > &encodedData, InputDataFrameType frameType) const =0
virtual std::vector< myDataWord > getUnpackedData(const std::vector< myDataWord > &encodedData, InputDataFrameType frameType) const =0
virtual myDataWord crc9d23(myDataWord inword, myDataWord in_crc, bool bit_reverse) const
virtual myDataWord getBcMask(InputDataFrameType frameType) const =0