Skip to content
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

[HCAL] Sanitize Mahi HCAL local reconstruction pulse arrival time values #22394

Merged
merged 2 commits into from Mar 7, 2018

Conversation

jaylawhorn
Copy link
Contributor

The current version of Mahi can return a pulse arrival time that is NaN because there is no check for division by zero. Additionally, we limit the pulse arrival time to +/- 12.5 ns from the nominal time, because if the hit is put in the in-time sample (bx=0), it does belong in that sample. This removes large tails in the timing distribution induced by deviations from the default pulse shape template and/or the existence of pulses in bunch crossing we don't allow pulses to exist in the fit.

For example, some recHits from the default release:

root [5] HcalTree->Scan("ieta:iphi:depth:mahiE:mahiT")
************************************************************************
*    Row   *      ieta *      iphi *     depth *     mahiE *     mahiT *
************************************************************************
*        0 *        -1 *         1 *         1 *         0 *       inf *
*        1 *        -1 *         7 *         1 *         0 *     -9999 *
*        2 *        -1 *         8 *         1 * 0.0201498 * -2.192569 *
*        3 *        -1 *         9 *         1 * 0.5976437 * -0.054388 *
*        4 *        -1 *        14 *         1 * 0.2618228 * 0.0405726 *
*        5 *        -1 *        19 *         1 * 0.2631363 * -3.694539 *
*        6 *        -1 *        23 *         1 *         0 *     -9999 *
*        7 *        -1 *        24 *         1 *         0 *       inf *
*        8 *        -1 *        25 *         1 *         0 *       inf *
*        9 *        -1 *        28 *         1 *         0 *       inf *
*       10 *        -1 *        29 *         1 *         0 *     -9999 *

become

root [3] HcalTree->Scan("ieta:iphi:depth:mahiE:mahiT")
************************************************************************
*    Row   *      ieta *      iphi *     depth *     mahiE *     mahiT *
************************************************************************
*        0 *        -1 *         1 *         1 *         0 *     -9999 *
*        1 *        -1 *         7 *         1 *         0 *     -9999 *
*        2 *        -1 *         8 *         1 * 0.0201498 * -2.192569 *
*        3 *        -1 *         9 *         1 * 0.5976437 * -0.054388 *
*        4 *        -1 *        14 *         1 * 0.2618228 * 0.0405726 *
*        5 *        -1 *        19 *         1 * 0.2631363 * -3.694539 *
*        6 *        -1 *        23 *         1 *         0 *     -9999 *
*        7 *        -1 *        24 *         1 *         0 *     -9999 *
*        8 *        -1 *        25 *         1 *         0 *     -9999 *
*        9 *        -1 *        28 *         1 *         0 *     -9999 *
*       10 *        -1 *        29 *         1 *         0 *     -9999 *

where -9999 is the default value corresponding to zero in-time energy.

The following plot demonstrates the truncation of the ~1% tails in the pulse shape arrival time:

mahit_fix

@mariadalfonso @deguio @jaehyeok

@cmsbuild
Copy link
Contributor

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @jaylawhorn (Jay Lawhorn) for master.

It involves the following packages:

RecoLocalCalo/HcalRecAlgos

@perrotta, @cmsbuild, @slava77 can you please review it and eventually sign? Thanks.
@mariadalfonso, @argiro this is something you requested to watch as well.
@davidlange6, @slava77, @fabiocos you are the release manager for this.

cms-bot commands are listed here

@perrotta
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 28, 2018

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/26390/console Started: 2018/02/28 23:05

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Comparison job queued.

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 1, 2018

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-22394/26390/summary.html

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 96 differences found in the comparisons
  • DQMHistoTests: Total files compared: 29
  • DQMHistoTests: Total histograms compared: 2479021
  • DQMHistoTests: Total failures: 288
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2478557
  • DQMHistoTests: Total skipped: 176
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.940000000177 KiB( 21 files compared)
  • Checked 118 log files, 9 edm output root files, 29 DQM output files

@jaylawhorn
Copy link
Contributor Author

The differences are mostly as expected, impacting Hcal RecHit timing and higher level object timing that uses Hcal RecHits. I see one set of differences involving edmErrorSummaryEntries that aren't immediately obvious to me, here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/baseLineComparisons/CMSSW_10_1_X_2018-02-28-1100+22394/25315/validateJR/all_OldVSNew_TTbarPUwf25202p0/

for example:
image
I'm not sure if someone can confirm these behave as expected when we stop returning NaN for RecHit timing? Maybe @abdoulline @deguio @igv4321 ?

@slava77
Copy link
Contributor

slava77 commented Mar 1, 2018 via email

@jaylawhorn
Copy link
Contributor Author

@slava77 Thanks for the clarification!

So if the fit is putting the pulse in the in-time bunch crossing, however large the residuals, it seems misleading to me to return a "time" value that corresponds to an out-of-time pulse. (Also, the time value is less and less meaningful the farther away from the nominal it gets because it is based on the local derivative of the pulse at the nominal value.) If it was an out-of-time pulse, it would be assigned to an out-of-time bunch crossing, which we don't return.

On a longer time scale we would like to fix this pulse arrival time to be useful and reasonable without any hard boundaries, either by including the arrival time as an explicit parameter in the fit with a gaussian constraint, or by adding more pulse shapes to the fit (up to the # of bunch crossings) which would reduce the residuals problem. However, for now, we would prefer to not return information that could be mis-interpreted.

@jaehyeok sees anyways that the large time values come from low energy RecHits (https://indico.cern.ch/event/708228/contributions/2907551/attachments/1605858/2547938/20180223_Jae_HCAL_MAHI.pdf slide 5).

@slava77
Copy link
Contributor

slava77 commented Mar 1, 2018 via email

@slava77
Copy link
Contributor

slava77 commented Mar 6, 2018

+1

for #22394 2df4e2a

  • implementation is in line with the description: avoid NaNs and truncate the reported time.
  • jenkins tests pass and comparisons with baseline show differences only in HCAL time-related variables.

E.g. 136.788
wf136 788_hep_rechits
the truncation is evident

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 6, 2018

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @davidlange6, @slava77, @smuzaffar, @fabiocos (and backports should be raised in the release meeting by the corresponding L2)

@fabiocos
Copy link
Contributor

fabiocos commented Mar 7, 2018

+1

@cmsbuild cmsbuild merged commit 2e2579f into cms-sw:master Mar 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants