ATLAS Offline Software
LArCalorimeter
LArRawEvent
LArRawEvent
LArFebHeader.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef LARFEBHEADER_H
6
#define LARFEBHEADER_H
7
8
#include "
Identifier/HWIdentifier.h
"
9
#include <stdint.h>
10
11
20
class
LArFebHeader
21
{
22
public
:
23
25
LArFebHeader
(
const
HWIdentifier
febid);
26
28
~LArFebHeader
() =
default
;
29
31
inline
HWIdentifier
FEBId
()
const
{
return
m_FEBId
;}
32
34
inline
uint32_t
FormatVersion
()
const
{
return
m_RodHeader
.FormatVersion;}
35
37
inline
uint32_t
SourceId
()
const
{
return
m_RodHeader
.SourceId;}
38
40
inline
uint32_t
RunNumber
()
const
{
return
m_RodHeader
.
RunNumber
;}
41
43
inline
uint16_t
ELVL1Id
()
const
{
return
m_RodHeader
.ELVL1Id;}
44
46
inline
uint16_t
BCId
()
const
{
return
m_RodHeader
.BCId;}
47
49
inline
uint32_t
LVL1TigType
()
const
{
return
m_RodHeader
.LVL1TigType;}
50
52
inline
uint32_t
DetEventType
()
const
{
return
m_RodHeader
.DetEventType;}
53
55
inline
uint32_t
DspCodeVersion
()
const
{
return
m_DspHeader
.CodeVersion;}
56
58
inline
uint32_t
DspEventCounter
()
const
{
return
m_DspHeader
.EventCounter;}
59
61
inline
uint16_t
FebELVL1Id
()
const
{
return
m_ELVL1Id
;}
62
64
inline
uint16_t
FebBCId
()
const
{
return
m_BCId
;}
65
67
inline
uint16_t
RodResults1Size
()
const
{
return
m_Results1Size
;}
68
inline
uint16_t
RodResults2Size
()
const
{
return
m_Results2Size
;}
69
inline
uint16_t
RodRawDataSize
()
const
{
return
m_RawDataSize
;}
70
72
inline
uint16_t
NbSamples
()
const
{
return
m_NbSamples
;}
73
inline
uint16_t
NbSweetCells1
()
const
{
return
m_NbSweetCells1
;}
74
inline
uint16_t
NbSweetCells2
()
const
{
return
m_NbSweetCells2
;}
75
inline
uint32_t
OnlineChecksum
()
const
{
return
m_OnlineChecksum
; }
76
inline
uint32_t
OfflineChecksum
()
const
{
return
m_OfflineChecksum
; }
77
inline
bool
ChecksumVerification
()
const
{
return
m_OnlineChecksum
==
m_OfflineChecksum
; }
78
80
inline
const
std::vector <uint16_t> &
FebCtrl1
()
const
{
return
m_Ctrl1
;}
81
83
inline
const
std::vector <uint16_t> &
FebCtrl2
()
const
{
return
m_Ctrl2
;}
84
86
inline
const
std::vector <uint16_t> &
FebCtrl3
()
const
{
return
m_Ctrl3
;}
87
89
inline
uint32_t
RodStatus
()
const
{
return
m_Status
;}
90
92
inline
const
std::vector <uint16_t> &
SCA
()
const
{
return
m_SCA
; }
93
95
inline
bool
CheckErrorELVL1Id
()
const
{
return
(
m_RodHeader
.ELVL1Id&0x1f)!=
m_ELVL1Id
; }
96
98
inline
bool
CheckErrorBCId
()
const
{
return
m_RodHeader
.BCId!=((
m_BCId
+1)&0xfff); }
99
101
inline
void
SetFormatVersion
(
const
uint32_t
formatVersion)
102
{
m_RodHeader
.FormatVersion=formatVersion;
return
; }
103
105
inline
void
SetSourceId
(
const
uint32_t
sourceID)
106
{
m_RodHeader
.SourceId=sourceID;
return
; }
107
109
inline
void
SetRunNumber
(
const
uint32_t
runNumber
)
110
{
m_RodHeader
.RunNumber=
runNumber
;
return
; }
111
113
inline
void
SetELVL1Id
(
const
uint16_t
elvl1Id)
114
{
m_RodHeader
.ELVL1Id=elvl1Id;
return
; }
115
117
inline
void
SetBCId
(
const
uint16_t
bcid
)
118
{
m_RodHeader
.BCId=
bcid
;
return
; }
119
121
inline
void
SetRodResults1Size
(
const
uint16_t
size
)
122
{
m_Results1Size
=
size
;
return
; }
123
inline
void
SetRodResults2Size
(
const
uint16_t
size
)
124
{
m_Results2Size
=
size
;
return
; }
125
inline
void
SetRodRawDataSize
(
const
uint16_t
size
)
126
{
m_RawDataSize
=
size
;
return
; }
127
129
inline
void
SetNbSweetCells1
(
const
uint16_t
n
)
130
{
m_NbSweetCells1
=
n
;
return
; }
131
inline
void
SetNbSweetCells2
(
const
uint16_t
n
)
132
{
m_NbSweetCells2
=
n
;
return
; }
133
inline
void
SetNbSamples
(
const
uint16_t
n
)
134
{
m_NbSamples
=
n
;
return
; }
135
inline
void
SetOnlineChecksum
(
const
uint32_t
checksum)
136
{
m_OnlineChecksum
=checksum;
return
; }
137
inline
void
SetOfflineChecksum
(
const
uint32_t
checksum)
138
{
m_OfflineChecksum
=checksum;
return
; }
139
141
inline
void
SetLVL1TigType
(
const
uint32_t
lvl1ttype)
142
{
m_RodHeader
.LVL1TigType=lvl1ttype;
return
; }
143
145
inline
void
SetDetEventType
(
const
uint32_t
detEvType)
146
{
m_RodHeader
.DetEventType=detEvType;
return
; }
147
149
inline
void
SetDspCodeVersion
(
const
uint32_t
codeVersion)
150
{
m_DspHeader
.CodeVersion=codeVersion;
return
; }
151
153
inline
void
SetDspEventCounter
(
const
uint32_t
eventCounter)
154
{
m_DspHeader
.EventCounter=eventCounter;
return
; }
155
157
inline
void
SetFebELVL1Id
(
const
uint16_t
elvl1Id)
158
{
m_ELVL1Id
=elvl1Id;
return
; }
159
161
inline
void
SetFebBCId
(
const
uint16_t
bcid
)
162
{
m_BCId
=
bcid
;
return
; }
163
165
inline
void
SetFebCtrl1
(
const
uint16_t
ctrl1)
166
{
m_Ctrl1
.push_back(ctrl1);
return
; }
167
169
inline
void
SetFebCtrl2
(
const
uint16_t
ctrl2)
170
{
m_Ctrl2
.push_back(ctrl2);
return
; }
171
173
inline
void
SetFebCtrl3
(
const
uint16_t
ctrl3)
174
{
m_Ctrl3
.push_back(ctrl3);
return
; }
175
177
inline
void
SetRodStatus
(
const
uint32_t
status
)
178
{
m_Status
=
status
;
return
; }
179
181
inline
void
SetFebSCA
(
const
uint16_t
sca)
182
{
m_SCA
.push_back(
degray
(sca));
return
; }
183
184
private
:
185
187
static
int
degray
(
unsigned
int
x
);
188
190
const
HWIdentifier
m_FEBId
;
191
193
struct
{
194
uint32_t
FormatVersion
;
195
uint32_t
SourceId
;
196
uint32_t
RunNumber
;
197
uint16_t
ELVL1Id
;
198
uint16_t
BCId
;
199
uint32_t
LVL1TigType
;
200
uint32_t
DetEventType
;
201
}
m_RodHeader
{};
202
204
struct
{
205
uint32_t
CodeVersion
;
// DSP code version
206
uint32_t
EventCounter
;
// DSP event counter
207
}
m_DspHeader
{};
208
210
uint16_t
m_ELVL1Id
;
211
213
uint16_t
m_BCId
;
214
215
uint16_t
m_Results1Size
;
216
uint16_t
m_Results2Size
;
217
uint16_t
m_RawDataSize
;
218
uint16_t
m_NbSweetCells1
;
219
uint16_t
m_NbSweetCells2
;
220
uint16_t
m_NbSamples
;
221
uint32_t
m_OnlineChecksum
;
222
uint32_t
m_OfflineChecksum
;
223
225
uint32_t
m_Status
;
226
228
std::vector<uint16_t>
m_SCA
;
229
231
std::vector<uint16_t>
m_Ctrl1
;
232
234
std::vector<uint16_t>
m_Ctrl2
;
235
237
std::vector<uint16_t>
m_Ctrl3
;
238
};
239
240
#endif
LArFebHeader::ELVL1Id
uint16_t ELVL1Id() const
get the EventID
Definition:
LArFebHeader.h:43
LArFebHeader::FebCtrl3
const std::vector< uint16_t > & FebCtrl3() const
get the FEB Control Word #3
Definition:
LArFebHeader.h:86
LArFebHeader::m_ELVL1Id
uint16_t m_ELVL1Id
FEB EventId.
Definition:
LArFebHeader.h:210
LArFebHeader::degray
static int degray(unsigned int x)
like explained in: http://mathworld.wolfram.com/GrayCode.html
Definition:
LArFebHeader.cxx:34
LArFebHeader::LVL1TigType
uint32_t LVL1TigType() const
get the Level1 trigger type ID
Definition:
LArFebHeader.h:49
LArFebHeader::FebCtrl1
const std::vector< uint16_t > & FebCtrl1() const
get the FEB Control Word #1
Definition:
LArFebHeader.h:80
xAOD::uint32_t
setEventNumber uint32_t
Definition:
EventInfo_v1.cxx:127
LArFebHeader::NbSamples
uint16_t NbSamples() const
get the number of samples and cells above threshold
Definition:
LArFebHeader.h:72
LArFebHeader::m_Ctrl1
std::vector< uint16_t > m_Ctrl1
FEB Control word 1.
Definition:
LArFebHeader.h:231
LArFebHeader::NbSweetCells1
uint16_t NbSweetCells1() const
Definition:
LArFebHeader.h:73
LArFebHeader::m_OnlineChecksum
uint32_t m_OnlineChecksum
Definition:
LArFebHeader.h:221
LArFebHeader::DetEventType
uint32_t DetEventType
Definition:
LArFebHeader.h:200
LArFebHeader::SetFormatVersion
void SetFormatVersion(const uint32_t formatVersion)
set the format version
Definition:
LArFebHeader.h:101
LArFebHeader::FormatVersion
uint32_t FormatVersion() const
get the format version
Definition:
LArFebHeader.h:34
HWIdentifier
Definition:
HWIdentifier.h:13
LArFebHeader::SetELVL1Id
void SetELVL1Id(const uint16_t elvl1Id)
set the EventID
Definition:
LArFebHeader.h:113
LArFebHeader::m_FEBId
const HWIdentifier m_FEBId
Feb Identifier.
Definition:
LArFebHeader.h:190
x
#define x
LArFebHeader::NbSweetCells2
uint16_t NbSweetCells2() const
Definition:
LArFebHeader.h:74
LArFebHeader::m_NbSamples
uint16_t m_NbSamples
Definition:
LArFebHeader.h:220
LArFebHeader::FebCtrl2
const std::vector< uint16_t > & FebCtrl2() const
get the FEB Control Word #2
Definition:
LArFebHeader.h:83
LArFebHeader::SetLVL1TigType
void SetLVL1TigType(const uint32_t lvl1ttype)
set the Level1 trigger type ID
Definition:
LArFebHeader.h:141
LArFebHeader::OnlineChecksum
uint32_t OnlineChecksum() const
Definition:
LArFebHeader.h:75
LArFebHeader::SetRodRawDataSize
void SetRodRawDataSize(const uint16_t size)
Definition:
LArFebHeader.h:125
LArFebHeader::BCId
uint16_t BCId() const
get the Bunch Crossing ID
Definition:
LArFebHeader.h:46
LArFebHeader::OfflineChecksum
uint32_t OfflineChecksum() const
Definition:
LArFebHeader.h:76
LArFebHeader::SetBCId
void SetBCId(const uint16_t bcid)
set the Bunch Crossing ID
Definition:
LArFebHeader.h:117
LArFebHeader::m_BCId
uint16_t m_BCId
FEB BCId.
Definition:
LArFebHeader.h:213
python.setupRTTAlg.size
int size
Definition:
setupRTTAlg.py:39
LArFebHeader::~LArFebHeader
~LArFebHeader()=default
Destructor.
LArFebHeader::SCA
const std::vector< uint16_t > & SCA() const
get the SCA's
Definition:
LArFebHeader.h:92
LArFebHeader::DetEventType
uint32_t DetEventType() const
get the Detector event type ID
Definition:
LArFebHeader.h:52
xAOD::uint16_t
setWord1 uint16_t
Definition:
eFexEMRoI_v1.cxx:88
LArFebHeader::SetFebELVL1Id
void SetFebELVL1Id(const uint16_t elvl1Id)
set the FEB Event ID
Definition:
LArFebHeader.h:157
LArFebHeader::LVL1TigType
uint32_t LVL1TigType
Definition:
LArFebHeader.h:199
LArFebHeader::SourceId
uint32_t SourceId() const
get the source Id
Definition:
LArFebHeader.h:37
beamspotman.n
n
Definition:
beamspotman.py:731
LArFebHeader::FebELVL1Id
uint16_t FebELVL1Id() const
get the FEB Event ID
Definition:
LArFebHeader.h:61
LArFebHeader::SourceId
uint32_t SourceId
Definition:
LArFebHeader.h:195
LArFebHeader::SetRunNumber
void SetRunNumber(const uint32_t runNumber)
set the run number
Definition:
LArFebHeader.h:109
LArFebHeader::m_OfflineChecksum
uint32_t m_OfflineChecksum
Definition:
LArFebHeader.h:222
LArFebHeader::FEBId
HWIdentifier FEBId() const
get the FEBId
Definition:
LArFebHeader.h:31
LArFebHeader::ELVL1Id
uint16_t ELVL1Id
Definition:
LArFebHeader.h:197
LArFebHeader::SetDspCodeVersion
void SetDspCodeVersion(const uint32_t codeVersion)
set the version of the DSP code
Definition:
LArFebHeader.h:149
LArFebHeader::SetRodResults2Size
void SetRodResults2Size(const uint16_t size)
Definition:
LArFebHeader.h:123
LArFebHeader::SetOnlineChecksum
void SetOnlineChecksum(const uint32_t checksum)
Definition:
LArFebHeader.h:135
LArFebHeader::RodRawDataSize
uint16_t RodRawDataSize() const
Definition:
LArFebHeader.h:69
LArFebHeader
Holds information from the FEB Header.
Definition:
LArFebHeader.h:21
LArFebHeader::RunNumber
uint32_t RunNumber
Definition:
LArFebHeader.h:196
LArFebHeader::FormatVersion
uint32_t FormatVersion
Definition:
LArFebHeader.h:194
LArFebHeader::SetDspEventCounter
void SetDspEventCounter(const uint32_t eventCounter)
set the Event number counted by the DSP code
Definition:
LArFebHeader.h:153
LArFebHeader::m_Results2Size
uint16_t m_Results2Size
Definition:
LArFebHeader.h:216
LArFebHeader::m_Ctrl3
std::vector< uint16_t > m_Ctrl3
FEB Control word 3.
Definition:
LArFebHeader.h:237
HWIdentifier.h
LArFebHeader::m_Results1Size
uint16_t m_Results1Size
Definition:
LArFebHeader.h:215
LArFebHeader::SetSourceId
void SetSourceId(const uint32_t sourceID)
set the source Id
Definition:
LArFebHeader.h:105
LArFebHeader::CheckErrorBCId
bool CheckErrorBCId() const
Check functions: return true if mismatch in Bunch Crossing ID.
Definition:
LArFebHeader.h:98
xAOD::bcid
setEventNumber setTimeStamp bcid
Definition:
EventInfo_v1.cxx:133
LArFebHeader::ChecksumVerification
bool ChecksumVerification() const
Definition:
LArFebHeader.h:77
LArFebHeader::DspEventCounter
uint32_t DspEventCounter() const
get the Event number counted by the DSP code
Definition:
LArFebHeader.h:58
LArFebHeader::LArFebHeader
LArFebHeader(const HWIdentifier febid)
Constructor with FEB Id.
Definition:
LArFebHeader.cxx:8
LArFebHeader::SetRodResults1Size
void SetRodResults1Size(const uint16_t size)
set the ROD block sizes
Definition:
LArFebHeader.h:121
LArFebHeader::SetFebCtrl2
void SetFebCtrl2(const uint16_t ctrl2)
set the FEB Control Word #2
Definition:
LArFebHeader.h:169
DeMoAtlasDataLoss.runNumber
string runNumber
Definition:
DeMoAtlasDataLoss.py:64
LArFebHeader::m_NbSweetCells1
uint16_t m_NbSweetCells1
Definition:
LArFebHeader.h:218
LArFebHeader::RunNumber
uint32_t RunNumber() const
get the run number
Definition:
LArFebHeader.h:40
LArFebHeader::SetNbSamples
void SetNbSamples(const uint16_t n)
Definition:
LArFebHeader.h:133
LArFebHeader::m_NbSweetCells2
uint16_t m_NbSweetCells2
Definition:
LArFebHeader.h:219
LArFebHeader::RodStatus
uint32_t RodStatus() const
get the ROD Status
Definition:
LArFebHeader.h:89
LArFebHeader::SetFebSCA
void SetFebSCA(const uint16_t sca)
set the SCA's
Definition:
LArFebHeader.h:181
LArFebHeader::RodResults2Size
uint16_t RodResults2Size() const
Definition:
LArFebHeader.h:68
LArFebHeader::BCId
uint16_t BCId
Definition:
LArFebHeader.h:198
LArFebHeader::SetFebCtrl3
void SetFebCtrl3(const uint16_t ctrl3)
set the FEB Control Word #3
Definition:
LArFebHeader.h:173
LArFebHeader::SetNbSweetCells2
void SetNbSweetCells2(const uint16_t n)
Definition:
LArFebHeader.h:131
LArFebHeader::m_RawDataSize
uint16_t m_RawDataSize
Definition:
LArFebHeader.h:217
LArFebHeader::m_SCA
std::vector< uint16_t > m_SCA
SCA number for each samples.
Definition:
LArFebHeader.h:228
LArFebHeader::CodeVersion
uint32_t CodeVersion
Definition:
LArFebHeader.h:205
LArFebHeader::DspCodeVersion
uint32_t DspCodeVersion() const
get the version of the DSP code
Definition:
LArFebHeader.h:55
LArFebHeader::m_DspHeader
struct LArFebHeader::@162 m_DspHeader
DSP-Header (most of it is actually in the DSP-Trailer)
merge.status
status
Definition:
merge.py:17
LArFebHeader::SetFebBCId
void SetFebBCId(const uint16_t bcid)
set the FEB Bunch Crossing ID
Definition:
LArFebHeader.h:161
LArFebHeader::FebBCId
uint16_t FebBCId() const
get the FEB Bunch Crossing ID
Definition:
LArFebHeader.h:64
LArFebHeader::SetFebCtrl1
void SetFebCtrl1(const uint16_t ctrl1)
set the FEB Control Word #1
Definition:
LArFebHeader.h:165
LArFebHeader::m_Ctrl2
std::vector< uint16_t > m_Ctrl2
@Brief FEB Control word 2
Definition:
LArFebHeader.h:234
LArFebHeader::RodResults1Size
uint16_t RodResults1Size() const
get the ROD block sizes
Definition:
LArFebHeader.h:67
LArFebHeader::SetDetEventType
void SetDetEventType(const uint32_t detEvType)
set the Detector event type ID
Definition:
LArFebHeader.h:145
LArFebHeader::SetRodStatus
void SetRodStatus(const uint32_t status)
set the ROD Status
Definition:
LArFebHeader.h:177
LArFebHeader::SetNbSweetCells1
void SetNbSweetCells1(const uint16_t n)
set the number of samples and cells above thresholds
Definition:
LArFebHeader.h:129
LArFebHeader::m_RodHeader
struct LArFebHeader::@161 m_RodHeader
ROD-Header, always present (is part of the FEB-Header)
LArFebHeader::SetOfflineChecksum
void SetOfflineChecksum(const uint32_t checksum)
Definition:
LArFebHeader.h:137
LArFebHeader::m_Status
uint32_t m_Status
ROD Status word.
Definition:
LArFebHeader.h:225
LArFebHeader::CheckErrorELVL1Id
bool CheckErrorELVL1Id() const
Check functions: return true if mismatch in Event ID.
Definition:
LArFebHeader.h:95
LArFebHeader::EventCounter
uint32_t EventCounter
Definition:
LArFebHeader.h:206
Generated on Sun Jun 30 2024 21:20:17 for ATLAS Offline Software by
1.8.18