ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonNSWCommonDecode
MuonNSWCommonDecode
NSWElink.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef MUONNSWCOMMONDECODE_NSWELINK_H
5
#define MUONNSWCOMMONDECODE_NSWELINK_H
6
7
#include <stdint.h>
8
#include <vector>
9
10
#include "
MuonNSWCommonDecode/NSWDecodeBitmaps.h
"
11
#include "
MuonNSWCommonDecode/NSWDecodeHelper.h
"
12
13
namespace
Muon
14
{
15
namespace
nsw
16
{
17
class
VMMChannel
;
18
class
NSWResourceId
;
19
20
class
NSWElink
21
{
22
public
:
23
//NSWElink (); to be implemented for simulation
24
NSWElink
(
const
uint32_t *bs, uint32_t remaining);
25
virtual
~NSWElink
();
26
27
NSWElink
(
const
NSWElink
&) =
delete
;
28
NSWElink
&
operator=
(
const
NSWElink
&) =
delete
;
29
30
const
std::vector <Muon::nsw::VMMChannel *> &
get_channels
()
const
{
return
m_channels
;};
31
32
unsigned
int
nwords
()
const
{
return
m_wordCount
;};
33
unsigned
int
nhits
()
const
{
return
m_nhits
;};
34
unsigned
int
status
()
const
{
return
m_packet_status
;};
35
36
// Detector Logical ID and components
37
uint32_t
elinkWord
()
const
{
return
m_elinkWord
;};
38
const
Muon::nsw::NSWResourceId
*
elinkId
()
const
{
return
m_elinkId
;};
39
Muon::nsw::NSWResourceId
*
elinkId
() {
return
m_elinkId
;};
40
41
// ROC header
42
bool
isNull
()
const
{
return
m_isNull
;};
43
bool
noTdc
()
const
{
return
m_noTdc
;};
44
45
uint16_t
l1Id
()
const
{
return
m_l1Id
;};
46
uint16_t
rocId
()
const
{
return
m_rocId
;};
47
uint16_t
bcId
()
const
{
return
m_bcId
;};
48
uint16_t
orbit
()
const
{
return
m_orbit
;};
49
50
// ROC trailer
51
bool
tout
()
const
{
return
m_tout
;};
52
bool
extended
()
const
{
return
m_extended
;};
53
54
uint8_t
checksum
()
const
{
return
m_checksum
;};
55
56
uint16_t
nhitsTrail
()
const
{
return
m_nhitsTrail
;};
57
uint16_t
l0Id
()
const
{
return
m_l0Id
;};
58
uint16_t
flagMiss
()
const
{
return
m_flagMiss
;};
59
60
private
:
61
unsigned
int
test_checksum
(
const
uint8_t *buffer,
unsigned
int
buflen);
62
63
private
:
64
unsigned
int
m_wordCount
{};
65
unsigned
int
m_nhits
{};
66
unsigned
int
m_running_checksum
{};
67
unsigned
int
m_packet_status
{};
68
69
bool
m_isNull
{};
70
bool
m_noTdc
{};
71
bool
m_tout
{};
72
bool
m_extended
{};
73
74
uint8_t
m_checksum
{};
75
76
uint16_t
m_l1Id
{};
77
uint16_t
m_rocId
{};
78
uint16_t
m_bcId
{};
79
uint16_t
m_orbit
{};
80
uint16_t
m_nhitsTrail
{};
81
uint16_t
m_l0Id
{};
82
uint16_t
m_flagMiss
{};
83
84
uint32_t
m_elinkWord
{};
85
Muon::nsw::NSWResourceId
*
m_elinkId
{};
86
std::vector <Muon::nsw::VMMChannel *>
m_channels
;
87
88
static
const
unsigned
int
s_null_packet_length
= 10;
89
};
90
}
91
}
92
93
inline
unsigned
int
Muon::nsw::NSWElink::test_checksum
(
const
uint8_t *buffer,
unsigned
int
buflen)
94
{
95
const
uint8_t *p = buffer;
96
unsigned
int
running_checksum = 0;
97
98
for
(
unsigned
int
i = 0; i < buflen; ++i, ++p)
99
running_checksum += *p;
100
101
running_checksum = (running_checksum & 0xff) + (running_checksum >> 8);
// add carry bits
102
running_checksum = (running_checksum & 0xff) + (running_checksum >> 8);
// do it twice
103
running_checksum = (~running_checksum) & 0xff;
104
105
return
running_checksum;
106
}
107
108
#endif
// MUONNSWCOMMONDECODE_NSWELINK_H
NSWDecodeBitmaps.h
NSWDecodeHelper.h
Muon::nsw::NSWElink::nhitsTrail
uint16_t nhitsTrail() const
Definition
NSWElink.h:56
Muon::nsw::NSWElink::checksum
uint8_t checksum() const
Definition
NSWElink.h:54
Muon::nsw::NSWElink::m_packet_status
unsigned int m_packet_status
Definition
NSWElink.h:67
Muon::nsw::NSWElink::m_running_checksum
unsigned int m_running_checksum
Definition
NSWElink.h:66
Muon::nsw::NSWElink::nhits
unsigned int nhits() const
Definition
NSWElink.h:33
Muon::nsw::NSWElink::elinkId
Muon::nsw::NSWResourceId * elinkId()
Definition
NSWElink.h:39
Muon::nsw::NSWElink::m_extended
bool m_extended
Definition
NSWElink.h:72
Muon::nsw::NSWElink::extended
bool extended() const
Definition
NSWElink.h:52
Muon::nsw::NSWElink::m_nhits
unsigned int m_nhits
Definition
NSWElink.h:65
Muon::nsw::NSWElink::m_channels
std::vector< Muon::nsw::VMMChannel * > m_channels
Definition
NSWElink.h:86
Muon::nsw::NSWElink::elinkWord
uint32_t elinkWord() const
Definition
NSWElink.h:37
Muon::nsw::NSWElink::status
unsigned int status() const
Definition
NSWElink.h:34
Muon::nsw::NSWElink::m_tout
bool m_tout
Definition
NSWElink.h:71
Muon::nsw::NSWElink::noTdc
bool noTdc() const
Definition
NSWElink.h:43
Muon::nsw::NSWElink::m_l1Id
uint16_t m_l1Id
Definition
NSWElink.h:76
Muon::nsw::NSWElink::l1Id
uint16_t l1Id() const
Definition
NSWElink.h:45
Muon::nsw::NSWElink::s_null_packet_length
static const unsigned int s_null_packet_length
Definition
NSWElink.h:88
Muon::nsw::NSWElink::nwords
unsigned int nwords() const
Definition
NSWElink.h:32
Muon::nsw::NSWElink::orbit
uint16_t orbit() const
Definition
NSWElink.h:48
Muon::nsw::NSWElink::get_channels
const std::vector< Muon::nsw::VMMChannel * > & get_channels() const
Definition
NSWElink.h:30
Muon::nsw::NSWElink::tout
bool tout() const
Definition
NSWElink.h:51
Muon::nsw::NSWElink::l0Id
uint16_t l0Id() const
Definition
NSWElink.h:57
Muon::nsw::NSWElink::m_isNull
bool m_isNull
Definition
NSWElink.h:69
Muon::nsw::NSWElink::m_elinkWord
uint32_t m_elinkWord
Definition
NSWElink.h:84
Muon::nsw::NSWElink::m_bcId
uint16_t m_bcId
Definition
NSWElink.h:78
Muon::nsw::NSWElink::elinkId
const Muon::nsw::NSWResourceId * elinkId() const
Definition
NSWElink.h:38
Muon::nsw::NSWElink::flagMiss
uint16_t flagMiss() const
Definition
NSWElink.h:58
Muon::nsw::NSWElink::NSWElink
NSWElink(const NSWElink &)=delete
Muon::nsw::NSWElink::m_nhitsTrail
uint16_t m_nhitsTrail
Definition
NSWElink.h:80
Muon::nsw::NSWElink::m_checksum
uint8_t m_checksum
Definition
NSWElink.h:74
Muon::nsw::NSWElink::m_flagMiss
uint16_t m_flagMiss
Definition
NSWElink.h:82
Muon::nsw::NSWElink::m_elinkId
Muon::nsw::NSWResourceId * m_elinkId
Definition
NSWElink.h:85
Muon::nsw::NSWElink::m_wordCount
unsigned int m_wordCount
Definition
NSWElink.h:64
Muon::nsw::NSWElink::rocId
uint16_t rocId() const
Definition
NSWElink.h:46
Muon::nsw::NSWElink::m_l0Id
uint16_t m_l0Id
Definition
NSWElink.h:81
Muon::nsw::NSWElink::m_orbit
uint16_t m_orbit
Definition
NSWElink.h:79
Muon::nsw::NSWElink::isNull
bool isNull() const
Definition
NSWElink.h:42
Muon::nsw::NSWElink::test_checksum
unsigned int test_checksum(const uint8_t *buffer, unsigned int buflen)
Definition
NSWElink.h:93
Muon::nsw::NSWElink::operator=
NSWElink & operator=(const NSWElink &)=delete
Muon::nsw::NSWElink::m_noTdc
bool m_noTdc
Definition
NSWElink.h:70
Muon::nsw::NSWElink::NSWElink
NSWElink(const uint32_t *bs, uint32_t remaining)
Definition
NSWElink.cxx:19
Muon::nsw::NSWElink::bcId
uint16_t bcId() const
Definition
NSWElink.h:47
Muon::nsw::NSWElink::m_rocId
uint16_t m_rocId
Definition
NSWElink.h:77
Muon::nsw::NSWElink::~NSWElink
virtual ~NSWElink()
Definition
NSWElink.cxx:158
Muon::nsw::NSWResourceId
Definition
NSWResourceId.h:42
Muon::nsw::VMMChannel
Definition
VMMChannel.h:16
Muon::nsw
Definition
MapperMMG.h:13
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Generated on
for ATLAS Offline Software by
1.17.0