ATLAS Offline Software
L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef L1TOPORESULT_H
6 #define L1TOPORESULT_H
7 
8 #include "L1TopoRDO/L1TopoFPGA.h"
9 #include "L1TopoRDO/L1TopoROD.h"
10 
11 //xAOD
13 
14 //Athena
16 
17 // System includes
18 #include <vector>
19 #include <bitset>
20 
21 /*
22  * This class is for decoding phase1 L1Topo hardware results.
23  *
24  * @author Anil Sonay
25  */
26 
27 namespace L1Topo {
28 
29  class L1TopoResult {
30 
31  private:
33  static constexpr size_t s_nTopoOutputs{128};
34 
35  public:
36 
37  L1TopoResult();
38 
40 
41  ~L1TopoResult();
42 
43  const std::shared_ptr<L1Topo::L1TopoROD> &getROD(unsigned index) const {return m_l1topoROD[index];}
44  const std::shared_ptr<L1Topo::L1TopoFPGA> &getFPGA(unsigned index) const {return m_l1topoFPGA[index];}
45  const std::bitset<s_nTopoOutputs> &getDecisions() const {return m_decisions;}
46  const std::bitset<s_nTopoOutputs> &getOverflows() const {return m_overflows;}
47  const std::bitset<s_nTopoOutputs> &getTopo1Opt0() const {return m_topo1opt0;}
48  const std::bitset<s_nTopoOutputs> &getTopo1Opt1() const {return m_topo1opt1;}
49  const std::bitset<s_nTopoOutputs> &getTopo1Opt2() const {return m_topo1opt2;}
50  const std::bitset<s_nTopoOutputs> &getTopo1Opt3() const {return m_topo1opt3;}
51  bool getStatus() {return m_status;}
52  unsigned getRODSize() {return m_l1topoROD.size();}
53  unsigned getFPGASize() {return m_l1topoFPGA.size();}
54 
56  void decode(const DataVector<xAOD::L1TopoRawData> &container);
57 
58  private:
59 
60  std::vector<std::shared_ptr<L1Topo::L1TopoROD>> m_l1topoROD;
61  std::vector<std::shared_ptr<L1Topo::L1TopoFPGA>> m_l1topoFPGA;
62  std::bitset<s_nTopoOutputs> m_decisions;
63  std::bitset<s_nTopoOutputs> m_overflows;
64  std::bitset<s_nTopoOutputs> m_topo1opt0;
65  std::bitset<s_nTopoOutputs> m_topo1opt1;
66  std::bitset<s_nTopoOutputs> m_topo1opt2;
67  std::bitset<s_nTopoOutputs> m_topo1opt3;
68 
69  bool m_status;
70 
71 
72  };
73 } // namespace L1Topo
74 
75 #endif // L1TOPORESULT_H
L1Topo::L1TopoResult::getRODSize
unsigned getRODSize()
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:52
L1TopoROD.h
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
L1Topo::L1TopoResult::getFPGASize
unsigned getFPGASize()
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:53
L1Topo::L1TopoResult
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:29
index
Definition: index.py:1
L1Topo::L1TopoResult::getTopo1Opt0
const std::bitset< s_nTopoOutputs > & getTopo1Opt0() const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:47
L1Topo::L1TopoResult::L1TopoResult
L1TopoResult()
Definition: L1Topo/L1TopoRDO/src/L1TopoResult.cxx:11
L1Topo::L1TopoResult::m_topo1opt2
std::bitset< s_nTopoOutputs > m_topo1opt2
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:66
L1Topo::L1TopoResult::getTopo1Opt2
const std::bitset< s_nTopoOutputs > & getTopo1Opt2() const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:49
L1Topo::L1TopoResult::m_status
bool m_status
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:69
L1TopoFPGA.h
L1Topo::L1TopoResult::~L1TopoResult
~L1TopoResult()
Definition: L1Topo/L1TopoRDO/src/L1TopoResult.cxx:21
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
L1Topo::L1TopoResult::m_topo1opt1
std::bitset< s_nTopoOutputs > m_topo1opt1
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:65
L1Topo::L1TopoResult::getDecisions
const std::bitset< s_nTopoOutputs > & getDecisions() const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:45
L1Topo::L1TopoResult::getOverflows
const std::bitset< s_nTopoOutputs > & getOverflows() const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:46
L1Topo::L1TopoResult::getTopo1Opt1
const std::bitset< s_nTopoOutputs > & getTopo1Opt1() const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:48
L1Topo::L1TopoResult::m_l1topoROD
std::vector< std::shared_ptr< L1Topo::L1TopoROD > > m_l1topoROD
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:60
L1Topo::L1TopoResult::getFPGA
const std::shared_ptr< L1Topo::L1TopoFPGA > & getFPGA(unsigned index) const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:44
L1Topo::L1TopoResult::s_nTopoOutputs
static constexpr size_t s_nTopoOutputs
Number of topo outputs.
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:33
L1TopoRawData.h
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
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::L1TopoResult::getStatus
bool getStatus()
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:51
L1Topo::L1TopoResult::getROD
const std::shared_ptr< L1Topo::L1TopoROD > & getROD(unsigned index) const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:43
L1Topo
Definition: BlockTypes.h:11
L1Topo::L1TopoResult::getTopo1Opt3
const std::bitset< s_nTopoOutputs > & getTopo1Opt3() const
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:50
L1Topo::L1TopoResult::m_overflows
std::bitset< s_nTopoOutputs > m_overflows
Definition: L1Topo/L1TopoRDO/L1TopoRDO/L1TopoResult.h:63