ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonMDT_CnvTools
src
MdtAmtReadOut.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MUONBYTESTREAM_MDTAMTREADOUT_H
6
#define MUONBYTESTREAM_MDTAMTREADOUT_H
7
8
#include <stdint.h>
9
10
#include "
MdtReadOut.h
"
11
12
// Decoding methods for MDT Amt raw data words
13
// S. Rosati Feb 2003
14
15
class
MdtAmtReadOut
:
public
MdtReadOut
{
16
private
:
17
// Raw data word
18
uint32_t
m_dataWord
;
19
// Data word header
20
uint16_t
m_wordHeader
;
21
22
// Header info: event counter, bunch crossing ID and tdc number
23
uint16_t
m_tdcId
;
24
uint16_t
m_ecnt
;
25
uint16_t
m_bcId
;
26
27
// Footer info: words counter
28
uint16_t
m_wcnt
;
29
30
// Data info:
31
uint16_t
m_jt
;
32
uint16_t
m_channel
;
33
uint16_t
m_coarse
;
34
uint16_t
m_fine
;
35
uint16_t
m_width
;
36
bool
m_errflag
;
37
uint16_t
m_errstatus
;
38
39
uint32_t
m_masked
;
40
bool
m_leading
;
41
42
// Define the data structure and the word header values
43
44
// Word header Position and values
45
// The word header occupies the 4 highest bits of each TDC data word
46
static
constexpr
uint16_t
s_headerPos
= 28;
47
static
constexpr
uint16_t
s_headerBits
= 0xf;
48
49
// Beginning of TDC: two possible header values
50
// for channels 00-15 and 16-17 respectively
51
static
constexpr
uint16_t
s_BOTvalue1
= 0xa;
52
static
constexpr
uint16_t
s_BOTvalue2
= 0xb;
53
54
// End of TDC
55
static
constexpr
uint16_t
s_EOTvalue
= 0xc;
56
57
// TDC single measurement
58
static
constexpr
uint16_t
s_TMCvalue
= 0x2;
59
60
// TDC single measurement
61
static
constexpr
uint16_t
s_TSMvalue
= 0x3;
62
63
// TDC combined measurement
64
static
constexpr
uint16_t
s_TCMvalue
= 0x4;
65
66
// TDC error status
67
static
constexpr
uint16_t
s_TESvalue
= 0x6;
68
69
// add the CSM trailer word count for operation with TDC trailer suppression
70
static
constexpr
uint16_t
s_TWCvalue
= 0x8;
71
72
public
:
73
// Constructor and destructor
74
MdtAmtReadOut
();
75
~MdtAmtReadOut
() =
default
;
76
77
// Methods for decoding and encoding dataWords
78
void
decodeWord
(uint32_t dataWord);
79
void
encodeWord
(uint16_t headerVal);
80
81
// Methods to identify the word type
82
// Beginning of TDC
83
bool
is_BOT
() {
return
((
m_wordHeader
==
s_BOTvalue1
) || (
m_wordHeader
==
s_BOTvalue2
)); };
84
// End of TDC
85
bool
is_EOT
() {
return
(
m_wordHeader
==
s_EOTvalue
); };
86
// TDC masked channels
87
bool
is_TMC
() {
return
(
m_wordHeader
==
s_TMCvalue
); };
88
// TDC single measurement
89
bool
is_TSM
() {
return
(
m_wordHeader
==
s_TSMvalue
); };
90
// TDC combined measurement
91
bool
is_TCM
() {
return
(
m_wordHeader
==
s_TCMvalue
); };
92
// TDC error status
93
bool
is_TES
() {
return
(
m_wordHeader
==
s_TESvalue
); };
94
95
// trailer word count (actually a CSM word)
96
bool
is_TWC
() {
return
(
m_wordHeader
==
s_TWCvalue
); };
97
98
// Methods to retrieve the decoded word content
99
uint16_t
tdcId
() {
return
m_tdcId
; }
100
uint16_t
ecnt
() {
return
m_ecnt
; }
101
uint16_t
bcId
() {
return
m_bcId
; }
102
103
uint16_t
jt
() {
return
m_jt
; }
104
uint16_t
channel
() {
return
m_channel
; }
105
uint16_t
coarse
() {
return
m_coarse
; }
106
uint16_t
fine
() {
return
m_fine
; }
107
uint16_t
width
() {
return
m_width
; }
108
bool
errflag
() {
return
m_errflag
; }
109
uint16_t
errstatus
() {
return
m_errstatus
; }
110
uint32_t
masked
() {
return
m_masked
; }
111
bool
isLeading
() {
return
m_leading
; }
112
113
// Methods to encode data in 32 bits words
114
115
uint32_t
makeBOT
(uint16_t
tdcId
, uint16_t
ecnt
, uint16_t bcid);
116
uint32_t
makeEOT
(uint16_t
jt
, uint16_t
ecnt
, uint16_t wcnt);
117
uint32_t
makeTSM
(uint16_t
jt
, uint16_t
channel
,
bool
leading,
bool
errflag
, uint16_t
coarse
, uint16_t
fine
);
118
119
uint32_t
makeTCM
(uint16_t
jt
, uint16_t
channel
, uint16_t
width
, uint16_t
coarse
, uint16_t
fine
);
120
121
uint32_t
makeTMC
(uint16_t
jt
, uint32_t
masked
);
122
123
private
:
124
void
setZero
();
125
};
126
127
#endif
// MUONBYTESTREAM_MDTAMTREADOUT_H
MdtReadOut.h
width
const double width
Definition
TTileTripReader.cxx:24
MdtAmtReadOut::is_TES
bool is_TES()
Definition
MdtAmtReadOut.h:93
MdtAmtReadOut::is_TMC
bool is_TMC()
Definition
MdtAmtReadOut.h:87
MdtAmtReadOut::ecnt
uint16_t ecnt()
Definition
MdtAmtReadOut.h:100
MdtAmtReadOut::s_EOTvalue
static constexpr uint16_t s_EOTvalue
Definition
MdtAmtReadOut.h:55
MdtAmtReadOut::s_headerPos
static constexpr uint16_t s_headerPos
Definition
MdtAmtReadOut.h:46
MdtAmtReadOut::MdtAmtReadOut
MdtAmtReadOut()
Definition
MdtAmtReadOut.cxx:12
MdtAmtReadOut::m_tdcId
uint16_t m_tdcId
Definition
MdtAmtReadOut.h:23
MdtAmtReadOut::is_TCM
bool is_TCM()
Definition
MdtAmtReadOut.h:91
MdtAmtReadOut::~MdtAmtReadOut
~MdtAmtReadOut()=default
MdtAmtReadOut::makeTSM
uint32_t makeTSM(uint16_t jt, uint16_t channel, bool leading, bool errflag, uint16_t coarse, uint16_t fine)
Definition
MdtAmtReadOut.cxx:121
MdtAmtReadOut::m_errstatus
uint16_t m_errstatus
Definition
MdtAmtReadOut.h:37
MdtAmtReadOut::s_TMCvalue
static constexpr uint16_t s_TMCvalue
Definition
MdtAmtReadOut.h:58
MdtAmtReadOut::m_dataWord
uint32_t m_dataWord
Definition
MdtAmtReadOut.h:18
MdtAmtReadOut::is_TWC
bool is_TWC()
Definition
MdtAmtReadOut.h:96
MdtAmtReadOut::is_BOT
bool is_BOT()
Definition
MdtAmtReadOut.h:83
MdtAmtReadOut::m_bcId
uint16_t m_bcId
Definition
MdtAmtReadOut.h:25
MdtAmtReadOut::makeTMC
uint32_t makeTMC(uint16_t jt, uint32_t masked)
Definition
MdtAmtReadOut.cxx:156
MdtAmtReadOut::m_fine
uint16_t m_fine
Definition
MdtAmtReadOut.h:34
MdtAmtReadOut::coarse
uint16_t coarse()
Definition
MdtAmtReadOut.h:105
MdtAmtReadOut::setZero
void setZero()
Definition
MdtAmtReadOut.cxx:74
MdtAmtReadOut::tdcId
uint16_t tdcId()
Definition
MdtAmtReadOut.h:99
MdtAmtReadOut::isLeading
bool isLeading()
Definition
MdtAmtReadOut.h:111
MdtAmtReadOut::encodeWord
void encodeWord(uint16_t headerVal)
MdtAmtReadOut::s_headerBits
static constexpr uint16_t s_headerBits
Definition
MdtAmtReadOut.h:47
MdtAmtReadOut::bcId
uint16_t bcId()
Definition
MdtAmtReadOut.h:101
MdtAmtReadOut::s_TCMvalue
static constexpr uint16_t s_TCMvalue
Definition
MdtAmtReadOut.h:64
MdtAmtReadOut::s_TESvalue
static constexpr uint16_t s_TESvalue
Definition
MdtAmtReadOut.h:67
MdtAmtReadOut::jt
uint16_t jt()
Definition
MdtAmtReadOut.h:103
MdtAmtReadOut::m_leading
bool m_leading
Definition
MdtAmtReadOut.h:40
MdtAmtReadOut::channel
uint16_t channel()
Definition
MdtAmtReadOut.h:104
MdtAmtReadOut::m_masked
uint32_t m_masked
Definition
MdtAmtReadOut.h:39
MdtAmtReadOut::s_TSMvalue
static constexpr uint16_t s_TSMvalue
Definition
MdtAmtReadOut.h:61
MdtAmtReadOut::masked
uint32_t masked()
Definition
MdtAmtReadOut.h:110
MdtAmtReadOut::width
uint16_t width()
Definition
MdtAmtReadOut.h:107
MdtAmtReadOut::makeEOT
uint32_t makeEOT(uint16_t jt, uint16_t ecnt, uint16_t wcnt)
Definition
MdtAmtReadOut.cxx:112
MdtAmtReadOut::makeTCM
uint32_t makeTCM(uint16_t jt, uint16_t channel, uint16_t width, uint16_t coarse, uint16_t fine)
Definition
MdtAmtReadOut.cxx:142
MdtAmtReadOut::is_TSM
bool is_TSM()
Definition
MdtAmtReadOut.h:89
MdtAmtReadOut::s_BOTvalue1
static constexpr uint16_t s_BOTvalue1
Definition
MdtAmtReadOut.h:51
MdtAmtReadOut::is_EOT
bool is_EOT()
Definition
MdtAmtReadOut.h:85
MdtAmtReadOut::decodeWord
void decodeWord(uint32_t dataWord)
Definition
MdtAmtReadOut.cxx:29
MdtAmtReadOut::s_TWCvalue
static constexpr uint16_t s_TWCvalue
Definition
MdtAmtReadOut.h:70
MdtAmtReadOut::m_width
uint16_t m_width
Definition
MdtAmtReadOut.h:35
MdtAmtReadOut::errflag
bool errflag()
Definition
MdtAmtReadOut.h:108
MdtAmtReadOut::m_wordHeader
uint16_t m_wordHeader
Definition
MdtAmtReadOut.h:20
MdtAmtReadOut::m_ecnt
uint16_t m_ecnt
Definition
MdtAmtReadOut.h:24
MdtAmtReadOut::m_jt
uint16_t m_jt
Definition
MdtAmtReadOut.h:31
MdtAmtReadOut::errstatus
uint16_t errstatus()
Definition
MdtAmtReadOut.h:109
MdtAmtReadOut::makeBOT
uint32_t makeBOT(uint16_t tdcId, uint16_t ecnt, uint16_t bcid)
Definition
MdtAmtReadOut.cxx:92
MdtAmtReadOut::m_errflag
bool m_errflag
Definition
MdtAmtReadOut.h:36
MdtAmtReadOut::m_channel
uint16_t m_channel
Definition
MdtAmtReadOut.h:32
MdtAmtReadOut::m_coarse
uint16_t m_coarse
Definition
MdtAmtReadOut.h:33
MdtAmtReadOut::s_BOTvalue2
static constexpr uint16_t s_BOTvalue2
Definition
MdtAmtReadOut.h:52
MdtAmtReadOut::fine
uint16_t fine()
Definition
MdtAmtReadOut.h:106
MdtAmtReadOut::m_wcnt
uint16_t m_wcnt
Definition
MdtAmtReadOut.h:28
MdtReadOut::MdtReadOut
MdtReadOut()
Definition
MdtReadOut.cxx:11
Generated on
for ATLAS Offline Software by
1.17.0