18 const std::vector<unsigned int>& tobWords) :
40 std::vector<unsigned int> allTOBs(16,0);
43 for ( ; itRoI != tobs->
end(); ++itRoI) {
44 if ( (*itRoI)->crate() !=
crate || (*itRoI)->cpm() !=
module || (*itRoI)->type() !=
type )
continue;
46 int chip = (*itRoI)->chip();
47 int chipCoord = (*itRoI)->location();
48 int et = (*itRoI)->energy();
49 int isol = (*itRoI)->isolation();
51 int side = (chipCoord >> 2);
52 int lc = chipCoord & 3;
55 unsigned int presence = 2*chip + side;
59 unsigned int tobdata =
et + (isol<<8) + (lc<<13);
60 allTOBs[presence] = tobdata;
65 for (
int i = 0; i < 16; ++i) {
66 if (allTOBs[i] == 0 )
continue;
68 unsigned int et = allTOBs[i] & 0xff;
69 unsigned int isol = (allTOBs[i] >> 8) & 0x1f;
70 unsigned int lc = (allTOBs[i] >> 13) & 3;
104 for (
unsigned int word = 0; word < 4; ++word) {
105 unsigned int parity = 1;
106 for (
unsigned int bit = 0; bit < 24; ++bit)
if ( ( (
m_DataWords[word]>>bit) & 1) > 0 ) parity++;
150 std::vector<unsigned int> bits;
153 for (
unsigned int i = 0; i < 16; ++i) {
157 if (ntob < 5) bits.push_back(i);
171 std::vector<unsigned int>
data;
177 unsigned int ntob = 0;
178 for (
unsigned int i = 0; i < 16; ++i) {
184 unsigned int word = 0;
185 unsigned int coord = 0;
186 unsigned int isol = 0;
216 word =
et + (isol<<8) + (
coord<<13);
217 data.push_back(word);
232 std::vector<unsigned int>
data;
238 unsigned int ntob = 0;
239 for (
unsigned int i = 0; i < 16; ++i) {
245 unsigned int chip = i/2;
246 unsigned int rl = (i&1) << 2;
250 unsigned int coord = 0;
251 unsigned int isol = 0;
282 data.push_back(word);
304 for (
unsigned int i = 0; i < 16; ++i) {
char data[hepevt_bytes_allocation_ATLAS]
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
int module() const
module number
std::vector< unsigned int > DataWords() const
the 4 raw backplane data words
std::vector< unsigned int > m_DataWords
int type() const
TOB type (EM/Tau)
unsigned int presenceMap() const
16 bit presence map
int crate() const
Data accessors.
std::vector< unsigned int > TopoTOBs() const
L1Topo TOB words (1bRO + 4b CPM + 3b Chip + 3b LC + 5b Isol + 8b ET) for up to 5 TOBs.
std::vector< unsigned int > TOBWords() const
Data words (2b LC + 5b Isol + 8b ET) for up to 5 TOBs.
virtual ~CPMCMXData()
Destructor.
std::vector< unsigned int > TOBPresenceBits() const
Locations in Presence Map for up to 5 TOBs.
bool overflow() const
Report whether TOB overflow occurred.
int m_crate
Internal data.
CPMCMXData()
Constructors.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Extra patterns decribing particle interation process.