-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Fix jets with crazy momenta in miniAOD #27374
Comments
assign reconstruction |
A new Issue was created by @perrotta . @davidlange6, @Dr15Jones, @smuzaffar, @fabiocos, @kpedro88 can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
in which jet collection are these jets and does the problem come from miniAOD or from AOD? |
https://github.com/cms-sw/cmssw/blob/master/RecoBTag/TensorFlow/test/test_deep_doublex_cfg.py#L48 |
So, it's slimmedJetsAK8. (IIRC, this is based on PUPPI). |
I'm sorry for the delay here, I've been traveling. This is coming from AOD (and is present in CaloJets). If I look at
This gets propagated to 80 TeV jets in PF:
|
@rappoccio |
In MiniAOD the PFJets (both CHS and Puppi) correctly handle this as "80 TeV", and so do the soft dropped subjets. It seems like the packing of the PFCandidates is the culprit, since the PF candidates at AOD level are fine but then in MINIAOD I get:
The "raw" packing is okay:
But the "pt()" function is throwing infinity. |
@gpetruc Any ideas on how to fix this? I think this is the culprit line: https://github.com/cms-sw/cmssw/blob/master/DataFormats/PatCandidates/src/PackedCandidate.cc#L14
|
we could probably truncate this to some large number. |
@rappoccio : is there any progress with solving this issue? |
I wasn't sure who was responsible, sorry. I can do it if there are no others ;) |
Actually the truncation is already written, right? https://cmssdt.cern.ch/lxr/source/DataFormats/Math/interface/libminifloat.h#0022 So we can change float32to16 to float32to16crop? |
Thank you Sal!
One should truncate only if limits are hit. What about something like:
|
Sure, that also works. |
In response to cms-sw#27374, truncating pt of PackedCandidate in case the 32 bit representation is beyond the 16-bit max (represented by the "minifloat" as inf, as per that standard requirement [here](ftp://ftp.fox-toolkit.org/pub/fasthalffloatconversion.pdf)). This was giving problems downstream when the 16-bit "infinity" was widened to 32 bits and became inaccurate.
PR #27988 |
@perrotta |
This issue is fully signed and ready to be closed. |
BoostedDoubleSVProd is experiencing some crash in nanoAOD productions from miniAOD, see https://its.cern.ch/jira/browse/CMSCOMPPR-6445
The origin of the crash was identified as due to subjets components that have nan's in their momenta values. A debug of one such case revealed that those subjets with nan's were originating from jets having crazy momenta (|p|=82 TeV in the example pinpointed in #27238).
The fix proposed in #27238 is able to rescue BoostedDoubleSVProd from this issue, but it doesn't solve the original bug, This will have to be identified and fixed when the jets are produced.
A recipe to reproduce could be to run on the following event
a nanoAOD or any other job which accesses subjets from miniAOD.
Another possible job that hits it is obtained by customizing and run RecoBTag/TensorFlow/test/test_deep_doublex_cfg.py, as explained in #27238 (comment)
This is put to the attention of the jet reco contacts: please @rappoccio @knash @gkasieczka have a look and report here about your findings
The text was updated successfully, but these errors were encountered: