ATLAS Offline Software
Public Types | Public Member Functions | Private Attributes | Static Private Attributes | List of all members
LVL1::DataError Class Reference

Error data. More...

#include <DataError.h>

Collaboration diagram for LVL1::DataError:

Public Types

enum  ErrorBit {
  Overflow = 0, Parity = 1, LinkDown = 2, ChannelDisabled = 4,
  MCMAbsent = 5, Timeout = 6, ASICFull = 7, EventMismatch = 8,
  BunchMismatch = 9, FIFOCorrupt = 10, PinParity = 11, ParityMerge = 4,
  ParityPhase0 = 5, ParityPhase1 = 6, ParityPhase2 = 7, ParityPhase3 = 8,
  GLinkParity = 16, GLinkProtocol = 17, BCNMismatch = 18, FIFOOverflow = 19,
  ModuleError = 20, GLinkDown = 22, GLinkTimeout = 23, FailingBCN = 24,
  PPMErrorWord = 32, SubStatusWord = 33
}
 

Public Member Functions

 DataError ()
 
 DataError (int error)
 
 ~DataError ()
 
void set (ErrorBit bit, int value=1)
 Set an error bit or data. More...
 
int get (ErrorBit bit) const
 Return an error bit or data. More...
 
int get (int bit) const
 Return an error bit or data. More...
 
std::string bitName (int bit) const
 Return the name of an error bit or data. More...
 
int error () const
 Return the full error word. More...
 

Private Attributes

int m_error
 Error word. More...
 

Static Private Attributes

static const int s_failingBcnMask = 0x3f
 Mask for Failing BCN. More...
 
static const int s_ppmErrorMask = 0xff
 Mask for PPM error bits. More...
 
static const int s_subStatusMask = 0xff
 Mask for error bits from sub-status word. More...
 
static const int s_subStatusBcn = 22
 Bit position of failing BCN in sub-status word. More...
 

Detailed Description

Error data.

Defines the error data bits unpacked from bytestream subdivided as follows:

Bits 0-2 CP/JEP specific error bits Bits 4-11 PP specific error bits Bits 4-8 CMX specific error bits Bits 16-29 Sub-status word error bits and failing BCN

Other bits are spare. Uses an int for backwards compatibility reasons so probably bit 31 should not be used.

Author
Peter Faulkner

Definition at line 27 of file DataError.h.

Member Enumeration Documentation

◆ ErrorBit

Enumerator
Overflow 
Parity 
LinkDown 
ChannelDisabled 
MCMAbsent 
Timeout 
ASICFull 
EventMismatch 
BunchMismatch 
FIFOCorrupt 
PinParity 
ParityMerge 
ParityPhase0 
ParityPhase1 
ParityPhase2 
ParityPhase3 
GLinkParity 
GLinkProtocol 
BCNMismatch 
FIFOOverflow 
ModuleError 
GLinkDown 
GLinkTimeout 
FailingBCN 
PPMErrorWord 
SubStatusWord 

Definition at line 31 of file DataError.h.

31  { Overflow = 0, Parity = 1, LinkDown = 2,
32 
33  ChannelDisabled = 4, MCMAbsent = 5, Timeout = 6,
34  ASICFull = 7, EventMismatch = 8, BunchMismatch = 9,
35  FIFOCorrupt = 10, PinParity = 11,
36 
38  ParityPhase2 = 7, ParityPhase3 = 8,
39 
40  GLinkParity = 16, GLinkProtocol = 17, BCNMismatch = 18,
41  FIFOOverflow = 19, ModuleError = 20, GLinkDown = 22,
42  GLinkTimeout = 23, FailingBCN = 24,
43 
44  PPMErrorWord = 32, SubStatusWord = 33 };

Constructor & Destructor Documentation

◆ DataError() [1/2]

LVL1::DataError::DataError ( )

Definition at line 14 of file DataError.cxx.

14  : m_error(0)
15 {
16 }

◆ DataError() [2/2]

LVL1::DataError::DataError ( int  error)
explicit

Definition at line 18 of file DataError.cxx.

18  : m_error(error)
19 {
20 }

◆ ~DataError()

LVL1::DataError::~DataError ( )

Definition at line 22 of file DataError.cxx.

23 {
24 }

Member Function Documentation

◆ bitName()

std::string LVL1::DataError::bitName ( int  bit) const

Return the name of an error bit or data.

Definition at line 70 of file DataError.cxx.

71 {
72  std::string name;
73  switch (bit) {
74  case Overflow: name = "Overflow"; break;
75  case Parity: name = "Parity"; break;
76  case LinkDown: name = "LinkDown"; break;
77  case ChannelDisabled: name = "ChannelDisabled"; break;
78  case MCMAbsent: name = "MCMAbsent"; break;
79  case Timeout: name = "Timeout"; break;
80  case ASICFull: name = "ASICFull"; break;
81  case EventMismatch: name = "EventMismatch"; break;
82  case BunchMismatch: name = "BunchMismatch"; break;
83  case FIFOCorrupt: name = "FIFOCorrupt"; break;
84  case PinParity: name = "PinParity"; break;
85  //case ParityMerge: name = "ParityMerge"; break;
86  //case ParityPhase0: name = "ParityPhase0"; break;
87  //case ParityPhase1: name = "ParityPhase1"; break;
88  //case ParityPhase2: name = "ParityPhase2"; break;
89  //case ParityPhase3: name = "ParityPhase3"; break;
90  case GLinkParity: name = "GLinkParity"; break;
91  case GLinkProtocol: name = "GLinkProtocol"; break;
92  case BCNMismatch: name = "BCNMismatch"; break;
93  case FIFOOverflow: name = "FIFOOverflow"; break;
94  case ModuleError: name = "ModuleError"; break;
95  case GLinkDown: name = "GLinkDown"; break;
96  case GLinkTimeout: name = "GLinkTimeout"; break;
97  default: name = ""; break;
98  }
99  return name;
100 }

◆ error()

int LVL1::DataError::error ( ) const
inline

Return the full error word.

Definition at line 78 of file DataError.h.

79 {
80  return m_error;
81 }

◆ get() [1/2]

int LVL1::DataError::get ( ErrorBit  bit) const

Return an error bit or data.

Definition at line 48 of file DataError.cxx.

49 {
50  if (bit == SubStatusWord) return 0;
51  int mask = 0x1;
52  if (bit == FailingBCN) mask = s_failingBcnMask;
53  else if (bit == PPMErrorWord) {
54  bit = ChannelDisabled;
56  }
57  return (m_error >> bit) & mask;
58 }

◆ get() [2/2]

int LVL1::DataError::get ( int  bit) const

Return an error bit or data.

Definition at line 62 of file DataError.cxx.

63 {
64  int mask = (bit == FailingBCN) ? s_failingBcnMask : 0x1;
65  return (m_error >> bit) & mask;
66 }

◆ set()

void LVL1::DataError::set ( ErrorBit  bit,
int  value = 1 
)

Set an error bit or data.

Definition at line 28 of file DataError.cxx.

29 {
30  if (bit == SubStatusWord) {
33  bit = FailingBCN;
35  }
36  int mask = 0x1;
37  if (bit == FailingBCN) mask = s_failingBcnMask;
38  else if (bit == PPMErrorWord) {
39  bit = ChannelDisabled;
41  }
42  m_error &= ~(mask << bit);
43  m_error |= (value & mask) << bit;
44 }

Member Data Documentation

◆ m_error

int LVL1::DataError::m_error
private

Error word.

Definition at line 74 of file DataError.h.

◆ s_failingBcnMask

const int LVL1::DataError::s_failingBcnMask = 0x3f
staticprivate

Mask for Failing BCN.

Definition at line 65 of file DataError.h.

◆ s_ppmErrorMask

const int LVL1::DataError::s_ppmErrorMask = 0xff
staticprivate

Mask for PPM error bits.

Definition at line 67 of file DataError.h.

◆ s_subStatusBcn

const int LVL1::DataError::s_subStatusBcn = 22
staticprivate

Bit position of failing BCN in sub-status word.

Definition at line 71 of file DataError.h.

◆ s_subStatusMask

const int LVL1::DataError::s_subStatusMask = 0xff
staticprivate

Mask for error bits from sub-status word.

Definition at line 69 of file DataError.h.


The documentation for this class was generated from the following files:
LVL1::DataError::PinParity
@ PinParity
Definition: DataError.h:35
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LVL1::DataError::Timeout
@ Timeout
Definition: DataError.h:33
LVL1::DataError::s_failingBcnMask
static const int s_failingBcnMask
Mask for Failing BCN.
Definition: DataError.h:65
LVL1::DataError::LinkDown
@ LinkDown
Definition: DataError.h:31
LVL1::DataError::m_error
int m_error
Error word.
Definition: DataError.h:74
LVL1::DataError::ParityPhase0
@ ParityPhase0
Definition: DataError.h:37
LVL1::DataError::ModuleError
@ ModuleError
Definition: DataError.h:41
athena.value
value
Definition: athena.py:122
LVL1::DataError::ParityPhase1
@ ParityPhase1
Definition: DataError.h:37
LVL1::DataError::GLinkParity
@ GLinkParity
Definition: DataError.h:40
LVL1::DataError::GLinkDown
@ GLinkDown
Definition: DataError.h:41
LVL1::DataError::MCMAbsent
@ MCMAbsent
Definition: DataError.h:33
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
LVL1::DataError::SubStatusWord
@ SubStatusWord
Definition: DataError.h:44
LVL1::DataError::Overflow
@ Overflow
Definition: DataError.h:31
LVL1::DataError::GLinkProtocol
@ GLinkProtocol
Definition: DataError.h:40
LVL1::DataError::s_subStatusMask
static const int s_subStatusMask
Mask for error bits from sub-status word.
Definition: DataError.h:69
LVL1::DataError::EventMismatch
@ EventMismatch
Definition: DataError.h:34
LVL1::DataError::ASICFull
@ ASICFull
Definition: DataError.h:34
LVL1::DataError::Parity
@ Parity
Definition: DataError.h:31
LVL1::DataError::GLinkTimeout
@ GLinkTimeout
Definition: DataError.h:42
LVL1::DataError::FailingBCN
@ FailingBCN
Definition: DataError.h:42
LVL1::DataError::ParityMerge
@ ParityMerge
Definition: DataError.h:37
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
LVL1::DataError::ChannelDisabled
@ ChannelDisabled
Definition: DataError.h:33
LVL1::DataError::PPMErrorWord
@ PPMErrorWord
Definition: DataError.h:44
LVL1::DataError::BCNMismatch
@ BCNMismatch
Definition: DataError.h:40
LVL1::DataError::FIFOOverflow
@ FIFOOverflow
Definition: DataError.h:41
LVL1::DataError::BunchMismatch
@ BunchMismatch
Definition: DataError.h:34
LVL1::DataError::FIFOCorrupt
@ FIFOCorrupt
Definition: DataError.h:35
LVL1::DataError::ParityPhase3
@ ParityPhase3
Definition: DataError.h:38
LVL1::DataError::s_ppmErrorMask
static const int s_ppmErrorMask
Mask for PPM error bits.
Definition: DataError.h:67
Parity
calculates the parity of a passed word
Definition: Parity.h:20
error
Definition: IImpactPoint3dEstimator.h:70
LVL1::DataError::s_subStatusBcn
static const int s_subStatusBcn
Bit position of failing BCN in sub-status word.
Definition: DataError.h:71
LVL1::DataError::ParityPhase2
@ ParityPhase2
Definition: DataError.h:38