diff --git a/Configuration/EventContent/python/EventContent_cff.py b/Configuration/EventContent/python/EventContent_cff.py index de8f59d46602a..c3cc0b34c90e7 100644 --- a/Configuration/EventContent/python/EventContent_cff.py +++ b/Configuration/EventContent/python/EventContent_cff.py @@ -281,6 +281,7 @@ def SwapKeepAndDrop(l): from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer from Configuration.Eras.Modifier_run2_GEM_2017_cff import run2_GEM_2017 from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM +from Configuration.ProcessModifiers.alpakaValidationLST_cff import alpakaValidationLST from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA from RecoLocalFastTime.Configuration.RecoLocalFastTime_EventContent_cff import * from RecoMTD.Configuration.RecoMTD_EventContent_cff import * @@ -718,6 +719,11 @@ def SwapKeepAndDrop(l): 'keep *_hltInitialStepTracksT5TCLST_*_*', 'keep *_hltOfflinePrimaryVertices_*_*', ]) +alpakaValidationLST.toModify(FEVTDEBUGHLTEventContent, + outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[ + 'keep *_hltInitialStepTracks_*_*', + 'keep *_hltInitialStepTracksSerialSync_*_*', + ]) phase2_common.toModify(FEVTDEBUGHLTEventContent, outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[ diff --git a/Configuration/ProcessModifiers/python/alpakaValidationLST_cff.py b/Configuration/ProcessModifiers/python/alpakaValidationLST_cff.py new file mode 100644 index 0000000000000..4dc18d7884bae --- /dev/null +++ b/Configuration/ProcessModifiers/python/alpakaValidationLST_cff.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +# This modifier performs the host/device validation for the LST algorithm +alpakaValidationLST = cms.Modifier() + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepMkFitSeeds_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepMkFitSeeds_cfi.py index 2336eca4bf7ac..3dfdf039934ef 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepMkFitSeeds_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepMkFitSeeds_cfi.py @@ -12,3 +12,7 @@ from Configuration.ProcessModifiers.seedingLST_cff import seedingLST from Configuration.ProcessModifiers.hltTrackingMkFitInitialStep_cff import hltTrackingMkFitInitialStep (trackingLST & seedingLST & hltTrackingMkFitInitialStep).toModify(hltInitialStepMkFitSeeds, seeds = "hltInitialStepTrajectorySeedsLST") + +hltInitialStepMkFitSeedsSerialSync = hltInitialStepMkFitSeeds.clone( + seeds = "hltInitialStepTrajectorySeedsLSTSerialSync" +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidatesMkFit_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidatesMkFit_cfi.py index 74816164a543b..63b704b5d606e 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidatesMkFit_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidatesMkFit_cfi.py @@ -17,3 +17,7 @@ seeds = cms.InputTag("hltInitialStepMkFitSeeds"), stripHits = cms.InputTag("hltMkFitSiPhase2Hits") ) + +hltInitialStepTrackCandidatesMkFitSerialSync = hltInitialStepTrackCandidatesMkFit.clone( + seeds = "hltInitialStepMkFitSeedsSerialSync" +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py index a1a69270fccf6..ead44e965aac9 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py @@ -87,3 +87,16 @@ (singleIterPatatrack & trackingLST & seedingLST).toModify(hltInitialStepTrackCandidates, src = "hltInitialStepTrajectorySeedsLST") # All LST seeds (~seedingLST & ~trackingLST & hltTrackingMkFitInitialStep).toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesMkFit) (singleIterPatatrack & seedingLST & trackingLST & hltTrackingMkFitInitialStep).toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesMkFitLSTSeeds) + +# Supported combinations for LST CPU vs. GPU validation +hltInitialStepTrackCandidatesSerialSync = hltInitialStepTrackCandidates.clone() +(singleIterPatatrack & trackingLST & ~seedingLST).toModify(hltInitialStepTrackCandidatesSerialSync, + lstOutput = cms.InputTag('hltLSTSerialSync'), + lstInput = cms.InputTag('hltInputLSTSerialSync'), + lstPixelSeeds = cms.InputTag('hltInputLSTSerialSync') +) +(singleIterPatatrack & seedingLST & trackingLST & hltTrackingMkFitInitialStep).toModify(hltInitialStepTrackCandidatesSerialSync, + mkFitSeeds = "hltInitialStepMkFitSeedsSerialSync", + seeds = "hltInitialStepTrajectorySeedsLSTSerialSync", + tracks = "hltInitialStepTrackCandidatesMkFitSerialSync", +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTracks_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTracks_cfi.py index c0bd11d2697f1..0b3c2b047921b 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTracks_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTracks_cfi.py @@ -18,6 +18,10 @@ useSimpleMF = cms.bool(False) ) +hltInitialStepTracksSerialSync = hltInitialStepTracks.clone( + src = cms.InputTag("hltInitialStepTrackCandidatesSerialSync"), +) + from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack from Configuration.ProcessModifiers.trackingLST_cff import trackingLST from Configuration.ProcessModifiers.seedingLST_cff import seedingLST diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrajectorySeedsLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrajectorySeedsLST_cfi.py index c3585a5b85511..90517c217353f 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrajectorySeedsLST_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrajectorySeedsLST_cfi.py @@ -19,3 +19,9 @@ forceKinematicWithRegionDirection = cms.bool(False) ) ) + +hltInitialStepTrajectorySeedsLSTSerialSync = hltInitialStepTrajectorySeedsLST.clone( + lstOutput = cms.InputTag('hltLSTSerialSync'), + lstInput = cms.InputTag('hltInputLSTSerialSync'), + lstPixelSeeds = cms.InputTag('hltInputLSTSerialSync') +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInputLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInputLST_cfi.py index 1ddc0caafda62..fed3bf26198d9 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInputLST_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInputLST_cfi.py @@ -1,4 +1,5 @@ import FWCore.ParameterSet.Config as cms +from HeterogeneousCore.AlpakaCore.functions import makeSerialClone hltInputLST = cms.EDProducer('LSTInputProducer@alpaka', ptCut = cms.double(0.8), @@ -20,6 +21,8 @@ from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack singleIterPatatrack.toReplaceWith(hltInputLST, _hltInputLSTSingleIterPatatrack) +hltInputLSTSerialSync = makeSerialClone(hltInputLST) + _hltInputLSTNGTScouting = hltInputLST.clone( seedTracks = ['hltInitialStepSeedTracksLST'] ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py index 2e75a7a866424..78428b7d4720f 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py @@ -1,4 +1,5 @@ import FWCore.ParameterSet.Config as cms +from HeterogeneousCore.AlpakaCore.functions import makeSerialClone hltLST = cms.EDProducer('LSTProducer@alpaka', lstInput = cms.InputTag('hltInputLST'), @@ -16,3 +17,7 @@ from Configuration.ProcessModifiers.seedingLST_cff import seedingLST (seedingLST & trackingLST).toModify(hltLST, nopLSDupClean = True, tcpLSTriplets = True ) + +hltLSTSerialSync = makeSerialClone(hltLST, + lstInput = "hltInputLSTSerialSync" +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTInitialStepSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTInitialStepSequence_cfi.py index 83e1be0bb3315..2da6d76e9f4c1 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTInitialStepSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTInitialStepSequence_cfi.py @@ -38,6 +38,15 @@ (~singleIterPatatrack & trackingLST).toReplaceWith(HLTInitialStepSequence, _HLTInitialStepSequenceLST) +from Configuration.ProcessModifiers.alpakaValidationLST_cff import alpakaValidationLST +alpakaValidationLST.toReplaceWith(_HLTInitialStepSequenceLST, cms.Sequence( + _HLTInitialStepSequenceLST.copy() + +hltInputLSTSerialSync + +hltLSTSerialSync + +hltInitialStepTrackCandidatesSerialSync + +hltInitialStepTracksSerialSync + ) +) (singleIterPatatrack & trackingLST & ~seedingLST).toReplaceWith(HLTInitialStepSequence, _HLTInitialStepSequenceLST.copyAndExclude([HLTHighPtTripletStepSeedingSequence,hltHighPtTripletStepSeedTracksLST])) from ..modules.hltInitialStepTrajectorySeedsLST_cfi import * @@ -106,6 +115,8 @@ (singleIterPatatrack & trackingLST & seedingLST & hltTrackingMkFitInitialStep).toReplaceWith(HLTInitialStepSequence, _HLTInitialStepSequenceSingleIterPatatrackLSTSeedingMkFitTracking) +#(alpakaValidation & singleIterPatatrack & trackingLST & seedingLST & hltTrackingMkFitInitialStep).toReplaceWith(HLTInitialStepSequence, HLTInitialStepSequence.copyAndAdd([hltInputLSTSerialSync,hltLSTSerialSync,hltInitialStepTrajectorySeedsLSTSerialSync,hltInitialStepTrackCandidatesSerialSync,hltInitialStepTracksSerialSync])) + from ..modules.hltInitialStepTrackCandidatesMkFitFit_cfi import * _HLTInitialStepSequenceMkFitFitTracking = cms.Sequence( diff --git a/Validation/RecoTrack/python/HLTmultiTrackValidator_cff.py b/Validation/RecoTrack/python/HLTmultiTrackValidator_cff.py index 152810f17c043..fd0636c1320aa 100644 --- a/Validation/RecoTrack/python/HLTmultiTrackValidator_cff.py +++ b/Validation/RecoTrack/python/HLTmultiTrackValidator_cff.py @@ -37,6 +37,27 @@ def _modifyForPhase2(trackvalidator): from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify(hltTrackValidator, _modifyForPhase2) + +from DQM.TrackingMonitorSource.TrackToTrackComparisonHists_cfi import TrackToTrackComparisonHists as _TrackToTrackComparisonHists +hltInitialStepTrackToTrackSerialSync = _TrackToTrackComparisonHists.clone( + requireValidHLTPaths = False, + monitoredTrack = "hltInitialStepTracks", + monitoredBeamSpot = "hltOnlineBeamSpot", + monitoredPrimaryVertices = "hltPhase2PixelVertices", + referenceTrack = "hltInitialStepTracksSerialSync", + referenceBeamSpot = "hltOnlineBeamSpot", + referencePrimaryVertices = "hltPhase2PixelVertices", + topDirName = cms.string('HLT/Tracking/ValidationWRTSerialSync/initialStepTracks'), +) + +from Configuration.ProcessModifiers.alpakaValidationLST_cff import alpakaValidationLST +alpakaValidationLST.toReplaceWith(hltMultiTrackValidation, cms.Sequence( + hltMultiTrackValidation.copy() + +hltInitialStepTrackToTrackSerialSync + ) +) + + from Configuration.ProcessModifiers.trackingLST_cff import trackingLST from Configuration.ProcessModifiers.ngtScouting_cff import ngtScouting from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack