ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1CaloByteStream
src
CmxSubBlock.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_CMXSUBBLOCK_H
6
#define TRIGT1CALOBYTESTREAM_CMXSUBBLOCK_H
7
8
#include <stdint.h>
9
10
#include "
L1CaloSubBlock.h
"
11
12
namespace
LVL1BS
{
13
21
22
class
CmxSubBlock
:
public
L1CaloSubBlock
{
23
24
public
:
25
enum
CmxFirmwareCode
{
CMX_CP
= 0,
CMX_JET
= 1,
CMX_ENERGY
= 2,
// <<== CHECK
26
CMX_UNKNOWN
= 3 };
27
enum
CmxSummingCode
{
CRATE
= 0,
SYSTEM
= 1 };
28
enum
CmxPositions
{
LEFT
= 0,
RIGHT
= 1 };
29
30
CmxSubBlock
();
31
~CmxSubBlock
();
32
34
void
setCmxHeader
(
int
version
,
int
format
,
int
slice
,
int
crate
,
35
int
summing,
int
firmware,
int
position,
int
timeslices
);
36
37
// Return CMX specific header data
38
int
cmxSumming
()
const
;
39
int
cmxFirmware
()
const
;
40
int
cmxPosition
()
const
;
41
int
timeslices
()
const
;
42
44
static
CmxFirmwareCode
cmxType
(uint32_t word);
46
static
bool
cmxBlock
(uint32_t word);
47
48
private
:
50
static
const
int
s_wordIdVal
= 0xe;
51
// CMX fields packed in module field
52
static
const
int
s_cmxSummingBit
= 3;
53
static
const
int
s_cmxFirmwareBit
= 1;
54
static
const
int
s_cmxPositionBit
= 0;
55
static
const
uint32_t
s_cmxSummingMask
= 0x1;
56
static
const
uint32_t
s_cmxFirmwareMask
= 0x3;
57
static
const
uint32_t
s_cmxPositionMask
= 0x1;
59
static
const
int
s_glinkBitsPerSlice
= 97;
60
61
};
62
63
inline
int
CmxSubBlock::cmxSumming
()
const
64
{
65
return
(
module
() >>
s_cmxSummingBit
) &
s_cmxSummingMask
;
66
}
67
68
inline
int
CmxSubBlock::cmxFirmware
()
const
69
{
70
return
(
module
() >>
s_cmxFirmwareBit
) &
s_cmxFirmwareMask
;
71
}
72
73
inline
int
CmxSubBlock::cmxPosition
()
const
74
{
75
return
(
module
() >>
s_cmxPositionBit
) &
s_cmxPositionMask
;
76
}
77
78
}
// end namespace
79
80
#endif
L1CaloSubBlock.h
LVL1BS::CmxSubBlock::cmxBlock
static bool cmxBlock(uint32_t word)
Determine if header word corresponds to CMX.
Definition
CmxSubBlock.cxx:84
LVL1BS::CmxSubBlock::s_cmxPositionBit
static const int s_cmxPositionBit
Definition
CmxSubBlock.h:54
LVL1BS::CmxSubBlock::cmxPosition
int cmxPosition() const
Definition
CmxSubBlock.h:73
LVL1BS::CmxSubBlock::CmxFirmwareCode
CmxFirmwareCode
Definition
CmxSubBlock.h:25
LVL1BS::CmxSubBlock::CMX_UNKNOWN
@ CMX_UNKNOWN
Definition
CmxSubBlock.h:26
LVL1BS::CmxSubBlock::CMX_JET
@ CMX_JET
Definition
CmxSubBlock.h:25
LVL1BS::CmxSubBlock::CMX_ENERGY
@ CMX_ENERGY
Definition
CmxSubBlock.h:25
LVL1BS::CmxSubBlock::CMX_CP
@ CMX_CP
Definition
CmxSubBlock.h:25
LVL1BS::CmxSubBlock::cmxSumming
int cmxSumming() const
Definition
CmxSubBlock.h:63
LVL1BS::CmxSubBlock::s_cmxPositionMask
static const uint32_t s_cmxPositionMask
Definition
CmxSubBlock.h:57
LVL1BS::CmxSubBlock::s_cmxFirmwareBit
static const int s_cmxFirmwareBit
Definition
CmxSubBlock.h:53
LVL1BS::CmxSubBlock::s_cmxFirmwareMask
static const uint32_t s_cmxFirmwareMask
Definition
CmxSubBlock.h:56
LVL1BS::CmxSubBlock::s_cmxSummingMask
static const uint32_t s_cmxSummingMask
Definition
CmxSubBlock.h:55
LVL1BS::CmxSubBlock::CmxPositions
CmxPositions
Definition
CmxSubBlock.h:28
LVL1BS::CmxSubBlock::LEFT
@ LEFT
Definition
CmxSubBlock.h:28
LVL1BS::CmxSubBlock::RIGHT
@ RIGHT
Definition
CmxSubBlock.h:28
LVL1BS::CmxSubBlock::CmxSubBlock
CmxSubBlock()
Definition
CmxSubBlock.cxx:23
LVL1BS::CmxSubBlock::CmxSummingCode
CmxSummingCode
Definition
CmxSubBlock.h:27
LVL1BS::CmxSubBlock::CRATE
@ CRATE
Definition
CmxSubBlock.h:27
LVL1BS::CmxSubBlock::SYSTEM
@ SYSTEM
Definition
CmxSubBlock.h:27
LVL1BS::CmxSubBlock::cmxFirmware
int cmxFirmware() const
Definition
CmxSubBlock.h:68
LVL1BS::CmxSubBlock::timeslices
int timeslices() const
Definition
CmxSubBlock.cxx:48
LVL1BS::CmxSubBlock::setCmxHeader
void setCmxHeader(int version, int format, int slice, int crate, int summing, int firmware, int position, int timeslices)
Store CMX header.
Definition
CmxSubBlock.cxx:33
LVL1BS::CmxSubBlock::~CmxSubBlock
~CmxSubBlock()
Definition
CmxSubBlock.cxx:27
LVL1BS::CmxSubBlock::cmxType
static CmxFirmwareCode cmxType(uint32_t word)
CMX differentiation (CMX_CP, CMX_JET, or CMX_ENERGY).
Definition
CmxSubBlock.cxx:60
LVL1BS::CmxSubBlock::s_cmxSummingBit
static const int s_cmxSummingBit
Definition
CmxSubBlock.h:52
LVL1BS::CmxSubBlock::s_glinkBitsPerSlice
static const int s_glinkBitsPerSlice
Needed for neutral format.
Definition
CmxSubBlock.h:59
LVL1BS::CmxSubBlock::s_wordIdVal
static const int s_wordIdVal
CMX header word ID.
Definition
CmxSubBlock.h:50
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