7 bits.nHeaderFrames = 42;
10 bits.firmRevCode = firmware_revision;
19 bits.l1aNumber = dmbHeader.
l1a();
20 bits.bxnCount = dmbHeader.
bxn();
25 std::vector<CSCCLCTDigi>
result;
26 unsigned halfstrip =
bits.clct0_key_low + (
bits.clct0_key_high << 7);
27 unsigned strip = halfstrip % 32;
28 unsigned cfeb = halfstrip / 32;
29 unsigned pattern =
bits.clct0_shape;
30 unsigned bend = pattern & 0x1;
33 bits.clct0_valid,
bits.clct0_quality, pattern, 1, bend, strip, cfeb,
bits.clct_bxn, 1,
bits.bxnPreTrigger);
35 halfstrip =
bits.clct1_key_low + (
bits.clct1_key_high << 7);
36 strip = halfstrip % 32;
37 cfeb = halfstrip / 32;
38 pattern =
bits.clct1_shape;
42 bits.clct1_valid,
bits.clct1_quality, pattern, 1, bend, strip, cfeb,
bits.clct_bxn, 2,
bits.bxnPreTrigger);
43 result.push_back(digi0);
44 result.push_back(digi1);
50 std::vector<CSCCorrelatedLCTDigi>
result;
52 unsigned strip =
bits.MPC_Muon0_halfstrip_clct_pattern;
55 bits.MPC_Muon0_quality_,
58 bits.MPC_Muon0_clct_pattern_,
63 bits.MPC_Muon0_SyncErr_,
64 bits.MPC_Muon0_cscid_low | (
bits.MPC_Muon0_cscid_bit4 << 3));
65 result.push_back(digi);
67 strip =
bits.MPC_Muon1_halfstrip_clct_pattern;
70 bits.MPC_Muon1_quality_,
73 bits.MPC_Muon1_clct_pattern_,
78 bits.MPC_Muon1_SyncErr_,
79 bits.MPC_Muon1_cscid_low | (
bits.MPC_Muon1_cscid_bit4 << 3));
80 result.push_back(digi);
85 throw cms::Exception(
"In CSC TMBHeaderFormat 2007, ALCTs belong in ALCT header");
89 throw cms::Exception(
"In CSC TMBHeaderFormat 2007, ALCTs belong in ALCT header");
97 bits.clct0_shape = pattern;
99 bits.clct0_key_low = halfStrip & (0x7F);
101 bits.clct0_key_high = (halfStrip >> 7) & (0x1);
111 bits.clct1_shape = pattern;
113 bits.clct1_key_low = halfStrip & (0x7F);
115 bits.clct1_key_high = (halfStrip >> 7) & (0x1);
122 unsigned halfStrip = digi.
getStrip();
127 bits.MPC_Muon0_halfstrip_clct_pattern = halfStrip;
133 bits.MPC_Muon0_cscid_bit4 = (digi.
getCSCID() >> 3) & 0x1;
137 unsigned halfStrip = digi.
getStrip();
142 bits.MPC_Muon1_halfstrip_clct_pattern = halfStrip;
148 bits.MPC_Muon1_cscid_bit4 = (digi.
getCSCID() >> 3) & 0x1;
152 os <<
"...............(O)TMB2020 legacy Run2 Header.................."
154 os << std::hex <<
"BOC LINE " <<
bits.b0cline <<
" EOB " <<
bits.e0bline <<
"\n";
155 os << std::hex <<
"FW revision: 0x" <<
bits.firmRevCode <<
"\n";
156 os <<
std::dec <<
"fifoMode = " <<
bits.fifoMode <<
", nTBins = " <<
bits.nTBins <<
"\n";
157 os <<
"boardID = " <<
bits.boardID <<
", cscID = " <<
bits.cscID <<
"\n";
158 os <<
"l1aNumber = " <<
bits.l1aNumber <<
", bxnCount = " <<
bits.bxnCount <<
"\n";
159 os <<
"trigSourceVect = " <<
bits.trigSourceVect <<
", activeCFEBs = 0x" << std::hex
160 << (
bits.activeCFEBs | (
bits.activeCFEBs_2 << 5)) <<
", readCFEBs = 0x" << std::hex
162 os <<
"bxnPreTrigger = " <<
bits.bxnPreTrigger <<
"\n";
163 os <<
"tmbMatch = " <<
bits.tmbMatch <<
" alctOnly = " <<
bits.alctOnly <<
" clctOnly = " <<
bits.clctOnly <<
"\n";
165 os <<
"CLCT Words:\n"
166 <<
" bits.clct0_valid = " <<
bits.clct0_valid <<
" bits.clct0_shape = " <<
bits.clct0_shape
167 <<
" bits.clct0_quality = " <<
bits.clct0_quality
168 <<
" halfstrip = " << (
bits.clct0_key_low + (
bits.clct0_key_high << 7)) <<
"\n";
170 os <<
" bits.clct1_valid = " <<
bits.clct1_valid <<
" bits.clct1_shape = " <<
bits.clct1_shape
171 <<
" bits.clct1_quality = " <<
bits.clct1_quality
172 <<
" halfstrip = " << (
bits.clct1_key_low + (
bits.clct1_key_high << 7)) <<
"\n";
175 <<
" LCT0 valid = " <<
bits.MPC_Muon0_vpf_ <<
" key WG = " <<
bits.MPC_Muon0_wire_
176 <<
" key halfstrip = " <<
bits.MPC_Muon0_halfstrip_clct_pattern <<
" pattern = " <<
bits.MPC_Muon0_clct_pattern_
177 <<
" quality = " <<
bits.MPC_Muon0_quality_ <<
"\n";
179 os <<
" LCT1 valid = " <<
bits.MPC_Muon1_vpf_ <<
" key WG = " <<
bits.MPC_Muon1_wire_
180 <<
" key halfstrip = " <<
bits.MPC_Muon1_halfstrip_clct_pattern <<
" pattern = " <<
bits.MPC_Muon1_clct_pattern_
181 <<
" quality = " <<
bits.MPC_Muon1_quality_ <<
"\n";
uint16_t getFullBX() const
return 12-bit full BX.
uint16_t getBX() const
return BX
uint16_t getKeyStrip(const uint16_t n=2) const
bool isValid() const
check CLCT validity (1 - valid CLCT)
uint16_t getPattern() const
return pattern
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)