7 bits.nHeaderFrames = 26;
18 bits.l1aNumber = dmbHeader.
l1a();
24 std::vector<CSCCLCTDigi>
result;
30 if (
bits.firmRevCode < 3769) {
31 shape =
bits.clct0_shape;
32 type =
bits.clct0_strip_type;
34 shape = (
bits.clct0_strip_type << 3) +
bits.clct0_shape;
38 int cfeb = (
bits.clct0_cfeb_low) | (
bits.clct0_cfeb_high << 1);
39 int bend =
bits.clct0_bend;
43 bits.clct0_valid,
bits.clct0_quality, shape, type, bend, strip, cfeb,
bits.clct0_bxn, 1,
bits.bxnPreTrigger);
44 result.push_back(digi0);
47 if (
bits.firmRevCode < 3769) {
48 shape =
bits.clct1_shape;
49 type =
bits.clct1_strip_type;
51 shape = (
bits.clct1_strip_type << 3) +
bits.clct1_shape;
55 strip =
bits.clct1_key;
56 cfeb = (
bits.clct1_cfeb_low) | (
bits.clct1_cfeb_high << 1);
57 bend =
bits.clct1_bend;
60 bits.clct1_valid,
bits.clct1_quality, shape, type, bend, strip, cfeb,
bits.clct1_bxn, 2,
bits.bxnPreTrigger);
61 result.push_back(digi1);
67 std::vector<CSCCorrelatedLCTDigi>
result;
69 int strip =
bits.MPC_Muon0_halfstrip_clct_pattern;
73 bits.MPC_Muon0_quality_,
76 bits.MPC_Muon0_clct_pattern_,
81 bits.MPC_Muon0_SyncErr_,
82 bits.MPC_Muon0_cscid_low | (
bits.MPC_Muon0_cscid_bit4 << 3));
83 result.push_back(digi);
85 strip =
bits.MPC_Muon1_halfstrip_clct_pattern;
89 bits.MPC_Muon1_quality_,
92 bits.MPC_Muon1_clct_pattern_,
97 bits.MPC_Muon1_SyncErr_,
98 bits.MPC_Muon1_cscid_low | (
bits.MPC_Muon1_cscid_bit4 << 3));
99 result.push_back(digi);
104 throw cms::Exception(
"In CSC TMBHeaderFormat 2006, ALCTs belong in ALCT header");
108 throw cms::Exception(
"In CSC TMBHeaderFormat 2006, ALCTs belong in ALCT header");
119 bits.clct0_shape = pattern;
121 bits.clct0_bend = bend;
123 bits.clct0_cfeb_low = (cfeb & 0x1);
124 bits.clct0_cfeb_high = (cfeb >> 1);
137 bits.clct1_shape = pattern;
139 bits.clct1_bend = bend;
141 bits.clct1_cfeb_low = (cfeb & 0x1);
142 bits.clct1_cfeb_high = (cfeb >> 1);
155 bits.MPC_Muon0_halfstrip_clct_pattern = halfStrip;
161 bits.MPC_Muon0_cscid_bit4 = (digi.
getCSCID() >> 3) & 0x1;
172 bits.MPC_Muon1_halfstrip_clct_pattern = halfStrip;
178 bits.MPC_Muon0_cscid_bit4 = (digi.
getCSCID() >> 3) & 0x1;
182 os <<
"...............TMB Header.................."
184 os << std::hex <<
"BOC LINE " <<
bits.b0cline <<
" EOB " <<
bits.e0bline <<
"\n";
185 os <<
std::dec <<
"fifoMode = " <<
bits.fifoMode <<
", nTBins = " <<
bits.nTBins <<
"\n";
186 os <<
"dumpCFEBs = " <<
bits.dumpCFEBs <<
", nHeaderFrames = " <<
bits.nHeaderFrames <<
"\n";
187 os <<
"boardID = " <<
bits.boardID <<
", cscID = " <<
bits.cscID <<
"\n";
188 os <<
"l1aNumber = " <<
bits.l1aNumber <<
", bxnCount = " <<
bits.bxnCount <<
"\n";
189 os <<
"preTrigTBins = " <<
bits.preTrigTBins <<
", nCFEBs = " <<
bits.nCFEBs <<
"\n";
190 os <<
"trigSourceVect = " <<
bits.trigSourceVect <<
", activeCFEBs = " <<
bits.activeCFEBs <<
"\n";
191 os <<
"bxnPreTrigger = " <<
bits.bxnPreTrigger <<
"\n";
192 os <<
"tmbMatch = " <<
bits.tmbMatch <<
" alctOnly = " <<
bits.alctOnly <<
" clctOnly = " <<
bits.clctOnly
193 <<
" alctMatchTime = " <<
bits.alctMatchTime <<
"\n";
194 os <<
"hs_thresh = " <<
bits.hs_thresh <<
", ds_thresh = " <<
bits.ds_thresh <<
"\n";
195 os <<
".clct0_key = " <<
bits.clct0_key <<
" clct0_shape = " <<
bits.clct0_shape
196 <<
" clct0_quality = " <<
bits.clct0_quality <<
"\n";
197 os <<
"r_buf_nbusy = " <<
bits.r_buf_nbusy <<
"\n";
198 os <<
"Firmware Rev code " <<
bits.firmRevCode <<
"\n";
199 os <<
"..................CLCT....................." << std::endl;
uint16_t getFullBX() const
return 12-bit full BX.
uint16_t getBX() const
return BX
uint16_t getStripType() const
return striptype
uint16_t getCFEB() const
return Key CFEB ID
bool isValid() const
check CLCT validity (1 - valid CLCT)
uint16_t getStrip() const
return halfstrip that goes from 0 to 31 in a (D)CFEB
uint16_t getPattern() const
return pattern
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)