Skip to content

Commit a414e7d

Browse files
authored
Merge pull request #44798 from dinyar/fix-omtf-unconstrained_pt_location
Fix position of unconstrained pT coming from OMTF
2 parents 400c41f + 2437873 commit a414e7d

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

L1Trigger/L1TMuon/interface/RegionalMuonRawDigiTranslator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ namespace l1t {
4242
bool isKbmtf,
4343
bool useOmtfDisplacementInfo,
4444
bool useEmtfDisplacementInfo);
45-
static int generateRawTrkAddress(const RegionalMuonCand&, bool isKalman, bool useOmtfDisplacementInfo);
45+
static int generateRawTrkAddress(const RegionalMuonCand&, bool isKalman);
4646

4747
static constexpr unsigned ptMask_ = 0x1FF;
4848
static constexpr unsigned ptShift_ = 0;
@@ -63,7 +63,7 @@ namespace l1t {
6363
static constexpr unsigned emtfDxyShift_ = 29;
6464
static constexpr unsigned ptUnconstrainedMask_ = 0xFF;
6565
static constexpr unsigned bmtfPtUnconstrainedShift_ = 23;
66-
static constexpr unsigned kOmtfPtUnconstrainedShift_ = 18;
66+
static constexpr unsigned kOmtfPtUnconstrainedShift_ = 20;
6767
static constexpr unsigned emtfPtUnconstrainedShift_ = 20;
6868
static constexpr unsigned trackAddressMask_ = 0x1FFFFFFF;
6969
static constexpr unsigned trackAddressShift_ = 2;

L1Trigger/L1TMuon/src/RegionalMuonRawDigiTranslator.cc

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,12 @@ void l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(RegionalMuonCand&
9090
} else if (tf == omtf_neg || tf == omtf_pos) {
9191
if (useOmtfDisplacementInfo) { // In Run-3 2024 we receive displaced muon information from OMTF
9292
mu.setHwPtUnconstrained((raw_data_32_63 >> kOmtfPtUnconstrainedShift_) & ptUnconstrainedMask_);
93-
} else {
94-
mu.setTrackSubAddress(RegionalMuonCand::kLayers,
95-
(rawTrackAddress >> omtfTrAddrLayersShift_) & omtfTrAddrLayersMask_);
96-
mu.setTrackSubAddress(RegionalMuonCand::kZero, 0);
97-
mu.setTrackSubAddress(RegionalMuonCand::kWeight,
98-
(rawTrackAddress >> omtfTrAddrWeightShift_) & omtfTrAddrWeightMask_);
9993
}
94+
mu.setTrackSubAddress(RegionalMuonCand::kLayers,
95+
(rawTrackAddress >> omtfTrAddrLayersShift_) & omtfTrAddrLayersMask_);
96+
mu.setTrackSubAddress(RegionalMuonCand::kZero, 0);
97+
mu.setTrackSubAddress(RegionalMuonCand::kWeight,
98+
(rawTrackAddress >> omtfTrAddrWeightShift_) & omtfTrAddrWeightMask_);
10099
} else {
101100
std::map<int, int> trackAddr;
102101
trackAddr[0] = rawTrackAddress;
@@ -189,7 +188,7 @@ void l1t::RegionalMuonRawDigiTranslator::generatePackedDataWords(const RegionalM
189188
(mu.hwPhi() < 0) << phiSignShift_;
190189

191190
// generate the raw track address from the subaddresses
192-
int rawTrkAddr = generateRawTrkAddress(mu, isKbmtf, useOmtfDisplacementInfo);
191+
int rawTrkAddr = generateRawTrkAddress(mu, isKbmtf);
193192

194193
raw_data_32_63 = mu.hwSign() << signShift_ | mu.hwSignValid() << signValidShift_ |
195194
(rawTrkAddr & trackAddressMask_) << trackAddressShift_;
@@ -215,9 +214,7 @@ uint64_t l1t::RegionalMuonRawDigiTranslator::generate64bitDataWord(const Regiona
215214
return (((uint64_t)msw) << 32) + lsw;
216215
}
217216

218-
int l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress(const RegionalMuonCand& mu,
219-
const bool isKalman,
220-
const bool useOmtfDisplacementInfo) {
217+
int l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress(const RegionalMuonCand& mu, const bool isKalman) {
221218
int tf = mu.trackFinderType();
222219
int rawTrkAddr = 0;
223220
if (tf == bmtf) {
@@ -266,7 +263,7 @@ int l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress(const RegionalMuon
266263
<< " subaddresses. Check the data format. Setting track address to 0.";
267264
rawTrkAddr = 0;
268265
}
269-
} else if ((tf == omtf_neg || tf == omtf_pos) && !useOmtfDisplacementInfo) {
266+
} else if (tf == omtf_neg || tf == omtf_pos) {
270267
// protection against a track address map with the wrong size
271268
if (mu.trackAddress().size() == RegionalMuonCand::kNumOmtfSubAddr) {
272269
rawTrkAddr = (mu.trackSubAddress(RegionalMuonCand::kLayers) & omtfTrAddrLayersMask_) << omtfTrAddrLayersShift_ |

L1Trigger/L1TNtuples/src/L1AnalysisL1UpgradeTfMuon.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ void L1Analysis::L1AnalysisL1UpgradeTfMuon::SetTfMuon(const l1t::RegionalMuonCan
6565
}
6666
l1upgradetfmuon_.tfMuonDecodedTrAdd.push_back(decoded_track_address);
6767
l1upgradetfmuon_.tfMuonHwTrAdd.push_back(
68-
l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress(*it, isRun3_, isRun3_));
68+
l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress(*it, isRun3_));
6969
l1upgradetfmuon_.nTfMuons++;
7070
}
7171
}

0 commit comments

Comments
 (0)