Skip to content

Commit ea64476

Browse files
author
Benjamin Huber
committed
3BodyCuts: Change rounding functions to match FW
1 parent 2908501 commit ea64476

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

L1Trigger/Phase2L1GT/plugins/L1GT3BodyCut.h

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,46 +30,46 @@ namespace l1t {
3030
minInvMassSqrDiv2_(getOptionalParam<int64_t, double>("minInvMass",
3131
config,
3232
[&](double value) {
33-
return std::round(scales.to_hw_InvMassSqrDiv2(value) *
34-
cosPhiLUT_.output_scale());
35-
})),
36-
maxInvMassSqrDiv2_(getOptionalParam<int64_t, double>("maxInvMass",
37-
config,
38-
[&](double value) {
39-
return std::round(scales.to_hw_InvMassSqrDiv2(value) *
33+
return std::floor(scales.to_hw_InvMassSqrDiv2(value) *
4034
cosPhiLUT_.output_scale());
4135
})),
36+
maxInvMassSqrDiv2_(getOptionalParam<int64_t, double>(
37+
"maxInvMass",
38+
config,
39+
[&](double value) { return std::ceil(scales.to_hw_InvMassSqrDiv2(value) * cosPhiLUT_.output_scale()); })),
4240
minTransMassSqrDiv2_(getOptionalParam<int64_t, double>(
4341
"minTransMass",
4442
config,
4543
[&](double value) {
46-
return std::round(scales.to_hw_TransMassSqrDiv2(value) * cosPhiLUT_.output_scale());
44+
return std::floor(scales.to_hw_TransMassSqrDiv2(value) * cosPhiLUT_.output_scale());
4745
})),
4846
maxTransMassSqrDiv2_(getOptionalParam<int64_t, double>(
4947
"maxTransMass",
5048
config,
5149
[&](double value) {
52-
return std::round(scales.to_hw_TransMassSqrDiv2(value) * cosPhiLUT_.output_scale());
50+
return std::ceil(scales.to_hw_TransMassSqrDiv2(value) * cosPhiLUT_.output_scale());
5351
})),
5452
scaleNormalShift_(std::round(std::log2(std::ceil(coshEtaLUT_.output_scale() / coshEtaLUT2_.output_scale())))),
5553
invMassResolutionReduceShift_([&]() {
5654
if (minInvMassSqrDiv2_) {
5755
return std::max<int>(
58-
std::ceil(std::log2(minInvMassSqrDiv2_.value() * cosPhiLUT_.output_scale() + 1.0)) - 16, 0);
56+
std::ceil(std::log2(std::floor(minInvMassSqrDiv2_.value() * cosPhiLUT_.output_scale() + 1.0))) - 16,
57+
0);
5958
} else if (maxInvMassSqrDiv2_) {
60-
return std::max<int>(std::ceil(std::log2(maxInvMassSqrDiv2_.value() * cosPhiLUT_.output_scale())) - 16,
61-
0);
59+
return std::max<int>(
60+
std::ceil(std::log2(std::ceil(maxInvMassSqrDiv2_.value() * cosPhiLUT_.output_scale()))) - 16, 0);
6261
} else {
6362
return 0;
6463
}
6564
}()),
6665
transMassResolutionReduceShift_([&]() {
6766
if (minTransMassSqrDiv2_) {
6867
return std::max<int>(
69-
std::ceil(std::log2(minTransMassSqrDiv2_.value() * cosPhiLUT_.output_scale() + 1.0)) - 16, 0);
68+
std::ceil(std::log2(std::floor(minTransMassSqrDiv2_.value() * cosPhiLUT_.output_scale() + 1.0))) - 16,
69+
0);
7070
} else if (maxTransMassSqrDiv2_) {
71-
return std::max<int>(std::ceil(std::log2(maxTransMassSqrDiv2_.value() * cosPhiLUT_.output_scale())) - 16,
72-
0);
71+
return std::max<int>(
72+
std::ceil(std::log2(std::ceil(maxTransMassSqrDiv2_.value() * cosPhiLUT_.output_scale()))) - 16, 0);
7373
} else {
7474
return 0;
7575
}

0 commit comments

Comments
 (0)