CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
sistrip::FEDStatusRegister Class Reference

#include <SiStripFEDBufferComponents.h>

Public Member Functions

bool feDataMissingFlag (const uint8_t internalFEUnitNum) const
 
 FEDStatusRegister (const uint16_t fedStatusRegister)
 
 FEDStatusRegister (const FEDBufferState qdrMemoryBufferState=BUFFER_STATE_UNSET, const FEDBufferState l1aBxFIFOBufferState=BUFFER_STATE_UNSET, const bool trackerHeaderMonitorDataReadyFlagSet=false, const bool slinkFullFlagSet=false)
 
bool l1aBxFIFOEmptyFlag () const
 
bool l1aBxFIFOFullFlag () const
 
bool l1aBxFIFOPartialFullFlag () const
 
FEDBufferState l1aBxFIFOState () const
 
 operator uint16_t () const
 
void print (std::ostream &os) const
 
void printFlags (std::ostream &os) const
 
bool qdrMemoryEmptyFlag () const
 
bool qdrMemoryFullFlag () const
 
bool qdrMemoryPartialFullFlag () const
 
FEDBufferState qdrMemoryState () const
 
FEDStatusRegistersetL1ABXFIFOBufferState (const FEDBufferState state)
 
FEDStatusRegistersetQDRMemoryBufferState (const FEDBufferState state)
 
FEDStatusRegistersetSLinkFullFlag (const bool bitSet)
 
FEDStatusRegistersetTrackerHeaderMonitorDataReadyFlag (const bool bitSet)
 
bool slinkFullFlag () const
 
bool trackerHeaderMonitorDataReadyFlag () const
 

Private Member Functions

bool getBit (const uint8_t num) const
 
void setBit (const uint8_t num, const bool bitSet)
 
void setL1ABXFIFOEmptyFlag (const bool bitSet)
 
void setL1ABXFIFOFullFlag (const bool bitSet)
 
void setL1ABXFIFOPartialFullFlag (const bool bitSet)
 
void setQDRMemoryEmptyFlag (const bool bitSet)
 
void setQDRMemoryFullFlag (const bool bitSet)
 
void setQDRMemoryPartialFullFlag (const bool bitSet)
 

Private Attributes

uint16_t data_
 

Detailed Description

Definition at line 218 of file SiStripFEDBufferComponents.h.

Constructor & Destructor Documentation

sistrip::FEDStatusRegister::FEDStatusRegister ( const uint16_t  fedStatusRegister)
inline

Definition at line 783 of file SiStripFEDBufferComponents.h.

784  : data_(fedStatusRegister) { }
sistrip::FEDStatusRegister::FEDStatusRegister ( const FEDBufferState  qdrMemoryBufferState = BUFFER_STATE_UNSET,
const FEDBufferState  l1aBxFIFOBufferState = BUFFER_STATE_UNSET,
const bool  trackerHeaderMonitorDataReadyFlagSet = false,
const bool  slinkFullFlagSet = false 
)
inline

Definition at line 848 of file SiStripFEDBufferComponents.h.

References setL1ABXFIFOBufferState(), setQDRMemoryBufferState(), setSLinkFullFlag(), and setTrackerHeaderMonitorDataReadyFlag().

850  : data_(0x0000)
851  {
852  setSLinkFullFlag(slinkFullFlagSet);
853  setTrackerHeaderMonitorDataReadyFlag(trackerHeaderMonitorDataReadyFlagSet);
854  setQDRMemoryBufferState(qdrMemoryBufferState);
855  setL1ABXFIFOBufferState(l1aBxFIFOBufferState);
856  }
FEDStatusRegister & setTrackerHeaderMonitorDataReadyFlag(const bool bitSet)
FEDStatusRegister & setSLinkFullFlag(const bool bitSet)
FEDStatusRegister & setL1ABXFIFOBufferState(const FEDBufferState state)
FEDStatusRegister & setQDRMemoryBufferState(const FEDBufferState state)

Member Function Documentation

bool sistrip::FEDStatusRegister::feDataMissingFlag ( const uint8_t  internalFEUnitNum) const
inline

Definition at line 816 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by sistrip::FEDBuffer::FEDBuffer(), and printFlags().

817  {
818  return getBit(8+internalFEUnitNum);
819  }
bool getBit(const uint8_t num) const
bool sistrip::FEDStatusRegister::getBit ( const uint8_t  num) const
inlineprivate
bool sistrip::FEDStatusRegister::l1aBxFIFOEmptyFlag ( ) const
inline

Definition at line 813 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by l1aBxFIFOState(), and printFlags().

814  { return getBit(7); }
bool getBit(const uint8_t num) const
bool sistrip::FEDStatusRegister::l1aBxFIFOFullFlag ( ) const
inline

Definition at line 807 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by l1aBxFIFOState(), and printFlags().

808  { return getBit(5); }
bool getBit(const uint8_t num) const
bool sistrip::FEDStatusRegister::l1aBxFIFOPartialFullFlag ( ) const
inline

Definition at line 810 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by l1aBxFIFOState(), and printFlags().

811  { return getBit(6); }
bool getBit(const uint8_t num) const
FEDBufferState sistrip::FEDStatusRegister::l1aBxFIFOState ( ) const
sistrip::FEDStatusRegister::operator uint16_t ( ) const
inline

Definition at line 786 of file SiStripFEDBufferComponents.h.

787  { return data_; }
void sistrip::FEDStatusRegister::print ( std::ostream &  os) const
inline

Definition at line 821 of file SiStripFEDBufferComponents.h.

References data_, and sistrip::printHex().

Referenced by sistrip::operator<<().

822  { printHex(&data_,2,os); }
void printHex(const void *pointer, const size_t length, std::ostream &os)
void sistrip::FEDStatusRegister::printFlags ( std::ostream &  os) const

Definition at line 438 of file SiStripFEDBufferComponents.cc.

References feDataMissingFlag(), sistrip::FEUNITS_PER_FED, l1aBxFIFOEmptyFlag(), l1aBxFIFOFullFlag(), l1aBxFIFOPartialFullFlag(), qdrMemoryEmptyFlag(), qdrMemoryFullFlag(), qdrMemoryPartialFullFlag(), slinkFullFlag(), and trackerHeaderMonitorDataReadyFlag().

Referenced by sistrip::FEDBufferBase::print().

439  {
440  if (slinkFullFlag()) os << "SLINK_FULL ";
441  if (trackerHeaderMonitorDataReadyFlag()) os << "HEADER_MONITOR_READY ";
442  if (qdrMemoryFullFlag()) os << "QDR_FULL ";
443  if (qdrMemoryPartialFullFlag()) os << "QDR_PARTIAL_FULL ";
444  if (qdrMemoryEmptyFlag()) os << "QDR_EMPTY ";
445  if (l1aBxFIFOFullFlag()) os << "L1A_FULL ";
446  if (l1aBxFIFOPartialFullFlag()) os << "L1A_PARTIAL_FULL ";
447  if (l1aBxFIFOEmptyFlag()) os << "L1A_EMPTY ";
448  for (uint8_t iFE = 0; iFE < FEUNITS_PER_FED; iFE++) {
449  if (feDataMissingFlag(iFE)) os << "FEUNIT" << uint16_t(iFE) << "MISSING ";
450  }
451  }
bool feDataMissingFlag(const uint8_t internalFEUnitNum) const
static const uint16_t FEUNITS_PER_FED
bool sistrip::FEDStatusRegister::qdrMemoryEmptyFlag ( ) const
inline

Definition at line 804 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by printFlags(), and qdrMemoryState().

805  { return getBit(4); }
bool getBit(const uint8_t num) const
bool sistrip::FEDStatusRegister::qdrMemoryFullFlag ( ) const
inline

Definition at line 798 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by printFlags(), and qdrMemoryState().

799  { return getBit(2); }
bool getBit(const uint8_t num) const
bool sistrip::FEDStatusRegister::qdrMemoryPartialFullFlag ( ) const
inline

Definition at line 801 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by printFlags(), and qdrMemoryState().

802  { return getBit(3); }
bool getBit(const uint8_t num) const
FEDBufferState sistrip::FEDStatusRegister::qdrMemoryState ( ) const
void sistrip::FEDStatusRegister::setBit ( const uint8_t  num,
const bool  bitSet 
)
private

Definition at line 471 of file SiStripFEDBufferComponents.cc.

References data_.

Referenced by setL1ABXFIFOEmptyFlag(), setL1ABXFIFOFullFlag(), setL1ABXFIFOPartialFullFlag(), setQDRMemoryEmptyFlag(), setQDRMemoryFullFlag(), setQDRMemoryPartialFullFlag(), setSLinkFullFlag(), and setTrackerHeaderMonitorDataReadyFlag().

472  {
473  const uint16_t mask = (0x0001 << num);
474  if (bitSet) data_ |= mask;
475  else data_ &= (~mask);
476  }
long long int num
Definition: procUtils.cc:71
FEDStatusRegister & sistrip::FEDStatusRegister::setL1ABXFIFOBufferState ( const FEDBufferState  state)

Definition at line 498 of file SiStripFEDBufferComponents.cc.

References sistrip::BUFFER_STATE_EMPTY, sistrip::BUFFER_STATE_FULL, sistrip::BUFFER_STATE_PARTIAL_FULL, sistrip::BUFFER_STATE_UNSET, edm::hlt::Exception, sistrip::printHex(), setL1ABXFIFOEmptyFlag(), setL1ABXFIFOFullFlag(), and setL1ABXFIFOPartialFullFlag().

Referenced by FEDStatusRegister().

499  {
500  switch (state) {
501  case BUFFER_STATE_FULL:
503  case BUFFER_STATE_EMPTY:
504  case BUFFER_STATE_UNSET:
505  break;
506  default:
507  std::ostringstream ss;
508  ss << "Invalid buffer state: ";
509  printHex(&state,1,ss);
510  throw cms::Exception("FEDBuffer") << ss.str();
511  }
515  return *this;
516  }
void setL1ABXFIFOFullFlag(const bool bitSet)
void setL1ABXFIFOPartialFullFlag(const bool bitSet)
void printHex(const void *pointer, const size_t length, std::ostream &os)
char state
Definition: procUtils.cc:75
void setL1ABXFIFOEmptyFlag(const bool bitSet)
void sistrip::FEDStatusRegister::setL1ABXFIFOEmptyFlag ( const bool  bitSet)
inlineprivate

Definition at line 845 of file SiStripFEDBufferComponents.h.

References setBit().

Referenced by setL1ABXFIFOBufferState().

846  { setBit(7,bitSet); }
void setBit(const uint8_t num, const bool bitSet)
void sistrip::FEDStatusRegister::setL1ABXFIFOFullFlag ( const bool  bitSet)
inlineprivate

Definition at line 839 of file SiStripFEDBufferComponents.h.

References setBit().

Referenced by setL1ABXFIFOBufferState().

840  { setBit(5,bitSet); }
void setBit(const uint8_t num, const bool bitSet)
void sistrip::FEDStatusRegister::setL1ABXFIFOPartialFullFlag ( const bool  bitSet)
inlineprivate

Definition at line 842 of file SiStripFEDBufferComponents.h.

References setBit().

Referenced by setL1ABXFIFOBufferState().

843  { setBit(6,bitSet); }
void setBit(const uint8_t num, const bool bitSet)
FEDStatusRegister & sistrip::FEDStatusRegister::setQDRMemoryBufferState ( const FEDBufferState  state)

Definition at line 478 of file SiStripFEDBufferComponents.cc.

References sistrip::BUFFER_STATE_EMPTY, sistrip::BUFFER_STATE_FULL, sistrip::BUFFER_STATE_PARTIAL_FULL, sistrip::BUFFER_STATE_UNSET, edm::hlt::Exception, sistrip::printHex(), setQDRMemoryEmptyFlag(), setQDRMemoryFullFlag(), and setQDRMemoryPartialFullFlag().

Referenced by FEDStatusRegister().

479  {
480  switch (state) {
481  case BUFFER_STATE_FULL:
483  case BUFFER_STATE_EMPTY:
484  case BUFFER_STATE_UNSET:
485  break;
486  default:
487  std::ostringstream ss;
488  ss << "Invalid buffer state: ";
489  printHex(&state,1,ss);
490  throw cms::Exception("FEDBuffer") << ss.str();
491  }
495  return *this;
496  }
void setQDRMemoryEmptyFlag(const bool bitSet)
void setQDRMemoryFullFlag(const bool bitSet)
void printHex(const void *pointer, const size_t length, std::ostream &os)
char state
Definition: procUtils.cc:75
void setQDRMemoryPartialFullFlag(const bool bitSet)
void sistrip::FEDStatusRegister::setQDRMemoryEmptyFlag ( const bool  bitSet)
inlineprivate

Definition at line 836 of file SiStripFEDBufferComponents.h.

References setBit().

Referenced by setQDRMemoryBufferState().

837  { setBit(4,bitSet); }
void setBit(const uint8_t num, const bool bitSet)
void sistrip::FEDStatusRegister::setQDRMemoryFullFlag ( const bool  bitSet)
inlineprivate

Definition at line 830 of file SiStripFEDBufferComponents.h.

References setBit().

Referenced by setQDRMemoryBufferState().

831  { setBit(2,bitSet); }
void setBit(const uint8_t num, const bool bitSet)
void sistrip::FEDStatusRegister::setQDRMemoryPartialFullFlag ( const bool  bitSet)
inlineprivate

Definition at line 833 of file SiStripFEDBufferComponents.h.

References setBit().

Referenced by setQDRMemoryBufferState().

834  { setBit(3,bitSet); }
void setBit(const uint8_t num, const bool bitSet)
FEDStatusRegister & sistrip::FEDStatusRegister::setSLinkFullFlag ( const bool  bitSet)
inline

Definition at line 824 of file SiStripFEDBufferComponents.h.

References setBit().

Referenced by FEDStatusRegister().

825  { setBit(0,bitSet); return *this; }
void setBit(const uint8_t num, const bool bitSet)
FEDStatusRegister & sistrip::FEDStatusRegister::setTrackerHeaderMonitorDataReadyFlag ( const bool  bitSet)
inline

Definition at line 827 of file SiStripFEDBufferComponents.h.

References setBit().

Referenced by FEDStatusRegister().

828  { setBit(1,bitSet); return *this; }
void setBit(const uint8_t num, const bool bitSet)
bool sistrip::FEDStatusRegister::slinkFullFlag ( ) const
inline

Definition at line 792 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by printFlags().

793  { return getBit(0); }
bool getBit(const uint8_t num) const
bool sistrip::FEDStatusRegister::trackerHeaderMonitorDataReadyFlag ( ) const
inline

Definition at line 795 of file SiStripFEDBufferComponents.h.

References getBit().

Referenced by printFlags().

796  { return getBit(1); }
bool getBit(const uint8_t num) const

Member Data Documentation

uint16_t sistrip::FEDStatusRegister::data_
private

Definition at line 254 of file SiStripFEDBufferComponents.h.

Referenced by getBit(), print(), and setBit().