CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CSCDMBHeader.h
Go to the documentation of this file.
1 #ifndef CSCDMBHeader_h
2 #define CSCDMBHeader_h
3 
4 #include <cassert>
5 #include <iosfwd>
6 #include <string.h> // bzero
10 #include <boost/shared_ptr.hpp>
11 
12 class CSCDMBHeader2005;
13 class CSCDMBHeader2013;
14 
15 class CSCDMBHeader {
16 public:
17 
18  CSCDMBHeader(uint16_t firmware_version = 2005);
19 
20  CSCDMBHeader(unsigned short * buf, uint16_t firmware_version = 2005);
21 
23  {
24  memcpy(this, digi.header(), sizeInWords()*2);
25  }
26 
27 
28 
29  bool cfebAvailable(unsigned icfeb) {
30  assert (icfeb < (theFirmwareVersion==2013)?7:5);
31  return (theHeaderFormat->cfebAvailable() >> icfeb) & 1;
32  }
33 
34  void addCFEB(int icfeb) { theHeaderFormat->addCFEB(icfeb); }
35  void addNCLCT() { theHeaderFormat->addNCLCT();};
36 
37  void addNALCT() { theHeaderFormat->addNALCT(); };
38  void setBXN(int bxn) { theHeaderFormat->setBXN(bxn); };
39  void setL1A(int l1a) { theHeaderFormat->setL1A(l1a); };
40  void setL1A24(int l1a) { theHeaderFormat->setL1A24(l1a); };
41  void setCrateAddress(int crate, int dmbId) { theHeaderFormat->setCrateAddress(crate, dmbId); };
42  void setdmbID(int newDMBID) { theHeaderFormat->setdmbID(newDMBID); };
43  void setdmbVersion(unsigned int version) { theHeaderFormat->setdmbVersion(version); };
44 
45  unsigned cfebActive() const { return theHeaderFormat->cfebActive(); };
46  unsigned crateID() const { return theHeaderFormat->crateID(); };
47  unsigned dmbID() const { return theHeaderFormat->dmbID(); };
48  unsigned bxn() const { return theHeaderFormat->bxn(); };
49  unsigned bxn12() const { return theHeaderFormat->bxn12(); };
50  unsigned l1a() const { return theHeaderFormat->l1a(); };
51  unsigned l1a24() const { return theHeaderFormat->l1a24(); };
52  unsigned cfebAvailable() const { return theHeaderFormat->cfebAvailable(); };
53  unsigned nalct() const { return theHeaderFormat->nalct(); };
54  unsigned nclct() const { return theHeaderFormat->nclct(); };
55  unsigned cfebMovlp() const { return theHeaderFormat->cfebMovlp(); };
56  unsigned dmbCfebSync() const { return theHeaderFormat->dmbCfebSync(); };
57  unsigned activeDavMismatch() const { return theHeaderFormat->activeDavMismatch(); };
58 
59  unsigned sizeInWords() const { return theHeaderFormat->sizeInWords(); };
60  unsigned format_version() const { return theHeaderFormat->format_version(); };
61 
62  bool check() const { return theHeaderFormat->check(); };
63 
64  unsigned short * data() {return theHeaderFormat->data(); };
65  unsigned short * data() const {return theHeaderFormat->data(); };
66 
67 
68  //ostream & operator<<(ostream &, const CSCDMBHeader &);
69 
73 
74 
75  private:
76 
77  boost::shared_ptr<CSCVDMBHeaderFormat> theHeaderFormat;
79 
80 
81 };
82 
83 #endif
84 
int theFirmwareVersion
Definition: CSCDMBHeader.h:78
bool check() const
Definition: CSCDMBHeader.h:62
unsigned l1a() const
Definition: CSCDMBHeader.h:50
unsigned l1a24() const
Definition: CSCDMBHeader.h:51
unsigned nclct() const
Definition: CSCDMBHeader.h:54
unsigned cfebActive() const
Definition: CSCDMBHeader.h:45
void addNCLCT()
Definition: CSCDMBHeader.h:35
unsigned nalct() const
Definition: CSCDMBHeader.h:53
void setdmbVersion(unsigned int version)
Definition: CSCDMBHeader.h:43
void setL1A(int l1a)
Definition: CSCDMBHeader.h:39
unsigned cfebMovlp() const
Definition: CSCDMBHeader.h:55
boost::shared_ptr< CSCVDMBHeaderFormat > theHeaderFormat
Definition: CSCDMBHeader.h:77
void setBXN(int bxn)
Definition: CSCDMBHeader.h:38
CSCDMBHeader2005 dmbHeader2005() const
will throw if the cast fails
Definition: CSCDMBHeader.cc:30
CSCDMBHeader(const CSCDMBStatusDigi &digi)
Definition: CSCDMBHeader.h:22
unsigned sizeInWords() const
Definition: CSCDMBHeader.h:59
CSCDMBHeader2013 dmbHeader2013() const
Definition: CSCDMBHeader.cc:40
void addCFEB(int icfeb)
Definition: CSCDMBHeader.h:34
unsigned bxn12() const
Definition: CSCDMBHeader.h:49
void setCrateAddress(int crate, int dmbId)
Definition: CSCDMBHeader.h:41
unsigned format_version() const
Definition: CSCDMBHeader.h:60
unsigned crateID() const
Definition: CSCDMBHeader.h:46
unsigned bxn() const
Definition: CSCDMBHeader.h:48
unsigned short * data()
Definition: CSCDMBHeader.h:64
CSCDMBHeader(uint16_t firmware_version=2005)
Definition: CSCDMBHeader.cc:8
void setL1A24(int l1a)
Definition: CSCDMBHeader.h:40
unsigned cfebAvailable() const
Definition: CSCDMBHeader.h:52
unsigned short * data() const
Definition: CSCDMBHeader.h:65
unsigned dmbID() const
Definition: CSCDMBHeader.h:47
unsigned activeDavMismatch() const
Definition: CSCDMBHeader.h:57
void addNALCT()
Definition: CSCDMBHeader.h:37
unsigned dmbCfebSync() const
Definition: CSCDMBHeader.h:56
bool cfebAvailable(unsigned icfeb)
Definition: CSCDMBHeader.h:29
void setdmbID(int newDMBID)
Definition: CSCDMBHeader.h:42
const uint16_t * header() const
Data Accessors.