ATLAS Offline Software
ForwardDetectors
ALFA
ALFA_EventCnv
ALFA_RawDataByteStreamCnv
src
ALFA_RawDataContainerReadOut.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
ALFA_RawDataByteStreamCnv/ALFA_RawDataContainerReadOut.h
"
6
7
#include "GaudiKernel/ISvcLocator.h"
8
#include "GaudiKernel/Bootstrap.h"
9
#include "GaudiKernel/MsgStream.h"
10
#include "GaudiKernel/IMessageSvc.h"
11
12
#include <cassert>
13
14
15
ALFA_RawDataContainerReadOut::ALFA_RawDataContainerReadOut
():
16
m_wordMarker(0),
17
m_subdetId(0),
18
m_mrodId(0),
19
m_lvl1Id(0),
20
m_ecrId(0),
21
m_bcId(0),
22
m_runNum(0),
23
m_runType(0),
24
m_triggerTypeId(0),
25
m_DetEventType(0),
26
m_timestamp(0),
27
m_BCId(0)
28
{ }
29
30
31
void
ALFA_RawDataContainerReadOut::decodeWord
(
uint32_t
dataWord)
32
{
33
m_wordMarker
= dataWord;
34
}
35
36
void
ALFA_RawDataContainerReadOut::decodeHeaderFull
(std::vector<uint32_t>& vDataFull)
37
{
38
39
setZeroFull
();
40
41
42
if
(vDataFull[0] ==
s_FullEVmarker
)
43
{
44
// cout << "Full HEADER found : vDataFull[0] "<< std::hex << vDataFull[0] << std::dec <<endl;
45
46
}
47
48
m_word
= vDataFull[8];
49
m_timestamp
=
getBits
(
getBitsWord
(31,0));
50
// cout << " vDataFull[8] " << std::hex << vDataFull[8] << " m_timestamp " << std::hex << m_timestamp <<std::dec<<endl;
51
52
m_word
= vDataFull[15];
53
m_BCId
=
getBits
(
getBitsWord
(31,0));
54
// cout << " vDataFull[15] " << std::hex << vDataFull[15] << " m_BCId " << std::hex << m_BCId <<std::dec<<endl;
55
56
}
57
58
59
// Decode the ROD header
60
void
ALFA_RawDataContainerReadOut::decodeHeader
(std::vector<uint32_t>& vData)
61
{
62
63
//static const uint32_t RODheadersize = 0x00000009;
64
65
66
#ifndef NDEBUG
67
IMessageSvc*
msgSvc
= 0;
68
ISvcLocator* svcLocator = Gaudi::svcLocator();
69
svcLocator->service(
"MessageSvc"
,
msgSvc
).ignore();
70
MsgStream
log
(
msgSvc
,
"ALFA_RawDataContainerReadOut::decodeHeader"
);
71
#endif
72
73
setZero
();
74
75
if
(vData[0] !=
s_RODmarker
)
76
{
77
#ifndef NDEBUG
78
log
<< MSG::ERROR <<
"ROD Start of header marker not found"
<<
endmsg
;
79
#endif
80
assert(0);
81
}
82
if
(vData[1] !=
s_RODheadersize
)
83
{
84
#ifndef NDEBUG
85
log
<< MSG::ERROR <<
"ROD header size doesn't match "
<<
endmsg
;
86
#endif
87
assert(0);
88
}
89
90
// decode the rest of the header
91
// Subdetector Id and mrodId
92
m_word
= vData[3];
93
m_subdetId
=
getBits
(
getBitsWord
(31,16));
94
m_mrodId
=
getBits
(
getBitsWord
(15,0));
95
96
97
// Run number
98
m_word
= vData[4];
99
m_runNum
=
getBits
(
getBitsWord
(23,0));
100
m_runType
=
getBits
(
getBitsWord
(31,24));
101
102
103
// Lvl1Id :counting events
104
m_word
= vData[5];
105
m_lvl1Id
=
getBits
(
getBitsWord
(23,0));
106
m_ecrId
=
getBits
(
getBitsWord
(31,24));
107
108
109
// Bunch crossing identifier
110
m_word
= vData[6];
111
m_bcId
=
getBits
(
getBitsWord
(11,0));
112
113
114
// Trigger type Id
115
m_word
= vData[7];
116
m_triggerTypeId
=
getBits
(
getBitsWord
(7,0));
117
118
// Detector event type
119
m_word
= vData[8];
120
m_DetEventType
=
getBits
(
getBitsWord
(23,0));
121
}
122
123
124
125
126
void
ALFA_RawDataContainerReadOut::setZero
()
127
{
128
m_subdetId
= 0;
129
m_mrodId
= 0;
130
m_runNum
= 0;
131
m_runType
= 0;
132
m_lvl1Id
= 0;
133
m_ecrId
= 0;
134
m_bcId
= 0;
135
m_triggerTypeId
= 0;
136
m_DetEventType
= 0;
137
}
138
139
void
ALFA_RawDataContainerReadOut::setZeroFull
()
140
{
141
m_timestamp
= 0;
142
m_BCId
= 0;
143
}
144
ALFA_RawDataContainerReadOut::m_subdetId
uint16_t m_subdetId
Definition:
ALFA_RawDataContainerReadOut.h:42
ALFA_RawDataContainerReadOut::m_bcId
uint16_t m_bcId
Definition:
ALFA_RawDataContainerReadOut.h:46
ALFA_RawDataContainerReadOut::s_RODheadersize
static constexpr uint32_t s_RODheadersize
Definition:
ALFA_RawDataContainerReadOut.h:66
ALFA_RawDataContainerReadOut::m_mrodId
uint16_t m_mrodId
Definition:
ALFA_RawDataContainerReadOut.h:43
ALFA_RawDataContainerReadOut::m_BCId
uint32_t m_BCId
Definition:
ALFA_RawDataContainerReadOut.h:54
ALFA_RawDataContainerReadOut::decodeWord
void decodeWord(uint32_t dataWord)
Definition:
ALFA_RawDataContainerReadOut.cxx:31
xAOD::uint32_t
setEventNumber uint32_t
Definition:
EventInfo_v1.cxx:127
ALFA_RawDataContainerReadOut::s_RODmarker
static constexpr uint32_t s_RODmarker
Definition:
ALFA_RawDataContainerReadOut.h:64
ALFA_RawDataContainerReadOut::m_triggerTypeId
uint16_t m_triggerTypeId
Definition:
ALFA_RawDataContainerReadOut.h:49
ALFA_RawDataContainerReadOut::setZero
void setZero()
Definition:
ALFA_RawDataContainerReadOut.cxx:126
ALFA_RawDataContainerReadOut::m_runNum
uint32_t m_runNum
Definition:
ALFA_RawDataContainerReadOut.h:47
ALFA_RawDataContainerReadOut::m_DetEventType
uint32_t m_DetEventType
Definition:
ALFA_RawDataContainerReadOut.h:50
ALFA_RawDataContainerReadOut::m_runType
uint16_t m_runType
Definition:
ALFA_RawDataContainerReadOut.h:48
ALFA_ReadOut::m_word
uint32_t m_word
Definition:
ALFA_ReadOut.h:40
ALFA_RawDataContainerReadOut::m_timestamp
uint32_t m_timestamp
Definition:
ALFA_RawDataContainerReadOut.h:53
ALFA_RawDataContainerReadOut::m_wordMarker
uint32_t m_wordMarker
Definition:
ALFA_RawDataContainerReadOut.h:39
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition:
StdJOSetup.py:36
ALFA_RawDataContainerReadOut::decodeHeader
void decodeHeader(std::vector< uint32_t > &vData)
Definition:
ALFA_RawDataContainerReadOut.cxx:60
ALFA_RawDataContainerReadOut::decodeHeaderFull
void decodeHeaderFull(std::vector< uint32_t > &)
Definition:
ALFA_RawDataContainerReadOut.cxx:36
endmsg
#define endmsg
Definition:
AnalysisConfig_Ntuple.cxx:63
ALFA_RawDataContainerReadOut::ALFA_RawDataContainerReadOut
ALFA_RawDataContainerReadOut()
Definition:
ALFA_RawDataContainerReadOut.cxx:15
ALFA_RawDataContainerReadOut.h
ALFA_RawDataContainerReadOut::s_FullEVmarker
static constexpr uint32_t s_FullEVmarker
Definition:
ALFA_RawDataContainerReadOut.h:60
ALFA_RawDataContainerReadOut::m_ecrId
uint16_t m_ecrId
Definition:
ALFA_RawDataContainerReadOut.h:45
python.CaloCondTools.log
log
Definition:
CaloCondTools.py:20
ALFA_RawDataContainerReadOut::setZeroFull
void setZeroFull()
Definition:
ALFA_RawDataContainerReadOut.cxx:139
ALFA_ReadOut::getBitsWord
constexpr std::pair< uint32_t, uint16_t > getBitsWord(const uint16_t bstart, const uint16_t bstop)
Definition:
ALFA_ReadOut.h:21
ALFA_ReadOut::getBits
uint32_t getBits(std::pair< uint32_t, uint16_t > in)
Definition:
ALFA_ReadOut.h:29
ALFA_RawDataContainerReadOut::m_lvl1Id
uint32_t m_lvl1Id
Definition:
ALFA_RawDataContainerReadOut.h:44
Generated on Sun Jun 30 2024 21:10:11 for ATLAS Offline Software by
1.8.18