Skip to content

Commit

Permalink
Merge pull request #46828 from SegmentLinking/CMSSW_14_2_0_pre4_singl…
Browse files Browse the repository at this point in the history
…eIter_LST_HLT

Addition of single iteration Patatrack and LST HLT configurations and workflows
  • Loading branch information
cmsbuild authored Dec 4, 2024
2 parents 9628e8f + 0f32bd0 commit f912613
Show file tree
Hide file tree
Showing 37 changed files with 370 additions and 14 deletions.
5 changes: 5 additions & 0 deletions Configuration/ProcessModifiers/python/seedingLST_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import FWCore.ParameterSet.Config as cms

# This modifier sets the LST (Phase-2 line segment tracking) used for track seeding
# Needs to be used on top of the trackingLST modifier
seedingLST = cms.Modifier()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import FWCore.ParameterSet.Config as cms

# This modifier merges the initialStep and highPtTripletStep iterations
# to a single iteration using Patatrack pixel tracks with >3 hits as seeds
singleIterPatatrack = cms.Modifier()
4 changes: 3 additions & 1 deletion Configuration/PyReleaseValidation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ The offsets currently in use are:
* 0.75: HLT phase-2 timing menu
* 0.751: HLT phase-2 timing menu Alpaka variant
* 0.752: HLT phase-2 timing menu ticl_v5 variant
* 0.753: HLT phase-2 timing menu Alpaka, single tracking iteration variant
* 0.754: HLT phase-2 timing menu Alpaka, single tracking iteration, LST building variant
* 0.755: HLT phase-2 timing menu Alpaka, LST building variant
* 0.78: Complete L1 workflow
* 0.8: BPH Parking (Run-2)
* 0.81: Running also HeavyFlavor DQM
Expand All @@ -91,7 +94,6 @@ The offsets currently in use are:
* 0.633: ECAL phase2 Trigger Primitive
* 0.634: ECAL phase2 Trigger Primitive + component-method based digis
* 0.635: ECAL phase2 Trigger Primitive + component-method based finely-sampled waveforms
* 0.75: Phase-2 HLT Timing menu
* 0.91: Track DNN modifier
* 0.97: Premixing stage1
* 0.98: Premixing stage2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2130,6 +2130,30 @@ def condition(self, fragment, stepList, key, hasHarvest):
'--procModifiers': 'ticl_v5'
}

upgradeWFs['HLTTiming75e33AlpakaSingleIter'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33AlpakaSingleIter'].suffix = '_HLT75e33TimingAlpakaSingleIter'
upgradeWFs['HLTTiming75e33AlpakaSingleIter'].offset = 0.753
upgradeWFs['HLTTiming75e33AlpakaSingleIter'].step2 = {
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing',
'--procModifiers': 'alpaka,singleIterPatatrack'
}

upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].suffix = '_HLT75e33TimingAlpakaSingleIterLST'
upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].offset = 0.754
upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].step2 = {
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing',
'--procModifiers': 'alpaka,singleIterPatatrack,trackingLST'
}

upgradeWFs['HLTTiming75e33AlpakaLST'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33AlpakaLST'].suffix = '_HLT75e33TimingAlpakaLST'
upgradeWFs['HLTTiming75e33AlpakaLST'].offset = 0.755
upgradeWFs['HLTTiming75e33AlpakaLST'].step2 = {
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing',
'--procModifiers': 'alpaka,trackingLST'
}


class UpgradeWorkflow_HLTwDIGI75e33(UpgradeWorkflow):
def setup_(self, step, stepName, stepDict, k, properties):
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import FWCore.ParameterSet.Config as cms

def _addProcessModulesDevLST(process):
process.hltESPModulesDevLST = cms.ESProducer('LSTModulesDevESProducer@alpaka',
appendToDataLabel = cms.string(''),
alpaka = cms.untracked.PSet(
backend = cms.untracked.string('')
)
)

from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
modifyConfigurationForTrackingLSTModulesDevLST_ = trackingLST.makeProcessModifier(_addProcessModulesDevLST)
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import FWCore.ParameterSet.Config as cms

hltTTRBWR = cms.ESProducer("TkTransientTrackingRecHitBuilderESProducer",
ComponentName = cms.string('hltESPTTRHBWithTrackAngle'),
hltESPTTRHBuilderWithTrackAngle = cms.ESProducer("TkTransientTrackingRecHitBuilderESProducer",
ComponentName = cms.string('hltESPTTRHBuilderWithTrackAngle'),
ComputeCoarseLocalPositionFromDisk = cms.bool(False),
Matcher = cms.string('StandardMatcher'),
Phase2StripCPE = cms.string('Phase2StripCPE'),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import FWCore.ParameterSet.Config as cms

def _addProcessTTRHBuilderWithoutRefit(process):
process.hltESPTTRHBuilderWithoutRefit = cms.ESProducer("TkTransientTrackingRecHitBuilderESProducer",
ComponentName = cms.string('hltESPTTRHBuilderWithoutRefit'),
ComputeCoarseLocalPositionFromDisk = cms.bool(False),
Matcher = cms.string('Fake'),
Phase2StripCPE = cms.string(''),
PixelCPE = cms.string('Fake'),
StripCPE = cms.string('Fake')
)

from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
modifyConfigurationForTrackingLSTTTRHBuilderWithoutRefit_ = trackingLST.makeProcessModifier(_addProcessTTRHBuilderWithoutRefit)
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,58 @@
trackAlgoPriorityOrder = cms.string('trackAlgoPriorityOrder'),
writeOnlyTrkQuals = cms.bool(False)
)

_hltGeneralTracksSingleIterPatatrack = hltGeneralTracks.clone(
TrackProducers = ["hltInitialStepTrackSelectionHighPurity"],
hasSelector = [0],
indivShareFrac = [1.0],
selectedTrackQuals = ["hltInitialStepTrackSelectionHighPurity"],
setsToMerge = [cms.PSet(
pQual = cms.bool(True),
tLists = cms.vint32(0)
)]
)

from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack
singleIterPatatrack.toReplaceWith(hltGeneralTracks, _hltGeneralTracksSingleIterPatatrack)

_hltGeneralTracksLST = hltGeneralTracks.clone(
TrackProducers = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTrackSelectionHighPuritypLSTCLST", "hltInitialStepTracksT5TCLST", "hltHighPtTripletStepTrackSelectionHighPurity"],
hasSelector = [0,0,0,0],
indivShareFrac = [0.1,0.1,0.1,0.1],
selectedTrackQuals = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTrackSelectionHighPuritypLSTCLST", "hltInitialStepTracksT5TCLST", "hltHighPtTripletStepTrackSelectionHighPurity"],
setsToMerge = [cms.PSet(
pQual = cms.bool(True),
tLists = cms.vint32(0,1,2,3)
)]
)

from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
trackingLST.toReplaceWith(hltGeneralTracks, _hltGeneralTracksLST)

_hltGeneralTracksLSTSingleIterPatatrack = hltGeneralTracks.clone(
TrackProducers = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTrackSelectionHighPuritypLSTCLST", "hltInitialStepTracksT5TCLST"],
hasSelector = [0,0,0],
indivShareFrac = [0.1,0.1,0.1],
selectedTrackQuals = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTrackSelectionHighPuritypLSTCLST", "hltInitialStepTracksT5TCLST"],
setsToMerge = [cms.PSet(
pQual = cms.bool(True),
tLists = cms.vint32(0,1,2)
)]
)

(singleIterPatatrack & trackingLST).toReplaceWith(hltGeneralTracks, _hltGeneralTracksLSTSingleIterPatatrack)

_hltGeneralTracksLSTSeeding = hltGeneralTracks.clone(
TrackProducers = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTracksT5TCLST", "hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST"],
hasSelector = [0,0,0],
indivShareFrac = [0.1,0.1,0.1],
selectedTrackQuals = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTracksT5TCLST", "hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST"],
setsToMerge = [cms.PSet(
pQual = cms.bool(True),
tLists = cms.vint32(0,1,2)
)]
)

from Configuration.ProcessModifiers.seedingLST_cff import seedingLST
(seedingLST & trackingLST).toReplaceWith(hltGeneralTracks, _hltGeneralTracksLSTSeeding)
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,10 @@
trackClassifier = cms.InputTag("","QualityMasks"),
trajectories = cms.InputTag("hltInitialStepTrackSelectionHighPurity")
)

_hltHighPtTripletStepClustersLST = hltHighPtTripletStepClusters.clone(
trajectories = "hltInitialStepSeedTracksLST"
)

from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
trackingLST.toReplaceWith(hltHighPtTripletStepClusters, _hltHighPtTripletStepClustersLST)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import FWCore.ParameterSet.Config as cms

hltHighPtTripletStepSeedTracksLST = cms.EDProducer(
"TrackFromSeedProducer",
src = cms.InputTag("hltHighPtTripletStepSeeds"),
beamSpot = cms.InputTag("hltOnlineBeamSpot"),
TTRHBuilder = cms.string("hltESPTTRHBuilderWithoutRefit")
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltHighPtTripletStepTrackCandidates_cfi import hltHighPtTripletStepTrackCandidates as _hltHighPtTripletStepTrackCandidates
hltHighPtTripletStepTrackCandidatespLSTCLST = _hltHighPtTripletStepTrackCandidates.clone( src = "hltInitialStepTrackCandidates:pLSTSsLST" )
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltHighPtTripletStepTrackCutClassifier_cfi import hltHighPtTripletStepTrackCutClassifier as _hltHighPtTripletStepTrackCutClassifier
hltHighPtTripletStepTrackCutClassifierpLSTCLST = _hltHighPtTripletStepTrackCutClassifier.clone( src = "hltHighPtTripletStepTrackspLSTCLST" )
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltHighPtTripletStepTrackSelectionHighPurity_cfi import hltHighPtTripletStepTrackSelectionHighPurity as _hltHighPtTripletStepTrackSelectionHighPurity
hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST = _hltHighPtTripletStepTrackSelectionHighPurity.clone(
originalMVAVals = "hltHighPtTripletStepTrackCutClassifierpLSTCLST:MVAValues",
originalQualVals = "hltHighPtTripletStepTrackCutClassifierpLSTCLST:QualityMasks",
originalSource = "hltHighPtTripletStepTrackspLSTCLST"
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltHighPtTripletStepTracks_cfi import hltHighPtTripletStepTracks as _hltHighPtTripletStepTracks
hltHighPtTripletStepTrackspLSTCLST = _hltHighPtTripletStepTracks.clone( src = "hltHighPtTripletStepTrackCandidatespLSTCLST" )
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import FWCore.ParameterSet.Config as cms

hltInitialStepSeedTracksLST = cms.EDProducer(
"TrackFromSeedProducer",
src = cms.InputTag("hltInitialStepSeeds"),
beamSpot = cms.InputTag("hltOnlineBeamSpot"),
TTRHBuilder = cms.string("hltESPTTRHBuilderWithoutRefit")
)
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,9 @@
originRadius = cms.double(0.1),
useEventsWithNoVertex = cms.bool(True),
usePV = cms.bool(False),
useProtoTrackKinematics = cms.bool(False)
useProtoTrackKinematics = cms.bool(False),
includeFourthHit = cms.bool(False)
)

from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
trackingLST.toModify(hltInitialStepSeeds, includeFourthHit = True)
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,26 @@
src = cms.InputTag("hltInitialStepSeeds"),
useHitsSplitting = cms.bool(False)
)

_hltInitialStepTrackCandidatesLST = cms.EDProducer('LSTOutputConverter',
lstOutput = cms.InputTag('hltLST'),
phase2OTHits = cms.InputTag('hltPhase2OTHitsInputLST'),
lstPixelSeeds = cms.InputTag('hltPixelSeedInputLST'),
includeT5s = cms.bool(True),
includeNonpLSTSs = cms.bool(False),
propagatorAlong = cms.ESInputTag('', 'PropagatorWithMaterial'),
propagatorOpposite = cms.ESInputTag('', 'PropagatorWithMaterialOpposite'),
SeedCreatorPSet = cms.PSet(
ComponentName = cms.string('SeedFromConsecutiveHitsCreator'),
propagator = cms.string('PropagatorWithMaterial'),
SeedMomentumForBOFF = cms.double(5),
OriginTransverseErrorMultiplier = cms.double(1),
MinOneOverPtError = cms.double(1),
magneticField = cms.string(''),
TTRHBuilder = cms.string('WithTrackAngle'),
forceKinematicWithRegionDirection = cms.bool(False)
)
)

from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
trackingLST.toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesLST)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltInitialStepTrackCutClassifier_cfi import hltInitialStepTrackCutClassifier as _hltInitialStepTrackCutClassifier
hltInitialStepTrackCutClassifierpLSTCLST = _hltInitialStepTrackCutClassifier.clone( src = "hltInitialStepTrackspLSTCLST" )
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltInitialStepTrackCutClassifier_cfi import hltInitialStepTrackCutClassifier as _hltInitialStepTrackCutClassifier
hltInitialStepTrackCutClassifierpTTCLST = _hltInitialStepTrackCutClassifier.clone( src = "hltInitialStepTrackspTTCLST" )
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltInitialStepTrackSelectionHighPurity_cfi import hltInitialStepTrackSelectionHighPurity as _hltInitialStepTrackSelectionHighPurity
hltInitialStepTrackSelectionHighPuritypLSTCLST = _hltInitialStepTrackSelectionHighPurity.clone(
originalMVAVals = "hltInitialStepTrackCutClassifierpLSTCLST:MVAValues",
originalQualVals = "hltInitialStepTrackCutClassifierpLSTCLST:QualityMasks",
originalSource = "hltInitialStepTrackspLSTCLST"
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltInitialStepTrackSelectionHighPurity_cfi import hltInitialStepTrackSelectionHighPurity as _hltInitialStepTrackSelectionHighPurity
hltInitialStepTrackSelectionHighPuritypTTCLST = _hltInitialStepTrackSelectionHighPurity.clone(
originalMVAVals = "hltInitialStepTrackCutClassifierpTTCLST:MVAValues",
originalQualVals = "hltInitialStepTrackCutClassifierpTTCLST:QualityMasks",
originalSource = "hltInitialStepTrackspTTCLST"
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltInitialStepTracks_cfi import hltInitialStepTracks as _hltInitialStepTracks
hltInitialStepTracksT5TCLST = _hltInitialStepTracks.clone( src = "hltInitialStepTrackCandidates:t5TCsLST" )
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltInitialStepTracks_cfi import hltInitialStepTracks as _hltInitialStepTracks
hltInitialStepTrackspLSTCLST = _hltInitialStepTracks.clone( src = "hltInitialStepTrackCandidates:pLSTCsLST" )
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

from ..modules.hltInitialStepTracks_cfi import hltInitialStepTracks as _hltInitialStepTracks
hltInitialStepTrackspTTCLST = _hltInitialStepTracks.clone( src = "hltInitialStepTrackCandidates:pTTCsLST" )
18 changes: 18 additions & 0 deletions HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import FWCore.ParameterSet.Config as cms

hltLST = cms.EDProducer('LSTProducer@alpaka',
pixelSeedInput = cms.InputTag('hltPixelSeedInputLST'),
phase2OTHitsInput = cms.InputTag('hltPhase2OTHitsInputLST'),
verbose = cms.bool(False),
nopLSDupClean = cms.bool(False),
tcpLSTriplets = cms.bool(False),
mightGet = cms.optional.untracked.vstring,
alpaka = cms.untracked.PSet(
backend = cms.untracked.string('')
)
)

from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
from Configuration.ProcessModifiers.seedingLST_cff import seedingLST
(seedingLST & trackingLST).toModify(hltLST, nopLSDupClean = True,
tcpLSTriplets = True )
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import FWCore.ParameterSet.Config as cms

hltPhase2OTHitsInputLST = cms.EDProducer('LSTPhase2OTHitsInputProducer',
phase2OTRecHits = cms.InputTag('hltSiPhase2RecHits'),
mightGet = cms.optional.untracked.vstring
)
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,8 @@
# autoselect the alpaka backend
alpaka = cms.untracked.PSet(backend = cms.untracked.string(''))
)

_hltPhase2PixelTracksSoASingleIterPatatrack = hltPhase2PixelTracksSoA.clone( minHitsPerNtuplet = 3 )

from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack
singleIterPatatrack.toReplaceWith(hltPhase2PixelTracksSoA, _hltPhase2PixelTracksSoASingleIterPatatrack)
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import FWCore.ParameterSet.Config as cms

hltPixelSeedInputLST = cms.EDProducer('LSTPixelSeedInputProducer',
beamSpot = cms.InputTag('hltOnlineBeamSpot'),
seedTracks = cms.VInputTag(
'hltInitialStepSeedTracksLST',
'hltHighPtTripletStepSeedTracksLST'
)
)

_hltPixelSeedInputLSTSingleIterPatatrack = hltPixelSeedInputLST.clone(
seedTracks = ['hltInitialStepSeedTracksLST']
)

from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack
singleIterPatatrack.toReplaceWith(hltPixelSeedInputLST, _hltPixelSeedInputLSTSingleIterPatatrack)
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
import FWCore.ParameterSet.Config as cms

from RecoLocalTracker.SiPhase2Clusterizer.phase2TrackerClusterizer_cfi import siPhase2Clusters as _siPhase2Clusters
hltSiPhase2Clusters = _siPhase2Clusters.clone()
# Clusterizer options
hltSiPhase2Clusters = cms.EDProducer('Phase2TrackerClusterizer',
src = cms.InputTag("mix", "Tracker"),
maxClusterSize = cms.uint32(0), # was 8
maxNumberClusters = cms.uint32(0)
)

from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2
premix_stage2.toModify(hltSiPhase2Clusters, src = "mixData:Tracker")
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import FWCore.ParameterSet.Config as cms

# RecHits options
hltSiPhase2RecHits = cms.EDProducer("Phase2TrackerRecHits",
src = cms.InputTag("hltSiPhase2Clusters"),
Phase2StripCPE = cms.ESInputTag("phase2StripCPEESProducer", "Phase2StripCPE")
)
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

HLTPSetTrajectoryBuilderForGsfElectrons = cms.PSet(
ComponentType = cms.string('CkfTrajectoryBuilder'),
TTRHBuilder = cms.string('hltESPTTRHBWithTrackAngle'),
TTRHBuilder = cms.string('hltESPTTRHBuilderWithTrackAngle'),
alwaysUseInvalidHits = cms.bool(True),
estimator = cms.string('hltESPChi2ChargeMeasurementEstimator2000'),
intermediateCleaning = cms.bool(False),
Expand All @@ -15,4 +15,4 @@
refToPSet_ = cms.string('HLTPSetTrajectoryFilterForElectrons')
),
updator = cms.string('hltESPKFUpdator')
)
)
Loading

0 comments on commit f912613

Please sign in to comment.