CMS 3D CMS Logo

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

#include <CSCALCTTrailer.h>

Public Member Functions

unsigned alctCRCCheck () const
 
CSCALCTTrailer2006 alctTrailer2006 ()
 
CSCALCTTrailer2007 alctTrailer2007 ()
 
bool check () const
 
 CSCALCTTrailer (int size, int firmVersion)
 needed for packing More...
 
 CSCALCTTrailer (const unsigned short *buf)
 
 CSCALCTTrailer (const CSCALCTStatusDigi &digi)
 
unsigned short * data ()
 
unsigned FrameCount () const
 
int getCRC ()
 
int wordCount () const
 

Static Public Member Functions

static void setDebug (bool debugValue)
 
static int sizeInWords ()
 in 16-bit frames More...
 

Private Attributes

unsigned short int theOriginalBuffer [4]
 
CSCALCTTrailer2006 trailer2006
 
CSCALCTTrailer2007 trailer2007
 

Static Private Attributes

static std::atomic< bool > debug {false}
 
static std::atomic< unsigned
short int > 
firmwareVersion {2006}
 

Detailed Description

Definition at line 39 of file CSCALCTTrailer.h.

Constructor & Destructor Documentation

CSCALCTTrailer::CSCALCTTrailer ( int  size,
int  firmVersion 
)

needed for packing

needed for packing

Definition at line 33 of file CSCALCTTrailer.cc.

References firmwareVersion, CSCALCTTrailer2006::setSize(), CSCALCTTrailer2007::setSize(), trailer2006, and trailer2007.

Referenced by CSCALCTTrailer().

34 {
35  if(firmVersion == 2006)
36  {
38  firmwareVersion = 2006;
39  }
40  else if (firmVersion == 2007)
41  {
43  firmwareVersion = 2007;
44  }
45  else {
46  edm::LogError("CSCALCTTrailer|CSCRawToDigi") <<"failed to construct: undetermined ALCT firmware version!!" << firmVersion;
47  }
48 
49 }
static std::atomic< unsigned short int > firmwareVersion
CSCALCTTrailer2007 trailer2007
CSCALCTTrailer2006 trailer2006
void setSize(int size)
void setSize(int size)
tuple size
Write out results.
CSCALCTTrailer::CSCALCTTrailer ( const unsigned short *  buf)

determine the version first

Now fill data

Definition at line 51 of file CSCALCTTrailer.cc.

References firmwareVersion, CSCALCTTrailer2006::sizeInWords(), CSCALCTTrailer2007::sizeInWords(), trailer2006, and trailer2007.

51  {
53  if ((buf[0]==0xDE0D)&&((buf[1]&0xF000)==0xD000)) {
54  firmwareVersion=2007;
55  }
56  else if ( (buf[2]&0xFFF)==0xE0D ) {
57  firmwareVersion=2006;
58  }
59  else {
60  edm::LogError("CSCALCTTrailer|CSCRawToDigi") <<"failed to construct: undetermined ALCT firmware version!!" << firmwareVersion;
61  }
62 
64  switch (firmwareVersion.load()) {
65  case 2006:
66  memcpy(&trailer2006, buf, trailer2006.sizeInWords()*2);
67  break;
68  case 2007:
69  memcpy(&trailer2007, buf, trailer2007.sizeInWords()*2);
70  break;
71  default:
72  edm::LogError("CSCALCTTrailer|CSCRawToDigi")
73  <<"couldn't construct: ALCT firmware version is bad/not defined!";
74  break;
75  }
76 }
short unsigned int sizeInWords() const
static std::atomic< unsigned short int > firmwareVersion
CSCALCTTrailer2007 trailer2007
CSCALCTTrailer2006 trailer2006
short unsigned int sizeInWords() const
CSCALCTTrailer::CSCALCTTrailer ( const CSCALCTStatusDigi digi)
inline

Definition at line 45 of file CSCALCTTrailer.h.

References CSCALCTTrailer(), and CSCALCTStatusDigi::trailer().

45  {
46  CSCALCTTrailer(digi.trailer());
47  }
const uint16_t * trailer() const
CSCALCTTrailer(int size, int firmVersion)
needed for packing

Member Function Documentation

unsigned CSCALCTTrailer::alctCRCCheck ( ) const
inline

Definition at line 109 of file CSCALCTTrailer.h.

References firmwareVersion, CSCALCTTrailer2006::reserved_3, CSCALCTTrailer2007::reserved_3, trailer2006, and trailer2007.

109  {
110  switch (firmwareVersion.load()) {
111  case 2006:
112  return trailer2006.reserved_3;
113  case 2007:
114  return trailer2007.reserved_3;
115  default:
116  edm::LogError("CSCALCTTrailer|CSCRawToDigi")
117  <<"couldn't CRCcheck: ALCT firmware version is bad/not defined!";
118  return 0;
119  }
120  }
static std::atomic< unsigned short int > firmwareVersion
CSCALCTTrailer2007 trailer2007
CSCALCTTrailer2006 trailer2006
CSCALCTTrailer2006 CSCALCTTrailer::alctTrailer2006 ( )
inline

Definition at line 124 of file CSCALCTTrailer.h.

References trailer2006.

124 {return trailer2006;}
CSCALCTTrailer2006 trailer2006
CSCALCTTrailer2007 CSCALCTTrailer::alctTrailer2007 ( )
inline

Definition at line 125 of file CSCALCTTrailer.h.

References trailer2007.

125 {return trailer2007;}
CSCALCTTrailer2007 trailer2007
bool CSCALCTTrailer::check ( ) const
inline

Definition at line 83 of file CSCALCTTrailer.h.

References CSCALCTTrailer2006::e0dLine, CSCALCTTrailer2007::e0dLine, firmwareVersion, trailer2006, and trailer2007.

83  {
84  switch (firmwareVersion.load()) {
85  case 2006:
86  return (trailer2006.e0dLine & 0xfff) == 0xe0d;
87  case 2007:
88  return (trailer2007.e0dLine & 0xffff) == 0xde0d;
89  default:
90  edm::LogError("CSCALCTTrailer|CSCRawToDigi")
91  <<"couldn't check: ALCT firmware version is bad/not defined!";
92  return 0;
93  }
94  }
static std::atomic< unsigned short int > firmwareVersion
CSCALCTTrailer2007 trailer2007
CSCALCTTrailer2006 trailer2006
unsigned short* CSCALCTTrailer::data ( )
inline

Definition at line 51 of file CSCALCTTrailer.h.

References firmwareVersion, CSCALCTTrailer2006::sizeInWords(), CSCALCTTrailer2007::sizeInWords(), theOriginalBuffer, trailer2006, and trailer2007.

Referenced by cuy.FindIssue::__init__(), and CSCEventData::pack().

51  {
52  switch (firmwareVersion.load()) {
53  case 2006:
55  break;
56  case 2007:
58  break;
59  default:
60  edm::LogError("CSCALCTTrailer|CSCRawToDigi")
61  <<"couldn't access data: ALCT firmware version is bad/not defined!";
62  break;
63  }
64  return theOriginalBuffer;
65  }
short unsigned int sizeInWords() const
static std::atomic< unsigned short int > firmwareVersion
CSCALCTTrailer2007 trailer2007
CSCALCTTrailer2006 trailer2006
short unsigned int sizeInWords() const
unsigned short int theOriginalBuffer[4]
unsigned CSCALCTTrailer::FrameCount ( ) const
inline

Definition at line 122 of file CSCALCTTrailer.h.

References wordCount().

122 { return wordCount(); }
int wordCount() const
int CSCALCTTrailer::getCRC ( )
inline

Definition at line 70 of file CSCALCTTrailer.h.

References CSCALCTTrailer2006::crc0, CSCALCTTrailer2007::crc0, CSCALCTTrailer2006::crc1, CSCALCTTrailer2007::crc1, firmwareVersion, trailer2006, and trailer2007.

70  {
71  switch (firmwareVersion.load()) {
72  case 2006:
73  return ((trailer2006.crc1&0x7ff)<<11) | (trailer2006.crc0&0x7ff);
74  case 2007:
75  return ((trailer2007.crc1&0x7ff)<<11) | (trailer2007.crc0&0x7ff);
76  default:
77  edm::LogError("CSCALCTTrailer|CSCRawToDigi")
78  <<"couldn't getCRC: ALCT firmware version is bad/not defined!";
79  return 0;
80  }
81  }
static std::atomic< unsigned short int > firmwareVersion
CSCALCTTrailer2007 trailer2007
CSCALCTTrailer2006 trailer2006
static void CSCALCTTrailer::setDebug ( bool  debugValue)
inlinestatic

Definition at line 49 of file CSCALCTTrailer.h.

References debug.

49 {debug = debugValue;}
static std::atomic< bool > debug
static int CSCALCTTrailer::sizeInWords ( )
inlinestatic

in 16-bit frames

Definition at line 68 of file CSCALCTTrailer.h.

Referenced by CSCEventData::checkALCTClasses(), CSCEventData::pack(), and CSCEventData::unpack_data().

68 {return 4;}
int CSCALCTTrailer::wordCount ( ) const
inline

Definition at line 96 of file CSCALCTTrailer.h.

References firmwareVersion, CSCALCTTrailer2006::frameCount, CSCALCTTrailer2007::frameCount, trailer2006, and trailer2007.

Referenced by FrameCount(), and cscdqm::EventProcessor::processCSC().

96  {
97  switch (firmwareVersion.load()) {
98  case 2006:
99  return trailer2006.frameCount;
100  case 2007:
101  return trailer2007.frameCount;
102  default:
103  edm::LogError("CSCALCTTrailer|CSCRawToDigi")
104  <<"couldn't wordCount: ALCT firmware version is bad/not defined!";
105  return 0;
106  }
107  }
static std::atomic< unsigned short int > firmwareVersion
CSCALCTTrailer2007 trailer2007
CSCALCTTrailer2006 trailer2006

Member Data Documentation

std::atomic< bool > CSCALCTTrailer::debug {false}
staticprivate
std::atomic< short unsigned int > CSCALCTTrailer::firmwareVersion {2006}
staticprivate

Definition at line 129 of file CSCALCTTrailer.h.

Referenced by alctCRCCheck(), check(), CSCALCTTrailer(), data(), getCRC(), and wordCount().

unsigned short int CSCALCTTrailer::theOriginalBuffer[4]
private

Definition at line 132 of file CSCALCTTrailer.h.

Referenced by data().

CSCALCTTrailer2006 CSCALCTTrailer::trailer2006
private
CSCALCTTrailer2007 CSCALCTTrailer::trailer2007
private