CMS 3D CMS Logo

List of all members | Classes | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Static Private Attributes
EcalErrorDictionary Class Reference

#include <EcalErrorDictionary.h>

Classes

struct  errorDef_t
 

Static Public Member Functions

static void getDictionary (std::vector< errorDef_t > &dict)
 
static void getErrors (std::vector< errorDef_t > &errorVec, uint64_t bitcode)
 
static uint64_t getMask (std::string shortDesc)
 
static uint64_t hasError (std::string shortDesc, uint64_t bitcode)
 
static void printErrors (uint64_t bitcode)
 

Private Member Functions

 EcalErrorDictionary ()
 
 ~EcalErrorDictionary ()
 

Static Private Member Functions

static errorDef_t getDef (unsigned int i)
 

Static Private Attributes

static const unsigned int DICTSIZE = 55
 

Detailed Description

A dictionary of bitmasks for ECAL channel errors and their meaning This object is not meant to be stored in the offline DB, but the bits defined here are stored in EcalChannelStatus.

This class holds no dynamic data and all the methods are static.

Definition at line 15 of file EcalErrorDictionary.h.

Constructor & Destructor Documentation

EcalErrorDictionary::EcalErrorDictionary ( )
inlineprivate

Definition at line 65 of file EcalErrorDictionary.h.

65 {}; // Hidden to force static use
EcalErrorDictionary::~EcalErrorDictionary ( )
inlineprivate

Definition at line 66 of file EcalErrorDictionary.h.

66 {}; // Hidden to force static use

Member Function Documentation

static errorDef_t EcalErrorDictionary::getDef ( unsigned int  i)
inlinestaticprivate

Definition at line 70 of file EcalErrorDictionary.h.

References DICTSIZE, and mps_fire::i.

Referenced by getDictionary(), getErrors(), getMask(), and printErrors().

70  {
71  const static errorDef_t ERRORDICT[DICTSIZE] =
72  {
73 
74  { ((uint64_t)1<<0), "CH_ID_WARNING" , "Channel id warning"},
75  { ((uint64_t)1<<1), "CH_GAIN_ZERO_WARNING" , "Channel gain zero warning"},
76  { ((uint64_t)1<<2), "CH_GAIN_SWITCH_WARNING" , "Channel gain switch warning"},
77  { ((uint64_t)1<<3), "CH_ID_ERROR" , "Channel id error"},
78  { ((uint64_t)1<<4), "CH_GAIN_ZERO_ERROR" , "Channel gain zero error"},
79  { ((uint64_t)1<<5), "CH_GAIN_SWITCH_ERROR" , "Channel gain switch error"},
80 
81  { ((uint64_t)1<<6), "TT_ID_WARNING" , "TT id warning"},
82  { ((uint64_t)1<<7), "TT_SIZE_WARNING" , "TT size warning"},
83  { ((uint64_t)1<<8), "TT_LV1_WARNING" , "TT LV1 warning"},
84  { ((uint64_t)1<<9), "TT_BUNCH_X_WARNING" , "TT bunch-x warning"},
85  { ((uint64_t)1<<10), "TT_ID_ERROR" , "TT id error"},
86  { ((uint64_t)1<<11), "TT_SIZE_ERROR" , "TT size error"},
87  { ((uint64_t)1<<12), "TT_LV1_ERROR" , "TT LV1 error"},
88  { ((uint64_t)1<<13), "TT_BUNCH_X_ERROR" , "TT bunch-x error"},
89 
90  { ((uint64_t)1<<16) , "PEDESTAL_LOW_GAIN_MEAN_WARNING" , "Pedestal low gain mean amplitude outside range"},
91  { ((uint64_t)1<<17) , "PEDESTAL_MIDDLE_GAIN_MEAN_WARNING" , "Pedestal middle gain mean amplitude outside range"},
92  { ((uint64_t)1<<18) , "PEDESTAL_HIGH_GAIN_MEAN_WARNING" , "Pedestal high gain mean amplitude outside range"},
93  { ((uint64_t)1<<19) , "PEDESTAL_LOW_GAIN_MEAN_ERROR" , "Pedestal low gain mean amplitude error"},
94  { ((uint64_t)1<<20) , "PEDESTAL_MIDDLE_GAIN_MEAN_ERROR" , "Pedestal middle gain mean amplitude error"},
95  { ((uint64_t)1<<21) , "PEDESTAL_HIGH_GAIN_MEAN_ERROR" , "Pedestal high gain mean amplitude error"},
96 
97  { ((uint64_t)1<<22) , "PEDESTAL_LOW_GAIN_RMS_WARNING" , "Pedestal low gain rms amplitude outside range"},
98  { ((uint64_t)1<<23) , "PEDESTAL_MIDDLE_GAIN_RMS_WARNING" , "Pedestal middle gain rms amplitude outside range"},
99  { ((uint64_t)1<<24) , "PEDESTAL_HIGH_GAIN_RMS_WARNING" , "Pedestal high gain rms amplitude outside range"},
100  { ((uint64_t)1<<25) , "PEDESTAL_LOW_GAIN_RMS_ERROR" , "Pedestal low gain rms amplitude error"},
101  { ((uint64_t)1<<26), "PEDESTAL_MIDDLE_GAIN_RMS_ERROR" , "Pedestal middle gain rms amplitude error"},
102  { ((uint64_t)1<<27), "PEDESTAL_HIGH_GAIN_RMS_ERROR" , "Pedestal high gain rms amplitude error"},
103 
104  { ((uint64_t)1<<28), "PEDESTAL_ONLINE_HIGH_GAIN_MEAN_WARNING" , "Pedestal online high gain mean amplitude outside range"},
105  { ((uint64_t)1<<29), "PEDESTAL_ONLINE_HIGH_GAIN_RMS_WARNING" , "Pedestal online high gain rms amplitude outside range"},
106  { ((uint64_t)1<<30), "PEDESTAL_ONLINE_HIGH_GAIN_MEAN_ERROR" , "Pedestal online high gain mean amplitude error"},
107  { ((uint64_t)1<<31), "PEDESTAL_ONLINE_HIGH_GAIN_RMS_ERROR" , "Pedestal online high gain rms amplitude error"},
108 
109  { ((uint64_t)1<<32), "TESTPULSE_LOW_GAIN_MEAN_WARNING" , "Testpulse low gain mean amplitude outside range"},
110  { ((uint64_t)1<<33), "TESTPULSE_MIDDLE_GAIN_MEAN_WARNING" , "Testpulse middle gain mean amplitude outside range"},
111  { ((uint64_t)1<<34), "TESTPULSE_HIGH_GAIN_MEAN_WARNING" , "Testpulse high gain mean amplitude outside range"},
112  { ((uint64_t)1<<35), "TESTPULSE_LOW_GAIN_RMS_WARNING" , "Testpulse low gain rms amplitude outside range"},
113  { ((uint64_t)1<<36), "TESTPULSE_MIDDLE_GAIN_RMS_WARNING" , "Testpulse middle gain rms amplitude outside range"},
114  { ((uint64_t)1<<37), "TESTPULSE_HIGH_GAIN_RMS_WARNING" , "Testpulse high gain rms amplitude outside range"},
115 
116  { ((uint64_t)1<<38), "LASER_MEAN_WARNING" , "Laser mean amplitude outside range"},
117  { ((uint64_t)1<<39), "LASER_RMS_WARNING" , "Laser rms amplitude outside range"},
118 
119  { ((uint64_t)1<<40), "LASER_MEAN_OVER_PN_WARNING" , "Laser mean amplitude over PN outside range"},
120  { ((uint64_t)1<<41), "LASER_RMS_OVER_PN_WARNING" , "Laser rms amplitude over PN outside range"},
121 
122  { ((uint64_t)1<<42), "LASER_MEAN_TIMING_WARNING" , "Laser channel mean timing outside range"},
123  { ((uint64_t)1<<43), "LASER_RMS_TIMING_WARNING" , "Laser channel rms timing outside range"},
124 
125  { ((uint64_t)1<<44), "LASER_MEAN_TT_TIMING_WARNING" , "Laser tower mean timing outside range"},
126  { ((uint64_t)1<<45), "LASER_RMS_TT_TIMING_WARNING" , "Laser tower rms timing outside range"},
127 
128  { ((uint64_t)1<<46), "PHYSICS_MEAN_TIMING_WARNING" , "Channel mean timing outside range for physics events"},
129  { ((uint64_t)1<<47), "PHYSICS_RMS_TIMING_WARNING" , "Channel rms timing outside range for physics events"},
130 
131  { ((uint64_t)1<<48), "PHYSICS_MEAN_TT_TIMING_WARNING" , "TT mean timing outside range for physics events"},
132  { ((uint64_t)1<<49), "PHYSICS_RMS_TT_TIMING_WARNING" , "TT rms timing outside range for physics events"},
133 
134  { ((uint64_t)1<<50), "PHYSICS_BAD_CHANNEL_WARNING" , "Bad signal for physics events"},
135  { ((uint64_t)1<<51), "PHYSICS_BAD_CHANNEL_ERROR" , "No signal for physics events"},
136 
137  { ((uint64_t)1<<52), "STATUS_FLAG_ERROR" , "Readout tower front end error (any type)"},
138 
139  { ((uint64_t)1<<53), "LED_MEAN_WARNING" , "Led mean amplitude outside range"},
140  { ((uint64_t)1<<54), "LED_RMS_WARNING" , "Led rms amplitude outside range"}
141 
142  };
143 
144  return ERRORDICT[i];
145  }
unsigned long long uint64_t
Definition: Time.h:15
static const unsigned int DICTSIZE
static void EcalErrorDictionary::getDictionary ( std::vector< errorDef_t > &  dict)
inlinestatic

Definition at line 56 of file EcalErrorDictionary.h.

References DICTSIZE, getDef(), and mps_fire::i.

57  {
58  dict.clear();
59  for (unsigned int i=0; i<DICTSIZE; i++) {
60  dict.push_back(getDef(i));
61  }
62  }
static errorDef_t getDef(unsigned int i)
static const unsigned int DICTSIZE
static void EcalErrorDictionary::getErrors ( std::vector< errorDef_t > &  errorVec,
uint64_t  bitcode 
)
inlinestatic

Definition at line 46 of file EcalErrorDictionary.h.

References EcalErrorDictionary::errorDef_t::bitmask, DICTSIZE, getDef(), and mps_fire::i.

47  {
48  errorVec.clear();
49  for (unsigned int i=0; i<DICTSIZE; i++) {
50  if (bitcode & getDef(i).bitmask) {
51  errorVec.push_back(getDef(i));
52  }
53  }
54  }
static errorDef_t getDef(unsigned int i)
static const unsigned int DICTSIZE
static uint64_t EcalErrorDictionary::getMask ( std::string  shortDesc)
inlinestatic

Definition at line 28 of file EcalErrorDictionary.h.

References EcalErrorDictionary::errorDef_t::bitmask, DICTSIZE, getDef(), and mps_fire::i.

Referenced by hasError(), popcon::EcalChannelStatusHandler::laserMasking(), popcon::EcalChannelStatusHandler::pedMasking(), popcon::EcalChannelStatusHandler::pedOnlineMasking(), and popcon::EcalChannelStatusHandler::physicsMasking().

29  {
30  for (unsigned int i=0; i<DICTSIZE; i++) {
31  if (getDef(i).shortDesc == shortDesc) {
32  return getDef(i).bitmask;
33  }
34  }
35  return 0;
36  }
static errorDef_t getDef(unsigned int i)
static const unsigned int DICTSIZE
static uint64_t EcalErrorDictionary::hasError ( std::string  shortDesc,
uint64_t  bitcode 
)
inlinestatic

Definition at line 23 of file EcalErrorDictionary.h.

References getMask().

24  {
25  return getMask(shortDesc) & bitcode;
26  }
static uint64_t getMask(std::string shortDesc)
static void EcalErrorDictionary::printErrors ( uint64_t  bitcode)
inlinestatic

Definition at line 38 of file EcalErrorDictionary.h.

References EcalErrorDictionary::errorDef_t::bitmask, DICTSIZE, getDef(), and mps_fire::i.

39  {
40  for (unsigned int i=0; i<DICTSIZE; i++) {
41  if (bitcode & getDef(i).bitmask) {
42  }
43  }
44  }
static errorDef_t getDef(unsigned int i)
static const unsigned int DICTSIZE

Member Data Documentation

const unsigned int EcalErrorDictionary::DICTSIZE = 55
staticprivate

Definition at line 68 of file EcalErrorDictionary.h.

Referenced by getDef(), getDictionary(), getErrors(), getMask(), and printErrors().