ATLAS Offline Software
Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef TRIGT1CALO_RODHEADER_H
5 #define TRIGT1CALO_RODHEADER_H
6 
7 #include <stdint.h>
8 #include <vector>
9 
10 namespace LVL1 {
11 
17 class RODHeader {
18 
19  public:
20 
21  RODHeader();
23  uint32_t lvl1Id, uint32_t bcId, uint32_t trigType,
24  uint32_t detType, const std::vector<uint32_t>& statusWords,
25  uint32_t nData);
26 
27  ~RODHeader();
28 
29  // Header data
30  int version() const;
31  int majorVersion() const;
32  int minorVersion() const;
33  int sourceID() const;
34  int subDetectorID() const;
35  int moduleID() const;
36  int crate() const;
37  int sLink() const;
38  int dataType() const;
39  int run() const;
40  int runType() const;
41  int runNumber() const;
42  int extendedL1ID() const;
43  int ecrID() const;
44  int l1ID() const;
45  int bunchCrossing() const;
46  int l1TriggerType() const;
47  int detEventType() const;
48  int orbitCount() const;
49  int stepNumber() const;
50  int stepType() const;
51 
52  // Status bits - word 1
53  bool bcnMismatch() const;
54  bool gLinkTimeout() const;
55  bool dataTransportError() const;
56  bool rodFifoOverflow() const;
57  bool lvdsLinkError() const;
58  bool cmmParityError() const;
59  bool gLinkError() const;
60  // Status bits - word 2
61  bool limitedRoISet() const;
62  bool triggerTypeTimeout() const;
63 
64  // Status words
65  const std::vector<uint32_t>& statusWords() const;
66 
67  // Payload
68  int payloadSize() const;
69 
70  private:
71 
79  std::vector<uint32_t> m_statusWords;
81 
82 };
83 
84 inline int RODHeader::version() const
85 {
86  return m_version;
87 }
88 
89 inline int RODHeader::majorVersion() const
90 {
91  return (m_version >> 16) & 0xffff;
92 }
93 
94 inline int RODHeader::minorVersion() const
95 {
96  return m_version & 0xffff;
97 }
98 
99 inline int RODHeader::sourceID() const
100 {
101  return m_sourceId;
102 }
103 
104 inline int RODHeader::subDetectorID() const
105 {
106  return (m_sourceId >> 16) & 0xff;
107 }
108 
109 inline int RODHeader::moduleID() const
110 {
111  return m_sourceId & 0xffff;
112 }
113 
114 inline int RODHeader::crate() const
115 {
116  return m_sourceId & 0xf;
117 }
118 
119 inline int RODHeader::sLink() const
120 {
121  return (m_sourceId >> 4) & 0x3;
122 }
123 
124 inline int RODHeader::dataType() const
125 {
126  return (m_sourceId >> 7) & 0x1;
127 }
128 
129 inline int RODHeader::run() const
130 {
131  return m_run;
132 }
133 
134 inline int RODHeader::runType() const
135 {
136  return (m_run >> 24) & 0xff;
137 }
138 
139 inline int RODHeader::runNumber() const
140 {
141  return m_run & 0xffffff;
142 }
143 
144 inline int RODHeader::extendedL1ID() const
145 {
146  return m_lvl1Id;
147 }
148 
149 inline int RODHeader::ecrID() const
150 {
151  return (m_lvl1Id >> 24) & 0xff;
152 }
153 
154 inline int RODHeader::l1ID() const
155 {
156  return m_lvl1Id & 0xffffff;
157 }
158 
159 inline int RODHeader::bunchCrossing() const
160 {
161  return m_bcId;
162 }
163 
164 inline int RODHeader::l1TriggerType() const
165 {
166  return m_trigType;
167 }
168 
169 inline int RODHeader::detEventType() const
170 {
171  return m_detType;
172 }
173 
174 inline int RODHeader::orbitCount() const
175 {
176  return (m_detType >> 16) & 0xffff;
177 }
178 
179 inline int RODHeader::stepNumber() const
180 {
181  return (m_detType >> 4) & 0xfff;
182 }
183 
184 inline int RODHeader::stepType() const
185 {
186  return m_detType & 0xf;
187 }
188 
189 inline bool RODHeader::bcnMismatch() const
190 {
191  return (m_statusWords.empty()) ? false : m_statusWords[0] & 0x1;
192 }
193 
194 inline bool RODHeader::gLinkTimeout() const
195 {
196  return (m_statusWords.empty()) ? false : m_statusWords[0] & 0x4;
197 }
198 
199 inline bool RODHeader::dataTransportError() const
200 {
201  return (m_statusWords.empty()) ? false : m_statusWords[0] & 0x8;
202 }
203 
204 inline bool RODHeader::rodFifoOverflow() const
205 {
206  return (m_statusWords.empty()) ? false : m_statusWords[0] & 0x10;
207 }
208 
209 inline bool RODHeader::lvdsLinkError() const
210 {
211  return (m_statusWords.empty()) ? false : m_statusWords[0] & 0x10000;
212 }
213 
214 inline bool RODHeader::cmmParityError() const
215 {
216  return (m_statusWords.empty()) ? false : m_statusWords[0] & 0x20000;
217 }
218 
219 inline bool RODHeader::gLinkError() const
220 {
221  return (m_statusWords.empty()) ? false : m_statusWords[0] & 0x40000;
222 }
223 
224 inline bool RODHeader::limitedRoISet() const
225 {
226  return (m_statusWords.size() < 2) ? false : m_statusWords[1] & 0x2;
227 }
228 
229 inline bool RODHeader::triggerTypeTimeout() const
230 {
231  return (m_statusWords.size() < 2) ? false : m_statusWords[1] & 0x10000;
232 }
233 
234 inline const std::vector<uint32_t>& RODHeader::statusWords() const
235 {
236  return m_statusWords;
237 }
238 
239 inline int RODHeader::payloadSize() const
240 {
241  return m_payloadSize;
242 }
243 
244 } // end namespace
245 
246 #ifndef RODHeader_ClassDEF_H
248 #endif
249 
250 #endif
LVL1::RODHeader::dataTransportError
bool dataTransportError() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:199
LVL1::RODHeader::ecrID
int ecrID() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:149
LVL1::RODHeader::m_run
uint32_t m_run
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:74
LVL1::RODHeader::moduleID
int moduleID() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:109
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
LVL1::RODHeader::l1ID
int l1ID() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:154
LVL1::RODHeader::m_bcId
uint32_t m_bcId
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:76
LVL1::RODHeader::statusWords
const std::vector< uint32_t > & statusWords() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:234
LVL1::RODHeader::lvdsLinkError
bool lvdsLinkError() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:209
LVL1::RODHeader::detEventType
int detEventType() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:169
LVL1::RODHeader
ROD Header data and status words.
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:17
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::RODHeader::m_payloadSize
uint32_t m_payloadSize
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:80
LVL1::RODHeader::runType
int runType() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:134
LVL1::RODHeader::~RODHeader
~RODHeader()
Definition: RODHeader.cxx:26
LVL1::RODHeader::runNumber
int runNumber() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:139
LVL1::RODHeader::l1TriggerType
int l1TriggerType() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:164
LVL1::RODHeader::stepNumber
int stepNumber() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:179
LVL1::RODHeader::payloadSize
int payloadSize() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:239
LVL1::RODHeader::m_trigType
uint32_t m_trigType
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:77
LVL1::RODHeader::m_statusWords
std::vector< uint32_t > m_statusWords
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:79
LVL1::RODHeader::triggerTypeTimeout
bool triggerTypeTimeout() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:229
LVL1::RODHeader::limitedRoISet
bool limitedRoISet() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:224
LVL1::RODHeader::bunchCrossing
int bunchCrossing() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:159
run
Definition: run.py:1
LVL1::RODHeader::minorVersion
int minorVersion() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:94
LVL1::RODHeader::m_detType
uint32_t m_detType
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:78
LVL1::RODHeader::stepType
int stepType() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:184
LVL1::RODHeader::cmmParityError
bool cmmParityError() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:214
RODHeader_ClassDEF.h
bcId
uint16_t bcId(uint32_t data)
Definition: TgcByteStreamData.h:329
LVL1::RODHeader::m_lvl1Id
uint32_t m_lvl1Id
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:75
LVL1::RODHeader::m_version
uint32_t m_version
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:72
LVL1::RODHeader::orbitCount
int orbitCount() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:174
LVL1::RODHeader::crate
int crate() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:114
LVL1::RODHeader::gLinkError
bool gLinkError() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:219
LVL1::RODHeader::run
int run() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:129
LVL1::RODHeader::sLink
int sLink() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:119
LVL1::RODHeader::RODHeader
RODHeader()
Definition: RODHeader.cxx:9
LVL1::RODHeader::sourceID
int sourceID() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:99
LVL1::RODHeader::version
int version() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:84
LVL1::RODHeader::extendedL1ID
int extendedL1ID() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:144
LVL1::RODHeader::bcnMismatch
bool bcnMismatch() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:189
LVL1::RODHeader::m_sourceId
uint32_t m_sourceId
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:73
LVL1::RODHeader::dataType
int dataType() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:124
LVL1::RODHeader::rodFifoOverflow
bool rodFifoOverflow() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:204
LVL1::RODHeader::majorVersion
int majorVersion() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:89
LVL1::RODHeader::subDetectorID
int subDetectorID() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:104
LVL1::RODHeader::gLinkTimeout
bool gLinkTimeout() const
Definition: Trigger/TrigT1/TrigT1CaloEvent/TrigT1CaloEvent/RODHeader.h:194