16#ifndef ALICEO2_CTP_RAWDATADECODER_H_
17#define ALICEO2_CTP_RAWDATADECODER_H_
56 static int shiftNew(
const o2::InteractionRecord& irin, uint32_t TFOrbit, std::bitset<48>& inpmask, int64_t shift,
int level, std::map<o2::InteractionRecord, CTPDigit>& digmap);
61 static constexpr uint32_t TF_TRIGGERTYPE_MASK = 0x800;
62 static constexpr uint32_t HB_TRIGGERTYPE_MASK = 0x2;
64 bool mDecodeInps =
false;
65 bool mCheckConsistency =
false;
67 bool mDoDigits =
true;
68 std::vector<CTPDigit> mOutputDigits;
72 static constexpr std::bitset<o2::ctp::CTP_NINPUTS> LMMASKInputs = 0xfff;
73 static constexpr std::bitset<o2::ctp::CTP_NINPUTS> L0MASKInputs = 0xfff000;
74 static constexpr std::bitset<o2::ctp::CTP_NINPUTS> L1MASKInputs = (0xffffffull << 24);
77 bool mVerbose =
false;
78 uint32_t mIRRejected = 0;
79 uint32_t mTCRRejected = 0;
81 uint32_t mTFOrbit = 0;
82 std::vector<uint32_t> mTFOrbits;
87 bool mStickyError =
false;
definition of CTPDigit, CTPInputDigit
int addCTPDigit(uint32_t linkCRU, uint32_t triggerOrbit, gbtword80_t &diglet, gbtword80_t &pldmask, std::map< o2::InteractionRecord, CTPDigit > &digits)
static int shiftNew(const o2::InteractionRecord &irin, uint32_t TFOrbit, std::bitset< 48 > &inpmask, int64_t shift, int level, std::map< o2::InteractionRecord, CTPDigit > &digmap)
static void makeGBTWordInverse(std::vector< gbtword80_t > &diglets, gbtword80_t &GBTWord, gbtword80_t &remnant, uint32_t &size_gbt, uint32_t Npld)
int checkReadoutConsistentncy(o2::pmr::vector< CTPDigit > &digits, uint64_t trgclassmask=0xffffffffffffffff)
uint32_t getTCRRejected() const
~RawDataDecoder()=default
std::vector< uint32_t > & getTFOrbits()
void setCTPConfig(CTPConfiguration cfg)
int setLumiInp(int lumiinp, std::string inp)
void setDoDigits(bool digi)
int decodeRaw(o2::framework::InputRecord &inputs, std::vector< o2::framework::InputSpec > &filter, o2::pmr::vector< CTPDigit > &digits, std::vector< LumiInfo > &lumiPointsHBF1)
CTPConfiguration & getCTPConfig()
static int shiftInputs(std::map< o2::InteractionRecord, CTPDigit > &digitsMap, o2::pmr::vector< CTPDigit > &digits, uint32_t TFOrbit, uint64_t trgclassmask=0xffffffffffffffff)
void setCheckConsistency(bool check)
void setDecodeInps(bool decodeinps)
void setDoLumi(bool lumi)
int decodeRawFatal(o2::framework::InputRecord &inputs, std::vector< o2::framework::InputSpec > &filter)
uint32_t getIRRejected() const
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
std::bitset< NGBT > gbtword80_t
void check(const std::vector< std::string > &arguments, const std::vector< ConfigParamSpec > &workflowOptions, const std::vector< DeviceSpec > &deviceSpecs, CheckMatrix &matrix)
std::vector< T, o2::pmr::polymorphic_allocator< T > > vector
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::vector< Digit > digits