|
ATLAS Offline Software
|
Go to the documentation of this file.
2 #ifndef L1CALO_BS_DECODER_RUN3_H
3 #define L1CALO_BS_DECODER_RUN3_H
14 class L1CaloRdoGfexTob;
15 class L1CaloRdoGfexTower;
16 class L1CaloRdoJfexTob;
17 class L1CaloRdoJfexTower;
18 class L1CaloRdoMuonTob;
19 class L1CaloRdoPh1TopoHit;
34 virtual void err(
const std::string& location,
const std::string&
title,
const std::string&
detail)
const {
35 std::cerr <<
"L1CaloBsDecoderRun3::" << location <<
" : " <<
title <<
" - " <<
detail << std::endl;
44 std::list<L1CaloRdoEfexTower>& dat,
45 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo )
const;
48 std::list<L1CaloRdoEfexTob>& tob,
49 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo )
const;
58 std::list<L1CaloRdoEfexTob>& tob,
59 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo )
const;
65 std::list<L1CaloRdoEfexTower>& dat,
66 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo )
const;
71 std::list<L1CaloRdoEfexTob>& tob,
72 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo )
const;
76 #ifndef OFFLINE_DECODER
78 std::list<L1CaloRdoJfexTower>& dat,
79 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
82 std::list<L1CaloRdoJfexTob>& tob,
83 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
86 std::list<L1CaloRdoGfexTower>& dat,
87 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
90 std::list<L1CaloRdoGfexTob>& dat,
91 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
94 std::list<L1CaloRdoEfexTob>& etob,
95 std::list<L1CaloRdoJfexTob>& jtob,
96 std::list<L1CaloRdoGfexTob>& gtob,
97 std::list<L1CaloRdoMuonTob>& mtob,
98 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
101 std::list<L1CaloRdoPh1TopoHit>& hit,
102 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
109 std::list<L1CaloRdoJfexTower>& dat,
110 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
116 std::list<L1CaloRdoJfexTob>& tob,
117 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
123 std::list<L1CaloRdoGfexTower>& dat,
124 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
129 std::list<L1CaloRdoGfexTob>& tob,
130 std::list<L1CaloRdoRodInfo>::const_iterator rodInfo );
131 #endif // OFFLINE_DECODER
void decodeEfexData(const uint32_t *beg, const uint32_t *end, std::list< L1CaloRdoEfexTower > &dat, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo) const
Decode eFEX input fibre data.
void decodeGfexData(const uint32_t *beg, const uint32_t *end, std::list< L1CaloRdoGfexTower > &dat, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode gFEX input fibre data.
char data[hepevt_bytes_allocation_ATLAS]
Interface class for logging, can be overriden to e.g.
std::unique_ptr< Logging > m_logger
virtual void err(const std::string &location, const std::string &title, const std::string &detail) const
void setVerbosity(bool verbosity)
uint32_t decodeJfexDataChan(const uint32_t payload[], const uint32_t jfexNumber, const uint32_t fpgaNumber, const uint32_t errorMask, std::list< L1CaloRdoJfexTower > &dat, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode the data from one jFEX input fibre (only ever one slice).
void setLogger(std::unique_ptr< Logging > &&logger)
L1Topo::BlockTypes blockType(const uint32_t word, uint32_t offset=28, uint32_t size=0x0f)
Function to return the block type of a data word from L1Topo
void decodeOneEfexTob(const uint32_t word[], const uint32_t shelfNumber, const uint32_t efexNumber, const uint32_t fpgaNumber, const uint32_t errorMask, const uint32_t numSlices, const uint32_t sliceNum, L1CaloRdoFexTob::TobType tobType, L1CaloRdoFexTob::TobSource tobSource, std::list< L1CaloRdoEfexTob > &tob, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo) const
Decode word(s) for one eFEX TOB (or xTOB) and create one RDO.
void decodeGfexTobs(const uint32_t *beg, const uint32_t *end, std::list< L1CaloRdoGfexTob > &dat, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode gFEX TOBs.
virtual ~Logging()=default
bool decodeGfexTobSlice(const uint32_t payload[], const uint32_t blockType, const uint32_t sliceNumber, const uint32_t numSlices, const uint32_t errorMask, std::list< L1CaloRdoGfexTob > &tob, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode one gFEX FPGA block of TOBs for one slice.
bool decodeJfexTobSlice(const uint32_t payload[], size_t blockSize, size_t &index, const uint32_t jfexNumber, const uint32_t fpgaNumber, const uint32_t sliceNumber, const uint32_t numSlices, const uint32_t errorMask, std::list< L1CaloRdoJfexTob > &tob, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode one jFEX FPGA block of TOBs and XTOBs for one slice.
void decodeJfexData(const uint32_t *beg, const uint32_t *end, std::list< L1CaloRdoJfexTower > &dat, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode jFEX input fibre data.
void decodePh1TopoData(const uint32_t *beg, const uint32_t *end, std::list< L1CaloRdoEfexTob > &etob, std::list< L1CaloRdoJfexTob > &jtob, std::list< L1CaloRdoGfexTob > >ob, std::list< L1CaloRdoMuonTob > &mtob, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode Ph1Topo input data: these are TOBs from FEXes and MuCTPI.
void decodeJfexTobs(const uint32_t *beg, const uint32_t *end, std::list< L1CaloRdoJfexTob > &tob, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode jFEX TOBs and XTOBs.
bool checkFibreCRC(std::vector< uint32_t > &data) const
Check the CRC in an input fibre block of words.
uint32_t decodeGfexDataChan(const uint32_t payload[], const uint32_t fpgaNumber, const uint32_t chanNumber, const uint32_t errorMask, std::list< L1CaloRdoGfexTower > &dat, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode the data from one gFEX input fibre (only ever one slice).
uint32_t decodeEfexDataChan(const uint32_t payload[], const uint32_t efexNumber, const uint32_t shelfNumber, const uint32_t errorMask, std::list< L1CaloRdoEfexTower > &dat, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo) const
Decode the data from one eFEX input fibre (only ever one slice).
bool decodeEfexTobSlice(const uint32_t payload[], size_t &index, const uint32_t efexNumber, const uint32_t shelfNumber, const uint32_t numSlices, const uint32_t errorMask, std::list< L1CaloRdoEfexTob > &tob, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo) const
Decode one eFEX FPGA block of TOBs and XTOBs for one slice.
void decodePh1TopoHits(const uint32_t *beg, const uint32_t *end, std::list< L1CaloRdoPh1TopoHit > &hit, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo)
Decode Ph1Topo hit results.
void decodeEfexTobs(const uint32_t *beg, const uint32_t *end, std::list< L1CaloRdoEfexTob > &tob, std::list< L1CaloRdoRodInfo >::const_iterator rodInfo) const
Decode eFEX TOBs and XTOBs.