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

mkFit: overlap area candidate re-check and start using the new hit selection V2 in pixelLess iteration #43580

Merged
merged 10 commits into from
Dec 18, 2023

Conversation

slava77
Copy link
Contributor

@slava77 slava77 commented Dec 15, 2023

requires cms-data/RecoTracker-MkFit#13
This PR is technical for the default mkFIt setup (running as in production excluding pixelLess).
The goal is to have this in 14_0 pre2 so that a special relval can be requested with pixelLess enabled.

New feature:

  • (on demand/configurable) instead of independently adding hits from an overlapping module as a second hit, check the second hit after KF update with the first hit and use this post-update chi2 and the overlap hit chi2; keep the overlap if the score improves
    • enable this for the pixelLess iteration where the addition of pixel hits was quite ineffective

Updates in selecHitIndicesV2 (recently added in #43145 ):

  • add propagation uncertainty when hits are selected (most important for pixels)
  • sqr/sqrt mixup bugfix
  • make choice of selecHitIndicesV2 configurable
    • enable this for the pixelLess iteration where the old hit selector was overflowing and missing the right hits

Some observations with pixelLess re-enabled

  • about 10% reduction in tracking time: 6.6 s -> 6.0 s
  • image
    • blue: mkfit5/production before this PR
    • red: mkfit5/production with this PR (to show it's technical)
    • black: mkfit5+pixelLess before this PR
    • orange: mkfit5+pixelLess with this PR
  • In Standard ttbar MTV (or in the modified MTV with pt sim < 0.9 GeV):
    • image recover small inefficiency below 1 GeV
    • image roughly full recovery of true tracks with large impact parameter (the plot is dominated by the low-pt PU tracks here)
    • image signal tracks (selected here with pt< 0.9 GeV) efficiency is recovered as expected at higher production radius
  • In XiMinus sample without PU standard MTV (and MTV with pt sim < 0.9 GeV) :
    • image the overall efficiency is as good as CKF
    • imageimage slight improvement for pt < 0.9 GeV (left) and still slightly worse for pt > 0.9 GeV (right)

@cmsbuild
Copy link
Contributor

cmsbuild commented Dec 15, 2023

cms-bot internal usage

@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-43580/38225

  • This PR adds an extra 88KB to repository

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @slava77 (Slava Krutelyov) for master.

It involves the following packages:

  • RecoTracker/MkFitCMS (reconstruction)
  • RecoTracker/MkFitCore (reconstruction)

@jfernan2, @mandrenguyen, @cmsbuild can you please review it and eventually sign? Thanks.
@missirol, @dgulhan, @VinInn, @JanFSchulte, @makortel, @VourMa, @GiacomoSguazzoni, @rovere, @mmusich, @mtosi, @gpetruc, @felicepantaleo this is something you requested to watch as well.
@rappoccio, @antoniovilela, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@slava77
Copy link
Contributor Author

slava77 commented Dec 15, 2023

@cmsbuild please test

@cmsbuild
Copy link
Contributor

-1

Failed Tests: RelVals RelVals-INPUT AddOn
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-019829/36520/summary.html
COMMIT: a2c01cc
CMSSW: CMSSW_14_0_X_2023-12-15-1100/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/43580/36520/install.sh to create a dev area with all the needed externals and cmssw changes.

RelVals

----- Begin Fatal Exception 15-Dec-2023 21:19:02 CET-----------------------
An exception of category 'StdException' occurred while
   [0] Processing  Event run: 346512 lumi: 250 event: 243042266 stream: 0
   [1] Running path 'dqmoffline_step'
   [2] Prefetching for module DQMMessageLogger/'DQMMessageLogger'
   [3] Prefetching for module LogErrorHarvester/'logErrorHarvester'
   [4] Prefetching for module HcalNoiseInfoProducer/'hcalnoise'
   [5] Prefetching for module FastjetJetProducer/'ak4PFJets'
   [6] Prefetching for module PFLinker/'particleFlow'
   [7] Prefetching for module PFProducer/'particleFlowTmp'
   [8] Prefetching for module PFBlockProducer/'particleFlowBlock'
   [9] Prefetching for module PFElecTkProducer/'pfTrackElec'
   [10] Prefetching for module GsfTrackProducer/'electronGsfTracks'
   [11] Prefetching for module CkfTrackCandidateMaker/'electronCkfTrackCandidates'
   [12] Prefetching for module MeasurementTrackerEventProducer/'MeasurementTrackerEvent'
   [13] Prefetching for module JetCoreClusterSplitter/'siPixelClusters'
   [14] Prefetching for module PrimaryVertexProducer/'firstStepPrimaryVerticesPreSplitting'
   [15] Prefetching for module TrackProducer/'initialStepTracksPreSplitting'
   [16] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidatesPreSplitting'
   [17] Prefetching for module MkFitProducer/'initialStepTrackCandidatesMkFitPreSplitting'
   [18] Calling method for EventSetup module MkFitIterationConfigESProducer/'initialStepTrackCandidatesMkFitConfigPreSplitting'
Exception Message:
A std::exception was thrown.
[json.exception.out_of_range.403] key 'recheckOverlap' not found
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 15-Dec-2023 21:19:15 CET-----------------------
An exception of category 'StdException' occurred while
   [0] Processing  Event run: 346512 lumi: 250 event: 243042266 stream: 0
   [1] Running path 'dqmoffline_13_step'
   [2] Prefetching for module SMPDQM/'SMPDQM'
   [3] Prefetching for module MuonProducer/'muons'
   [4] Prefetching for module MuonIdProducer/'muons1stStep'
   [5] Prefetching for module DuplicateListMerger/'generalTracks'
   [6] Prefetching for module TrackProducer/'mergedDuplicateTracks'
   [7] Prefetching for module DuplicateTrackMerger/'duplicateTrackCandidates'
   [8] Prefetching for module TrackCollectionMerger/'preDuplicateMergingGeneralTracks'
   [9] Prefetching for module TrackCollectionMerger/'earlyGeneralTracks'
   [10] Prefetching for module TrackProducer/'initialStepTracks'
   [11] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidates'
   [12] Prefetching for module MkFitEventOfHitsProducer/'mkFitEventOfHits'
   [13] Prefetching for module MkFitSiPixelHitConverter/'mkFitSiPixelHits'
   [14] Prefetching for module SiPixelRecHitConverter/'siPixelRecHits'
   [15] Prefetching for module JetCoreClusterSplitter/'siPixelClusters'
   [16] Prefetching for module PrimaryVertexProducer/'firstStepPrimaryVerticesPreSplitting'
   [17] Prefetching for module TrackProducer/'initialStepTracksPreSplitting'
   [18] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidatesPreSplitting'
   [19] Prefetching for module MkFitProducer/'initialStepTrackCandidatesMkFitPreSplitting'
   [20] Calling method for EventSetup module MkFitIterationConfigESProducer/'initialStepTrackCandidatesMkFitConfigPreSplitting'
Exception Message:
A std::exception was thrown.
[json.exception.out_of_range.403] key 'recheckOverlap' not found
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 15-Dec-2023 21:22:09 CET-----------------------
An exception of category 'StdException' occurred while
   [0] Processing  Event run: 326479 lumi: 7 event: 1394020 stream: 0
   [1] Running path 'dqmoffline_8_step'
   [2] Prefetching for module CentralityDQM/'CentralityDQM'
   [3] Prefetching for module CentralityProducer/'hiCentrality'
   [4] Prefetching for module CaloTowersCreator/'towerMaker'
   [5] Prefetching for module HBHEIsolatedNoiseReflagger/'hbhereco@cpu'
   [6] Prefetching for module TrackExtrapolator/'trackExtrapolator'
   [7] Prefetching for module DuplicateListMerger/'generalTracks'
   [8] Prefetching for module TrackProducer/'mergedDuplicateTracks'
   [9] Prefetching for module DuplicateTrackMerger/'duplicateTrackCandidates'
   [10] Prefetching for module TrackCollectionMerger/'preDuplicateMergingGeneralTracks'
   [11] Prefetching for module TrackCollectionMerger/'earlyGeneralTracks'
   [12] Prefetching for module TrackProducer/'initialStepTracks'
   [13] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidates'
   [14] Prefetching for module MkFitEventOfHitsProducer/'mkFitEventOfHits'
   [15] Prefetching for module MkFitSiPixelHitConverter/'mkFitSiPixelHits'
   [16] Prefetching for module SiPixelRecHitConverter/'siPixelRecHits'
   [17] Prefetching for module JetCoreClusterSplitter/'siPixelClusters'
   [18] Prefetching for module PrimaryVertexProducer/'firstStepPrimaryVerticesPreSplitting'
   [19] Prefetching for module TrackProducer/'initialStepTracksPreSplitting'
   [20] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidatesPreSplitting'
   [21] Prefetching for module MkFitProducer/'initialStepTrackCandidatesMkFitPreSplitting'
   [22] Calling method for EventSetup module MkFitIterationConfigESProducer/'initialStepTrackCandidatesMkFitConfigPreSplitting'
Exception Message:
A std::exception was thrown.
[json.exception.out_of_range.403] key 'recheckOverlap' not found
----- End Fatal Exception -------------------------------------------------
Expand to see more relval errors ...

RelVals-INPUT

  • 138.4138.4_PromptCollisions2021/step2_PromptCollisions2021.log
  • 138.5138.5_ExpressCollisions2021/step2_ExpressCollisions2021.log
  • 140.61140.61_RunHI2022/step2_RunHI2022.log
Expand to see more relval errors ...

AddOn Tests

----- Begin Fatal Exception 15-Dec-2023 21:26:59 CET-----------------------
An exception of category 'StdException' occurred while
   [0] Processing  Event run: 1 lumi: 1 event: 1 stream: 0
   [1] Running path 'FEVTDEBUGHLToutput_step'
   [2] Prefetching for module PoolOutputModule/'FEVTDEBUGHLToutput'
   [3] Prefetching for module ReducedRecHitCollectionProducer/'reducedEcalRecHitsEB'
   [4] Prefetching for module InterestingDetIdCollectionProducer/'interestingEcalDetIdPFEB'
   [5] Prefetching for module PFECALSuperClusterProducer/'particleFlowSuperClusterECAL'
   [6] Prefetching for module RecoChargedRefCandidatePrimaryVertexSorter/'offlinePrimaryVertices'
   [7] Prefetching for module ChargedRefCandidateProducer/'trackRefsForJetsBeforeSorting'
   [8] Prefetching for module TrackWithVertexRefSelector/'trackWithVertexRefSelectorBeforeSorting'
   [9] Prefetching for module DuplicateListMerger/'generalTracks'
   [10] Prefetching for module TrackProducer/'mergedDuplicateTracks'
   [11] Prefetching for module DuplicateTrackMerger/'duplicateTrackCandidates'
   [12] Prefetching for module TrackCollectionMerger/'preDuplicateMergingGeneralTracks'
   [13] Prefetching for module TrackCollectionMerger/'earlyGeneralTracks'
   [14] Prefetching for module TrackProducer/'initialStepTracks'
   [15] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidates'
   [16] Prefetching for module MkFitEventOfHitsProducer/'mkFitEventOfHits'
   [17] Prefetching for module MkFitSiPixelHitConverter/'mkFitSiPixelHits'
   [18] Prefetching for module SiPixelRecHitConverter/'siPixelRecHits'
   [19] Prefetching for module JetCoreClusterSplitter/'siPixelClusters'
   [20] Prefetching for module PrimaryVertexProducer/'firstStepPrimaryVerticesPreSplitting'
   [21] Prefetching for module TrackProducer/'initialStepTracksPreSplitting'
   [22] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidatesPreSplitting'
   [23] Prefetching for module MkFitProducer/'initialStepTrackCandidatesMkFitPreSplitting'
   [24] Calling method for EventSetup module MkFitIterationConfigESProducer/'initialStepTrackCandidatesMkFitConfigPreSplitting'
Exception Message:
A std::exception was thrown.
[json.exception.out_of_range.403] key 'recheckOverlap' not found
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 15-Dec-2023 21:26:27 CET-----------------------
An exception of category 'StdException' occurred while
   [0] Processing  Event run: 1 lumi: 1 event: 2 stream: 0
   [1] Running path 'FEVTDEBUGHLToutput_step'
   [2] Prefetching for module PoolOutputModule/'FEVTDEBUGHLToutput'
   [3] Prefetching for module ReducedRecHitCollectionProducer/'reducedEcalRecHitsEB'
   [4] Prefetching for module InterestingDetIdCollectionProducer/'interestingEcalDetIdPFEB'
   [5] Prefetching for module PFECALSuperClusterProducer/'particleFlowSuperClusterECAL'
   [6] Prefetching for module RecoChargedRefCandidatePrimaryVertexSorter/'offlinePrimaryVertices'
   [7] Prefetching for module ChargedRefCandidateProducer/'trackRefsForJetsBeforeSorting'
   [8] Prefetching for module TrackWithVertexRefSelector/'trackWithVertexRefSelectorBeforeSorting'
   [9] Prefetching for module DuplicateListMerger/'generalTracks'
   [10] Prefetching for module TrackProducer/'mergedDuplicateTracks'
   [11] Prefetching for module DuplicateTrackMerger/'duplicateTrackCandidates'
   [12] Prefetching for module TrackCollectionMerger/'preDuplicateMergingGeneralTracks'
   [13] Prefetching for module TrackCollectionMerger/'earlyGeneralTracks'
   [14] Prefetching for module TrackProducer/'initialStepTracks'
   [15] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidates'
   [16] Prefetching for module MkFitEventOfHitsProducer/'mkFitEventOfHits'
   [17] Prefetching for module MkFitSiPixelHitConverter/'mkFitSiPixelHits'
   [18] Prefetching for module SiPixelRecHitConverter/'siPixelRecHits'
   [19] Prefetching for module JetCoreClusterSplitter/'siPixelClusters'
   [20] Prefetching for module PrimaryVertexProducer/'firstStepPrimaryVerticesPreSplitting'
   [21] Prefetching for module TrackProducer/'initialStepTracksPreSplitting'
   [22] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidatesPreSplitting'
   [23] Prefetching for module MkFitProducer/'initialStepTrackCandidatesMkFitPreSplitting'
   [24] Calling method for EventSetup module MkFitIterationConfigESProducer/'initialStepTrackCandidatesMkFitConfigPreSplitting'
Exception Message:
A std::exception was thrown.
[json.exception.out_of_range.403] key 'recheckOverlap' not found
----- End Fatal Exception -------------------------------------------------
----- Begin Fatal Exception 15-Dec-2023 21:23:48 CET-----------------------
An exception of category 'StdException' occurred while
   [0] Processing  Event run: 1 lumi: 1 event: 1 stream: 1
   [1] Running path 'FEVTDEBUGHLToutput_step'
   [2] Prefetching for module PoolOutputModule/'FEVTDEBUGHLToutput'
   [3] Prefetching for module ReducedRecHitCollectionProducer/'reducedEcalRecHitsEB'
   [4] Prefetching for module InterestingDetIdCollectionProducer/'interestingEcalDetIdPFEB'
   [5] Prefetching for module PFECALSuperClusterProducer/'particleFlowSuperClusterECAL'
   [6] Prefetching for module RecoChargedRefCandidatePrimaryVertexSorter/'offlinePrimaryVertices'
   [7] Prefetching for module ChargedRefCandidateProducer/'trackRefsForJetsBeforeSorting'
   [8] Prefetching for module TrackWithVertexRefSelector/'trackWithVertexRefSelectorBeforeSorting'
   [9] Prefetching for module DuplicateListMerger/'generalTracks'
   [10] Prefetching for module TrackProducer/'mergedDuplicateTracks'
   [11] Prefetching for module DuplicateTrackMerger/'duplicateTrackCandidates'
   [12] Prefetching for module TrackCollectionMerger/'preDuplicateMergingGeneralTracks'
   [13] Prefetching for module TrackCollectionMerger/'earlyGeneralTracks'
   [14] Prefetching for module TrackProducer/'initialStepTracks'
   [15] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidates'
   [16] Prefetching for module MkFitEventOfHitsProducer/'mkFitEventOfHits'
   [17] Prefetching for module MkFitSiPixelHitConverter/'mkFitSiPixelHits'
   [18] Prefetching for module SiPixelRecHitConverter/'siPixelRecHits'
   [19] Prefetching for module JetCoreClusterSplitter/'siPixelClusters'
   [20] Prefetching for module PrimaryVertexProducer/'firstStepPrimaryVerticesPreSplitting'
   [21] Prefetching for module TrackProducer/'initialStepTracksPreSplitting'
   [22] Prefetching for module MkFitOutputConverter/'initialStepTrackCandidatesPreSplitting'
   [23] Prefetching for module MkFitProducer/'initialStepTrackCandidatesMkFitPreSplitting'
   [24] Calling method for EventSetup module MkFitIterationConfigESProducer/'initialStepTrackCandidatesMkFitConfigPreSplitting'
Exception Message:
A std::exception was thrown.
[json.exception.out_of_range.403] key 'recheckOverlap' not found
----- End Fatal Exception -------------------------------------------------
Expand to see more addon errors ...

@slava77
Copy link
Contributor Author

slava77 commented Dec 15, 2023

test parameters:

@slava77
Copy link
Contributor Author

slava77 commented Dec 15, 2023

@cmsbuild please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-019829/36523/summary.html
COMMIT: a2c01cc
CMSSW: CMSSW_14_0_X_2023-12-15-1100/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/43580/36523/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

You can see more details here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-019829/36523/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-019829/36523/git-merge-result

Comparison Summary

Summary:

  • You potentially added 2 lines to the logs
  • Reco comparison results: 1121 differences found in the comparisons
  • DQMHistoTests: Total files compared: 50
  • DQMHistoTests: Total histograms compared: 3429858
  • DQMHistoTests: Total failures: 993
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3428843
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 49 files compared)
  • Checked 214 log files, 167 edm output root files, 50 DQM output files
  • TriggerResults: found differences in 1 / 48 workflows

@slava77
Copy link
Contributor Author

slava77 commented Dec 16, 2023

Reco comparison results: 1121 differences found in the comparisons

all changes are apparently in the .7 (mkFIt) workflow where the pixelLess iteration is enabled; as expected.

@jfernan2
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

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. @rappoccio, @sextonkennedy, @antoniovilela (and backports should be raised in the release meeting by the corresponding L2)

@rappoccio
Copy link
Contributor

+1

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.

6 participants