CMS 3D CMS Logo

CSCDDUHeader.h
Go to the documentation of this file.
1 /* CSCDDUHeader 4/24/03 A.Tumanov
2  * documented at http://www.physics.ohio-state.edu/~cms/ddu/
3  */
4 
5 #ifndef EventFilter_CSCRawToDigi_CSCDDUHeader_h
6 #define EventFilter_CSCRawToDigi_CSCDDUHeader_h
8 #include <cstring>
9 #include <cstdint>
10 
11 class CSCDDUHeader {
12 public:
13  CSCDDUHeader();
14  CSCDDUHeader(unsigned bx, unsigned l1num, unsigned sourceId, unsigned fmt_version = 0x6);
15  CSCDDUHeader(const CSCDDUStatusDigi& digi) { memcpy(this, digi.header(), sizeInWords() * 2); }
16 
17  void setFromBuffer(uint16_t const* buf) { memcpy(this, buf, sizeInWords() * 2); }
18 
19  // Getters
20  int s_link_status() const { return s_link_status_; }
21  int format_version() const { return format_version_; }
22  int source_id() const { return source_id_; }
23  int bxnum() const { return bxnum_; }
24  int lvl1num() const { return lvl1num_; }
25  int event_type() const { return event_type_; }
26  int ncsc() const { return ncsc_; }
27  int dmb_dav() const { return dmb_dav_; }
28  int dmb_full() const { return dmb_full_; }
29  int live_cscs() const { return live_cscs_; }
30  int output_path_status() const { return output_path_; }
31  static unsigned sizeInWords() { return 12; }
32 
33  // Setters
34  void setDMBDAV(int dduInput);
35  void setSourceId(unsigned sourceId) { source_id_ = sourceId; }
36  void setFormatVersion(unsigned version) { format_version_ = version & 0xF; }
37  void setBXN(unsigned bxn) { bxnum_ = bxn & 0xFFF; }
38  void setL1A(unsigned l1a) { lvl1num_ = l1a & 0xFFFFFF; }
39  void setEventType(unsigned evt_type) { event_type_ = evt_type & 0xF; }
40  void setTTSStatus(unsigned status) { tts_status_ = status & 0xF; }
41  void setBOEStatus(unsigned status) { boe_status_ = status & 0x7F; }
42  void setOutputPathStatus(unsigned status) { output_path_ = status & 0xFF; }
43 
44  unsigned short* data() { return (unsigned short*)this; }
45  bool check() const;
46 
47  // gets some data filled by the event data
48  friend class CSCDDUEventData;
49 
50 private:
52  void init();
53 
54  unsigned s_link_status_ : 4;
55  unsigned format_version_ : 4;
56  unsigned source_id_ : 12;
57  unsigned bxnum_ : 12;
58 
59  unsigned lvl1num_ : 24;
60  unsigned event_type_ : 4;
62  unsigned bit64_ : 4;
63 
65  unsigned dmb_full_ : 16;
66  unsigned header2_1_ : 16;
67  unsigned header2_2_ : 16;
68  unsigned header2_3_ : 16;
69 
70  unsigned ncsc_ : 4;
71  unsigned tts_status_ : 4;
72  unsigned boe_status_ : 8;
73  unsigned dmb_dav_ : 16;
74  unsigned output_path_ : 16;
75  unsigned live_cscs_ : 16;
76 };
77 #endif
unsigned source_id_
Definition: CSCDDUHeader.h:56
unsigned dmb_dav_
Definition: CSCDDUHeader.h:73
void setFromBuffer(uint16_t const *buf)
Definition: CSCDDUHeader.h:17
unsigned lvl1num_
Definition: CSCDDUHeader.h:59
void setSourceId(unsigned sourceId)
Definition: CSCDDUHeader.h:35
void setBXN(unsigned bxn)
Definition: CSCDDUHeader.h:37
unsigned s_link_status_
Definition: CSCDDUHeader.h:54
int bxnum() const
Definition: CSCDDUHeader.h:23
void setDMBDAV(int dduInput)
Definition: CSCDDUHeader.cc:26
int s_link_status() const
Definition: CSCDDUHeader.h:20
int event_type() const
Definition: CSCDDUHeader.h:25
unsigned header2_3_
Definition: CSCDDUHeader.h:68
const uint16_t * header() const
Data Accessors.
int output_path_status() const
Definition: CSCDDUHeader.h:30
int source_id() const
Definition: CSCDDUHeader.h:22
unsigned output_path_
Definition: CSCDDUHeader.h:74
unsigned header2_2_
Definition: CSCDDUHeader.h:67
unsigned ncsc_
Definition: CSCDDUHeader.h:70
unsigned event_type_
Definition: CSCDDUHeader.h:60
unsigned header2_1_
Definition: CSCDDUHeader.h:66
void setBOEStatus(unsigned status)
Definition: CSCDDUHeader.h:41
unsigned live_cscs_
Definition: CSCDDUHeader.h:75
void setOutputPathStatus(unsigned status)
Definition: CSCDDUHeader.h:42
int dmb_full() const
Definition: CSCDDUHeader.h:28
unsigned format_version_
Definition: CSCDDUHeader.h:55
int ncsc() const
Definition: CSCDDUHeader.h:26
unsigned bit64_
should always be 5
Definition: CSCDDUHeader.h:62
void init()
initializes constants
Definition: CSCDDUHeader.cc:20
unsigned dmb_full_
should be 8000/0001/8000
Definition: CSCDDUHeader.h:65
int live_cscs() const
Definition: CSCDDUHeader.h:29
void setTTSStatus(unsigned status)
Definition: CSCDDUHeader.h:40
static unsigned sizeInWords()
Definition: CSCDDUHeader.h:31
int dmb_dav() const
Definition: CSCDDUHeader.h:27
int format_version() const
Definition: CSCDDUHeader.h:21
int lvl1num() const
Definition: CSCDDUHeader.h:24
unsigned boe_status_
Definition: CSCDDUHeader.h:72
unsigned bxnum_
Definition: CSCDDUHeader.h:57
CSCDDUHeader(const CSCDDUStatusDigi &digi)
Definition: CSCDDUHeader.h:15
unsigned tts_status_
Definition: CSCDDUHeader.h:71
unsigned short * data()
Definition: CSCDDUHeader.h:44
void setL1A(unsigned l1a)
Definition: CSCDDUHeader.h:38
void setEventType(unsigned evt_type)
Definition: CSCDDUHeader.h:39
bool check() const
Definition: CSCDDUHeader.cc:43
void setFormatVersion(unsigned version)
Definition: CSCDDUHeader.h:36