ATLAS Offline Software
Loading...
Searching...
No Matches
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
12namespace LVL1BS {
13
21
23
24 public:
27 enum CmmSummingCode { CRATE = 0, SYSTEM = 1 };
28 enum CmmPositions { LEFT = 0, RIGHT = 1 };
29
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
63inline int CmmSubBlock::cmmSumming() const
64{
66}
67
68inline int CmmSubBlock::cmmFirmware() const
69{
71}
72
73inline int CmmSubBlock::cmmPosition() const
74{
76}
77
78} // end namespace
79
80#endif
static const uint32_t s_cmmPositionMask
Definition CmmSubBlock.h:57
static const int s_cmmSummingBit
Definition CmmSubBlock.h:52
static const int s_cmmFirmwareBit
Definition CmmSubBlock.h:53
static const uint32_t s_cmmFirmwareMask
Definition CmmSubBlock.h:56
static bool cmmBlock(uint32_t word)
Determine if header word corresponds to CMM.
int timeslices() const
int cmmPosition() const
Definition CmmSubBlock.h:73
void setCmmHeader(int version, int format, int slice, int crate, int summing, int firmware, int position, int timeslices)
Store CMM header.
static const int s_cmmPositionBit
Definition CmmSubBlock.h:54
static const int s_wordIdVal
CMM header word ID.
Definition CmmSubBlock.h:50
static const int s_glinkBitsPerSlice
Needed for neutral format.
Definition CmmSubBlock.h:59
static const uint32_t s_cmmSummingMask
Definition CmmSubBlock.h:55
int cmmFirmware() const
Definition CmmSubBlock.h:68
static CmmFirmwareCode cmmType(uint32_t word)
CMM differentiation (CMM_CP, CMM_JET, or CMM_ENERGY)
int cmmSumming() const
Definition CmmSubBlock.h:63