ATLAS Offline Software
Loading...
Searching...
No Matches
LVL1::JetCMXTopoData Class Reference

#include <JetCMXTopoData.h>

Collaboration diagram for LVL1::JetCMXTopoData:

Public Member Functions

 JetCMXTopoData (int crate, bool overflow, const std::vector< uint32_t > &tobWords)
 Constructor with Crate number, overflow flag and vector of TOB words.
 JetCMXTopoData (int crate, bool overflow, const std::vector< JetTopoTOB > &tobs)
 Constructor with Crate number, overflow flag and TOB vector.
 JetCMXTopoData (int crate, const std::vector< uint32_t > &roiWords)
 For HLT: Constructor with Crate number and vector of RoI words.
 JetCMXTopoData (int crate)
 Constructor with Crate number only.
 JetCMXTopoData ()
 Default constructor.
 ~JetCMXTopoData ()
 Destructor.
int crate () const
 Return crate number (0-1)
bool overflow () const
 Return overflow flag.
void tobs (std::vector< JetTopoTOB > &tobs) const
 Return vector of TOBs.
const std::vector< uint32_t > & tobWords () const
 Return vector of TOB words.
void addTOB (const JetTopoTOB tob)
 Add TOB to record.
void addTOB (uint32_t tobWord)
 Add another TOB word to the collection.
void addRoI (uint32_t roiWord)
 Add TOB from RoI word.
void setOverflow (bool overflow)
 Set overflow flag.
JetCMXTopoDatacheckJemOverflow ()
 count whether any transmission JEM -> CMX had too many TOBs

Private Attributes

int m_crate
 Data members.
bool m_overflow
 overflow on CMX -> L1Topo transmission
bool m_jem_overflow
 overflow on JEM -> CMX transmission
std::vector< uint32_t > m_tobWords

Static Private Attributes

static const unsigned int s_maxTOBsPerLink = 32
 Static constants.
static const unsigned int s_maxTOBsPerJem = 4
 as specified in BackplaneFormats_v3.xlsx

Detailed Description

Definition at line 22 of file JetCMXTopoData.h.

Constructor & Destructor Documentation

◆ JetCMXTopoData() [1/5]

LVL1::JetCMXTopoData::JetCMXTopoData ( int crate,
bool overflow,
const std::vector< uint32_t > & tobWords )

Constructor with Crate number, overflow flag and vector of TOB words.

Constructors.

Definition at line 16 of file JetCMXTopoData.cxx.

18 m_jem_overflow(false)
19 {
20
21 m_tobWords.clear();
22 for (std::vector<uint32_t>::const_iterator it = tobWords.begin(); it != tobWords.end(); ++it) {
23 if (m_tobWords.size() < s_maxTOBsPerLink) m_tobWords.push_back( (*it) );
24 else m_overflow = true;
25 }
27 }
int crate() const
Return crate number (0-1)
int m_crate
Data members.
static const unsigned int s_maxTOBsPerLink
Static constants.
bool m_overflow
overflow on CMX -> L1Topo transmission
bool overflow() const
Return overflow flag.
const std::vector< uint32_t > & tobWords() const
Return vector of TOB words.
bool m_jem_overflow
overflow on JEM -> CMX transmission
JetCMXTopoData & checkJemOverflow()
count whether any transmission JEM -> CMX had too many TOBs
std::vector< uint32_t > m_tobWords

◆ JetCMXTopoData() [2/5]

LVL1::JetCMXTopoData::JetCMXTopoData ( int crate,
bool overflow,
const std::vector< JetTopoTOB > & tobs )

Constructor with Crate number, overflow flag and TOB vector.

Definition at line 30 of file JetCMXTopoData.cxx.

32 m_jem_overflow(false)
33 {
34
35 m_tobWords.clear();
36 for (std::vector<JetTopoTOB>::const_iterator it = tobs.begin(); it != tobs.end(); ++it) {
37 if (m_tobWords.size() < s_maxTOBsPerLink) m_tobWords.push_back( (*it).tobWord() );
38 else m_overflow = true;
39 }
41 }
void tobs(std::vector< JetTopoTOB > &tobs) const
Return vector of TOBs.

◆ JetCMXTopoData() [3/5]

LVL1::JetCMXTopoData::JetCMXTopoData ( int crate,
const std::vector< uint32_t > & roiWords )

For HLT: Constructor with Crate number and vector of RoI words.

Definition at line 44 of file JetCMXTopoData.cxx.

45 : m_crate( crate ),
46 m_jem_overflow(false)
47 {
48
49 m_overflow = false;
50 m_tobWords.clear();
51
52 for (std::vector<uint32_t>::const_iterator it = roiWords.begin(); it != roiWords.end(); ++it) {
53 JetTopoTOB tob((*it));
54 if (tob.crate() == m_crate) m_tobWords.push_back( tob.tobWord() );
55 }
57 }

◆ JetCMXTopoData() [4/5]

LVL1::JetCMXTopoData::JetCMXTopoData ( int crate)

Constructor with Crate number only.

Definition at line 60 of file JetCMXTopoData.cxx.

61 : m_crate( crate ), m_overflow( false ),
62 m_jem_overflow(false)
63 {
64 m_tobWords.clear();
65 }

◆ JetCMXTopoData() [5/5]

LVL1::JetCMXTopoData::JetCMXTopoData ( )

Default constructor.

Definition at line 68 of file JetCMXTopoData.cxx.

69 : m_crate( 0 ), m_overflow ( false ),
70 m_jem_overflow(false)
71 {
72 m_tobWords.clear();
73 }

◆ ~JetCMXTopoData()

LVL1::JetCMXTopoData::~JetCMXTopoData ( )

Destructor.

Definition at line 77 of file JetCMXTopoData.cxx.

77 {
78 }

Member Function Documentation

◆ addRoI()

void LVL1::JetCMXTopoData::addRoI ( uint32_t roiWord)

Add TOB from RoI word.

Add another TOB word to the collection.

Note: overflows ignored in this method

Definition at line 96 of file JetCMXTopoData.cxx.

96 {
97 JetTopoTOB tob(roiWord);
98 if (tob.crate() == m_crate) m_tobWords.push_back( tob.tobWord() );
99 }

◆ addTOB() [1/2]

void LVL1::JetCMXTopoData::addTOB ( const JetTopoTOB tob)

Add TOB to record.

Add another TOB to the collection.

Definition at line 82 of file JetCMXTopoData.cxx.

82 {
83 if (m_tobWords.size() < s_maxTOBsPerLink)
84 m_tobWords.push_back(tob.tobWord());
85 else m_overflow = true;
86 }

◆ addTOB() [2/2]

void LVL1::JetCMXTopoData::addTOB ( uint32_t tobWord)

Add another TOB word to the collection.

Definition at line 90 of file JetCMXTopoData.cxx.

90 {
91 if (m_tobWords.size() < s_maxTOBsPerLink) m_tobWords.push_back( tobWord );
92 else m_overflow = true;
93 }

◆ checkJemOverflow()

JetCMXTopoData & LVL1::JetCMXTopoData::checkJemOverflow ( )

count whether any transmission JEM -> CMX had too many TOBs

In which case toggle m_jem_overflow

Definition at line 137 of file JetCMXTopoData.cxx.

138{
139 const size_t max_jem_index = 15; // as indicated in JetTopoTOB::jem()
140 std::vector<uint32_t> counters_tob_per_jem(max_jem_index+1, 0);
141 for(const uint32_t word : m_tobWords) {
142 JetTopoTOB tob(m_crate, word);
143 const size_t iJem = tob.jem();
144 counters_tob_per_jem[iJem] += 1;
145 }
147 std::any_of(counters_tob_per_jem.begin(),
148 counters_tob_per_jem.end(),
149 [](const uint32_t &c) { return (c >= s_maxTOBsPerJem); }));
150 return *this;
151}

◆ crate()

int LVL1::JetCMXTopoData::crate ( ) const

Return crate number (0-1)

Access methods.

Definition at line 109 of file JetCMXTopoData.cxx.

109 {
110 return m_crate;
111 }

◆ overflow()

bool LVL1::JetCMXTopoData::overflow ( ) const

Return overflow flag.

Definition at line 114 of file JetCMXTopoData.cxx.

114 {
115 if ( m_overflow ||
116 (m_tobWords.size() > s_maxTOBsPerLink) ||
117 m_jem_overflow ) return true;
118 return false;
119 }

◆ setOverflow()

void LVL1::JetCMXTopoData::setOverflow ( bool overflow)

Set overflow flag.

Definition at line 103 of file JetCMXTopoData.cxx.

103 {
105 }

◆ tobs()

void LVL1::JetCMXTopoData::tobs ( std::vector< JetTopoTOB > & tobs) const

Return vector of TOBs.

Definition at line 127 of file JetCMXTopoData.cxx.

127 {
128 tobs.clear();
129
130 std::vector< uint32_t >::const_iterator it = m_tobWords.begin();
131 for ( ; it != m_tobWords.end(); ++it)
132 tobs.push_back(JetTopoTOB(m_crate, (*it)));
133
134 return;
135 }

◆ tobWords()

const std::vector< uint32_t > & LVL1::JetCMXTopoData::tobWords ( ) const

Return vector of TOB words.

Definition at line 122 of file JetCMXTopoData.cxx.

122 {
123 return m_tobWords;
124 }

Member Data Documentation

◆ m_crate

int LVL1::JetCMXTopoData::m_crate
private

Data members.

Definition at line 64 of file JetCMXTopoData.h.

◆ m_jem_overflow

bool LVL1::JetCMXTopoData::m_jem_overflow
private

overflow on JEM -> CMX transmission

Definition at line 66 of file JetCMXTopoData.h.

◆ m_overflow

bool LVL1::JetCMXTopoData::m_overflow
private

overflow on CMX -> L1Topo transmission

Definition at line 65 of file JetCMXTopoData.h.

◆ m_tobWords

std::vector< uint32_t > LVL1::JetCMXTopoData::m_tobWords
private

Definition at line 67 of file JetCMXTopoData.h.

◆ s_maxTOBsPerJem

const unsigned int LVL1::JetCMXTopoData::s_maxTOBsPerJem = 4
staticprivate

as specified in BackplaneFormats_v3.xlsx

Definition at line 70 of file JetCMXTopoData.h.

◆ s_maxTOBsPerLink

const unsigned int LVL1::JetCMXTopoData::s_maxTOBsPerLink = 32
staticprivate

Static constants.

Definition at line 69 of file JetCMXTopoData.h.


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