ATLAS Offline Software
Loading...
Searching...
No Matches
MdtCsmReadOut Class Reference

#include <MdtCsmReadOut.h>

Inheritance diagram for MdtCsmReadOut:
Collaboration diagram for MdtCsmReadOut:

Public Member Functions

 MdtCsmReadOut ()
 ~MdtCsmReadOut ()=default
void decodeWord (uint32_t dataWord)
bool is_BOB () const
bool is_LWC () const
bool is_BOL () const
bool is_TLP () const
bool is_TWC () const
bool is_EOB () const
uint32_t lvl1Id () const
uint32_t clwc () const
uint16_t ftyp () const
uint32_t flags () const
uint16_t ecnt () const
uint16_t ctwc () const
uint16_t mrodId () const
uint16_t csmId () const
uint32_t makeBOB (uint32_t lvl1Id)
uint32_t makeLWC (uint32_t clwc)
uint32_t makeBOL (uint16_t mrodId, uint16_t csmId)
uint32_t makeTLP (uint32_t flags)
uint32_t makeTWC (uint16_t ecnt, uint16_t ctwc)
uint32_t makeEOB (uint32_t wcnt)

Protected Member Functions

constexpr std::pair< uint32_t, uint16_t > getBitsWord (const uint16_t bstart, const uint16_t bstop)
uint32_t getBits (std::pair< uint32_t, uint16_t > wordbstop) const

Static Protected Member Functions

static uint32_t setBits (uint16_t nData, const uint16_t *inputData, const uint16_t *inputPos)
static uint32_t setBits (uint16_t nData, const uint32_t *inputData, const uint16_t *inputPos)

Protected Attributes

uint32_t m_word

Private Member Functions

void setZero ()

Private Attributes

uint32_t m_dataWord
uint16_t m_wordHeader
uint32_t m_lvl1Id
uint32_t m_clwc
uint16_t m_ftyp
uint32_t m_flags
uint16_t m_ecnt
uint16_t m_ctwc
uint16_t m_mrodId
uint16_t m_csmId
bool m_error
bool m_zeroSupp

Static Private Attributes

static constexpr uint16_t s_headerPos = 24
static constexpr uint16_t s_headerBits = 0xff
static constexpr uint16_t s_BOBvalue = 0x80
static constexpr uint16_t s_LWCvalue = 0x81
static constexpr uint16_t s_BOLvalue = 0x18
static constexpr uint16_t s_TLPvalue = 0x89
static constexpr uint16_t s_TWCvalue = 0x8a
static constexpr uint16_t s_EOBvalue = 0xf0

Detailed Description

Definition at line 15 of file MdtCsmReadOut.h.

Constructor & Destructor Documentation

◆ MdtCsmReadOut()

MdtCsmReadOut::MdtCsmReadOut ( )

Definition at line 12 of file MdtCsmReadOut.cxx.

12 :
13 m_dataWord(0),
14 m_wordHeader(0),
15 m_lvl1Id(0),
16 m_clwc(0),
17 m_ftyp(0),
18 m_flags(0),
19 m_ecnt(0),
20 m_ctwc(0),
21 m_mrodId(0),
22 m_csmId(0),
23 m_error(0),
24 m_zeroSupp(0) {}
uint32_t m_clwc
uint16_t m_ftyp
uint16_t m_csmId
uint16_t m_mrodId
uint16_t m_ctwc
uint32_t m_dataWord
uint16_t m_wordHeader
uint32_t m_flags
uint16_t m_ecnt
uint32_t m_lvl1Id

◆ ~MdtCsmReadOut()

MdtCsmReadOut::~MdtCsmReadOut ( )
default

Member Function Documentation

◆ clwc()

uint32_t MdtCsmReadOut::clwc ( ) const
inline

Definition at line 68 of file MdtCsmReadOut.h.

68{ return m_clwc; }

◆ csmId()

uint16_t MdtCsmReadOut::csmId ( ) const
inline

Definition at line 74 of file MdtCsmReadOut.h.

74{ return m_csmId; }

◆ ctwc()

uint16_t MdtCsmReadOut::ctwc ( ) const
inline

Definition at line 72 of file MdtCsmReadOut.h.

72{ return m_ctwc; }

◆ decodeWord()

void MdtCsmReadOut::decodeWord ( uint32_t dataWord)

Definition at line 26 of file MdtCsmReadOut.cxx.

26 {
27 setZero();
28
29 m_dataWord = dataWord;
30 m_word = dataWord;
31 m_wordHeader = (dataWord >> s_headerPos) & s_headerBits;
32
33 if (is_BOB()) {
35 } else if (is_LWC()) {
36 m_ftyp = getBits(getBitsWord(23, 20));
37 m_clwc = getBits(getBitsWord(19, 0));
38 } else if (is_BOL()) {
39 m_error = (bool)getBits(getBitsWord(20, 20));
43 } else if (is_TLP()) {
44 m_flags = getBits(getBitsWord(17, 0));
45 } else if (is_TWC()) {
46 m_ecnt = getBits(getBitsWord(23, 12));
47 m_ctwc = getBits(getBitsWord(11, 0));
48 }
49}
bool is_TWC() const
bool is_BOB() const
static constexpr uint16_t s_headerPos
bool is_TLP() const
bool is_BOL() const
bool is_LWC() const
static constexpr uint16_t s_headerBits
uint32_t getBits(std::pair< uint32_t, uint16_t > wordbstop) const
Definition MdtReadOut.h:27
uint32_t m_word
Definition MdtReadOut.h:38
constexpr std::pair< uint32_t, uint16_t > getBitsWord(const uint16_t bstart, const uint16_t bstop)
Definition MdtReadOut.h:20
setBGCode setTAP setLVL2ErrorBits bool

◆ ecnt()

uint16_t MdtCsmReadOut::ecnt ( ) const
inline

Definition at line 71 of file MdtCsmReadOut.h.

71{ return m_ecnt; }

◆ flags()

uint32_t MdtCsmReadOut::flags ( ) const
inline

Definition at line 70 of file MdtCsmReadOut.h.

70{ return m_flags; }

◆ ftyp()

uint16_t MdtCsmReadOut::ftyp ( ) const
inline

Definition at line 69 of file MdtCsmReadOut.h.

69{ return m_ftyp; }

◆ getBits()

uint32_t MdtReadOut::getBits ( std::pair< uint32_t, uint16_t > wordbstop) const
inlineprotectedinherited

Definition at line 27 of file MdtReadOut.h.

27 {
28 uint32_t result = (m_word >> wordbstop.second) & (wordbstop.first | 1);
29 return result;
30 }
setEventNumber uint32_t

◆ getBitsWord()

std::pair< uint32_t, uint16_t > MdtReadOut::getBitsWord ( const uint16_t bstart,
const uint16_t bstop )
inlineconstexprprotectedinherited

Definition at line 20 of file MdtReadOut.h.

20 {
21 uint32_t word = 0;
22 for (uint16_t i = bstop; i < bstart; i++) word = ((word | 1) << 1);
23 return std::make_pair(word, bstop);
24 }

◆ is_BOB()

bool MdtCsmReadOut::is_BOB ( ) const
inline

Definition at line 59 of file MdtCsmReadOut.h.

59{ return m_wordHeader == s_BOBvalue; };
static constexpr uint16_t s_BOBvalue

◆ is_BOL()

bool MdtCsmReadOut::is_BOL ( ) const
inline

Definition at line 61 of file MdtCsmReadOut.h.

61{ return m_wordHeader == s_BOLvalue; };
static constexpr uint16_t s_BOLvalue

◆ is_EOB()

bool MdtCsmReadOut::is_EOB ( ) const
inline

Definition at line 64 of file MdtCsmReadOut.h.

64{ return m_wordHeader == s_EOBvalue; };
static constexpr uint16_t s_EOBvalue

◆ is_LWC()

bool MdtCsmReadOut::is_LWC ( ) const
inline

Definition at line 60 of file MdtCsmReadOut.h.

60{ return m_wordHeader == s_LWCvalue; };
static constexpr uint16_t s_LWCvalue

◆ is_TLP()

bool MdtCsmReadOut::is_TLP ( ) const
inline

Definition at line 62 of file MdtCsmReadOut.h.

62{ return m_wordHeader == s_TLPvalue; };
static constexpr uint16_t s_TLPvalue

◆ is_TWC()

bool MdtCsmReadOut::is_TWC ( ) const
inline

Definition at line 63 of file MdtCsmReadOut.h.

63{ return m_wordHeader == s_TWCvalue; };
static constexpr uint16_t s_TWCvalue

◆ lvl1Id()

uint32_t MdtCsmReadOut::lvl1Id ( ) const
inline

Definition at line 67 of file MdtCsmReadOut.h.

67{ return m_lvl1Id; }

◆ makeBOB()

uint32_t MdtCsmReadOut::makeBOB ( uint32_t lvl1Id)

Definition at line 51 of file MdtCsmReadOut.cxx.

51 {
52 uint16_t nData = 2;
53 uint32_t inputData[2] = {s_BOBvalue, lvl1Id};
54 uint16_t inputPos[2] = {s_headerPos, 0};
55
56 return setBits(nData, inputData, inputPos);
57}
uint32_t lvl1Id() const
static uint32_t setBits(uint16_t nData, const uint16_t *inputData, const uint16_t *inputPos)
setWord1 uint16_t

◆ makeBOL()

uint32_t MdtCsmReadOut::makeBOL ( uint16_t mrodId,
uint16_t csmId )

Definition at line 67 of file MdtCsmReadOut.cxx.

67 {
68 uint16_t nData = 5;
69 // Error and Zero-suppression bits are by now set to 0 (no error)
70 // and 1 (Zero-suppression activated)
71 uint32_t inputData[5] = {s_BOLvalue, 0, 1, mrodId, csmId};
72 uint16_t inputPos[5] = {s_headerPos, 20, 16, 4, 0};
73
74 return setBits(nData, inputData, inputPos);
75}
uint16_t csmId() const
uint16_t mrodId() const

◆ makeEOB()

uint32_t MdtCsmReadOut::makeEOB ( uint32_t wcnt)

Definition at line 93 of file MdtCsmReadOut.cxx.

93 {
94 uint16_t nData = 2;
95 uint32_t inputData[2] = {s_EOBvalue, wcnt};
96 uint16_t inputPos[2] = {s_headerPos, 0};
97
98 return setBits(nData, inputData, inputPos);
99}

◆ makeLWC()

uint32_t MdtCsmReadOut::makeLWC ( uint32_t clwc)

Definition at line 59 of file MdtCsmReadOut.cxx.

59 {
60 uint16_t nData = 3;
61 uint32_t inputData[3] = {s_LWCvalue, 0, clwc};
62 uint16_t inputPos[3] = {s_headerPos, 20, 0};
63
64 return setBits(nData, inputData, inputPos);
65}
uint32_t clwc() const

◆ makeTLP()

uint32_t MdtCsmReadOut::makeTLP ( uint32_t flags)

Definition at line 77 of file MdtCsmReadOut.cxx.

77 {
78 uint16_t nData = 4;
79 uint32_t inputData[4] = {s_TLPvalue, 0, 0, flags};
80 uint16_t inputPos[4] = {s_headerPos, 20, 18, 0};
81
82 return setBits(nData, inputData, inputPos);
83}
uint32_t flags() const

◆ makeTWC()

uint32_t MdtCsmReadOut::makeTWC ( uint16_t ecnt,
uint16_t ctwc )

Definition at line 85 of file MdtCsmReadOut.cxx.

85 {
86 uint16_t nData = 3;
87 uint16_t inputData[3] = {s_TWCvalue, ecnt, ctwc};
88 uint16_t inputPos[3] = {s_headerPos, 12, 0};
89
90 return setBits(nData, inputData, inputPos);
91}
uint16_t ctwc() const
uint16_t ecnt() const

◆ mrodId()

uint16_t MdtCsmReadOut::mrodId ( ) const
inline

Definition at line 73 of file MdtCsmReadOut.h.

73{ return m_mrodId; }

◆ setBits() [1/2]

uint32_t MdtReadOut::setBits ( uint16_t nData,
const uint16_t * inputData,
const uint16_t * inputPos )
staticprotectedinherited

Definition at line 14 of file MdtReadOut.cxx.

14 {
15 uint32_t result = 0;
16 uint32_t input = 0;
17 uint16_t pos = 0;
18 for (uint16_t i = 0; i < nData; i++) {
19 input = *(inputData + i);
20 pos = *(inputPos + i);
21 result = result | (input << pos);
22 }
23 return result;
24}

◆ setBits() [2/2]

uint32_t MdtReadOut::setBits ( uint16_t nData,
const uint32_t * inputData,
const uint16_t * inputPos )
staticprotectedinherited

Definition at line 27 of file MdtReadOut.cxx.

27 {
28 uint32_t result = 0;
29 uint32_t input = 0;
30 uint16_t pos = 0;
31 for (uint16_t i = 0; i < nData; i++) {
32 input = *(inputData + i);
33 pos = *(inputPos + i);
34 result = result | (input << pos);
35 }
36 return result;
37}

◆ setZero()

void MdtCsmReadOut::setZero ( )
private

Definition at line 101 of file MdtCsmReadOut.cxx.

101 {
102 m_lvl1Id = 0; // Lvl1 Id
103 m_clwc = 0; // Link word count
104 m_ftyp = 0; // flag type
105 m_flags = 0; // flags
106
107 m_ecnt = 0; // Event counter
108 m_ctwc = 0; // Trailer word count
109
110 m_mrodId = 0; // MROD number
111 m_csmId = 0; // CSM Link number
112 m_error = false; // Error flag
113 m_zeroSupp = false; // TDC zero-suppressed flag
114}

Member Data Documentation

◆ m_clwc

uint32_t MdtCsmReadOut::m_clwc
private

Definition at line 23 of file MdtCsmReadOut.h.

◆ m_csmId

uint16_t MdtCsmReadOut::m_csmId
private

Definition at line 31 of file MdtCsmReadOut.h.

◆ m_ctwc

uint16_t MdtCsmReadOut::m_ctwc
private

Definition at line 28 of file MdtCsmReadOut.h.

◆ m_dataWord

uint32_t MdtCsmReadOut::m_dataWord
private

Definition at line 18 of file MdtCsmReadOut.h.

◆ m_ecnt

uint16_t MdtCsmReadOut::m_ecnt
private

Definition at line 27 of file MdtCsmReadOut.h.

◆ m_error

bool MdtCsmReadOut::m_error
private

Definition at line 32 of file MdtCsmReadOut.h.

◆ m_flags

uint32_t MdtCsmReadOut::m_flags
private

Definition at line 25 of file MdtCsmReadOut.h.

◆ m_ftyp

uint16_t MdtCsmReadOut::m_ftyp
private

Definition at line 24 of file MdtCsmReadOut.h.

◆ m_lvl1Id

uint32_t MdtCsmReadOut::m_lvl1Id
private

Definition at line 22 of file MdtCsmReadOut.h.

◆ m_mrodId

uint16_t MdtCsmReadOut::m_mrodId
private

Definition at line 30 of file MdtCsmReadOut.h.

◆ m_word

uint32_t MdtReadOut::m_word
protectedinherited

Definition at line 38 of file MdtReadOut.h.

◆ m_wordHeader

uint16_t MdtCsmReadOut::m_wordHeader
private

Definition at line 19 of file MdtCsmReadOut.h.

◆ m_zeroSupp

bool MdtCsmReadOut::m_zeroSupp
private

Definition at line 33 of file MdtCsmReadOut.h.

◆ s_BOBvalue

uint16_t MdtCsmReadOut::s_BOBvalue = 0x80
staticconstexprprivate

Definition at line 41 of file MdtCsmReadOut.h.

◆ s_BOLvalue

uint16_t MdtCsmReadOut::s_BOLvalue = 0x18
staticconstexprprivate

Definition at line 45 of file MdtCsmReadOut.h.

◆ s_EOBvalue

uint16_t MdtCsmReadOut::s_EOBvalue = 0xf0
staticconstexprprivate

Definition at line 51 of file MdtCsmReadOut.h.

◆ s_headerBits

uint16_t MdtCsmReadOut::s_headerBits = 0xff
staticconstexprprivate

Definition at line 38 of file MdtCsmReadOut.h.

◆ s_headerPos

uint16_t MdtCsmReadOut::s_headerPos = 24
staticconstexprprivate

Definition at line 37 of file MdtCsmReadOut.h.

◆ s_LWCvalue

uint16_t MdtCsmReadOut::s_LWCvalue = 0x81
staticconstexprprivate

Definition at line 43 of file MdtCsmReadOut.h.

◆ s_TLPvalue

uint16_t MdtCsmReadOut::s_TLPvalue = 0x89
staticconstexprprivate

Definition at line 47 of file MdtCsmReadOut.h.

◆ s_TWCvalue

uint16_t MdtCsmReadOut::s_TWCvalue = 0x8a
staticconstexprprivate

Definition at line 49 of file MdtCsmReadOut.h.


The documentation for this class was generated from the following files: