RecoMTD/TrackExtender: extract MTDHitMatcher standalone class - #51550
Conversation
Move hit-matching logic out of TrackExtenderWithMTD and into a new
standalone MTDHitMatcher class (analogous to TrackTransformer), exported
as a library from RecoMTD/TrackExtender.
MTDHitMatcher owns the MeasurementEstimator, the TransientTrackingRecHit
builder, and all chi2/bsTimeSpread configuration. It exposes:
matchBTL() -- delegates to matchLayers() with allBTLLayers()
matchETL() -- filters to same z-side, delegates to matchLayers(),
sorts output innermost-first
matchLayers() (private) -- the shared loop over find_hits_in_dets()
and fillMatchingHits(); no logic duplication
The plugin config gains a nested "MTDHitMatcher" PSet (analogous to
"TrackTransformer"), grouping: estimatorMaxChi2, estimatorMaxNSigma,
btlChi2Cut, btlTimeChi2Cut, etlChi2Cut, etlTimeChi2Cut, bsTimeSpread,
MTDRecHitBuilder.
TrackExtenderWithMTD.produce() now calls matcher_.matchBTL/matchETL()
with two lines each, making the planned PR5 intermediate BTL refit a
one-line insertion between those two calls.
No logic changes.
|
cms-bot internal usage |
|
-code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51550/50276
Code check has found code style and quality issues which could be resolved by applying following patch(s)
|
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51550/50277
|
|
A new Pull Request was created by @xabiercidvidal for master. It involves the following packages:
@Moanwar, @cmsbuild, @jfernan2, @mandrenguyen, @srimanob can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
|
test parameters:
|
|
please test |
|
-1 Failed Tests: RelVals Failed RelVals |
…cher PSet Move estimatorMaxChi2, estimatorMaxNSigma, btlChi2Cut, btlTimeChi2Cut, etlChi2Cut, etlTimeChi2Cut, bsTimeSpread and MTDRecHitBuilder into the nested MTDHitMatcher PSet introduced in RecoMTD/TrackExtender.
|
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-51550/50282
|
|
Pull request #51550 was updated. @Martin-Grunewald, @Moanwar, @cmsbuild, @jfernan2, @mandrenguyen, @mmusich, @srimanob can you please check and sign again. |
|
@cmsbuild, please test |
|
+1 Size: This PR adds an extra 52KB to repository Comparison SummarySummary:
|
|
@cmsbuild, please test
|
|
+1 Size: This PR adds an extra 16KB to repository Comparison SummarySummary:
|
|
+hlt |
|
+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. @sextonkennedy, @ftenchini, @mandrenguyen (and backports should be raised in the release meeting by the corresponding L2) |
|
+1 |
PR description:
Continuation of the TrackExtenderWithMTD refactoring started in #51374.
Moves hit-matching logic out of TrackExtenderWithMTD and into a new standalone MTDHitMatcher class (analogous to TrackTransformer), exported as a library from RecoMTD/TrackExtender.
MTDHitMatcher owns the MeasurementEstimator, the TransientTrackingRecHit builder, and all chi²/bsTimeSpread configuration. It exposes:
matchBTL() — delegates to matchLayers() with allBTLLayers()
matchETL() — filters to same z-side, delegates to matchLayers(), sorts output innermost-first
matchLayers() (private) — the shared loop over find_hits_in_dets() and fillMatchingHits(); no logic duplication
The plugin config gains a nested "MTDHitMatcher" PSet (analogous to "TrackTransformer"), grouping: estimatorMaxChi2, estimatorMaxNSigma, btlChi2Cut, btlTimeChi2Cut, etlChi2Cut, etlTimeChi2Cut, bsTimeSpread, MTDRecHitBuilder.
TrackExtenderWithMTD::produce() now calls matcher_.matchBTL()/matchETL() with two lines each, making a planned intermediate BTL refit a one-line insertion between those two calls.
No logic changes.
PR validation:
PU200 RelMon (pr3 vs master+#51374, 827 MTD histograms, b2b KS t=0.99999): 827/827 passing (100%)
RelMon: https://cernbox.cern.ch/s/phGMV79uPHpJ5El
Overlay plots: https://cernbox.cern.ch/s/u96notA0FYngDv3