5 const uint32_t raw_data_00_31,
6 const uint32_t raw_data_32_63,
92 std::map<int, int> trackAddr;
93 trackAddr[0] = rawTrackAddress;
94 mu.setTrackAddress(trackAddr);
97 mu.setTFIdentifiers(
proc, tf);
98 mu.setDataword(raw_data_32_63, raw_data_00_31);
103 fillRegionalMuonCand(
104 mu, (uint32_t)(dataword & 0xFFFFFFFF), (uint32_t)((dataword >> 32) & 0xFFFFFFFF),
proc, tf, isRun3);
108 uint32_t& raw_data_00_31,
109 uint32_t& raw_data_32_63,
111 int abs_eta =
mu.hwEta();
113 abs_eta += (1 << (etaSignShift_ - absEtaShift_));
115 int abs_phi =
mu.hwPhi();
117 abs_phi += (1 << (phiSignShift_ - absPhiShift_));
119 raw_data_00_31 = (
mu.hwPt() & ptMask_) << ptShift_ | (
mu.hwQual() & qualMask_) << qualShift_ |
120 (abs_eta & absEtaMask_) << absEtaShift_ | (
mu.hwEta() < 0) << etaSignShift_ |
121 (
mu.hwHF() & hfMask_) << hfShift_ | (abs_phi & absPhiMask_) << absPhiShift_ |
122 (
mu.hwPhi() < 0) << phiSignShift_;
125 int rawTrkAddr = generateRawTrkAddress(
mu, isRun3);
127 raw_data_32_63 =
mu.hwSign() << signShift_ |
mu.hwSignValid() << signValidShift_ |
128 (rawTrkAddr & trackAddressMask_) << trackAddressShift_;
129 if (isRun3 &&
mu.trackFinderType() ==
bmtf) {
130 raw_data_32_63 |= (
mu.hwPtUnconstrained() & ptUnconstrainedMask_) << bmtfPtUnconstrainedShift_ |
131 (
mu.hwDXY() & dxyMask_) << bmtfDxyShift_;
133 raw_data_32_63 |= (
mu.hwPtUnconstrained() & ptUnconstrainedMask_) << emtfPtUnconstrainedShift_ |
134 (
mu.hwDXY() & dxyMask_) << emtfDxyShift_;
142 generatePackedDataWords(
mu, lsw, msw, isRun3);
143 return (((
uint64_t)msw) << 32) + lsw;
147 int tf =
mu.trackFinderType();
165 rawTrkAddr = (detSide & 0x1) << bmtfTrAddrDetSideShift_ |
166 (wheelNum & bmtfTrAddrWheelMask_) << bmtfTrAddrWheelShift_ |
167 (stat1 & bmtfTrAddrStat1Mask_) << bmtfTrAddrStat1Shift_ |
168 (stat2 & bmtfTrAddrStat2Mask_) << bmtfTrAddrStat2Shift_ |
169 (stat3 & bmtfTrAddrStat3Mask_) << bmtfTrAddrStat3Shift_ |
170 (stat4 & bmtfTrAddrStat4Mask_) << bmtfTrAddrStat4Shift_;
172 edm::LogWarning(
"L1T") <<
"BMTF muon track address map contains " <<
mu.trackAddress().size()
174 <<
" subaddresses. Check the data format. Setting track address to 0.";
192 edm::LogWarning(
"L1T") <<
"EMTF muon track address map contains " <<
mu.trackAddress().size()
194 <<
" subaddresses. Check the data format. Setting track address to 0.";
204 edm::LogWarning(
"L1T") <<
"OMTF muon track address map contains " <<
mu.trackAddress().size()
206 <<
" subaddresses. Check the data format. Setting track address to 0.";
210 rawTrkAddr =
mu.trackAddress().at(0);