-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
OMTF emulator corresponding to the 2024 OMTF firmware
Changes to the OMTF algorithm that were introduced in the firmware after the previous OMTF emulator PR was merged. Mainly fixes related to the triggering on displaced muons. The firmware was deployed in the CMS on 19th March 2024. extrapolFactorsFilename added to the simOmtfDigis_cfi.py the simOmtfDigis_extrapolSimple_cfi.py is not needed now, so is deleted added L1Trigger/L1TMuonOverlapPhase2/python/fakeOmtfParamsPhase2_cff.py fix in GhostBusterPreferRefDt.cc customByRefLayer GhostBusterPreferRefDt::select - added a condition preventing eta overwriting in case the eta of the killed candidates is 121 OMTFProcessor<GoldenPatternType>::extrapolateDtPhiBFloatPoin and OMTFProcessor<GoldenPatternType>::extrapolateDtPhiBFixedPoint - extrFactor is now obtained from endcap stub r, and not eta. OmtfAngleConverter::getGlobalEta - stub r is now taken from the pure wire group, and not from the final_gp (global point) - matters for the extrapolation logic PatternGenerator::upadatePdfs() - deactivated (commented out) the process of code for setting the meanDistPhi to 0 if it is already small, as it seems it has no impact on the firmware occupancy PatternOptimizerBase: control histograms simMuEta and candEta OMTFProcessor<GoldenPatternType>::getFinalcandidatefix in setting hwPtw when ptAssignment is used in XDigiToStubsConverter::makeStubs, removed if (!dtPhDigis) return; if (!cscDigis) return; if (!rpcDigis) return; This is not needed as the DigiToStubsConverters are added dynamically to the vector digiToStubsConverters if given digis are configured to be used (parameter dropXXPrimitives is false in the config). But it was confusing: when the digi collection was not in the file, the job was still running without reporting the missing collection. PatternGenerator.cc - different DistPhiBitShift for phase-1 and phase-2 DataROOTDumper2.cc - rejecting events with more than one matchingResults (to clean the date for the NN training) cleanStubs - fasle, but filtering the matchingResults DataROOTDumper2.cc - dropping events with more than one matchingResults CandidateSimMuonMatcher.h - added method matchSimple() that matches simTracks and OMTF cands without propagation - it works well for the single muon samples. The problem with propagation is that it does not work for low pt muons (pt < ~3GeV). Added flag usePropagation to switch between matchSimple() and match() with propagation. - added phi folding for delta phi in ghostBust() (but it looks like it does not change the results) - in match() (version for the SimTrack), the MatchingResult is added also for the track for which the propagation failed. The changes should be still added to the match() version for the tracking particle. - fixed CandidateSimMuonMatcher::atStation2 - propagation to the RB1in culider bug fixes in StubResult and GoldenPatternResult, change finalise11() Omtf/AlgoMuon.h bug fix in AlgoMuon::getPatternNum() - checking if goldenPaternUnconstr, otherwise segmentation fault can be generated StubResult.h added method setPdfVal(), which is used in the GoldenPatternResult::finalise11() GoldenPatternResult.cc GoldenPatternResult::finalise11() - added penalty -63 for the phiB layers, if there was a hit but it does not fit the pdf operator<< - bug fix - checking if the pResult.omtfConfig is nullptr - this case occurs for the empty GoldenPatternResult L1Trigger/L1TMuonOverlapPhase1/test/expert/omtf/runMuonOverlap_PatsWithExtrapolation_efficiencyAnalyser.py - improved .py for running the emulator + analyzer Fixes in DataROOTDumper2 and CandidateSimMuonMatcher DataROOTDumper2 added flag usePropagation which if false turns on the filter on matchingResults.size() > 1 CandidateSimMuonMatcher::match() - threshold updated to be good for displaced muons in H2ll sample. There should be an automatic switch for this threshold added flags matchUsingPropagationInAnlyzer and matchUsingPropagationInDumper fixes of the candidate hwPt and HwPtUnconstrained Omtf/AlgoMuon.h - changed the value of getPtConstr and getPtUnconstr for an empty candidate from -1 to 0 (as it is in the interface note) OMTFConfiguration::etaBits2HwEta - added return 95 for bits == 0b111111111, as it is like that tin the FW OMTFProcessor<GoldenPatternType>::getFinalcandidates - hwPt is set to 1 if the constraint getPtConstr is 0 but getPtUnconstr > 0 L1Trigger/L1TMuonOverlapPhase1/src/Omtf/OMTFSorter.cc - bestGP is set to the golden pattern number 0 if getPdfSum() == 0 L1TMuonOverlapPhase1/src/Omtf/OMTFProcessor.cc - setting the output unconstrained pT to 1 when getPdfSumConstr. OMTFProcessor<GoldenPatternType>::getFinalcandidates - fixing the condition for the validity of the constrained pt XMLEventWriter.cc - removed constraints in the number of events that can be dumped to the xml
- Loading branch information
Karol Bunkowski
committed
May 2, 2024
1 parent
e2e3c52
commit 91d48db
Showing
27 changed files
with
543 additions
and
248 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
L1Trigger/L1TMuonOverlapPhase1/python/fakeOmtfParams_extrapolSimple_cff.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import FWCore.ParameterSet.Config as cms | ||
|
||
omtfParamsSource = cms.ESSource( | ||
"EmptyESSource", | ||
recordName = cms.string('L1TMuonOverlapParamsRcd'), | ||
iovIsRunNotTime = cms.bool(True), | ||
firstValid = cms.vuint32(1) | ||
) | ||
|
||
###OMTF ESProducer. Fills CondFormats from XML files. | ||
omtfParams = cms.ESProducer( | ||
"L1TMuonOverlapPhase1ParamsESProducer", | ||
patternsXMLFiles = cms.VPSet( | ||
#patterns used in the CMS from 19 March 2024 | ||
cms.PSet(patternsXMLFile = cms.FileInPath("L1Trigger/L1TMuon/data/omtf_config/Patterns_ExtraplMB1nadMB2SimplifiedFP_t17_classProb17_recalib2_minDP0_v3.xml")), | ||
), | ||
#corresponds to the algorithm version used in the CMS from 19 March 2024 | ||
configXMLFile = cms.FileInPath("L1Trigger/L1TMuon/data/omtf_config/hwToLogicLayer_0x0009.xml"), | ||
) | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
26 changes: 0 additions & 26 deletions
26
L1Trigger/L1TMuonOverlapPhase1/python/simOmtfDigis_extrapolSimple_cfi.py
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.