ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1CaloByteStream
src
CmmSubBlock.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 TRIGT1CALOBYTESTREAM_CMMSUBBLOCK_H
6
#define TRIGT1CALOBYTESTREAM_CMMSUBBLOCK_H
7
8
#include <stdint.h>
9
10
#include "
L1CaloSubBlock.h
"
11
12
namespace
LVL1BS
{
13
21
22
class
CmmSubBlock
:
public
L1CaloSubBlock
{
23
24
public
:
25
enum
CmmFirmwareCode
{
CMM_CP
= 0,
CMM_JET
= 1,
CMM_ENERGY
= 2,
26
CMM_UNKNOWN
= 3 };
27
enum
CmmSummingCode
{
CRATE
= 0,
SYSTEM
= 1 };
28
enum
CmmPositions
{
LEFT
= 0,
RIGHT
= 1 };
29
30
CmmSubBlock
();
31
~CmmSubBlock
();
32
34
void
setCmmHeader
(
int
version
,
int
format
,
int
slice
,
int
crate
,
35
int
summing,
int
firmware,
int
position,
int
timeslices
);
36
37
// Return CMM specific header data
38
int
cmmSumming
()
const
;
39
int
cmmFirmware
()
const
;
40
int
cmmPosition
()
const
;
41
int
timeslices
()
const
;
42
44
static
CmmFirmwareCode
cmmType
(uint32_t word);
46
static
bool
cmmBlock
(uint32_t word);
47
48
private
:
50
static
const
int
s_wordIdVal
= 0xe;
51
// CMM fields packed in module field
52
static
const
int
s_cmmSummingBit
= 3;
53
static
const
int
s_cmmFirmwareBit
= 1;
54
static
const
int
s_cmmPositionBit
= 0;
55
static
const
uint32_t
s_cmmSummingMask
= 0x1;
56
static
const
uint32_t
s_cmmFirmwareMask
= 0x3;
57
static
const
uint32_t
s_cmmPositionMask
= 0x1;
59
static
const
int
s_glinkBitsPerSlice
= 35;
60
61
};
62
63
inline
int
CmmSubBlock::cmmSumming
()
const
64
{
65
return
(
module
() >>
s_cmmSummingBit
) &
s_cmmSummingMask
;
66
}
67
68
inline
int
CmmSubBlock::cmmFirmware
()
const
69
{
70
return
(
module
() >>
s_cmmFirmwareBit
) &
s_cmmFirmwareMask
;
71
}
72
73
inline
int
CmmSubBlock::cmmPosition
()
const
74
{
75
return
(
module
() >>
s_cmmPositionBit
) &
s_cmmPositionMask
;
76
}
77
78
}
// end namespace
79
80
#endif
L1CaloSubBlock.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::cmmPosition
int cmmPosition() const
Definition
CmmSubBlock.h:73
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::cmmFirmware
int cmmFirmware() const
Definition
CmmSubBlock.h:68
LVL1BS::CmmSubBlock::CmmPositions
CmmPositions
Definition
CmmSubBlock.h:28
LVL1BS::CmmSubBlock::LEFT
@ LEFT
Definition
CmmSubBlock.h:28
LVL1BS::CmmSubBlock::RIGHT
@ RIGHT
Definition
CmmSubBlock.h:28
LVL1BS::CmmSubBlock::cmmType
static CmmFirmwareCode cmmType(uint32_t word)
CMM differentiation (CMM_CP, CMM_JET, or CMM_ENERGY).
Definition
CmmSubBlock.cxx:60
LVL1BS::CmmSubBlock::cmmSumming
int cmmSumming() const
Definition
CmmSubBlock.h:63
LVL1BS::CmmSubBlock::CmmSummingCode
CmmSummingCode
Definition
CmmSubBlock.h:27
LVL1BS::CmmSubBlock::SYSTEM
@ SYSTEM
Definition
CmmSubBlock.h:27
LVL1BS::CmmSubBlock::CRATE
@ CRATE
Definition
CmmSubBlock.h:27
LVL1BS::L1CaloSubBlock::crate
int crate() const
Definition
L1CaloSubBlock.h:263
LVL1BS::L1CaloSubBlock::slice
int slice() const
Definition
L1CaloSubBlock.h:258
LVL1BS::L1CaloSubBlock::L1CaloSubBlock
L1CaloSubBlock()
Definition
L1CaloSubBlock.cxx:57
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
Generated on
for ATLAS Offline Software by
1.17.0