CMS 3D CMS Logo

CSCALCTHeader2006.h
Go to the documentation of this file.
1 #ifndef CSCRawToDigi_CSCALCTHeader2006_h
2 #define CSCRawToDigi_CSCALCTHeader2006_h
3 
4 #include <vector>
5 #include <strings.h>
7 class CSCDMBHeader;
8 
12  init();
13  }
14 
15  explicit CSCALCTHeader2006(int chamberType);
16 
17  void init() {
18  bzero(this, sizeInWords()*2);
19  }
20 
21  short unsigned int sizeInWords() const {
22  return 4;
23  }
24 
25  unsigned short int BXNCount() const { return bxnCount;}
26 
27  unsigned short nLCTChipRead() const;
28 
29  void setEventInformation(const CSCDMBHeader &);
30 
31  void setDAV(int afebBoard) {activeFEBs |= 1 << afebBoard;}
32 
34  unsigned l1Acc : 4;
36  unsigned cscID : 4;
38  unsigned boardID : 3;
40  unsigned flag_0 : 5;
41 
43  unsigned fifoMode : 2;
45  unsigned nTBins : 5;
47  unsigned l1aMatch : 1;
49  unsigned extTrig : 1;
51  unsigned promote1 : 1;
53  unsigned promote2 : 1;
55  unsigned reserved_1 : 3;
57  unsigned flag_1 : 2;
58 
60  unsigned bxnCount : 12;
62  unsigned reserved_2 : 2;
64  unsigned flag_2 : 2;
65 
67  unsigned lctChipRead : 7;
69  unsigned activeFEBs : 7;
71  unsigned flag_3 : 2;
72 
73 };
74 
75 
76 struct CSCALCTs2006 {
78  bzero(this, 8);
79  }
80 
81  short unsigned int sizeInWords() const {
82  return 4;
83  }
84 
85  std::vector<CSCALCTDigi> ALCTDigis() const;
86 
88  void add(const std::vector<CSCALCTDigi> & digis);
89  void addALCT0(const CSCALCTDigi & digi);
90  void addALCT1(const CSCALCTDigi & digi);
91 
94  unsigned alct0_valid : 1;
95  unsigned alct0_quality : 2;
96  unsigned alct0_accel : 1;
97  unsigned alct0_pattern : 1;
98  unsigned alct0_key_wire: 7;
99  unsigned alct0_bxn_low : 3;
101  unsigned flag_4 : 1;
102 
103  unsigned alct0_bxn_high :2;
104  unsigned alct0_reserved :13;
106  unsigned flag_5 : 1;
107 
109  unsigned alct1_valid : 1;
110  unsigned alct1_quality : 2;
111  unsigned alct1_accel : 1;
112  unsigned alct1_pattern : 1;
113  unsigned alct1_key_wire: 7;
114  unsigned alct1_bxn_low : 3;
115  unsigned flag_6 : 1;
116 
117  unsigned alct1_bxn_high :2;
118  unsigned alct1_reserved :13;
119  unsigned flag_7 : 1;
120 };
121 
122 
123 
124 
125 
126 #endif
unsigned flag_3
DDU+LCT special word flags.
unsigned bxnCount
full bunch crossing number
unsigned fifoMode
see the FIFO_MODE enum
unsigned promote1
promotion bit for 1st LCT pattern
unsigned reserved_2
reserved, set to 0
short unsigned int sizeInWords() const
short unsigned int sizeInWords() const
void add(const std::vector< const T * > &source, std::vector< const T * > &dest)
void setEventInformation(const CSCDMBHeader &)
unsigned extTrig
trigger source was external
unsigned short int BXNCount() const
unsigned flag_1
DDU+LCT special word flags.
ALCT Header consists of several modular units that are defined as structs below.
unsigned nTBins
of 25 ns time bins in the raw dump
unsigned reserved_1
reserved, set to 0
unsigned l1Acc
l1 accept counter
unsigned promote2
promotion bit for 2nd LCT pattern
unsigned boardID
ALCT2000 board ID.
unsigned lctChipRead
LCT chips read out in raw hit dump.
unsigned activeFEBs
LCT chips with ADB hits.
unsigned flag_2
DDU+LCT special word flags.
unsigned cscID
chamber ID number
void setDAV(int afebBoard)
for packing
unsigned l1aMatch
exteran L1A arrived in L1A window
unsigned flag_0
should be &#39;01100&#39;, so it&#39;ll be a 6xxx in the ASCII dump
unsigned short nLCTChipRead() const
CSCALCTHeader2006()
this struct contains all 2006 ALCT Header words except ALCTs