ATLAS Offline Software
Loading...
Searching...
No Matches
L1Topo::L1TopoResult Class Reference

#include <L1TopoResult.h>

Collaboration diagram for L1Topo::L1TopoResult:

Public Member Functions

 L1TopoResult ()
 L1TopoResult (const DataVector< xAOD::L1TopoRawData > &container)
 ~L1TopoResult ()
const std::shared_ptr< L1Topo::L1TopoROD > & getROD (unsigned index) const
const std::shared_ptr< L1Topo::L1TopoFPGA > & getFPGA (unsigned index) const
const std::bitset< s_nTopoOutputs > & getDecisions () const
const std::bitset< s_nTopoOutputs > & getOverflows () const
const std::bitset< s_nTopoOutputs > & getTopo1Opt0 () const
const std::bitset< s_nTopoOutputs > & getTopo1Opt1 () const
const std::bitset< s_nTopoOutputs > & getTopo1Opt2 () const
const std::bitset< s_nTopoOutputs > & getTopo1Opt3 () const
bool getStatus ()
unsigned getRODSize ()
unsigned getFPGASize ()
void decode (const DataVector< xAOD::L1TopoRawData > &container)
 method used by constructor to decode xAOD

Private Attributes

std::vector< std::shared_ptr< L1Topo::L1TopoROD > > m_l1topoROD
std::vector< std::shared_ptr< L1Topo::L1TopoFPGA > > m_l1topoFPGA
std::bitset< s_nTopoOutputsm_decisions
std::bitset< s_nTopoOutputsm_overflows
std::bitset< s_nTopoOutputsm_topo1opt0
std::bitset< s_nTopoOutputsm_topo1opt1
std::bitset< s_nTopoOutputsm_topo1opt2
std::bitset< s_nTopoOutputsm_topo1opt3
bool m_status

Static Private Attributes

static constexpr size_t s_nTopoOutputs {128}
 Number of topo outputs.

Detailed Description

Definition at line 29 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

Constructor & Destructor Documentation

◆ L1TopoResult() [1/2]

L1Topo::L1TopoResult::L1TopoResult ( )

◆ L1TopoResult() [2/2]

L1Topo::L1TopoResult::L1TopoResult ( const DataVector< xAOD::L1TopoRawData > & container)

Definition at line 15 of file L1Topo/L1TopoRDO/src/L1TopoResult.cxx.

15 :
16 m_status(true)
17 {
18 this->decode(container);
19 }
void decode(const DataVector< xAOD::L1TopoRawData > &container)
method used by constructor to decode xAOD

◆ ~L1TopoResult()

L1Topo::L1TopoResult::~L1TopoResult ( )

Definition at line 21 of file L1Topo/L1TopoRDO/src/L1TopoResult.cxx.

22 {}

Member Function Documentation

◆ decode()

void L1Topo::L1TopoResult::decode ( const DataVector< xAOD::L1TopoRawData > & container)

method used by constructor to decode xAOD

Definition at line 24 of file L1Topo/L1TopoRDO/src/L1TopoResult.cxx.

25 {
26 m_overflows.reset();
27 m_decisions.reset();
28 m_l1topoROD.clear();
29 m_l1topoFPGA.clear();
30 for(const xAOD::L1TopoRawData* l1topo_raw : container) {
31 const std::vector<uint32_t>& dataWords = l1topo_raw->dataWords();
32 size_t nWords = dataWords.size();
33 if (nWords!=50) {
34 m_status = false;
35 return;
36 }else {
37 m_status = true;
38 }
39 uint32_t rodTrailer2 = dataWords[--nWords];
40 uint32_t rodTrailer1 = dataWords[--nWords];
41
42 m_l1topoROD.emplace_back(new L1Topo::L1TopoROD(rodTrailer1, rodTrailer2));
43
44
45 for (size_t i = nWords; i --> 0;) {
46 if ((i+1)%8==0) {
47 uint32_t fpgaTrailer2 = dataWords[i];
48 uint32_t fpgaTrailer1 = dataWords[--i];
49
50 m_l1topoFPGA.emplace_back(new L1Topo::L1TopoFPGA(fpgaTrailer1, fpgaTrailer2));
51
52 }
53 else {
54 if (m_l1topoFPGA.back()->topoNumber() != 1) {
55 i-=3;
56 uint32_t overflowWord = dataWords[--i];
57 uint32_t triggerWord = dataWords[--i];
58 for (size_t iBit=0;iBit<32;iBit++) {
59 uint32_t topo = m_l1topoFPGA.back()->topoNumber();
60 uint32_t fpga = m_l1topoFPGA.back()->fpgaNumber();
61 unsigned int index = L1Topo::triggerBitIndexPhase1(topo, fpga, iBit);
62 m_overflows[index] = (overflowWord>>iBit)&1;
63 m_decisions[index] = (triggerWord>>iBit)&1;
64 }
65 } // Decision & overflow
66 else {
67 if (m_l1topoFPGA.back()->fpgaNumber() == 1) {
68 m_topo1opt3.reset(); m_topo1opt2.reset();
69 for (size_t k=0;k<3;k++) {
70 uint32_t word = dataWords[i];
71 for (size_t iBit=0;iBit<32;iBit++) {
72 size_t index = iBit+32*(2-k);
73 m_topo1opt3[index] = (word>>iBit)&1;
74 }
75 i--;
76 }
77 for (size_t k=0;k<3;k++) {
78 uint32_t word = dataWords[i];
79 for (size_t iBit=0;iBit<32;iBit++) {
80 size_t index = iBit+32*(2-k);
81 m_topo1opt2[index] = (word>>iBit)&1;
82 }
83 i--;
84 }
85 i++;
86 } // multiplicity 2-3
87 else {
88 m_topo1opt1.reset(); m_topo1opt0.reset();
89 for (size_t k=0;k<3;k++) {
90 uint32_t word = dataWords[i];
91 for (size_t iBit=0;iBit<32;iBit++) {
92 size_t index = iBit+32*(2-k);
93 m_topo1opt1[index] = (word>>iBit)&1;
94 }
95 i--;
96 }
97 for (size_t k=0;k<3;k++) {
98 uint32_t word = dataWords[i];
99 for (size_t iBit=0;iBit<32;iBit++) {
100 size_t index = iBit+32*(2-k);
101 m_topo1opt0[index] = (word>>iBit)&1;
102 }
103 i--;
104 }
105 i++;
106
107 } // multiplicity 0-1
108
109 } // end of multiplicity
110 } // end of decoding
111 } // end of nwords
112 } // end of container
113
114 }
std::bitset< s_nTopoOutputs > m_topo1opt3
std::bitset< s_nTopoOutputs > m_decisions
std::bitset< s_nTopoOutputs > m_topo1opt0
std::vector< std::shared_ptr< L1Topo::L1TopoFPGA > > m_l1topoFPGA
std::bitset< s_nTopoOutputs > m_topo1opt2
std::vector< std::shared_ptr< L1Topo::L1TopoROD > > m_l1topoROD
std::bitset< s_nTopoOutputs > m_overflows
std::bitset< s_nTopoOutputs > m_topo1opt1
str index
Definition DeMoScan.py:362
unsigned int triggerBitIndexPhase1(uint32_t topo, uint32_t fpga, size_t bitIdx)
L1TopoRawData_v1 L1TopoRawData
Define the latest version of the L1TopoRawData class.
setEventNumber uint32_t

◆ getDecisions()

const std::bitset< s_nTopoOutputs > & L1Topo::L1TopoResult::getDecisions ( ) const
inline

Definition at line 45 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

45{return m_decisions;}

◆ getFPGA()

const std::shared_ptr< L1Topo::L1TopoFPGA > & L1Topo::L1TopoResult::getFPGA ( unsigned index) const
inline

Definition at line 44 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

44{return m_l1topoFPGA[index];}

◆ getFPGASize()

unsigned L1Topo::L1TopoResult::getFPGASize ( )
inline

Definition at line 53 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

53{return m_l1topoFPGA.size();}

◆ getOverflows()

const std::bitset< s_nTopoOutputs > & L1Topo::L1TopoResult::getOverflows ( ) const
inline

Definition at line 46 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

46{return m_overflows;}

◆ getROD()

const std::shared_ptr< L1Topo::L1TopoROD > & L1Topo::L1TopoResult::getROD ( unsigned index) const
inline

Definition at line 43 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

43{return m_l1topoROD[index];}

◆ getRODSize()

unsigned L1Topo::L1TopoResult::getRODSize ( )
inline

Definition at line 52 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

52{return m_l1topoROD.size();}

◆ getStatus()

bool L1Topo::L1TopoResult::getStatus ( )
inline

Definition at line 51 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

51{return m_status;}

◆ getTopo1Opt0()

const std::bitset< s_nTopoOutputs > & L1Topo::L1TopoResult::getTopo1Opt0 ( ) const
inline

Definition at line 47 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

47{return m_topo1opt0;}

◆ getTopo1Opt1()

const std::bitset< s_nTopoOutputs > & L1Topo::L1TopoResult::getTopo1Opt1 ( ) const
inline

Definition at line 48 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

48{return m_topo1opt1;}

◆ getTopo1Opt2()

const std::bitset< s_nTopoOutputs > & L1Topo::L1TopoResult::getTopo1Opt2 ( ) const
inline

Definition at line 49 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

49{return m_topo1opt2;}

◆ getTopo1Opt3()

const std::bitset< s_nTopoOutputs > & L1Topo::L1TopoResult::getTopo1Opt3 ( ) const
inline

Definition at line 50 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

50{return m_topo1opt3;}

Member Data Documentation

◆ m_decisions

std::bitset<s_nTopoOutputs> L1Topo::L1TopoResult::m_decisions
private

Definition at line 62 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ m_l1topoFPGA

std::vector<std::shared_ptr<L1Topo::L1TopoFPGA> > L1Topo::L1TopoResult::m_l1topoFPGA
private

Definition at line 61 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ m_l1topoROD

std::vector<std::shared_ptr<L1Topo::L1TopoROD> > L1Topo::L1TopoResult::m_l1topoROD
private

Definition at line 60 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ m_overflows

std::bitset<s_nTopoOutputs> L1Topo::L1TopoResult::m_overflows
private

Definition at line 63 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ m_status

bool L1Topo::L1TopoResult::m_status
private

Definition at line 69 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ m_topo1opt0

std::bitset<s_nTopoOutputs> L1Topo::L1TopoResult::m_topo1opt0
private

Definition at line 64 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ m_topo1opt1

std::bitset<s_nTopoOutputs> L1Topo::L1TopoResult::m_topo1opt1
private

Definition at line 65 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ m_topo1opt2

std::bitset<s_nTopoOutputs> L1Topo::L1TopoResult::m_topo1opt2
private

Definition at line 66 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ m_topo1opt3

std::bitset<s_nTopoOutputs> L1Topo::L1TopoResult::m_topo1opt3
private

Definition at line 67 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

◆ s_nTopoOutputs

size_t L1Topo::L1TopoResult::s_nTopoOutputs {128}
staticconstexprprivate

Number of topo outputs.

Definition at line 33 of file L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h.

33{128};

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