ATLAS Offline Software
Loading...
Searching...
No Matches
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
12namespace LVL1BS {
13
21
23
24 public:
25 enum CmxFirmwareCode { CMX_CP = 0, CMX_JET = 1, CMX_ENERGY = 2, // <<== CHECK
27 enum CmxSummingCode { CRATE = 0, SYSTEM = 1 };
28 enum CmxPositions { LEFT = 0, RIGHT = 1 };
29
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
63inline int CmxSubBlock::cmxSumming() const
64{
66}
67
68inline int CmxSubBlock::cmxFirmware() const
69{
71}
72
73inline int CmxSubBlock::cmxPosition() const
74{
76}
77
78} // end namespace
79
80#endif
static bool cmxBlock(uint32_t word)
Determine if header word corresponds to CMX.
static const int s_cmxPositionBit
Definition CmxSubBlock.h:54
int cmxPosition() const
Definition CmxSubBlock.h:73
int cmxSumming() const
Definition CmxSubBlock.h:63
static const uint32_t s_cmxPositionMask
Definition CmxSubBlock.h:57
static const int s_cmxFirmwareBit
Definition CmxSubBlock.h:53
static const uint32_t s_cmxFirmwareMask
Definition CmxSubBlock.h:56
static const uint32_t s_cmxSummingMask
Definition CmxSubBlock.h:55
int cmxFirmware() const
Definition CmxSubBlock.h:68
int timeslices() const
void setCmxHeader(int version, int format, int slice, int crate, int summing, int firmware, int position, int timeslices)
Store CMX header.
static CmxFirmwareCode cmxType(uint32_t word)
CMX differentiation (CMX_CP, CMX_JET, or CMX_ENERGY)
static const int s_cmxSummingBit
Definition CmxSubBlock.h:52
static const int s_glinkBitsPerSlice
Needed for neutral format.
Definition CmxSubBlock.h:59
static const int s_wordIdVal
CMX header word ID.
Definition CmxSubBlock.h:50