From 3d93e7eaed04f53171b3cf057eee3e6cc3cfd539 Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Fri, 27 Jun 2025 16:49:45 -0700 Subject: [PATCH] add trackToTrack comparisons for GPU vs CPU tracking, populated for trackingLST --- .../python/upgradeWorkflowComponents.py | 2 +- .../python/TrackingClientConfig_Tier0_cff.py | 12 +++++- .../python/TrackingSourceConfig_Tier0_cff.py | 2 + .../python/trackToTrackCPU_cff.py | 21 +++++++++++ .../python/HighPtTripletStep_cff.py | 37 +++++++++++++++++++ 5 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 DQM/TrackingMonitorSource/python/trackToTrackCPU_cff.py diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index e16e9aedc0fd0..67b4d0e5dc114 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -545,7 +545,7 @@ def condition(self, fragment, stepList, key, hasHarvest): class UpgradeWorkflow_lstOnGPUIters01TrackingOnly(UpgradeWorkflowTracking): def setup__(self, step, stepName, stepDict, k, properties): if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) - elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]]) + elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM', '--procModifiers': 'trackingIters01,trackingLST'}, stepDict[step][k]]) elif 'ALCA' in step: stepDict[stepName][k] = None def condition(self, fragment, stepList, key, hasHarvest): result = (fragment=="TTbar_14TeV") and hasHarvest and ('Run4' in key) diff --git a/DQM/TrackingMonitorClient/python/TrackingClientConfig_Tier0_cff.py b/DQM/TrackingMonitorClient/python/TrackingClientConfig_Tier0_cff.py index 098e45844da8e..afd9b2a594bd8 100644 --- a/DQM/TrackingMonitorClient/python/TrackingClientConfig_Tier0_cff.py +++ b/DQM/TrackingMonitorClient/python/TrackingClientConfig_Tier0_cff.py @@ -92,7 +92,17 @@ from DQM.TrackingMonitor.TrackFoldedOccupancyClient_cfi import * -TrackingOfflineDQMClient = cms.Sequence(trackingQTester*trackingOfflineAnalyser*trackingEffFromHitPattern*voMonitoringClientSequence*primaryVertexResolutionClient*TrackEffClient*foldedMapClientSeq) +from DQMOffline.Trigger.TrackingMonitoring_Client_cff import TrackToTrackEfficiencies as _t2t +highPtTripletStepTrackToTrackSerialSyncAnalyzer = _t2t.clone( + subDirs = ["Tracking/TrackBuilding/ValidationWRTSerialSync/highPtTripletStep"]) +trackToTrackCPUAnalyzer = cms.Sequence() +_trackToTrackCPUAnalyzer_trackingLST = cms.Sequence(highPtTripletStepTrackToTrackSerialSyncAnalyzer) +from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +(trackingPhase2PU140 & trackingLST).toReplaceWith(trackToTrackCPUAnalyzer, _trackToTrackCPUAnalyzer_trackingLST) + + +TrackingOfflineDQMClient = cms.Sequence(trackingQTester*trackingOfflineAnalyser*trackingEffFromHitPattern*voMonitoringClientSequence*primaryVertexResolutionClient*TrackEffClient*foldedMapClientSeq*trackToTrackCPUAnalyzer) TrackingOfflineDQMClientZeroBias = cms.Sequence(trackingQTester*trackingOfflineAnalyser*trackingEffFromHitPatternZeroBias*voMonitoringClientSequence*primaryVertexResolutionClient*TrackEffClient*foldedMapClientSeq) diff --git a/DQM/TrackingMonitorSource/python/TrackingSourceConfig_Tier0_cff.py b/DQM/TrackingMonitorSource/python/TrackingSourceConfig_Tier0_cff.py index a2cdc06931bc5..bbf5ba3935e36 100644 --- a/DQM/TrackingMonitorSource/python/TrackingSourceConfig_Tier0_cff.py +++ b/DQM/TrackingMonitorSource/python/TrackingSourceConfig_Tier0_cff.py @@ -403,6 +403,7 @@ def _copyIfExists(mod, pset, name): TrackingDQMSourceTier0 += TrackSeedMonSequence from DQM.TrackingMonitorSource.shortTrackResolution_cff import * +from DQM.TrackingMonitorSource.trackToTrackCPU_cff import * # MessageLog for module in selectedModules : @@ -412,6 +413,7 @@ def _copyIfExists(mod, pset, name): TrackingDQMSourceTier0 += voWcutMonitoringSequence TrackingDQMSourceTier0 += primaryVertexResolution TrackingDQMSourceTier0 += shortTrackResolution3to8 +TrackingDQMSourceTier0 += trackToTrackCPUSequence TrackingDQMSourceTier0 += dqmInfoTracking diff --git a/DQM/TrackingMonitorSource/python/trackToTrackCPU_cff.py b/DQM/TrackingMonitorSource/python/trackToTrackCPU_cff.py new file mode 100644 index 0000000000000..324e6d8278e78 --- /dev/null +++ b/DQM/TrackingMonitorSource/python/trackToTrackCPU_cff.py @@ -0,0 +1,21 @@ +import FWCore.ParameterSet.Config as cms +from RecoTracker.IterativeTracking.HighPtTripletStep_cff import HighPtTripletStepTaskSerialSync +from .TrackToTrackComparisonHists_cfi import TrackToTrackComparisonHists as _t2t + +trackToTrackCPUSequence = cms.Sequence() + +highPtTripletStepTrackToTrackSerialSync = _t2t.clone( + requireValidHLTPaths = False, + monitoredTrack = "highPtTripletStepTracks", + referenceTrack = "highPtTripletStepTracksSerialSync", + + monitoredBeamSpot = "offlineBeamSpot", + monitoredPrimaryVertices = "offlinePrimaryVertices", + topDirName = "Tracking/TrackBuilding/ValidationWRTSerialSync/highPtTripletStep" +) +_trackToTrackCPUTask_trackingLST = cms.Sequence(HighPtTripletStepTaskSerialSync) +_trackToTrackCPUTask_trackingLST += highPtTripletStepTrackToTrackSerialSync + +from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +(trackingPhase2PU140 & trackingLST).toReplaceWith(trackToTrackCPUSequence, _trackToTrackCPUTask_trackingLST) diff --git a/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py index a3f402800e58e..3ceac52cc382c 100644 --- a/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py @@ -433,6 +433,43 @@ lstProducerTask, highPtTripletStepLSTpTracks, highPtTripletStepLSTT5Tracks, highPtTripletStepSelectorLSTT5) (trackingPhase2PU140 & trackingLST).toReplaceWith(HighPtTripletStepTask, _HighPtTripletStepTask_LST) +lstInputProducerSerialSync = lstInputProducer.clone( + alpaka = dict(backend = "serial_sync") +) +lstProducerSerialSync = lstProducer.clone( + alpaka = dict(backend = "serial_sync"), + lstInput = "lstInputProducerSerialSync" +) +highPtTripletStepTrackCandidatesSerialSync = highPtTripletStepTrackCandidates.clone() +(trackingPhase2PU140 & trackingLST).toModify(highPtTripletStepTrackCandidatesSerialSync, + lstOutput = "lstProducerSerialSync", + lstInput = "lstInputProducerSerialSync", + lstPixelSeeds = "lstInputProducerSerialSync" +) +highPtTripletStepLSTpTracksSerialSync = highPtTripletStepLSTpTracks.clone( + src = 'highPtTripletStepTrackCandidatesSerialSync:pTCsLST') +highPtTripletStepLSTT5TracksSerialSync = highPtTripletStepLSTT5Tracks.clone( + src = 'highPtTripletStepTrackCandidatesSerialSync:t5TCsLST') +highPtTripletStepSelectorSerialSync = highPtTripletStepSelector.clone() +(trackingPhase2PU140 & trackingLST).toModify(highPtTripletStepSelectorSerialSync, src = "highPtTripletStepLSTpTracksSerialSync" ) +highPtTripletStepSelectorLSTT5SerialSync = highPtTripletStepSelectorLSTT5.clone(src = "highPtTripletStepLSTT5TracksSerialSync") +highPtTripletStepTracksSerialSync = highPtTripletStepTracks.clone() +(trackingPhase2PU140 & trackingLST).toModify(highPtTripletStepTracksSerialSync, + TrackProducers = ['highPtTripletStepLSTpTracksSerialSync', + 'highPtTripletStepLSTT5TracksSerialSync'], + selectedTrackQuals = ['highPtTripletStepSelectorSerialSync:highPtTripletStep', + 'highPtTripletStepSelectorLSTT5SerialSync:highPtTripletStepLSTT5'], +) +_HighPtTripletStepTask_LSTSerialSync = HighPtTripletStepTask.copy() +_HighPtTripletStepTask_LSTSerialSync.add(siPhase2RecHits, lstInitialStepSeedTracks, lstHighPtTripletStepSeedTracks, lstInputProducerSerialSync, + lstProducerSerialSync, highPtTripletStepTrackCandidatesSerialSync, + highPtTripletStepLSTpTracksSerialSync, highPtTripletStepLSTT5TracksSerialSync, + highPtTripletStepSelectorSerialSync, highPtTripletStepSelectorLSTT5SerialSync, + highPtTripletStepTracksSerialSync +) +HighPtTripletStepTaskSerialSync = cms.Task() +(trackingPhase2PU140 & trackingLST).toReplaceWith(HighPtTripletStepTaskSerialSync, _HighPtTripletStepTask_LSTSerialSync) + # fast tracking mask producer from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi import maskProducerFromClusterRemover highPtTripletStepMasks = maskProducerFromClusterRemover(highPtTripletStepClusters)