New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes to PackedCandidate #12581
Fixes to PackedCandidate #12581
Conversation
Now dxy(PV) and dz(PV) give the same as dxy() and dzAssociatedPV() for the associated PV.
Smallest negative was also packed as 0, which is unpacked as the smallest positive, resulting a sign flip. For backwards compatibility reasons, the range of negative numbers is shran.
Using floats causes roundings. It happens that e.g. with int8_t packceil(double x) { return logintpack::pack8logCeil(x, -15, 0); } double unpack(int8_t x) { return logintpack::unpack8log (x, -15, 0); } the condition "unpack(packceil(v)) >= v" does not hold for some v (e.g. std:exp(-15.f + 1/128.f*15.f) + 1ulp, which is in the added unit test).
A new Pull Request was created by @makortel (Matti Kortelainen) for CMSSW_8_0_X. It involves the following packages: DataFormats/PatCandidates @cvuosalo, @monttj, @cmsbuild, @slava77, @vadler, @davidlange6 can you please review it and eventually sign? Thanks. Following commands in first line of a comment are recognized
|
@cmsbuild, please test |
Let me know if any of these are wanted for 76X (for the MiniAOD v2). |
The tests are being triggered in jenkins. |
@makortel |
The 76X-backport is #12583. |
@makortel: The Jenkins tests have found a few differences. I want to check that they are what you would expect. Second, from workflow 25202.0: |
@makortel: Here are some more plots that may be of concern. I ran workflow 25202.0_TTbar_13 with 70 events against baseline CMSSW_8_0_X_2015-11-25-2300. Comparison shows about 250 quantities with tiny, negligible differences, but there are two increases in fakes that could be a worry: |
@cvuosalo I was able to reproduce (after dropping 1330.0: The migration from "sign-flips" is actually be visible in alternative-comparisons page 287 In 25202.0 the new bin was also "sign-flipped" before. I agree it is a bit strange that the new bin is the only one in the positive side, but it can be explained. The value from track is |
@cvuosalo I'm really surprised that MTV plots show differences, since changes in PackedCandidates should not affect tracks in any way (or do we have memory corruption or something?). Anyway, the |
@makortel: Thanks for investigating these issues. I've sent you a link to the DQM files from my test. |
+1 Small fixes for Packed Candidates to cover special cases. #12583 is the 76X version of this PR, and it has already been merged. The code changes are satisfactory. Jenkins tests and an extended test show some differences, as discussed above, but these differences are either expected or not related to this PR. |
This PR contains the following fixes to certain issues I encountered when developing #12405
+dphi_
todxy(Point)
anddz(Point)
dxy()
anddzAssociatedPV()
for the point of associated PVabs(pack(x)) < 1
(e.g. (-exp(lmin)
) get packed as0
, which is unpacked as the smallest positive numbers (exp(lmin)
)-1
-exp(lmin + 1/base*(lmax-lmin))
, while for positive numbers the smallest value isexp(lmin)
pack8logCeil()
rounds towards zero for certain input valuesThe PR also adds some unit tests for liblogintpack.
Tested in CMSSW_8_0_X_2015-11-22-1100. The latter two issues were rather rare (handful of PackedCandidates in 9k event RelVal) that they're probably not visible in PR tests, but the first one should show up.
@arizzi @gpetruc