CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes | Static Private Attributes

SiPixelRawDataErrorModule Class Reference

#include <SiPixelRawDataErrorModule.h>

List of all members.

Public Types

typedef edm::DetSet
< SiPixelRawDataError >
::const_iterator 
ErrorIterator

Public Member Functions

void book (const edm::ParameterSet &iConfig, int type=0)
 Book histograms.
void bookFED (const edm::ParameterSet &iConfig)
 Book FED histograms.
int fill (const edm::DetSetVector< SiPixelRawDataError > &input, bool modon=true, bool ladon=false, bool bladeon=false)
 Fill histograms.
int fillFED (const edm::DetSetVector< SiPixelRawDataError > &input)
 Fill FED histograms.
 SiPixelRawDataErrorModule (const uint32_t &id)
 Constructor with raw DetId.
 SiPixelRawDataErrorModule ()
 Default constructor.
 SiPixelRawDataErrorModule (const uint32_t &id, const int &ncols, const int &nrows)
 Constructor with raw DetId and sensor size.
 ~SiPixelRawDataErrorModule ()
 Destructor.

Private Attributes

bool _debug_
static const int ADC_bits = 8
static const uint32_t ADC_mask = ~(~uint32_t(0) << ADC_bits)
static const int ADC_shift = 0
static const int DataBit_bits = 1
static const uint32_t DataBit_mask = ~(~uint32_t(0) << DataBit_bits)
static const int DB0_shift = 0
static const int DB1_shift = DB0_shift + DataBit_bits
static const int DB2_shift = DB1_shift + DataBit_bits
static const int DB3_shift = DB2_shift + DataBit_bits
static const int DB4_shift = DB3_shift + DataBit_bits
static const int DB5_shift = DB4_shift + DataBit_bits
static const int DB6_shift = DB5_shift + DataBit_bits
static const int DB7_shift = DB6_shift + DataBit_bits
static const int DCOL_bits = 5
static const uint32_t DCOL_mask = ~(~uint32_t(0) << DCOL_bits)
static const int DCOL_shift = PXID_shift + PXID_bits
static const int EVTLGT_bits = 24
static const long long EVTLGT_mask = ~(~(long long)(0) << EVTLGT_bits)
static const int EVTLGT_shift = TRLRBGN_shift + TRLRBGN_bits
uint32_t id_
MonitorElementmeErrorType_
MonitorElementmeErrorTypeBlade_
MonitorElementmeErrorTypeLad_
MonitorElementmeEvtNbr_
MonitorElementmeEvtNbrBlade_
MonitorElementmeEvtNbrLad_
MonitorElementmeEvtSize_
MonitorElementmeEvtSizeBlade_
MonitorElementmeEvtSizeLad_
MonitorElementmeFedChLErrArray_ [37]
MonitorElementmeFedChNErrArray_ [37]
MonitorElementmeFedETypeNErrArray_ [21]
MonitorElementmeFullType_
MonitorElementmeFullTypeBlade_
MonitorElementmeFullTypeLad_
MonitorElementmeNErrors_
MonitorElementmeNErrorsBlade_
MonitorElementmeNErrorsLad_
MonitorElementmeTBMMessage_
MonitorElementmeTBMMessageBlade_
MonitorElementmeTBMMessageLad_
MonitorElementmeTBMType_
MonitorElementmeTBMTypeBlade_
MonitorElementmeTBMTypeLad_
int ncols_
int nrows_
static const int PXID_bits = 8
static const uint32_t PXID_mask = ~(~uint32_t(0) << PXID_bits)
static const int PXID_shift = ADC_shift + ADC_bits
static const int ROC_bits = 5
static const uint32_t ROC_mask = ~(~uint32_t(0) << ROC_bits)
static const int ROC_shift = DCOL_shift + DCOL_bits
static const int TRLRBGN_bits = 32
static const int TRLRBGN_shift = 0
static const int TRLREND_bits = 8
static const long long TRLREND_mask = ~(~(long long)(0) << TRLREND_bits)
static const int TRLREND_shift = EVTLGT_shift + EVTLGT_bits

Static Private Attributes

static const int LINK_bits = 6
static const uint32_t LINK_mask = ~(~uint32_t(0) << LINK_bits)
static const int LINK_shift = ROC_shift + ROC_bits
static const long long TRLRBGN_mask = ~(~(long long)(0) << TRLRBGN_bits)

Detailed Description

Definition at line 27 of file SiPixelRawDataErrorModule.h.


Member Typedef Documentation

Definition at line 40 of file SiPixelRawDataErrorModule.h.


Constructor & Destructor Documentation

SiPixelRawDataErrorModule::SiPixelRawDataErrorModule ( )

Default constructor.

Definition at line 64 of file SiPixelRawDataErrorModule.cc.

References _debug_.

                                                     : 
  id_(0),
  ncols_(416),
  nrows_(160) 
{ 
  _debug_ = false;
}
SiPixelRawDataErrorModule::SiPixelRawDataErrorModule ( const uint32_t &  id)

Constructor with raw DetId.

Definition at line 72 of file SiPixelRawDataErrorModule.cc.

References _debug_.

                                                                       : 
  id_(id),
  ncols_(416),
  nrows_(160)
{ 
  _debug_ = false;
}
SiPixelRawDataErrorModule::SiPixelRawDataErrorModule ( const uint32_t &  id,
const int &  ncols,
const int &  nrows 
)

Constructor with raw DetId and sensor size.

Definition at line 80 of file SiPixelRawDataErrorModule.cc.

References _debug_.

                                                                                                           : 
  id_(id),
  ncols_(ncols),
  nrows_(nrows)
{ 
  _debug_ = false;
} 
SiPixelRawDataErrorModule::~SiPixelRawDataErrorModule ( )

Destructor.

Definition at line 90 of file SiPixelRawDataErrorModule.cc.

{}

Member Function Documentation

void SiPixelRawDataErrorModule::book ( const edm::ParameterSet iConfig,
int  type = 0 
)

Book histograms.

Definition at line 94 of file SiPixelRawDataErrorModule.cc.

                                                                             {
}
void SiPixelRawDataErrorModule::bookFED ( const edm::ParameterSet iConfig)

Book FED histograms.

Definition at line 99 of file SiPixelRawDataErrorModule.cc.

References edm::ParameterSet::getParameter(), id_, j, edm::InputTag::label(), meErrorType_, meEvtNbr_, meEvtSize_, meFedChLErrArray_, meFedChNErrArray_, meFedETypeNErrArray_, meFullType_, meNErrors_, meTBMMessage_, meTBMType_, cppFunctionSkipper::operator, MonitorElement::setAxisTitle(), alcazmumu_cfi::src, AlCaHLTBitMon_QueryRunRegistry::string, and groupFilesInBlocks::temp.

                                                                      {
//std::cout<<"Entering SiPixelRawDataErrorModule::bookFED: "<<std::endl;
  std::string hid;
  // Get collection name and instantiate Histo Id builder
  edm::InputTag src = iConfig.getParameter<edm::InputTag>( "src" );
  SiPixelHistogramId* theHistogramId = new SiPixelHistogramId( src.label() );
  // Get DQM interface
  DQMStore* theDMBE = edm::Service<DQMStore>().operator->();
  // Types of errors
  hid = theHistogramId->setHistoId("errorType",id_);
  meErrorType_ = theDMBE->book1D(hid,"Type of errors",15,24.5,39.5);
  meErrorType_->setAxisTitle("Type of errors",1);
  // Number of errors
  hid = theHistogramId->setHistoId("NErrors",id_);
  meNErrors_ = theDMBE->book1D(hid,"Number of errors",36,0.,36.);
  meNErrors_->setAxisTitle("Number of errors",1);
  // Type of FIFO full (errorType = 28).  FIFO 1 is 1-5 (where fullType = channel of FIFO 1), 
  // fullType = 6 signifies FIFO 2 nearly full, 7 signifies trigger FIFO nearly full, 8 
  // indicates an unexpected result
  hid = theHistogramId->setHistoId("fullType",id_);
  meFullType_ = theDMBE->book1D(hid,"Type of FIFO full",7,0.5,7.5);
  meFullType_->setAxisTitle("FIFO type",1);
  // For error type 30, the type of problem encoded in the TBM trailer
  // 0 = stack full, 1 = Pre-cal issued, 2 = clear trigger counter, 3 = sync trigger, 
  // 4 = sync trigger error, 5 = reset ROC, 6 = reset TBM, 7 = no token bit pass
  hid = theHistogramId->setHistoId("TBMMessage",id_);
  meTBMMessage_ = theDMBE->book1D(hid,"TBM trailer message",8,-0.5,7.5);
  meTBMMessage_->setAxisTitle("TBM message",1);
  // For error type 30, the type of problem encoded in the TBM error trailer 0 = none
  // 1 = data stream too long, 2 = FSM errors, 3 = invalid # of ROCs, 4 = multiple
  hid = theHistogramId->setHistoId("TBMType",id_);
  meTBMType_ = theDMBE->book1D(hid,"Type of TBM trailer",5,-0.5,4.5);
  meTBMType_->setAxisTitle("TBM Type",1);
  // For error type 31, the event number of the TBM header with the error
  hid = theHistogramId->setHistoId("EvtNbr",id_);
  meEvtNbr_ = theDMBE->bookInt(hid);
  // For errorType = 34, datastream size according to error word
  hid = theHistogramId->setHistoId("evtSize",id_);
  meEvtSize_ = theDMBE->bookInt(hid);
  
  for(int j=0; j!=37; j++){
    std::stringstream temp; temp << j;
    hid = "FedChNErrArray_" + temp.str();
    meFedChNErrArray_[j] = theDMBE->bookInt(hid);
    hid = "FedChLErrArray_" + temp.str();
    meFedChLErrArray_[j] = theDMBE->bookInt(hid);
    hid = "FedETypeNErrArray_" + temp.str();
    if(j<21) meFedETypeNErrArray_[j] = theDMBE->bookInt(hid);
  }
  delete theHistogramId;
//std::cout<<"...leaving SiPixelRawDataErrorModule::bookFED. "<<std::endl;
}
int SiPixelRawDataErrorModule::fill ( const edm::DetSetVector< SiPixelRawDataError > &  input,
bool  modon = true,
bool  ladon = false,
bool  bladeon = false 
)

Fill histograms.

Definition at line 154 of file SiPixelRawDataErrorModule.cc.

References ADC_mask, ADC_shift, Reference_intrackfit_cff::barrel, edm::DetSetVector< T >::begin(), DQMStore::cd(), DataBit_mask, DB0_shift, DB1_shift, DB2_shift, DB3_shift, DB4_shift, DB5_shift, DB6_shift, DB7_shift, edm::DetSetVector< T >::end(), Reference_intrackfit_cff::endcap, EVTLGT_mask, EVTLGT_shift, MonitorElement::Fill(), HcalObjRepresent::Fill(), edm::DetSetVector< T >::find(), fmt, DQMStore::get(), id_, LINK_bits, LINK_mask, LINK_shift, meFedChLErrArray_, meFedChNErrArray_, meFedETypeNErrArray_, meFullType_, cppFunctionSkipper::operator, GeomDetEnumerators::PixelBarrel, GeomDetEnumerators::PixelEndcap, DQMStore::pwd(), AlCaHLTBitMon_QueryRunRegistry::string, and DetId::subdetId().

                                                                                                                           {
//std::cout<<"Entering SiPixelRawDataErrorModule::fill: "<<std::endl;
  bool barrel = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
  bool endcap = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
  
  // Get DQM interface
  DQMStore* theDMBE = edm::Service<DQMStore>().operator->();
  
  unsigned int numberOfSeriousErrors = 0;
  
  edm::DetSetVector<SiPixelRawDataError>::const_iterator isearch = input.find(id_); // search  errors of detid
  
  if( isearch != input.end() ) {  // Not at empty iterator
    // Look at errors now
    edm::DetSet<SiPixelRawDataError>::const_iterator  di;
    for(di = isearch->data.begin(); di != isearch->data.end(); di++) {
      int FedId = di->getFedId();                  // FED the error came from
      int chanNmbr = 0;
      int errorType = di->getType();               // type of error
      int TBMType=-1; int TBMMessage=-1; int evtSize=-1; int evtNbr=-1; int fullType=-1;
      //bool notReset = true;
      const int LINK_bits = 6;
      const int LINK_shift = 26;
      const uint32_t LINK_mask = ~(~(uint32_t)(0) << LINK_bits);

      if(modon){
        if(errorType == 32 || errorType == 33 || errorType == 34) {
          long long errorWord = di->getWord64();     // for 64-bit error words
          chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
          if(errorType == 34) evtSize = (errorWord >> EVTLGT_shift) & EVTLGT_mask;
        } else {
          uint32_t errorWord = di->getWord32();      // for 32-bit error words
          chanNmbr = (errorWord >> LINK_shift) & LINK_mask; // default way to get channel number.  Only different for case 29 below.
          switch(errorType) {  // fill in the appropriate monitorables based on the information stored in the error word
          case(28) : {
            int NFa = (errorWord >> DB0_shift) & DataBit_mask;
            int NFb = (errorWord >> DB1_shift) & DataBit_mask;
            int NFc = (errorWord >> DB2_shift) & DataBit_mask;
            int NFd = (errorWord >> DB3_shift) & DataBit_mask;
            int NFe = (errorWord >> DB4_shift) & DataBit_mask;
            int NF2 = (errorWord >> DB6_shift) & DataBit_mask;
            int L1A = (errorWord >> DB7_shift) & DataBit_mask;
            if (NFa==1) fullType = 1; (meFullType_)->Fill((int)fullType);
            if (NFb==1) fullType = 2; (meFullType_)->Fill((int)fullType);
            if (NFc==1) fullType = 3; (meFullType_)->Fill((int)fullType);
            if (NFd==1) fullType = 4; (meFullType_)->Fill((int)fullType);
            if (NFe==1) fullType = 5; (meFullType_)->Fill((int)fullType);
            if (NF2==1) fullType = 6; (meFullType_)->Fill((int)fullType);
            if (L1A==1) fullType = 7; (meFullType_)->Fill((int)fullType);
            chanNmbr = 0;  // signifies channel not known
            break; }
          case(29) : {
            int CH1 = (errorWord >> DB0_shift) & DataBit_mask;
            int CH2 = (errorWord >> DB1_shift) & DataBit_mask;
            int CH3 = (errorWord >> DB2_shift) & DataBit_mask;
            int CH4 = (errorWord >> DB3_shift) & DataBit_mask;
            int CH5 = (errorWord >> DB4_shift) & DataBit_mask;
            int BLOCK_bits      = 3;
            int BLOCK_shift     = 8;
            uint32_t BLOCK_mask = ~(~uint32_t(0) << BLOCK_bits);
            int BLOCK = (errorWord >> BLOCK_shift) & BLOCK_mask;
            int localCH = 1*CH1+2*CH2+3*CH3+4*CH4+5*CH5;
            if (BLOCK%2==0) chanNmbr=(BLOCK/2)*9+localCH;
            else chanNmbr = ((BLOCK-1)/2)*9+4+localCH;
            if ((chanNmbr<1)||(chanNmbr>36)) chanNmbr=0;  // signifies unexpected result
            break; }
          case(30) : {
            int T0 = (errorWord >> DB0_shift) & DataBit_mask;
            int T1 = (errorWord >> DB1_shift) & DataBit_mask;
            int T2 = (errorWord >> DB2_shift) & DataBit_mask;
            int T3 = (errorWord >> DB3_shift) & DataBit_mask;
            int T4 = (errorWord >> DB4_shift) & DataBit_mask;
            int T5 = (errorWord >> DB5_shift) & DataBit_mask;
            int T6 = (errorWord >> DB6_shift) & DataBit_mask;
            int T7 = (errorWord >> DB7_shift) & DataBit_mask;
            if (T0==1) TBMMessage=0;
            if (T1==1) TBMMessage=1;
            if (T2==1) TBMMessage=2;
            if (T3==1) TBMMessage=3;
            if (T4==1) TBMMessage=4;
            if (T5==1) TBMMessage=5;
            if (T6==1) TBMMessage=6;
            if (T7==1) TBMMessage=7;
            //if(TBMMessage==5 || TBMMessage==6) notReset=false;
            int StateMach_bits      = 4;
            int StateMach_shift     = 8;
            uint32_t StateMach_mask = ~(~uint32_t(0) << StateMach_bits);
            int StateMach = (errorWord >> StateMach_shift) & StateMach_mask;
            switch(StateMach) {
            case(0) : {
              TBMType = 0;
              break; }
            case(1) : case(9) : {
              TBMType = 1;
              break; }
            case(2) : case(4) : case(6) : {
              TBMType = 2;
              break; }
            case(8) : {
              TBMType = 3;
              break; }
            default : TBMType = 4;
            };
            break; }
          case(31) : {
            evtNbr = (errorWord >> ADC_shift) & ADC_mask;
            break; }
          case(36) : {
            //ROCId = (errorWord >> ROC_shift) & ROC_mask;
            break; }
          case(37) : {
            //DCOLId = (errorWord >> DCOL_shift) & DCOL_mask;
            //PXId = (errorWord >> PXID_shift) & PXID_mask;
            break; }
          case(38) : {
            //ROCNmbr = (errorWord >> ROC_shift) & ROC_mask;
            break; }
          default : break;
          };
        }//end if not double precision  
      }//end if modon

      if(ladon && barrel){
        if(errorType == 32 || errorType == 33 || errorType == 34){
          long long errorWord = di->getWord64();     // for 64-bit error words
          if(errorType == 34) evtSize = (errorWord >> EVTLGT_shift) & EVTLGT_mask;
          chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
        } else {
          uint32_t errorWord = di->getWord32();      // for 32-bit error words
          chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
          switch(errorType) {  // fill in the appropriate monitorables based on the information stored in the error word
          case(28) : {
            int NFa = (errorWord >> DB0_shift) & DataBit_mask;
            int NFb = (errorWord >> DB1_shift) & DataBit_mask;
            int NFc = (errorWord >> DB2_shift) & DataBit_mask;
            int NFd = (errorWord >> DB3_shift) & DataBit_mask;
            int NFe = (errorWord >> DB4_shift) & DataBit_mask;
            int NF2 = (errorWord >> DB6_shift) & DataBit_mask;
            int L1A = (errorWord >> DB7_shift) & DataBit_mask;
            if (NFa==1) fullType = 1; (meFullType_)->Fill((int)fullType);
            if (NFb==1) fullType = 2; (meFullType_)->Fill((int)fullType);
            if (NFc==1) fullType = 3; (meFullType_)->Fill((int)fullType);
            if (NFd==1) fullType = 4; (meFullType_)->Fill((int)fullType);
            if (NFe==1) fullType = 5; (meFullType_)->Fill((int)fullType);
            if (NF2==1) fullType = 6; (meFullType_)->Fill((int)fullType);
            if (L1A==1) fullType = 7; (meFullType_)->Fill((int)fullType);
            chanNmbr = 0;
            break; }
          case(29) : {
            int CH1 = (errorWord >> DB0_shift) & DataBit_mask;
            int CH2 = (errorWord >> DB1_shift) & DataBit_mask;
            int CH3 = (errorWord >> DB2_shift) & DataBit_mask;
            int CH4 = (errorWord >> DB3_shift) & DataBit_mask;
            int CH5 = (errorWord >> DB4_shift) & DataBit_mask;
            int BLOCK_bits      = 3;
            int BLOCK_shift     = 8;
            uint32_t BLOCK_mask = ~(~uint32_t(0) << BLOCK_bits);
            int BLOCK = (errorWord >> BLOCK_shift) & BLOCK_mask;
            int localCH = 1*CH1+2*CH2+3*CH3+4*CH4+5*CH5;
            if (BLOCK%2==0) chanNmbr=(BLOCK/2)*9+localCH;
            else chanNmbr = ((BLOCK-1)/2)*9+4+localCH;
            if ((chanNmbr<1)||(chanNmbr>36)) chanNmbr=0;  // signifies unexpected result
            break; }
          case(30) : {
            int T0 = (errorWord >> DB0_shift) & DataBit_mask;
            int T1 = (errorWord >> DB1_shift) & DataBit_mask;
            int T2 = (errorWord >> DB2_shift) & DataBit_mask;
            int T3 = (errorWord >> DB3_shift) & DataBit_mask;
            int T4 = (errorWord >> DB4_shift) & DataBit_mask;
            int T5 = (errorWord >> DB5_shift) & DataBit_mask;
            int T6 = (errorWord >> DB6_shift) & DataBit_mask;
            int T7 = (errorWord >> DB7_shift) & DataBit_mask;
            if (T0==1) TBMMessage=0;
            if (T1==1) TBMMessage=1;
            if (T2==1) TBMMessage=2;
            if (T3==1) TBMMessage=3;
            if (T4==1) TBMMessage=4;
            if (T5==1) TBMMessage=5;
            if (T6==1) TBMMessage=6;
            if (T7==1) TBMMessage=7;
            int StateMach_bits      = 4;
            int StateMach_shift     = 8;
            uint32_t StateMach_mask = ~(~uint32_t(0) << StateMach_bits);
            int StateMach = (errorWord >> StateMach_shift) & StateMach_mask;
            switch(StateMach) {
            case(0) : {
              TBMType = 0;
              break; }
            case(1) : case(9) : {
              TBMType = 1;
              break; }
            case(2) : case(4) : case(6) : {
              TBMType = 2;
              break; }
            case(8) : {
              TBMType = 3;
              break; }
            default : TBMType = 4;
            };
            break; }
          case(31) : {
            evtNbr = (errorWord >> ADC_shift) & ADC_mask;
            break; }
          case(36) : {
            //int ROCId = (errorWord >> ROC_shift) & ROC_mask;
            break; }
          case(37) : {
            //int DCOLId = (errorWord >> DCOL_shift) & DCOL_mask;
            //int PXId = (errorWord >> PXID_shift) & PXID_mask;
            break; }
          case(38) : {
            //int ROCNmbr = (errorWord >> ROC_shift) & ROC_mask;
            break; }
          default : break;
          };
        }
      }//end if ladderon

      if(bladeon && endcap){
        if(errorType == 32 || errorType == 33 || errorType == 34){
          long long errorWord = di->getWord64();     // for 64-bit error words
          if(errorType == 34) evtSize = (errorWord >> EVTLGT_shift) & EVTLGT_mask;
          chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
        } else {
          uint32_t errorWord = di->getWord32();      // for 32-bit error words
          chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
          switch(errorType) {  // fill in the appropriate monitorables based on the information stored in the error word
          case(28) : {
            int NFa = (errorWord >> DB0_shift) & DataBit_mask;
            int NFb = (errorWord >> DB1_shift) & DataBit_mask;
            int NFc = (errorWord >> DB2_shift) & DataBit_mask;
            int NFd = (errorWord >> DB3_shift) & DataBit_mask;
            int NFe = (errorWord >> DB4_shift) & DataBit_mask;
            int NF2 = (errorWord >> DB6_shift) & DataBit_mask;
            int L1A = (errorWord >> DB7_shift) & DataBit_mask;
            if (NFa==1) fullType = 1; (meFullType_)->Fill((int)fullType);
            if (NFb==1) fullType = 2; (meFullType_)->Fill((int)fullType);
            if (NFc==1) fullType = 3; (meFullType_)->Fill((int)fullType);
            if (NFd==1) fullType = 4; (meFullType_)->Fill((int)fullType);
            if (NFe==1) fullType = 5; (meFullType_)->Fill((int)fullType);
            if (NF2==1) fullType = 6; (meFullType_)->Fill((int)fullType);
            if (L1A==1) fullType = 7; (meFullType_)->Fill((int)fullType);
            chanNmbr = 0;
            break; }
          case(29) : {
            int CH1 = (errorWord >> DB0_shift) & DataBit_mask;
            int CH2 = (errorWord >> DB1_shift) & DataBit_mask;
            int CH3 = (errorWord >> DB2_shift) & DataBit_mask;
            int CH4 = (errorWord >> DB3_shift) & DataBit_mask;
            int CH5 = (errorWord >> DB4_shift) & DataBit_mask;
            int BLOCK_bits      = 3;
            int BLOCK_shift     = 8;
            uint32_t BLOCK_mask = ~(~uint32_t(0) << BLOCK_bits);
            int BLOCK = (errorWord >> BLOCK_shift) & BLOCK_mask;
            int localCH = 1*CH1+2*CH2+3*CH3+4*CH4+5*CH5;
            if (BLOCK%2==0) chanNmbr=(BLOCK/2)*9+localCH;
            else chanNmbr = ((BLOCK-1)/2)*9+4+localCH;
            if ((chanNmbr<1)||(chanNmbr>36)) chanNmbr=0;  // signifies unexpected result
            break; }
          case(30) : {
            int T0 = (errorWord >> DB0_shift) & DataBit_mask;
            int T1 = (errorWord >> DB1_shift) & DataBit_mask;
            int T2 = (errorWord >> DB2_shift) & DataBit_mask;
            int T3 = (errorWord >> DB3_shift) & DataBit_mask;
            int T4 = (errorWord >> DB4_shift) & DataBit_mask;
            int T5 = (errorWord >> DB5_shift) & DataBit_mask;
            int T6 = (errorWord >> DB6_shift) & DataBit_mask;
            int T7 = (errorWord >> DB7_shift) & DataBit_mask;
            if (T0==1) TBMMessage=0;
            if (T1==1) TBMMessage=1;
            if (T2==1) TBMMessage=2;
            if (T3==1) TBMMessage=3;
            if (T4==1) TBMMessage=4;
            if (T5==1) TBMMessage=5;
            if (T6==1) TBMMessage=6;
            if (T7==1) TBMMessage=7;
            int StateMach_bits      = 4;
            int StateMach_shift     = 8;
            uint32_t StateMach_mask = ~(~uint32_t(0) << StateMach_bits);
            int StateMach = (errorWord >> StateMach_shift) & StateMach_mask;
            switch(StateMach) {
            case(0) : {
              TBMType = 0;
              break; }
            case(1) : case(9) : {
              TBMType = 1;
              break; }
            case(2) : case(4) : case(6) : {
              TBMType = 2;
              break; }
            case(8) : {
              TBMType = 3;
              break; }
            default : TBMType = 4;
            };
            break; }
          case(31) : {
            evtNbr = (errorWord >> ADC_shift) & ADC_mask;
            break; }
          case(36) : {
            //int ROCId = (errorWord >> ROC_shift) & ROC_mask;
            break; }
          case(37) : {
            //int DCOLId = (errorWord >> DCOL_shift) & DCOL_mask;
            //int PXId = (errorWord >> PXID_shift) & PXID_mask;
            break; }
          case(38) : {
            //int ROCNmbr = (errorWord >> ROC_shift) & ROC_mask;
            break; }
          default : break;
          };
        }
      }//end if bladeon
      
      if(!(FedId==38&&chanNmbr==7)){ // mask slow channel that spits out lots of EventNumber errors even when in STDBY!
        if(errorType==29 || (errorType==30 && TBMType==1)){ // consider only TIMEOUT and OVERFLOW as serious errors right now
        //if(!(errorType==30) || notReset){
          //cout<<"ERROR: "<<errorType<<" "<<TBMType<<endl;
          std::string hid;
          static const char chNfmt[] = "Pixel/AdditionalPixelErrors/FED_%d/FedChNErrArray_%d";
          char chNbuf[sizeof(chNfmt) + 2*32]; // 32 digits is enough for up to 2^105 + sign.
          sprintf(chNbuf, chNfmt, FedId, chanNmbr);
          hid = chNbuf;
          meFedChNErrArray_[chanNmbr] = theDMBE->get(hid);
          if(meFedChNErrArray_[chanNmbr]) meFedChNErrArray_[chanNmbr]->Fill(meFedChNErrArray_[chanNmbr]->getIntValue()+1);

          static const char chLfmt[] = "Pixel/AdditionalPixelErrors/FED_%d/FedChLErrArray_%d";
          char chLbuf[sizeof(chLfmt) + 2*32]; // 32 digits is enough for up to 2^105 + sign.
          sprintf(chLbuf, chLfmt, FedId, chanNmbr);
          hid = chLbuf;
          meFedChLErrArray_[chanNmbr] = theDMBE->get(hid); 
          if(meFedChLErrArray_[chanNmbr]) meFedChLErrArray_[chanNmbr]->Fill(errorType); 

          numberOfSeriousErrors++;
          int messageType = 99;
          if(errorType<30) messageType = errorType-25;
          else if(errorType>30) messageType = errorType-19;
          else if(errorType==30 && TBMMessage==0) messageType = errorType-25;
          else if(errorType==30 && TBMMessage==1) messageType = errorType-24;
          else if(errorType==30 && (TBMMessage==2 || TBMMessage==3 || TBMMessage==4)) messageType = errorType-23;
          else if(errorType==30 && TBMMessage==7) messageType = errorType-22;
          else if(errorType==30 && TBMType==1) messageType = errorType-21;
          else if(errorType==30 && TBMType==2) messageType = errorType-20;
          else if(errorType==30 && TBMType==3) messageType = errorType-19;
          if(messageType<=20){
            static const char fmt[] = "Pixel/AdditionalPixelErrors/FED_%d/FedETypeNErrArray_%d";
            char buf[sizeof(fmt) + 2*32]; // 32 digits is enough for up to 2^105 + sign.
            sprintf(buf, fmt, FedId, messageType);
            hid = buf;
            meFedETypeNErrArray_[messageType] = theDMBE->get(hid); 
            if(meFedETypeNErrArray_[messageType]) meFedETypeNErrArray_[messageType]->Fill(meFedETypeNErrArray_[messageType]->getIntValue()+1); 
          }
        }

        std::string currDir = theDMBE->pwd();
        static const char buf[] = "Pixel/AdditionalPixelErrors/FED_%d";
        char feddir[sizeof(buf)+2]; 
        sprintf(feddir,buf,FedId);
        theDMBE->cd(feddir);
        MonitorElement* me;
        static const char buf1[] = "Pixel/AdditionalPixelErrors/FED_%d/NErrors_siPixelDigis_%d";
        char hname1[sizeof(buf1)+4];
        sprintf(hname1,buf1,FedId,FedId);
        me = theDMBE->get(hname1);
        if(me) me->Fill((int)numberOfSeriousErrors);
        static const char buf2[] = "Pixel/AdditionalPixelErrors/FED_%d/TBMMessage_siPixelDigis_%d";
        char hname2[sizeof(buf2)+4];
        sprintf(hname2,buf2,FedId,FedId);
        me = theDMBE->get(hname2);
        if(me) me->Fill((int)TBMMessage);
        static const char buf3[] = "Pixel/AdditionalPixelErrors/FED_%d/TBMType_siPixelDigis_%d";
        char hname3[sizeof(buf3)+4];
        sprintf(hname3,buf3,FedId,FedId);
        me = theDMBE->get(hname3);
        if(me) me->Fill((int)TBMType);
        static const char buf4[] = "Pixel/AdditionalPixelErrors/FED_%d/errorType_siPixelDigis_%d";
        char hname4[sizeof(buf4)+4];
        sprintf(hname4,buf4,FedId,FedId);
        me = theDMBE->get(hname4);
        if(me) me->Fill((int)errorType);
        static const char buf5[] = "Pixel/AdditionalPixelErrors/FED_%d/fullType_siPixelDigis_%d";
        char hname5[sizeof(buf5)+4];
        sprintf(hname5,buf5,FedId,FedId);
        me = theDMBE->get(hname5);
        if(me) me->Fill((int)fullType);
        static const char buf6[] = "Pixel/AdditionalPixelErrors/FED_%d/EvtNbr_siPixelDigis_%d";
        char hname6[sizeof(buf6)+4];
        sprintf(hname6,buf6,FedId,FedId);
        me = theDMBE->get(hname6);
        if(me) me->Fill((int)evtNbr);
        static const char buf7[] = "Pixel/AdditionalPixelErrors/FED_%d/evtSize_siPixelDigis_%d";
        char hname7[sizeof(buf7)+4];
        sprintf(hname7,buf7,FedId,FedId);
        me = theDMBE->get(hname7);
        if(me) me->Fill((int)evtSize);
        theDMBE->cd(currDir);
      }
    }//end for loop over all errors on module
  }//end if not an empty iterator

  return numberOfSeriousErrors;
}
int SiPixelRawDataErrorModule::fillFED ( const edm::DetSetVector< SiPixelRawDataError > &  input)

Fill FED histograms.

Definition at line 557 of file SiPixelRawDataErrorModule.cc.

References ADC_mask, ADC_shift, edm::DetSetVector< T >::begin(), DataBit_mask, DB0_shift, DB1_shift, DB2_shift, DB3_shift, DB4_shift, DB5_shift, DB6_shift, DB7_shift, edm::DetSetVector< T >::end(), EVTLGT_mask, EVTLGT_shift, MonitorElement::Fill(), HcalObjRepresent::Fill(), edm::DetSetVector< T >::find(), fmt, DQMStore::get(), id_, LINK_bits, LINK_mask, LINK_shift, meErrorType_, meEvtNbr_, meEvtSize_, meFedChLErrArray_, meFedChNErrArray_, meFedETypeNErrArray_, meFullType_, meNErrors_, meTBMMessage_, meTBMType_, cppFunctionSkipper::operator, and AlCaHLTBitMon_QueryRunRegistry::string.

                                                                                        {
  //std::cout<<"Entering   SiPixelRawDataErrorModule::fillFED: "<<static_cast<int>(id_)<<std::endl;
  DQMStore* theDMBE = edm::Service<DQMStore>().operator->();
  unsigned int numberOfSeriousErrors = 0;
  
  edm::DetSetVector<SiPixelRawDataError>::const_iterator isearch = input.find(0xffffffff); // search  errors of detid
  if( isearch != input.end() ) {  // Not an empty iterator
    // Look at FED errors now   
    edm::DetSet<SiPixelRawDataError>::const_iterator  di;
    for(di = isearch->data.begin(); di != isearch->data.end(); di++) {
      int FedId = di->getFedId();                  // FED the error came from
      int chanNmbr = -1;
      int errorType = 0;               // type of error
      if(FedId==static_cast<int>(id_)) {
        errorType = di->getType();               // type of error
        (meErrorType_)->Fill((int)errorType);
        //bool notReset=true;
        int TBMType=-1; int TBMMessage=-1; int evtSize=-1; int fullType=-1;
        const int LINK_bits = 6;
        const int LINK_shift = 26;
        const uint32_t LINK_mask = ~(~(uint32_t)(0) << LINK_bits);
        if((errorType == 32)||(errorType == 33)||(errorType == 34)) {
          long long errorWord = di->getWord64();     // for 64-bit error words
          chanNmbr = 0;
          switch(errorType) {  // fill in the appropriate monitorables based on the information stored in the error word
          case(32) : {
            break; }
          case(33) : {
            break; }
          case(34) : {
            evtSize = (errorWord >> EVTLGT_shift) & EVTLGT_mask;
            if(!(FedId==38&&chanNmbr==7)) (meEvtSize_)->Fill((int)evtSize); 
            break; }
          default : break;
          };
        } else {
          uint32_t errorWord = di->getWord32();      // for 32-bit error words
          switch(errorType) {  // fill in the appropriate monitorables based on the information stored in the error word
          case(25) : case(39) : {
            chanNmbr = 0;
            break; }
          case(28) : {
            int NFa = (errorWord >> DB0_shift) & DataBit_mask;
            int NFb = (errorWord >> DB1_shift) & DataBit_mask;
            int NFc = (errorWord >> DB2_shift) & DataBit_mask;
            int NFd = (errorWord >> DB3_shift) & DataBit_mask;
            int NFe = (errorWord >> DB4_shift) & DataBit_mask;
            int NF2 = (errorWord >> DB6_shift) & DataBit_mask;
            int L1A = (errorWord >> DB7_shift) & DataBit_mask;
            if (NFa==1) fullType = 1; (meFullType_)->Fill((int)fullType);
            if (NFb==1) fullType = 2; (meFullType_)->Fill((int)fullType);
            if (NFc==1) fullType = 3; (meFullType_)->Fill((int)fullType);
            if (NFd==1) fullType = 4; (meFullType_)->Fill((int)fullType);
            if (NFe==1) fullType = 5; (meFullType_)->Fill((int)fullType);
            if (NF2==1) fullType = 6; (meFullType_)->Fill((int)fullType);
            if (L1A==1) fullType = 7; (meFullType_)->Fill((int)fullType);
            chanNmbr = 0;
            break; }
          case(29) : {
            int CH1 = (errorWord >> DB0_shift) & DataBit_mask;
            int CH2 = (errorWord >> DB1_shift) & DataBit_mask;
            int CH3 = (errorWord >> DB2_shift) & DataBit_mask;
            int CH4 = (errorWord >> DB3_shift) & DataBit_mask;
            int CH5 = (errorWord >> DB4_shift) & DataBit_mask;
            int BLOCK_bits      = 3;
            int BLOCK_shift     = 8;
            uint32_t BLOCK_mask = ~(~uint32_t(0) << BLOCK_bits);
            int BLOCK = (errorWord >> BLOCK_shift) & BLOCK_mask;
            int localCH = 1*CH1+2*CH2+3*CH3+4*CH4+5*CH5;
            if (BLOCK%2==0) chanNmbr=(BLOCK/2)*9+localCH;
            else chanNmbr = ((BLOCK-1)/2)*9+4+localCH;
            if ((chanNmbr<1)||(chanNmbr>36)) chanNmbr=0;  // signifies unexpected result
            break; }
          case(30) : {
            int T0 = (errorWord >> DB0_shift) & DataBit_mask;
            int T1 = (errorWord >> DB1_shift) & DataBit_mask;
            int T2 = (errorWord >> DB2_shift) & DataBit_mask;
            int T3 = (errorWord >> DB3_shift) & DataBit_mask;
            int T4 = (errorWord >> DB4_shift) & DataBit_mask;
            int T5 = (errorWord >> DB5_shift) & DataBit_mask;
            int T6 = (errorWord >> DB6_shift) & DataBit_mask;
            int T7 = (errorWord >> DB7_shift) & DataBit_mask;
            if(!(FedId==38&&chanNmbr==7)){
              if (T0==1) { TBMMessage=0; (meTBMMessage_)->Fill((int)TBMMessage); }
              if (T1==1) { TBMMessage=1; (meTBMMessage_)->Fill((int)TBMMessage); }
              if (T2==1) { TBMMessage=2; (meTBMMessage_)->Fill((int)TBMMessage); }
              if (T3==1) { TBMMessage=3; (meTBMMessage_)->Fill((int)TBMMessage); }
              if (T4==1) { TBMMessage=4; (meTBMMessage_)->Fill((int)TBMMessage); }
              if (T5==1) { TBMMessage=5; (meTBMMessage_)->Fill((int)TBMMessage); }
              if (T6==1) { TBMMessage=6; (meTBMMessage_)->Fill((int)TBMMessage); }
              if (T7==1) { TBMMessage=7; (meTBMMessage_)->Fill((int)TBMMessage); }
            }
            //if(TBMMessage==5 || TBMMessage==6) notReset=false;
            int StateMach_bits      = 4;
            int StateMach_shift     = 8;
            uint32_t StateMach_mask = ~(~uint32_t(0) << StateMach_bits);
            int StateMach = (errorWord >> StateMach_shift) & StateMach_mask;
            switch(StateMach) {
            case(0) : {
              TBMType = 0;
              break; }
            case(1) : case(9) : {
              TBMType = 1;
              break; }
            case(2) : case(4) : case(6) : {
              TBMType = 2;
              break; }
            case(8) : {
              TBMType = 3;
              break; }
            default : TBMType = 4;
            };
            if(!(FedId==38&&chanNmbr==7)) (meTBMType_)->Fill((int)TBMType);
            chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
            break; }
          case(31) : {
            int evtNbr = (errorWord >> ADC_shift) & ADC_mask;
            if(!(FedId==38&&chanNmbr==7))(meEvtNbr_)->Fill((int)evtNbr);
            chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
            break; }
          case(35) : case(36) : case(37) : case(38) : {
            chanNmbr = (errorWord >> LINK_shift) & LINK_mask;
            break; }
          default : break;
          };
        }// end if errorType

        //if(!(errorType==30) || notReset){
        if(errorType==29 || (errorType==30 && TBMType==1)){ // consider only TIMEOUT and OVERFLOW as serious errors right now
          if(!(FedId==38&&chanNmbr==7)){ // mask slow channel that spits out lots of EventNumber errors even when in STDBY!
            std::string hid;
            //cout<<"FEDERROR: "<<errorType<<" "<<TBMType<<endl;
            static const char chNfmt[] = "Pixel/AdditionalPixelErrors/FED_%d/FedChNErrArray_%d";
            char chNbuf[sizeof(chNfmt) + 2*32]; // 32 digits is enough for up to 2^105 + sign.
            sprintf(chNbuf, chNfmt, FedId, chanNmbr);
            hid = chNbuf;
            meFedChNErrArray_[chanNmbr] = theDMBE->get(hid);
            if(meFedChNErrArray_[chanNmbr]) meFedChNErrArray_[chanNmbr]->Fill(meFedChNErrArray_[chanNmbr]->getIntValue()+1);

            static const char chLfmt[] = "Pixel/AdditionalPixelErrors/FED_%d/FedChLErrArray_%d";
            char chLbuf[sizeof(chLfmt) + 2*32]; // 32 digits is enough for up to 2^105 + sign.
            sprintf(chLbuf, chLfmt, FedId, chanNmbr);
            hid = chLbuf;
            meFedChLErrArray_[chanNmbr] = theDMBE->get(hid); 
            if(meFedChLErrArray_[chanNmbr]) meFedChLErrArray_[chanNmbr]->Fill(errorType); 

            numberOfSeriousErrors++;
            int messageType = 99;
            if(errorType<30) messageType = errorType-25;
            else if(errorType>30) messageType = errorType-19;
            else if(errorType==30 && TBMMessage==0) messageType = errorType-25;
            else if(errorType==30 && TBMMessage==1) messageType = errorType-24;
            else if(errorType==30 && (TBMMessage==2 || TBMMessage==3 || TBMMessage==4)) messageType = errorType-23;
            else if(errorType==30 && TBMMessage==7) messageType = errorType-22;
            else if(errorType==30 && TBMType==1) messageType = errorType-21;
            else if(errorType==30 && TBMType==2) messageType = errorType-20;
            else if(errorType==30 && TBMType==3) messageType = errorType-19;
            if(messageType<=20){
              static const char fmt[] = "Pixel/AdditionalPixelErrors/FED_%d/FedETypeNErrArray_%d";
              char buf[sizeof(fmt) + 2*32]; // 32 digits is enough for up to 2^105 + sign.
              sprintf(buf, fmt, FedId, messageType);
              hid = buf;
              meFedETypeNErrArray_[messageType] = theDMBE->get(hid); 
              if(meFedETypeNErrArray_[messageType]) meFedETypeNErrArray_[messageType]->Fill(meFedETypeNErrArray_[messageType]->getIntValue()+1);
            }
          }//end if bad channel
        }//end if not 30 || notReset
      }//end if
    }//end for
    if(numberOfSeriousErrors>0) (meNErrors_)->Fill((float)numberOfSeriousErrors);

  }// end if not an empty iterator
  
//std::cout<<"...leaving   SiPixelRawDataErrorModule::fillFED. "<<std::endl;
  return numberOfSeriousErrors;
}

Member Data Documentation

Definition at line 56 of file SiPixelRawDataErrorModule.h.

Referenced by SiPixelRawDataErrorModule().

const int SiPixelRawDataErrorModule::ADC_bits = 8 [private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

const uint32_t SiPixelRawDataErrorModule::ADC_mask = ~(~uint32_t(0) << ADC_bits) [private]

Definition at line 90 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

const int SiPixelRawDataErrorModule::ADC_shift = 0 [private]

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

const int SiPixelRawDataErrorModule::DataBit_bits = 1 [private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

const uint32_t SiPixelRawDataErrorModule::DataBit_mask = ~(~uint32_t(0) << DataBit_bits) [private]

Definition at line 90 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

const int SiPixelRawDataErrorModule::DB0_shift = 0 [private]

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

const int SiPixelRawDataErrorModule::DCOL_bits = 5 [private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

const uint32_t SiPixelRawDataErrorModule::DCOL_mask = ~(~uint32_t(0) << DCOL_bits) [private]

Definition at line 90 of file SiPixelRawDataErrorModule.h.

Definition at line 89 of file SiPixelRawDataErrorModule.h.

const int SiPixelRawDataErrorModule::EVTLGT_bits = 24 [private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

const long long SiPixelRawDataErrorModule::EVTLGT_mask = ~(~(long long)(0) << EVTLGT_bits) [private]

Definition at line 91 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

uint32_t SiPixelRawDataErrorModule::id_ [private]

Definition at line 53 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), fill(), and fillFED().

const int SiPixelRawDataErrorModule::LINK_bits = 6 [static, private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

const uint32_t SiPixelRawDataErrorModule::LINK_mask = ~(~uint32_t(0) << LINK_bits) [static, private]

Definition at line 90 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

const int SiPixelRawDataErrorModule::LINK_shift = ROC_shift + ROC_bits [static, private]

Definition at line 89 of file SiPixelRawDataErrorModule.h.

Referenced by fill(), and fillFED().

Definition at line 59 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), and fillFED().

Definition at line 80 of file SiPixelRawDataErrorModule.h.

Definition at line 71 of file SiPixelRawDataErrorModule.h.

Definition at line 64 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), and fillFED().

Definition at line 85 of file SiPixelRawDataErrorModule.h.

Definition at line 76 of file SiPixelRawDataErrorModule.h.

Definition at line 65 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), and fillFED().

Definition at line 86 of file SiPixelRawDataErrorModule.h.

Definition at line 77 of file SiPixelRawDataErrorModule.h.

Definition at line 67 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), fill(), and fillFED().

Definition at line 66 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), fill(), and fillFED().

Definition at line 68 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), fill(), and fillFED().

Definition at line 61 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), fill(), and fillFED().

Definition at line 82 of file SiPixelRawDataErrorModule.h.

Definition at line 73 of file SiPixelRawDataErrorModule.h.

Definition at line 60 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), and fillFED().

Definition at line 81 of file SiPixelRawDataErrorModule.h.

Definition at line 72 of file SiPixelRawDataErrorModule.h.

Definition at line 62 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), and fillFED().

Definition at line 83 of file SiPixelRawDataErrorModule.h.

Definition at line 74 of file SiPixelRawDataErrorModule.h.

Definition at line 63 of file SiPixelRawDataErrorModule.h.

Referenced by bookFED(), and fillFED().

Definition at line 84 of file SiPixelRawDataErrorModule.h.

Definition at line 75 of file SiPixelRawDataErrorModule.h.

Definition at line 54 of file SiPixelRawDataErrorModule.h.

Definition at line 55 of file SiPixelRawDataErrorModule.h.

const int SiPixelRawDataErrorModule::PXID_bits = 8 [private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

const uint32_t SiPixelRawDataErrorModule::PXID_mask = ~(~uint32_t(0) << PXID_bits) [private]

Definition at line 90 of file SiPixelRawDataErrorModule.h.

Definition at line 89 of file SiPixelRawDataErrorModule.h.

const int SiPixelRawDataErrorModule::ROC_bits = 5 [private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

const uint32_t SiPixelRawDataErrorModule::ROC_mask = ~(~uint32_t(0) << ROC_bits) [private]

Definition at line 90 of file SiPixelRawDataErrorModule.h.

Definition at line 89 of file SiPixelRawDataErrorModule.h.

const int SiPixelRawDataErrorModule::TRLRBGN_bits = 32 [private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

const long long SiPixelRawDataErrorModule::TRLRBGN_mask = ~(~(long long)(0) << TRLRBGN_bits) [static, private]

Definition at line 91 of file SiPixelRawDataErrorModule.h.

Definition at line 89 of file SiPixelRawDataErrorModule.h.

const int SiPixelRawDataErrorModule::TRLREND_bits = 8 [private]

Definition at line 88 of file SiPixelRawDataErrorModule.h.

const long long SiPixelRawDataErrorModule::TRLREND_mask = ~(~(long long)(0) << TRLREND_bits) [private]

Definition at line 91 of file SiPixelRawDataErrorModule.h.

Definition at line 89 of file SiPixelRawDataErrorModule.h.