ATLAS Offline Software
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 
20 
22 
24 {
25 }
26 
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;
43  timeslices);
44 }
45 
46 // Return number of timeslices
47 
49 {
50  int slices = slices1();
51  if (slices == 0 && format() == NEUTRAL) {
53  }
54  if (slices == 0) slices = 1;
55  return slices;
56 }
57 
58 // Static function to determine CMM type
59 
61 {
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 
85 {
86  return L1CaloSubBlock::wordId(word) == s_wordIdVal;
87 }
88 
89 } // end namespace
LVL1BS::CmmSubBlock::cmmType
static CmmFirmwareCode cmmType(uint32_t word)
CMM differentiation (CMM_CP, CMM_JET, or CMM_ENERGY)
Definition: CmmSubBlock.cxx:60
LVL1BS::CmmSubBlock::s_cmmSummingBit
static const int s_cmmSummingBit
Definition: CmmSubBlock.h:52
LVL1BS::CmmSubBlock::CMM_JET
@ CMM_JET
Definition: CmmSubBlock.h:25
vtune_athena.format
format
Definition: vtune_athena.py:14
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
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::s_cmmPositionBit
static const int s_cmmPositionBit
Definition: CmmSubBlock.h:54
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::L1CaloSubBlock::NEUTRAL
@ NEUTRAL
Definition: L1CaloSubBlock.h:28
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::wordId
int wordId() const
Definition: L1CaloSubBlock.h:238
LVL1BS::CmmSubBlock::s_cmmFirmwareMask
static const uint32_t s_cmmFirmwareMask
Definition: CmmSubBlock.h:56
LVL1BS::L1CaloSubBlock::slice
int slice() const
Definition: L1CaloSubBlock.h:258
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::L1CaloSubBlock::crate
int crate() const
Definition: L1CaloSubBlock.h:263
perfmonmt-refit.slice
slice
Definition: perfmonmt-refit.py:52
CmmSubBlock.h
LVL1BS::L1CaloSubBlock::format
int format() const
Definition: L1CaloSubBlock.h:248
LVL1BS::CmmSubBlock::CMM_UNKNOWN
@ CMM_UNKNOWN
Definition: CmmSubBlock.h:26
LVL1BS::CmmSubBlock::~CmmSubBlock
~CmmSubBlock()
Definition: CmmSubBlock.cxx:27
LVL1BS::L1CaloSubBlock::version
int version() const
Definition: L1CaloSubBlock.h:243
pmontree.code
code
Definition: pmontree.py:443
LVL1BS::CmmSubBlock::CmmFirmwareCode
CmmFirmwareCode
Definition: CmmSubBlock.h:25
LVL1BS::L1CaloSubBlock::slices1
int slices1() const
Definition: L1CaloSubBlock.h:278
LVL1BS::L1CaloSubBlock::dataWords
int dataWords() const
Return number of data words.
Definition: L1CaloSubBlock.h:233
LVL1BS::CmmSubBlock::CmmSubBlock
CmmSubBlock()
Definition: CmmSubBlock.cxx:23
LVL1BS::CmmSubBlock::s_cmmPositionMask
static const uint32_t s_cmmPositionMask
Definition: CmmSubBlock.h:57
LVL1BS::L1CaloSubBlock::module
int module() const
Definition: L1CaloSubBlock.h:268
get_generator_info.version
version
Definition: get_generator_info.py:33
LVL1BS::CmmSubBlock::CMM_ENERGY
@ CMM_ENERGY
Definition: CmmSubBlock.h:25
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1BS
Definition: ZdcByteStreamReadV1V2Tool.h:47
LVL1BS::CmmSubBlock::s_wordIdVal
static const int s_wordIdVal
CMM header word ID.
Definition: CmmSubBlock.h:50
LVL1BS::CmmSubBlock::s_cmmFirmwareBit
static const int s_cmmFirmwareBit
Definition: CmmSubBlock.h:53
LVL1BS::CmmSubBlock::CMM_CP
@ CMM_CP
Definition: CmmSubBlock.h:25
keylayer_zslicemap.slices
slices
Definition: keylayer_zslicemap.py:112