-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
[GSF tracking] Add full Sylvester criterion for positive definite check #39656
Conversation
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-39656/32457
|
A new Pull Request was created by @swagata87 (Swagata Mukherjee) for master. It involves the following packages:
@cmsbuild, @mandrenguyen, @clacaputo can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
type tracking,egamma |
double det = 0; | ||
double det22 = 0; | ||
double det33 = 0; | ||
double det44 = 0; | ||
if (updatedTSOS.isValid() && updatedTSOS.localError().valid() && updatedTSOS.localError().posDef() && | ||
(updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix22>(0, 0).Det(det22) && det22 > 0) && | ||
(updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix33>(0, 0).Det(det33) && det33 > 0) && | ||
(updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix44>(0, 0).Det(det44) && det44 > 0) && | ||
(updatedTSOS.curvilinearError().matrix().Det2(det)) && det > 0) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can simplify this to
double det = 0; | |
double det22 = 0; | |
double det33 = 0; | |
double det44 = 0; | |
if (updatedTSOS.isValid() && updatedTSOS.localError().valid() && updatedTSOS.localError().posDef() && | |
(updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix22>(0, 0).Det(det22) && det22 > 0) && | |
(updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix33>(0, 0).Det(det33) && det33 > 0) && | |
(updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix44>(0, 0).Det(det44) && det44 > 0) && | |
(updatedTSOS.curvilinearError().matrix().Det2(det)) && det > 0) { | |
if (double det; | |
updatedTSOS.isValid() && updatedTSOS.localError().valid() && updatedTSOS.localError().posDef() && | |
(det = 0., updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix22>(0, 0).Det(det) && det > 0) && | |
(det = 0., updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix33>(0, 0).Det(det) && det > 0) && | |
(det = 0., updatedTSOS.curvilinearError().matrix().Sub<AlgebraicSymMatrix44>(0, 0).Det(det) && det > 0) && | |
(det = 0., updatedTSOS.curvilinearError().matrix().Det2(det) && det > 0)) | |
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks Andrea, now implemented
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-39656/32479
|
Pull request #39656 was updated. @cmsbuild, @mandrenguyen, @clacaputo can you please check and sign again. |
please test |
A timing measurement for HLT was done in Base
Base+this PR
FYI: @cms-sw/hlt-l2 |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-66bf4a/28123/summary.html Comparison Summary@slava77 comparisons for the following workflows were not done due to missing matrix map:
Summary:
|
enable profiling |
please test |
+1 Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-66bf4a/28125/summary.html Comparison Summary@slava77 comparisons for the following workflows were not done due to missing matrix map:
Summary:
|
+1 |
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. @perrotta, @dpiparo, @rappoccio (and backports should be raised in the release meeting by the corresponding L2) |
+1 |
PR description:
This PR proposes to add a more strict check of positive definiteness in order to avoid GSF crashes observed recently at HLT as discussed in this issue #39570.
PR validation:
runTheMatrix.py -l 12434.0
ran fine.In order to check if this PR would affect HLT electron efficiency, I reran HLT on EGamma RAW data, before and after this PR, and checked trigger decisions for 1000 events. HLT menu
/online/collisions/2022/2e34/v1.4/HLT/V2
was run on/eos/cms/tier0/store/data/Run2022E/EGamma/RAW/v1/000/359/871/00000/fcf81596-54ed-45d3-9dee-32dec392f246.root
. Trigger result was same, before and after this PR. For example:The PR test can be done preferably by enabling profiling to see if there is any extra CPU cost for the computation of determinants of sub-matrices.
If this fix is accepted, then a backport to data-taking release cycle would be nice.