Skip to content

Commit a66e723

Browse files
authored
Merge pull request #49231 from bdanzi/mkFitModifierHLTPhase2
[mkFit] procModifier for Phase-2 HLT tracking and track candidates selections
2 parents fcf59c1 + 7bfaef2 commit a66e723

19 files changed

+246
-28
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
# This modifier sets replaces the default pattern recognition with mkFit for initialStep
4+
hltTrackingMkFitInitialStep = cms.Modifier()

Configuration/PyReleaseValidation/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ The offsets currently in use are:
6565
* 0.7561 HLT phase-2 timing menu Alpaka, trimmed tracking
6666
* 0.7562 HLT phase-2 timing menu Alpaka, trimmed tracking, single tracking iteration variant
6767
* 0.757: HLT phase-2 timing menu Alpaka, single tracking iteration, LST seeding + CKF building variant
68+
* 0.7571: HLT phase-2 timing menu Alpaka, single tracking iteration, LST seeding + mkFit building variant
6869
* 0.758 HLT phase-2 timing menu ticl_barrel variant
6970
* 0.759: HLT phase-2 timing menu, with NANO:@Phase2HLT
7071
* 0.76: HLT phase-2 reduced menu, with DIGI step

Configuration/PyReleaseValidation/python/relval_Run4.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
numWFIB.extend([prefixDet+34.7561])# HLTTiming75e33, alpaka,phase2_hlt_vertexTrimming
8080
numWFIB.extend([prefixDet+34.7562])# HLTTiming75e33, alpaka,phase2_hlt_vertexTrimming,singleIterPatatrack
8181
numWFIB.extend([prefixDet+34.757]) # HLTTiming75e33, alpaka,singleIterPatatrack,trackingLST,seedingLST
82+
numWFIB.extend([prefixDet+34.7571]) # HLTTiming75e33, alpaka,singleIterPatatrack,trackingLST,seedingLST,buildingMkFit
8283
numWFIB.extend([prefixDet+34.758]) # HLTTiming75e33, ticl_barrel
8384
numWFIB.extend([prefixDet+34.759]) # HLTTiming75e33 + NANO
8485
numWFIB.extend([prefixDet+34.77]) # NGTScouting

Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2023,6 +2023,19 @@ def condition(self, fragment, stepList, key, hasHarvest):
20232023
'-s':'HARVESTING:@hltValidation'
20242024
}
20252025

2026+
upgradeWFs['HLTTiming75e33AlpakaSingleIterLSTSeedingMkFitBuilding'] = deepcopy(upgradeWFs['HLTTiming75e33'])
2027+
upgradeWFs['HLTTiming75e33AlpakaSingleIterLSTSeedingMkFitBuilding'].suffix = '_HLT75e33TimingAlpakaSingleIterLSTSeedingMkFitBuilding'
2028+
upgradeWFs['HLTTiming75e33AlpakaSingleIterLSTSeedingMkFitBuilding'].offset = 0.7571
2029+
upgradeWFs['HLTTiming75e33AlpakaSingleIterLSTSeedingMkFitBuilding'].step2 = {
2030+
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing,VALIDATION:@hltValidation',
2031+
'--procModifiers': 'alpaka,singleIterPatatrack,trackingLST,seedingLST,trackingMkFitCommon,hltTrackingMkFitInitialStep',
2032+
'--datatier':'GEN-SIM-DIGI-RAW,DQMIO',
2033+
'--eventcontent':'FEVTDEBUGHLT,DQMIO'
2034+
}
2035+
upgradeWFs['HLTTiming75e33AlpakaSingleIterLSTSeedingMkFitBuilding'].step3 = {
2036+
'-s':'HARVESTING:@hltValidation'
2037+
}
2038+
20262039
upgradeWFs['HLTTiming75e33TiclBarrel'] = deepcopy(upgradeWFs['HLTTiming75e33'])
20272040
upgradeWFs['HLTTiming75e33TiclBarrel'].suffix = '_HLT75e33TimingTiclBarrel'
20282041
upgradeWFs['HLTTiming75e33TiclBarrel'].offset = 0.758

Configuration/PyReleaseValidation/scripts/runTheMatrix.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,10 @@ def runSelected(opt):
166166
29634.756, # HLT phase-2 timing menu trimmed tracking
167167
29634.7561, # HLT phase-2 timing menu Alpaka, trimmed tracking
168168
29634.7562, # HLT phase-2 timing menu Alpaka, trimmed tracking, single tracking iteration variant
169-
29634.757, # HLT phase-2 timing menu, with NANO:@Phase2HLT
169+
29634.757, # HLT phase-2 timing menu Alpaka, single tracking iteration, LST seeding + CKF building variant
170+
29634.7571, # HLT phase-2 timing menu Alpaka, single tracking iteration, LST seeding + mkFit building variant
170171
29634.758, # HLT phase-2 timing menu ticl_barrel variant
171-
29634.759, # HLT phase-2 timing menu Alpaka, single tracking iteration, LST seeding + CKF building variant
172+
29634.759, # HLT phase-2 timing menu, with NANO:@Phase2HLT
172173
29634.77, # HLT phase-2 NGT Scouting menu
173174
29634.771, # HLT phase-2 NGT Scouting menu, Alpaka, TICL-v5, TICL-Barrel, CA Extension
174175
29634.772, # HLT phase-2 NGT Scouting menu, with NANO:@NGTScouting
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
def _addProcessMkFitGeometry(process):
4+
process.mkFitGeometryESProducer = cms.ESProducer("MkFitGeometryESProducer",
5+
appendToDataLabel = cms.string('')
6+
)
7+
8+
from Configuration.ProcessModifiers.trackingMkFitCommon_cff import trackingMkFitCommon
9+
modifyConfigurationForTrackingMkFitGeometryMkfit_ = trackingMkFitCommon.makeProcessModifier(_addProcessMkFitGeometry)
10+
11+
def _addProcesshltInitialStepMkFitConfig(process):
12+
process.hltInitialStepTrackCandidatesMkFitConfig = cms.ESProducer("MkFitIterationConfigESProducer",
13+
ComponentName = cms.string('hltInitialStepTrackCandidatesMkFitConfig'),
14+
appendToDataLabel = cms.string(''),
15+
config = cms.FileInPath('RecoTracker/MkFit/data/mkfit-phase2-initialStep.json'),
16+
maxClusterSize = cms.uint32(8),
17+
minPt = cms.double(0.8)
18+
)
19+
20+
from Configuration.ProcessModifiers.hltTrackingMkFitInitialStep_cff import hltTrackingMkFitInitialStep
21+
modifyConfigurationForTrackingMkFithltInitialStepMkFitConfig_ = hltTrackingMkFitInitialStep.makeProcessModifier(_addProcesshltInitialStepMkFitConfig)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
# MkFitSeedConverter options
4+
hltInitialStepMkFitSeeds = cms.EDProducer("MkFitSeedConverter",
5+
maxNSeeds = cms.uint32(500000),
6+
mightGet = cms.optional.untracked.vstring,
7+
seeds = cms.InputTag("hltInitialStepSeeds"),
8+
ttrhBuilder = cms.ESInputTag("","WithTrackAngle")
9+
)
10+
11+
from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
12+
from Configuration.ProcessModifiers.seedingLST_cff import seedingLST
13+
from Configuration.ProcessModifiers.hltTrackingMkFitInitialStep_cff import hltTrackingMkFitInitialStep
14+
(trackingLST & seedingLST & hltTrackingMkFitInitialStep).toModify(hltInitialStepMkFitSeeds, seeds = "hltInitialStepTrajectorySeedsLST")
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
# InitialStepTrackCandidatesMkFit options
4+
hltInitialStepTrackCandidatesMkFit = cms.EDProducer("MkFitProducer",
5+
backwardFitInCMSSW = cms.bool(False),
6+
buildingRoutine = cms.string('cloneEngine'),
7+
clustersToSkip = cms.InputTag(""),
8+
config = cms.ESInputTag("","hltInitialStepTrackCandidatesMkFitConfig"),
9+
eventOfHits = cms.InputTag("hltMkFitEventOfHits"),
10+
limitConcurrency = cms.untracked.bool(False),
11+
mightGet = cms.optional.untracked.vstring,
12+
minGoodStripCharge = cms.PSet(),
13+
mkFitSilent = cms.untracked.bool(True),
14+
pixelHits = cms.InputTag("hltMkFitSiPixelHits"),
15+
removeDuplicates = cms.bool(True),
16+
seedCleaning = cms.bool(True),
17+
seeds = cms.InputTag("hltInitialStepMkFitSeeds"),
18+
stripHits = cms.InputTag("hltMkFitSiPhase2Hits")
19+
)

HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,42 @@
4444
)
4545
)
4646

47+
48+
_hltInitialStepTrackCandidatesMkFit = cms.EDProducer('MkFitOutputConverter',
49+
batchSize = cms.int32(16),
50+
candMVASel = cms.bool(False),
51+
candCutSel = cms.bool(True),
52+
candMinNHitsCut = cms.int32(3),
53+
candMinPtCut = cms.double(0.8),
54+
candWP = cms.double(0),
55+
doErrorRescale = cms.bool(True),
56+
mightGet = cms.optional.untracked.vstring,
57+
mkFitEventOfHits = cms.InputTag("hltMkFitEventOfHits"),
58+
mkFitPixelHits = cms.InputTag("hltMkFitSiPixelHits"),
59+
mkFitSeeds = cms.InputTag("hltInitialStepMkFitSeeds"),
60+
mkFitStripHits = cms.InputTag("hltMkFitSiPhase2Hits"),
61+
propagatorAlong = cms.ESInputTag("","PropagatorWithMaterial"),
62+
propagatorOpposite = cms.ESInputTag("","PropagatorWithMaterialOpposite"),
63+
qualityMaxInvPt = cms.double(100),
64+
qualityMaxPosErr = cms.double(100),
65+
qualityMaxR = cms.double(120),
66+
qualityMaxZ = cms.double(280),
67+
qualityMinTheta = cms.double(0.01),
68+
qualitySignPt = cms.bool(True),
69+
seeds = cms.InputTag("hltInitialStepSeeds"),
70+
tfDnnLabel = cms.string('trackSelectionTf'),
71+
tracks = cms.InputTag("hltInitialStepTrackCandidatesMkFit"),
72+
ttrhBuilder = cms.ESInputTag("","WithTrackAngle")
73+
)
74+
75+
_hltInitialStepTrackCandidatesMkFitLSTSeeds = _hltInitialStepTrackCandidatesMkFit.clone(seeds = "hltInitialStepTrajectorySeedsLST")
76+
4777
from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack
4878
from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
4979
from Configuration.ProcessModifiers.seedingLST_cff import seedingLST
80+
from Configuration.ProcessModifiers.hltTrackingMkFitInitialStep_cff import hltTrackingMkFitInitialStep
5081
# All useful combinations added to make the code work as expected and for clarity
51-
(~singleIterPatatrack & trackingLST & ~seedingLST).toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesLST)
52-
(~singleIterPatatrack & trackingLST & seedingLST).toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesLST)
53-
(singleIterPatatrack & trackingLST & ~seedingLST).toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesLST)
82+
(~(singleIterPatatrack & seedingLST) & trackingLST).toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesLST)
5483
(singleIterPatatrack & trackingLST & seedingLST).toModify(hltInitialStepTrackCandidates, src = "hltInitialStepTrajectorySeedsLST") # All LST seeds
84+
(~seedingLST & ~trackingLST & hltTrackingMkFitInitialStep).toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesMkFit)
85+
(singleIterPatatrack & seedingLST & trackingLST & hltTrackingMkFitInitialStep).toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesMkFitLSTSeeds)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
# MkFitEventOfHits options
4+
hltMkFitEventOfHits = cms.EDProducer("MkFitEventOfHitsProducer",
5+
beamSpot = cms.InputTag("offlineBeamSpot"),
6+
mightGet = cms.optional.untracked.vstring,
7+
pixelHits = cms.InputTag("hltMkFitSiPixelHits"),
8+
stripHits = cms.InputTag("hltMkFitSiPhase2Hits"),
9+
usePixelQualityDB = cms.bool(True),
10+
useStripStripQualityDB = cms.bool(False)
11+
)

0 commit comments

Comments
 (0)