src
DataFormats
GEMDigi
interface
GEMVFATStatus.h
Go to the documentation of this file.
1
#ifndef DataFormats_GEMDigi_GEMVFATStatus_h
2
#define DataFormats_GEMDigi_GEMVFATStatus_h
3
#include "
GEMAMC.h
"
4
#include "
GEMOptoHybrid.h
"
5
#include "
GEMVFAT.h
"
6
#include <bitset>
7
#include <ostream>
8
9
class
GEMVFATStatus
{
10
public
:
11
union
Errors
{
12
uint8_t
codes
;
13
struct
{
14
uint8_t
vc
: 1;
// VFAT CRC error
15
uint8_t
InValidHeader
: 1;
16
uint8_t
EC
: 1;
// does not match AMC EC
17
uint8_t
BC
: 1;
// does not match AMC BC
18
uint8_t
vfatMask
: 1;
// VFAT mask error
19
uint8_t
zsMask
: 1;
// Zero Suppression mask error
20
};
21
};
22
union
Warnings
{
23
uint8_t
wcodes
;
24
struct
{
25
uint8_t
basicOFW
: 1;
// Basic overflow warning
26
uint8_t
zeroSupOFW
: 1;
// Zero-sup overflow warning
27
};
28
};
29
30
GEMVFATStatus
() {}
31
GEMVFATStatus
(
const
GEMAMC
&
amc
,
const
GEMOptoHybrid
& oh,
const
GEMVFAT
& vfat,
bool
readMultiBX
) {
32
Errors
error
{0};
33
Warnings
warn
{0};
34
35
error
.EC = vfat.
ec
() !=
amc
.lv1Idt();
36
if
(!
readMultiBX
)
37
error
.BC = vfat.
bc
() !=
amc
.bunchCrossing();
38
39
if
(oh.
version
() != 0) {
40
error
.vfatMask = (oh.
vfatMask
() >> vfat.
vfatId
()) ^ 0
x1
;
41
error
.zsMask = (oh.
zsMask
() >> vfat.
vfatId
()) & 0
x1
;
42
}
43
44
if
(vfat.
version
() > 2) {
45
error
.vc = vfat.
vc
();
46
if
(vfat.
header
() == 0x1E)
47
warn
.basicOFW = 0;
48
else
if
(vfat.
header
() == 0x5E)
49
warn
.basicOFW = 1;
50
else
if
(vfat.
header
() == 0x1A)
51
warn
.zeroSupOFW = 0;
52
else
if
(vfat.
header
() == 0x56)
53
warn
.zeroSupOFW = 1;
54
else
55
error
.InValidHeader = 1;
56
}
57
vfatPosition_
= vfat.
vfatId
();
58
59
errors_
=
error
.codes;
60
warnings_
=
warn
.wcodes;
61
}
62
63
uint16_t
vfatPosition
()
const
{
return
vfatPosition_
; }
64
bool
isBad
()
const
{
return
errors_
!= 0; }
65
uint8_t
errors
()
const
{
return
errors_
; }
66
uint8_t
warnings
()
const
{
return
warnings_
; }
67
68
private
:
69
uint16_t
vfatPosition_
;
70
uint8_t
errors_
;
71
uint8_t
warnings_
;
72
};
73
74
inline
std::ostream&
operator<<
(std::ostream&
out
,
const
GEMVFATStatus
&
status
) {
75
out
<<
"GEMVFATStatus errors "
<< std::bitset<8>(
status
.errors()) <<
" warnings "
76
<< std::bitset<8>(
status
.warnings());
77
return
out
;
78
}
79
#endif
GEMVFATStatus::Errors::vfatMask
uint8_t vfatMask
Definition:
GEMVFATStatus.h:18
operator<<
std::ostream & operator<<(std::ostream &out, const GEMVFATStatus &status)
Definition:
GEMVFATStatus.h:74
GEMVFATStatus::warnings
uint8_t warnings() const
Definition:
GEMVFATStatus.h:66
GEMVFATStatus::Errors::vc
uint8_t vc
Definition:
GEMVFATStatus.h:14
GEMVFATStatus::Warnings::zeroSupOFW
uint8_t zeroSupOFW
Definition:
GEMVFATStatus.h:26
relativeConstraints.error
error
Definition:
relativeConstraints.py:53
GEMVFATStatus::Warnings::wcodes
uint8_t wcodes
Definition:
GEMVFATStatus.h:23
GEMVFATStatus::GEMVFATStatus
GEMVFATStatus(const GEMAMC &amc, const GEMOptoHybrid &oh, const GEMVFAT &vfat, bool readMultiBX)
Definition:
GEMVFATStatus.h:31
GEMVFAT::header
uint8_t header() const
v3
Definition:
GEMVFAT.h:100
GEMVFATStatus::warnings_
uint8_t warnings_
Definition:
GEMVFATStatus.h:71
GEMOptoHybrid::zsMask
uint32_t zsMask() const
Definition:
GEMOptoHybrid.h:147
python.warn
def warn(args, kwargs)
Definition:
__init__.py:21
GEMVFATStatus::Errors::EC
uint8_t EC
Definition:
GEMVFATStatus.h:16
GEMVFATStatus::isBad
bool isBad() const
Definition:
GEMVFATStatus.h:64
GEMOptoHybrid::version
uint8_t version() const
Definition:
GEMOptoHybrid.h:80
GEMVFAT
Definition:
GEMVFAT.h:5
GEMVFAT::bc
uint16_t bc() const
Definition:
GEMVFAT.h:77
GEMVFAT::ec
uint8_t ec() const
Definition:
GEMVFAT.h:82
GEMVFATStatus::vfatPosition_
uint16_t vfatPosition_
Definition:
GEMVFATStatus.h:69
GEMVFATStatus
Definition:
GEMVFATStatus.h:9
GEMVFATStatus::errors_
uint8_t errors_
Definition:
GEMVFATStatus.h:70
GEMVFATStatus::errors
uint8_t errors() const
Definition:
GEMVFATStatus.h:65
GEMOptoHybrid
Definition:
GEMOptoHybrid.h:6
mps_update.status
status
Definition:
mps_update.py:68
GEMVFATStatus::Errors::BC
uint8_t BC
Definition:
GEMVFATStatus.h:17
GEMVFAT::vfatId
uint16_t vfatId() const
Definition:
GEMVFAT.h:87
GEMVFATStatus::Warnings
Definition:
GEMVFATStatus.h:22
MillePedeFileConverter_cfg.out
out
Definition:
MillePedeFileConverter_cfg.py:31
GEMVFATStatus::Errors::codes
uint8_t codes
Definition:
GEMVFATStatus.h:12
GEMVFATStatus::Warnings::basicOFW
uint8_t basicOFW
Definition:
GEMVFATStatus.h:25
GEMVFAT.h
GEMVFATStatus::vfatPosition
uint16_t vfatPosition() const
Definition:
GEMVFATStatus.h:63
if
if(0==first)
Definition:
CAHitNtupletGeneratorKernelsImpl.h:58
GEMAMC
Definition:
GEMAMC.h:6
GEMVFATStatus::Errors
Definition:
GEMVFATStatus.h:11
GEMVFAT::version
int version() const
Definition:
GEMVFAT.h:94
GEMOptoHybrid::vfatMask
uint32_t vfatMask() const
Definition:
GEMOptoHybrid.h:146
GEMVFAT::vc
bool vc() const
Definition:
GEMVFAT.h:101
GEMOptoHybrid.h
amc
Definition:
AMCSpec.h:8
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition:
testProducerWithPsetDescEmpty_cfi.py:33
muonGEMDigis_cfi.readMultiBX
readMultiBX
Definition:
muonGEMDigis_cfi.py:11
GEMVFATStatus::GEMVFATStatus
GEMVFATStatus()
Definition:
GEMVFATStatus.h:30
GEMVFATStatus::Errors::zsMask
uint8_t zsMask
Definition:
GEMVFATStatus.h:19
GEMVFATStatus::Errors::InValidHeader
uint8_t InValidHeader
Definition:
GEMVFATStatus.h:15
GEMAMC.h
Generated for CMSSW Reference Manual by
1.8.14