ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1CaloByteStream
src
CmmSubBlock.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
#include "
CmmSubBlock.h
"
7
8
namespace
LVL1BS
{
9
10
// Static constant definitions
11
12
const
int
CmmSubBlock::s_wordIdVal
;
13
14
const
int
CmmSubBlock::s_cmmSummingBit
;
15
const
int
CmmSubBlock::s_cmmFirmwareBit
;
16
const
int
CmmSubBlock::s_cmmPositionBit
;
17
const
uint32_t
CmmSubBlock::s_cmmSummingMask
;
18
const
uint32_t
CmmSubBlock::s_cmmFirmwareMask
;
19
const
uint32_t
CmmSubBlock::s_cmmPositionMask
;
20
21
const
int
CmmSubBlock::s_glinkBitsPerSlice
;
22
23
CmmSubBlock::CmmSubBlock
()
24
{
25
}
26
27
CmmSubBlock::~CmmSubBlock
()
28
{
29
}
30
31
// Store CMM header
32
33
void
CmmSubBlock::setCmmHeader
(
const
int
version
,
const
int
format
,
34
const
int
slice
,
const
int
crate
,
35
const
int
summing,
const
int
firmware,
36
const
int
position,
const
int
timeslices
)
37
{
38
int
module
= 0;
39
module
|= (summing & s_cmmSummingMask) << s_cmmSummingBit;
40
module
|= (firmware & s_cmmFirmwareMask) << s_cmmFirmwareBit;
41
module
|= (position & s_cmmPositionMask) << s_cmmPositionBit;
42
setHeader
(
s_wordIdVal
,
version
,
format
,
slice
,
crate
,
module
, 0,
43
timeslices
);
44
}
45
46
// Return number of timeslices
47
48
int
CmmSubBlock::timeslices
()
const
49
{
50
int
slices =
slices1
();
51
if
(slices == 0 &&
format
() ==
NEUTRAL
) {
52
slices =
dataWords
() /
s_glinkBitsPerSlice
;
53
}
54
if
(slices == 0) slices = 1;
55
return
slices;
56
}
57
58
// Static function to determine CMM type
59
60
CmmSubBlock::CmmFirmwareCode
CmmSubBlock::cmmType
(
const
uint32_t word)
61
{
62
CmmFirmwareCode
type
;
63
const
int
module
=
L1CaloSubBlock::module
(word);
64
const
int
code = (
module
>> s_cmmFirmwareBit) & s_cmmFirmwareMask;
65
switch
(code) {
66
case
CMM_CP
:
67
type
=
CMM_CP
;
68
break
;
69
case
CMM_JET
:
70
type
=
CMM_JET
;
71
break
;
72
case
CMM_ENERGY
:
73
type
=
CMM_ENERGY
;
74
break
;
75
default
:
76
type
=
CMM_UNKNOWN
;
77
break
;
78
}
79
return
type
;
80
}
81
82
// Static function to determine if header word corresponds to CMM block
83
84
bool
CmmSubBlock::cmmBlock
(
const
uint32_t word)
85
{
86
return
L1CaloSubBlock::wordId
(word) ==
s_wordIdVal
;
87
}
88
89
}
// end namespace
CmmSubBlock.h
LVL1BS::CmmSubBlock::~CmmSubBlock
~CmmSubBlock()
Definition
CmmSubBlock.cxx:27
LVL1BS::CmmSubBlock::s_cmmPositionMask
static const uint32_t s_cmmPositionMask
Definition
CmmSubBlock.h:57
LVL1BS::CmmSubBlock::s_cmmSummingBit
static const int s_cmmSummingBit
Definition
CmmSubBlock.h:52
LVL1BS::CmmSubBlock::s_cmmFirmwareBit
static const int s_cmmFirmwareBit
Definition
CmmSubBlock.h:53
LVL1BS::CmmSubBlock::s_cmmFirmwareMask
static const uint32_t s_cmmFirmwareMask
Definition
CmmSubBlock.h:56
LVL1BS::CmmSubBlock::cmmBlock
static bool cmmBlock(uint32_t word)
Determine if header word corresponds to CMM.
Definition
CmmSubBlock.cxx:84
LVL1BS::CmmSubBlock::timeslices
int timeslices() const
Definition
CmmSubBlock.cxx:48
LVL1BS::CmmSubBlock::setCmmHeader
void setCmmHeader(int version, int format, int slice, int crate, int summing, int firmware, int position, int timeslices)
Store CMM header.
Definition
CmmSubBlock.cxx:33
LVL1BS::CmmSubBlock::CmmFirmwareCode
CmmFirmwareCode
Definition
CmmSubBlock.h:25
LVL1BS::CmmSubBlock::CMM_UNKNOWN
@ CMM_UNKNOWN
Definition
CmmSubBlock.h:26
LVL1BS::CmmSubBlock::CMM_JET
@ CMM_JET
Definition
CmmSubBlock.h:25
LVL1BS::CmmSubBlock::CMM_ENERGY
@ CMM_ENERGY
Definition
CmmSubBlock.h:25
LVL1BS::CmmSubBlock::CMM_CP
@ CMM_CP
Definition
CmmSubBlock.h:25
LVL1BS::CmmSubBlock::CmmSubBlock
CmmSubBlock()
Definition
CmmSubBlock.cxx:23
LVL1BS::CmmSubBlock::s_cmmPositionBit
static const int s_cmmPositionBit
Definition
CmmSubBlock.h:54
LVL1BS::CmmSubBlock::s_wordIdVal
static const int s_wordIdVal
CMM header word ID.
Definition
CmmSubBlock.h:50
LVL1BS::CmmSubBlock::s_glinkBitsPerSlice
static const int s_glinkBitsPerSlice
Needed for neutral format.
Definition
CmmSubBlock.h:59
LVL1BS::CmmSubBlock::s_cmmSummingMask
static const uint32_t s_cmmSummingMask
Definition
CmmSubBlock.h:55
LVL1BS::CmmSubBlock::cmmType
static CmmFirmwareCode cmmType(uint32_t word)
CMM differentiation (CMM_CP, CMM_JET, or CMM_ENERGY).
Definition
CmmSubBlock.cxx:60
LVL1BS::L1CaloSubBlock::crate
int crate() const
Definition
L1CaloSubBlock.h:263
LVL1BS::L1CaloSubBlock::slices1
int slices1() const
Definition
L1CaloSubBlock.h:278
LVL1BS::L1CaloSubBlock::NEUTRAL
@ NEUTRAL
Definition
L1CaloSubBlock.h:28
LVL1BS::L1CaloSubBlock::slice
int slice() const
Definition
L1CaloSubBlock.h:258
LVL1BS::L1CaloSubBlock::wordId
int wordId() const
Definition
L1CaloSubBlock.h:238
LVL1BS::L1CaloSubBlock::setHeader
void setHeader(int wordId, int version, int format, int seqno, int crate, int module, int slices2, int slices1)
Store header data.
Definition
L1CaloSubBlock.cxx:99
LVL1BS::L1CaloSubBlock::dataWords
int dataWords() const
Return number of data words.
Definition
L1CaloSubBlock.h:233
LVL1BS::L1CaloSubBlock::module
int module() const
Definition
L1CaloSubBlock.h:268
LVL1BS::L1CaloSubBlock::version
int version() const
Definition
L1CaloSubBlock.h:243
LVL1BS::L1CaloSubBlock::format
int format() const
Definition
L1CaloSubBlock.h:248
LVL1BS
Definition
ZdcModifySlices.h:10
xAOD::uint32_t
setEventNumber uint32_t
Definition
EventInfo_v1.cxx:127
type
Generated on
for ATLAS Offline Software by
1.17.0