ATLAS Offline Software
Public Member Functions | Private Attributes | Static Private Attributes | List of all members
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 More...
 

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. More...
 

Detailed Description

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

Constructor & Destructor Documentation

◆ L1TopoResult() [1/2]

L1Topo::L1TopoResult::L1TopoResult ( )

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

11  :
12  m_status(true)
13  {}

◆ 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  }

◆ ~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  }

◆ 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

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

Number of topo outputs.

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


The documentation for this class was generated from the following files:
L1Topo::L1TopoResult::m_topo1opt0
std::bitset< s_nTopoOutputs > m_topo1opt0
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:64
L1Topo::L1TopoResult::m_topo1opt3
std::bitset< s_nTopoOutputs > m_topo1opt3
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:67
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
index
Definition: index.py:1
L1Topo::L1TopoResult::m_topo1opt2
std::bitset< s_nTopoOutputs > m_topo1opt2
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:66
lumiFormat.i
int i
Definition: lumiFormat.py:92
xAOD::L1TopoRawData_v1
Description of L1TopoRawData_v1.
Definition: L1TopoRawData_v1.h:28
L1Topo::L1TopoResult::m_status
bool m_status
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:69
L1Topo::L1TopoResult::m_topo1opt1
std::bitset< s_nTopoOutputs > m_topo1opt1
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:65
L1Topo::L1TopoResult::m_l1topoROD
std::vector< std::shared_ptr< L1Topo::L1TopoROD > > m_l1topoROD
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:60
L1Topo::L1TopoROD
Definition: L1TopoROD.h:14
L1Topo::triggerBitIndexPhase1
unsigned int triggerBitIndexPhase1(uint32_t topo, uint32_t fpga, size_t bitIdx)
Definition: Trigger/TrigT1/L1Topo/L1TopoRDO/src/Helpers.cxx:152
DeMoScan.index
string index
Definition: DeMoScan.py:362
L1Topo::L1TopoResult::m_l1topoFPGA
std::vector< std::shared_ptr< L1Topo::L1TopoFPGA > > m_l1topoFPGA
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:61
L1Topo::L1TopoResult::decode
void decode(const DataVector< xAOD::L1TopoRawData > &container)
method used by constructor to decode xAOD
Definition: L1Topo/L1TopoRDO/src/L1TopoResult.cxx:24
L1Topo::L1TopoResult::m_decisions
std::bitset< s_nTopoOutputs > m_decisions
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:62
L1Topo::L1TopoFPGA
Definition: L1TopoFPGA.h:14
L1Topo::L1TopoResult::m_overflows
std::bitset< s_nTopoOutputs > m_overflows
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:63
fitman.k
k
Definition: fitman.py:528