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

#include <SectorLogicReadOutStructure.h>

Inheritance diagram for SectorLogicReadOutStructure:
Collaboration diagram for SectorLogicReadOutStructure:

Public Member Functions

 SectorLogicReadOutStructure ()
 SectorLogicReadOutStructure (ubit16 inputData)
 ~SectorLogicReadOutStructure ()=default
void setInit ()
ubit16 makeHeader (ubit16 *inputData)
ubit16 makeSubHeader ()
ubit16 makeBody (ubit16 *inputData)
ubit16 makeFooter (ubit16 errorCode)
ubit16 makeFooter (ubit16 *errorCode)
ubit16 decodeFragment (ubit16 inputWord, char &field)
bool isHeader ()
bool isBody ()
bool isFooter ()
ubit16 getWord () const
char field () const

Protected Member Functions

ubit16 set16Bits (const ubit16 n, const ubit16 *pos, const ubit16 *val) const
template<size_t n>
ubit16 set16Bits (const std::array< ubit16, n > &pos, const std::array< ubit16, n > &val) const
ubit16 get16Bits (const ubit16 input, const ubit16 position, const ubit16 length) const

Protected Attributes

ubit16 m_word {0xffff}
char m_field {0}

Static Protected Attributes

static constexpr ubit16 s_last2bitsON {0xc000}
static constexpr ubit16 s_last4bitsON {0xf000}
static constexpr ubit16 s_first8bitsON {0}

Private Attributes

ubit16 m_secid {0}
ubit16 m_footer {0}

Static Private Attributes

static constexpr ubit16 s_headerNum = 2
static constexpr std::array< ubit16, s_headerNums_headerPos {12, 0}
static constexpr std::array< ubit16, s_headerNums_headerLen {4, 12}
static constexpr ubit16 s_headerVal = 0x000d
static constexpr ubit16 s_footerNum = 2
static constexpr std::array< ubit16, s_footerNums_footerPos {12, 0}
static constexpr std::array< ubit16, s_footerNums_footerLen {4, 12}
static constexpr ubit16 s_footerVal = 0x000f

Detailed Description

Definition at line 11 of file SectorLogicReadOutStructure.h.

Constructor & Destructor Documentation

◆ SectorLogicReadOutStructure() [1/2]

SectorLogicReadOutStructure::SectorLogicReadOutStructure ( )

Definition at line 12 of file SectorLogicReadOutStructure.cxx.

12 {
13 //
14 // Constructor used by the simulation program
15 //
16 setInit();
17}

◆ SectorLogicReadOutStructure() [2/2]

SectorLogicReadOutStructure::SectorLogicReadOutStructure ( ubit16 inputData)

Definition at line 19 of file SectorLogicReadOutStructure.cxx.

19 {
20 //
21 // Constructor used by the simulation program
22 //
23 decodeFragment(inputData, m_field);
24}
char m_field
Definition RPCReadOut.h:28
ubit16 decodeFragment(ubit16 inputWord, char &field)

◆ ~SectorLogicReadOutStructure()

SectorLogicReadOutStructure::~SectorLogicReadOutStructure ( )
default

Member Function Documentation

◆ decodeFragment()

ubit16 SectorLogicReadOutStructure::decodeFragment ( ubit16 inputWord,
char & field )

Definition at line 39 of file SectorLogicReadOutStructure.cxx.

39 {
40 // bool last=false;
41 // Remove errorCode because it is not used
42 // ubit16 errorCode=0;
43 setInit();
44 m_word = inputWord;
45 // errorCode=0;
46 if (isHeader()) {
47 m_field = 'H';
48 m_secid = get16Bits(inputWord, s_headerPos[1], s_headerLen[1]);
49 } else if (isFooter()) {
50 m_field = 'F';
51 m_footer = get16Bits(inputWord, s_footerPos[1], s_footerLen[1]);
52 } else {
53 m_field = 'B';
54 }
55 field = m_field;
56 return 0; // temporary: force return to 0
57}
char field() const
Definition RPCReadOut.h:19
ubit16 get16Bits(const ubit16 input, const ubit16 position, const ubit16 length) const
Definition RPCReadOut.h:47
ubit16 m_word
Definition RPCReadOut.h:27
static constexpr std::array< ubit16, s_headerNum > s_headerLen
static constexpr std::array< ubit16, s_footerNum > s_footerLen
static constexpr std::array< ubit16, s_headerNum > s_headerPos
static constexpr std::array< ubit16, s_footerNum > s_footerPos

◆ field()

char RPCReadOut::field ( ) const
inlineinherited

Definition at line 19 of file RPCReadOut.h.

19{ return m_field; };

◆ get16Bits()

ubit16 RPCReadOut::get16Bits ( const ubit16 input,
const ubit16 position,
const ubit16 length ) const
inlineprotectedinherited

Definition at line 47 of file RPCReadOut.h.

47 {
48 ubit16 output = 0;
49 ubit16 CMfield = 0;
50 for (ubit16 i = 0; i < length; i++) { CMfield = CMfield | 1 << (position + i); }
51 output = (input & CMfield) >> position;
52 return output;
53 } // end-of-MatrixReadOutStructure::get16Bits
double length(const pvec &v)
unsigned short int ubit16
output
Definition merge.py:16

◆ getWord()

ubit16 RPCReadOut::getWord ( ) const
inlineinherited

Definition at line 18 of file RPCReadOut.h.

18{ return m_word; };

◆ isBody()

bool SectorLogicReadOutStructure::isBody ( )

Definition at line 60 of file SectorLogicReadOutStructure.cxx.

60 {
61 ubit16 theword = (m_word & 0xf000) >> 12;
62 if ((theword != s_headerVal) && (theword != s_footerVal)) return true;
63 return false;
64}

◆ isFooter()

bool SectorLogicReadOutStructure::isFooter ( )

Definition at line 74 of file SectorLogicReadOutStructure.cxx.

74 {
75 bool status = false;
76 ubit16 theFooter[s_footerNum] = {s_footerVal};
77 if ((m_word & s_last4bitsON) == set16Bits(1, s_footerPos.data(), theFooter)) status = true;
78 return status;
79}
static constexpr ubit16 s_last4bitsON
Definition RPCReadOut.h:56
ubit16 set16Bits(const ubit16 n, const ubit16 *pos, const ubit16 *val) const
Definition RPCReadOut.h:30
status
Definition merge.py:16

◆ isHeader()

bool SectorLogicReadOutStructure::isHeader ( )

Definition at line 66 of file SectorLogicReadOutStructure.cxx.

66 {
67 bool status = false;
68 ubit16 theHeader[s_headerNum] = {s_headerVal};
69 if ((m_word & s_last4bitsON) == set16Bits(1, s_headerPos.data(), theHeader)) status = true;
70 return status;
71}

◆ makeBody()

ubit16 SectorLogicReadOutStructure::makeBody ( ubit16 * inputData)
inline

Definition at line 21 of file SectorLogicReadOutStructure.h.

21{ return (*inputData) & 0x0; };

◆ makeFooter() [1/2]

ubit16 SectorLogicReadOutStructure::makeFooter ( ubit16 * errorCode)

Definition at line 34 of file SectorLogicReadOutStructure.cxx.

34 {
35 m_word = set16Bits(s_footerNum, s_footerPos.data(), inputData);
36 return m_word;
37}

◆ makeFooter() [2/2]

ubit16 SectorLogicReadOutStructure::makeFooter ( ubit16 errorCode)
inline

Definition at line 22 of file SectorLogicReadOutStructure.h.

22{ return errorCode & 0x0; };

◆ makeHeader()

ubit16 SectorLogicReadOutStructure::makeHeader ( ubit16 * inputData)

Definition at line 29 of file SectorLogicReadOutStructure.cxx.

29 {
30 m_word = set16Bits(s_headerNum, s_headerPos.data(), inputData); // theHeader);
31 return m_word;
32}

◆ makeSubHeader()

ubit16 SectorLogicReadOutStructure::makeSubHeader ( )
inline

Definition at line 20 of file SectorLogicReadOutStructure.h.

20{ return 0; };

◆ set16Bits() [1/2]

template<size_t n>
ubit16 RPCReadOut::set16Bits ( const std::array< ubit16, n > & pos,
const std::array< ubit16, n > & val ) const
inlineprotectedinherited

Definition at line 40 of file RPCReadOut.h.

40 {
41 ubit16 output = 0;
42 for (size_t i = 0; i < n; ++i) { output |= (val[i] << pos[i]); }
43 return output;
44 }

◆ set16Bits() [2/2]

ubit16 RPCReadOut::set16Bits ( const ubit16 n,
const ubit16 * pos,
const ubit16 * val ) const
inlineprotectedinherited

Definition at line 30 of file RPCReadOut.h.

30 {
31 ubit16 output = 0;
32 ubit16 p = 0, v = 0;
33 for (ubit16 i = 0; i < n; i++) {
34 v = *(val + i);
35 p = *(pos + i);
36 output = output | (v << p);
37 } // end-of-for
38 return output;
39 } // end-of-MatrixReadOutStructure::set16Bits

◆ setInit()

void SectorLogicReadOutStructure::setInit ( )

Definition at line 26 of file SectorLogicReadOutStructure.cxx.

26{ m_field = 'U'; }

Member Data Documentation

◆ m_field

char RPCReadOut::m_field {0}
protectedinherited

Definition at line 28 of file RPCReadOut.h.

28{0};

◆ m_footer

ubit16 SectorLogicReadOutStructure::m_footer {0}
private

Definition at line 39 of file SectorLogicReadOutStructure.h.

39{0};

◆ m_secid

ubit16 SectorLogicReadOutStructure::m_secid {0}
private

Definition at line 37 of file SectorLogicReadOutStructure.h.

37{0};

◆ m_word

ubit16 RPCReadOut::m_word {0xffff}
protectedinherited

Definition at line 27 of file RPCReadOut.h.

27{0xffff};

◆ s_first8bitsON

ubit16 RPCReadOut::s_first8bitsON {0}
staticconstexprprotectedinherited

Definition at line 57 of file RPCReadOut.h.

57{0};

◆ s_footerLen

std::array<ubit16, s_footerNum> SectorLogicReadOutStructure::s_footerLen {4, 12}
staticconstexprprivate

Definition at line 54 of file SectorLogicReadOutStructure.h.

54{4, 12};

◆ s_footerNum

ubit16 SectorLogicReadOutStructure::s_footerNum = 2
staticconstexprprivate

Definition at line 52 of file SectorLogicReadOutStructure.h.

◆ s_footerPos

std::array<ubit16, s_footerNum> SectorLogicReadOutStructure::s_footerPos {12, 0}
staticconstexprprivate

Definition at line 53 of file SectorLogicReadOutStructure.h.

53{12, 0};

◆ s_footerVal

ubit16 SectorLogicReadOutStructure::s_footerVal = 0x000f
staticconstexprprivate

Definition at line 55 of file SectorLogicReadOutStructure.h.

◆ s_headerLen

std::array<ubit16, s_headerNum> SectorLogicReadOutStructure::s_headerLen {4, 12}
staticconstexprprivate

Definition at line 49 of file SectorLogicReadOutStructure.h.

49{4, 12};

◆ s_headerNum

ubit16 SectorLogicReadOutStructure::s_headerNum = 2
staticconstexprprivate

Definition at line 47 of file SectorLogicReadOutStructure.h.

◆ s_headerPos

std::array<ubit16, s_headerNum> SectorLogicReadOutStructure::s_headerPos {12, 0}
staticconstexprprivate

Definition at line 48 of file SectorLogicReadOutStructure.h.

48{12, 0};

◆ s_headerVal

ubit16 SectorLogicReadOutStructure::s_headerVal = 0x000d
staticconstexprprivate

Definition at line 50 of file SectorLogicReadOutStructure.h.

◆ s_last2bitsON

ubit16 RPCReadOut::s_last2bitsON {0xc000}
staticconstexprprotectedinherited

Definition at line 55 of file RPCReadOut.h.

55{0xc000};

◆ s_last4bitsON

ubit16 RPCReadOut::s_last4bitsON {0xf000}
staticconstexprprotectedinherited

Definition at line 56 of file RPCReadOut.h.

56{0xf000};

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