diff --git a/Calibration/LumiAlCaRecoProducers/python/ALCARECOLumiPixels_cff.py b/Calibration/LumiAlCaRecoProducers/python/ALCARECOLumiPixels_cff.py index 25c7e5e60cb26..153c944ea4721 100644 --- a/Calibration/LumiAlCaRecoProducers/python/ALCARECOLumiPixels_cff.py +++ b/Calibration/LumiAlCaRecoProducers/python/ALCARECOLumiPixels_cff.py @@ -9,12 +9,12 @@ ) from EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi import siPixelDigis -siPixelDigisForLumi = siPixelDigis.cpu.clone( +siPixelDigisForLumi = siPixelDigis.clone( InputLabel = "hltFEDSelectorLumiPixels" ) from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting -siPixelClustersForLumi = siPixelClustersPreSplitting.cpu.clone( +siPixelClustersForLumi = siPixelClustersPreSplitting.clone( src = "siPixelDigisForLumi" ) diff --git a/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py b/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py deleted file mode 100644 index 94b14a4f5a6e3..0000000000000 --- a/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This modifier is for replacing the legacy pixel tracks with the "Patatrack" pixel ntuplets, -# fishbone cleaning, and either the Broken Line fit (by default) or the Riemann fit. -# It also replaces the "gap" pixel vertices with a density-based vertex reconstruction algorithm. - -pixelNtupletFit = cms.Modifier() diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index a114e81d7146c..99ab97257ec6f 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -42,24 +42,9 @@ The offsets currently in use are: * 0.424: Alpaka, HCAL only, portable profiling * 0.492: Alpaka, full reco with pixel quadruplets * 0.496: Alpaka, full reco with pixel triplets -* 0.5: Pixel tracking only + 0.1 -* 0.501: Patatrack, pixel only quadruplets, on CPU -* 0.502: Patatrack, pixel only quadruplets, with automatic offload to GPU if available -* 0.504: Patatrack, pixel only quadruplets, GPU profiling -* 0.505: Patatrack, pixel only triplets, on CPU -* 0.506: Patatrack, pixel only triplets, with automatic offload to GPU if available -* 0.508: Patatrack, pixel only triplets, GPU profiling -* 0.511: Patatrack, ECAL only, on CPU -* 0.512: Patatrack, ECAL only, with automatic offload to GPU if available -* 0.513: Patatrack, ECAL only, GPU vs. CPU validation -* 0.514: Patatrack, ECAL only, GPU profiling -* 0.521: Patatrack, HCAL only, on CPU -* 0.522: Patatrack, HCAL only, with automatic offload to GPU if available -* 0.524: Patatrack, HCAL only, GPU profiling -* 0.591: Patatrack, full reco with pixel quadruplets, on CPU -* 0.592: Patatrack, full reco with pixel quadruplets, with automatic offload to GPU if available -* 0.595: Patatrack, full reco with pixel triplets, on CPU -* 0.596: Patatrack, full reco with pixel triplets, with automatic offload to GPU if available +* 0.5: Legacy pixel tracking only (CPU) +* 0.511: Legacy ECAL reco only (CPU) +* 0.521: Legacy HCAL reco only (CPU) * 0.6: HE Collapse (old depth segmentation for 2018) * 0.601: HLT as separate step * 0.7: trackingMkFit modifier diff --git a/Configuration/PyReleaseValidation/python/relval_gpu.py b/Configuration/PyReleaseValidation/python/relval_gpu.py index e70d877c1daaa..74e6f1ec4cdbd 100644 --- a/Configuration/PyReleaseValidation/python/relval_gpu.py +++ b/Configuration/PyReleaseValidation/python/relval_gpu.py @@ -42,8 +42,6 @@ # Alpaka pixel-only: TTbar with PU: quadruplets any backend, any backend vs cpu validation, profiling numWFIB = [ - # 2023, Alpaka-based noPU - 12434.402,12434.403,12434.412,12434.422,12434.423, # 2024, Alpaka-based noPU 12834.402, 12834.403, 12834.404, @@ -86,68 +84,69 @@ # data WFs to run in IB: -# data 2023 Patatrack pixel-only triplets: RunJetMET2022D on GPU (optional), RunJetMET2022D GPU-vs-CPU validation, RunJetMET2022D profiling -# Patatrack ECAL-only: RunJetMET2022D on GPU (optional), RunJetMET2022D GPU-vs-CPU validation, RunJetMET2022D profiling -# Patatrack HCAL-only: RunJetMET2022D on GPU (optional), RunJetMET2022D GPU-vs-CPU validation, RunJetMET2022D profiling -workflows[141.008506] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU',[ - 'RunJetMET2023B', +# data 2023 Alpaka pixel-only triplets: RunJetMET2023D on GPU (optional), RunJetMET2023D GPU-vs-CPU validation, RunJetMET2023D profiling +# Alpaka ECAL-only: RunJetMET2023D on GPU (optional), RunJetMET2023D GPU-vs-CPU validation, RunJetMET2023D profiling +# Alpaka HCAL-only: RunJetMET2023D on GPU (optional), RunJetMET2023D GPU-vs-CPU validation, RunJetMET2023D profiling + +workflows[141.044406] = ['Run3-2023_JetMET2023D_RecoPixelOnlyTripletsGPU',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPU', + 'RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPU', 'HARVESTRUN3_pixelTrackingOnly' ]] -workflows[141.008507] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Validation',[ - 'RunJetMET2023B', +workflows[141.044407] = ['Run3-2023_JetMET2023D_RecoPixelOnlyTripletsGPU_Validation',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPUValidation', + 'RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPUValidation', 'HARVESTRUN3_pixelTrackingOnlyGPUValidation' ]] -workflows[141.008508] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Profiling',[ - 'RunJetMET2023B', +workflows[141.044408] = ['Run3-2023_JetMET2023D_RecoPixelOnlyTripletsGPU_Profiling',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPUProfiling' + 'RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPUProfiling' ]] -workflows[141.008512] = ['Run3-2023_JetMET2023B_RecoECALOnlyGPU',[ - 'RunJetMET2023B', +workflows[141.044412] = ['Run3-2023_JetMET2023D_RecoECALOnlyGPU',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_ECALOnlyGPU', + 'RECODR3_reHLT_Alpaka_ECALOnlyGPU', 'HARVESTRUN3_ECALOnly' ]] -workflows[141.008513] = ['Run3-2023_JetMET2023B_RecoECALOnlyGPU_Validation',[ - 'RunJetMET2023B', +workflows[141.044413] = ['Run3-2023_JetMET2023D_RecoECALOnlyGPU_Validation',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_ECALOnlyGPUValidation', + 'RECODR3_reHLT_Alpaka_ECALOnlyGPUValidation', 'HARVESTRUN3_ECALOnlyGPUValidation' ]] -workflows[141.008514] = ['Run3-2023_JetMET2023B_RecoECALOnlyGPU_Profiling',[ - 'RunJetMET2023B', +workflows[141.044414] = ['Run3-2023_JetMET2023D_RecoECALOnlyGPU_Profiling',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_ECALOnlyGPUProfiling' + 'RECODR3_reHLT_Alpaka_ECALOnlyGPUProfiling' ]] -workflows[141.008522] = ['Run3-2023_JetMET2023B_RecoHCALOnlyGPU',[ - 'RunJetMET2023B', +workflows[141.044422] = ['Run3-2023_JetMET2023D_RecoHCALOnlyGPU',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_HCALOnlyGPU', + 'RECODR3_reHLT_Alpaka_HCALOnlyGPU', 'HARVESTRUN3_HCALOnly' ]] -workflows[141.008523] = ['Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Validation',[ - 'RunJetMET2023B', +workflows[141.044423] = ['Run3-2023_JetMET2023D_RecoHCALOnlyGPU_Validation',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_HCALOnlyGPUValidation', + 'RECODR3_reHLT_Alpaka_HCALOnlyGPUValidation', 'HARVESTRUN3_HCALOnlyGPUValidation' ]] -workflows[141.008524] = ['Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Profiling',[ - 'RunJetMET2023B', +workflows[141.044424] = ['Run3-2023_JetMET2023D_RecoHCALOnlyGPU_Profiling',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_HCALOnlyGPUProfiling' + 'RECODR3_reHLT_Alpaka_HCALOnlyGPUProfiling' ]] -workflows[141.008583] = ['Run3-2023_JetMET2023B_GPUValidation',[ - 'RunJetMET2023B', - 'RecoData_Patatrack_AllGPU_Validation_2023', - 'HARVESTData_Patatrack_AllGPU_Validation_2023' +workflows[141.044483] = ['Run3-2023_JetMET2023D_GPUValidation',[ + 'RunJetMET2023D', + 'RecoData_Alpaka_AllGPU_Validation_2023', + 'HARVESTData_Alpaka_AllGPU_Validation_2023' ]] -# 2023 HIon MC Patatrack pixel-only quadruplets on HydjetQ_MinBias_5362GeV_2023_ppReco on GPU (optional) -workflows[160.03502] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_PatatrackGPU','MINIHI2023PROD']] +# 2023 HIon MC Alpaka pixel-only quadruplets on HydjetQ_MinBias_5362GeV_2023_ppReco on GPU (optional) +workflows[160.03502] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_AlpakaGPU','MINIHI2023PROD']] diff --git a/Configuration/PyReleaseValidation/python/relval_standard.py b/Configuration/PyReleaseValidation/python/relval_standard.py index 9d368812a5f51..563eaae886e6f 100644 --- a/Configuration/PyReleaseValidation/python/relval_standard.py +++ b/Configuration/PyReleaseValidation/python/relval_standard.py @@ -544,9 +544,9 @@ workflows[141.114] = ['',['RunParkingDoubleMuonLowMass2023C','HLTDR3_2023','SKIMPARKINGDOUBLEMUONLOWMASS0RUN3_reHLT_2023','HARVESTRUN3_2023']] ### run3-2023 (2023 data) - Pixel-only (triplets), ECAL-only and HCAL-only -workflows[141.008505] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Patatrack_PixelOnlyTripletsCPU','HARVESTRUN3_pixelTrackingOnly']] -workflows[141.008511] = ['Run3-2023_JetMET2023B_RecoECALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_ECALOnlyCPU','HARVESTRUN3_ECALOnly']] -workflows[141.008521] = ['Run3-2023_JetMET2023B_RecoHCALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_HCALOnlyCPU','HARVESTRUN3_HCALOnly']] +workflows[141.008405] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_PixelOnlyTripletsCPU','HARVESTRUN3_pixelTrackingOnly']] +workflows[141.008411] = ['Run3-2023_JetMET2023B_RecoECALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_ECALOnlyCPU','HARVESTRUN3_ECALOnly']] +workflows[141.008421] = ['Run3-2023_JetMET2023B_RecoHCALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_HCALOnlyCPU','HARVESTRUN3_HCALOnly']] ### run3-2023 (2023 HI UPC data) workflows[141.901] = ['',['RunUPC2023','RECODR3_2023_UPC','HARVESTDPROMPTR3']] @@ -876,7 +876,7 @@ workflows[160.3] = ['',['ZMM_5362_HI_2023','DIGIHI2023PPRECO','RECOHI2023PPRECO','HARVESTHI2023PPRECO']] workflows[160.4] = ['',['ZEE_5362_HI_2023','DIGIHI2023PPRECO','RECOHI2023PPRECO','HARVESTHI2023PPRECO']] # Patatrack Pixel Tracks on CPU -workflows[160.501] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_PatatrackCPU','MINIHI2023PROD']] +workflows[160.401] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_AlpakaCPU','MINIHI2023PROD']] ### Run 3 cond., 2024 workflows[161] = ['',['HydjetQ_B12_5362GeV_2024','DIGIHI2024','RECOHI2024MB','ALCARECOHI2023PPRECO','HARVESTHI2024']] workflows[161.02] = ['',['HydjetQ_B12_5362GeV_2024','DIGIHI2024','RAWPRIMESIMHI18','RECOHI2024MBAPPROXCLUSTERS','ALCARECOHI2024','HARVESTHI2024S4']] diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 455bcb17a0976..764c89211f78d 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -2879,14 +2879,18 @@ def gen2024HiMix(fragment,howMuch): '--era' :'Run2_2016' } -step3_pixel_ntuplet_cpu = { - '--procModifiers': 'pixelNtupletFit' +step3_alpaka_cpu = { + '--procModifiers': 'alpaka', + '--accelerators' : 'cpu' } -step3_pixel_ntuplet_gpu = { - '--procModifiers': 'pixelNtupletFit,gpu' +step3_alpaka_gpu = { + '--procModifiers': 'alpaka', + '--accelerators' : '*' ## redundant, here just for readability } -step3_pixel_ntuplet_gpu_validation = { - '--procModifiers': 'pixelNtupletFit,gpuValidation' + +step3_alpaka_gpu_validation = { + '--procModifiers': 'alpaka,alpakaValidation', + '--accelerators' : 'gpu*' } step3_pixel_triplets = { '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' @@ -2897,9 +2901,14 @@ def gen2024HiMix(fragment,howMuch): step3_pixel_triplets_profiling = { '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' } -step3_gpu = { - '--procModifiers': 'gpu', +step3_ecal_profiling = { + '--customise': 'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' +} +step3_hcal_profiling = { + '--customise': 'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' } + + step3_trackingLowPU = { '--era': 'Run2_2016_trackingLowPU' } @@ -3108,23 +3117,45 @@ def gen2024HiMix(fragment,howMuch): steps['RECODR3_reHLT_ZBOffline']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,ALCA:SiStripCalZeroBias+SiStripCalMinBias+TkAlMinBias+EcalESAlign+HcalCalIsoTrkProducerFilter,DQM:@rerecoZeroBias+@miniAODDQM','--procModifiers':'siPixelQualityRawToDigi'},steps['RECODR3_reHLT_2022']]) steps['RECODR3_reHLT_HLTPhysics_Offline']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,ALCA:TkAlMinBias+HcalCalIterativePhiSym+HcalCalIsoTrkProducerFilter+HcalCalHO+HcalCalHBHEMuonProducerFilter,DQM:@commonReduced+@miniAODDQM','--procModifiers':'siPixelQualityRawToDigi'},steps['RECODR3_reHLT_2022']]) steps['RECODR3_reHLT_AlCaTkCosmics_Offline']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,SKIM:EXONoBPTXSkim,PAT,ALCA:TkAlCosmicsInCollisions,DQM:@standardDQMFakeHLT+@miniAODDQM'},steps['RECODR3_reHLT_2022']]) -steps['RECODR3_reHLT_pixelTrackingOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,DQM:@pixelTrackingOnlyDQM'},steps['RECODR3_reHLT_2023']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyCPU']=merge([step3_pixel_ntuplet_cpu, steps['RECODR3_reHLT_pixelTrackingOnly']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyGPU']=merge([step3_pixel_ntuplet_gpu, steps['RECODR3_reHLT_pixelTrackingOnly']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyGPUValidation']=merge([{'--accelerators':'gpu-nvidia'},step3_pixel_ntuplet_gpu_validation,steps['RECODR3_reHLT_Patatrack_PixelOnlyGPU']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyGPUProfiling']=merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly','--customise':'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly'},steps['RECODR3_reHLT_Patatrack_PixelOnlyGPU']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsCPU']=merge([step3_pixel_ntuplet_cpu, step3_pixel_triplets, steps['RECODR3_reHLT_pixelTrackingOnly']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPU']=merge([step3_pixel_ntuplet_gpu, step3_pixel_triplets, steps['RECODR3_reHLT_pixelTrackingOnly']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPUValidation']=merge([{'--accelerators':'gpu-nvidia'},step3_pixel_ntuplet_gpu_validation,steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPU']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPUProfiling']=merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly','--customise':'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly'},steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPU']]) -steps['RECODR3_reHLT_ECALOnlyCPU']=merge([{'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,DQM:@ecalOnly'},steps['RECODR3_reHLT_2023']]) -steps['RECODR3_reHLT_ECALOnlyGPU']=merge([step3_gpu, steps['RECODR3_reHLT_ECALOnlyCPU']]) -steps['RECODR3_reHLT_ECALOnlyGPUValidation']=merge([{'--accelerators':'gpu-nvidia','--procModifiers':'gpuValidation'},steps['RECODR3_reHLT_ECALOnlyGPU']]) -steps['RECODR3_reHLT_ECALOnlyGPUProfiling']=merge([{'-s':'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly', '--customise':'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly'},steps['RECODR3_reHLT_ECALOnlyGPU']]) -steps['RECODR3_reHLT_HCALOnlyCPU']=merge([{'-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,DQM:@hcalOnly+@hcal2Only'},steps['RECODR3_reHLT_2023']]) -steps['RECODR3_reHLT_HCALOnlyGPU']=merge([step3_gpu, steps['RECODR3_reHLT_HCALOnlyCPU']]) -steps['RECODR3_reHLT_HCALOnlyGPUValidation']=merge([{'--accelerators':'gpu-nvidia','--procModifiers':'gpuValidation'},steps['RECODR3_reHLT_HCALOnlyGPU']]) -steps['RECODR3_reHLT_HCALOnlyGPUProfiling']=merge([{'-s':'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly','--customise':'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly'},steps['RECODR3_reHLT_HCALOnlyGPU']]) + +###################################################### +###### Single detector wfs (pixel,ECAL,HCAL) + +### Pixel Only wfs +## Legacy wf (CPUs) +steps['RECODR3_reHLT_pixelTrackingOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,DQM:@pixelTrackingOnlyDQM'}, steps['RECODR3_reHLT_2023']]) +steps['RECODR3_reHLT_pixelTrackingOnlyProfiling']=merge([{'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly'}, steps['RECODR3_reHLT_2023']]) +## Alpaka Quadruplets Wfs +steps['RECODR3_reHLT_Alpaka_PixelOnlyCPU']=merge([step3_alpaka_cpu, steps['RECODR3_reHLT_pixelTrackingOnly']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyGPU']=merge([step3_alpaka_gpu, steps['RECODR3_reHLT_pixelTrackingOnly']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyGPUValidation']=merge([step3_alpaka_gpu_validation,steps['RECODR3_reHLT_Alpaka_PixelOnlyGPU']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyGPUProfiling']=merge([step3_alpaka_gpu, step3_pixel_profiling, steps['RECODR3_reHLT_pixelTrackingOnlyProfiling']]) +## Alpaka Triplets Wfs +steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsCPU']=merge([step3_alpaka_cpu, step3_pixel_triplets, steps['RECODR3_reHLT_pixelTrackingOnly']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPU']=merge([step3_alpaka_gpu, step3_pixel_triplets, steps['RECODR3_reHLT_pixelTrackingOnly']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPUValidation']=merge([step3_alpaka_gpu_validation,steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPU']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPUProfiling']=merge([step3_alpaka_gpu, step3_pixel_triplets_profiling, steps['RECODR3_reHLT_pixelTrackingOnlyProfiling']]) + +### ECAL Only +## Legacy wfs (CPU) +steps['RECODR3_reHLT_ECALOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,DQM:@ecalOnly'}, steps['RECODR3_reHLT_2023']]) +steps['RECODR3_reHLT_ECALOnlyProfiling']=merge([{'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly'}, steps['RECODR3_reHLT_2023']]) +## Alpaka +steps['RECODR3_reHLT_Alpaka_ECALOnlyCPU']=merge([step3_alpaka_cpu, steps['RECODR3_reHLT_ECALOnly']]) +steps['RECODR3_reHLT_Alpaka_ECALOnlyGPU']=merge([step3_alpaka_gpu, steps['RECODR3_reHLT_ECALOnly']]) +steps['RECODR3_reHLT_Alpaka_ECALOnlyGPUValidation']=merge([step3_alpaka_gpu_validation, steps['RECODR3_reHLT_Alpaka_ECALOnlyGPU']]) +steps['RECODR3_reHLT_Alpaka_ECALOnlyGPUProfiling']=merge([step3_ecal_profiling, steps['RECODR3_reHLT_ECALOnlyProfiling'], steps['RECODR3_reHLT_Alpaka_ECALOnlyGPU']]) + +### HCAL Only +## Legacy wfs (CPU) +steps['RECODR3_reHLT_HCALOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,DQM:@hcalOnly+@hcal2Only'}, steps['RECODR3_reHLT_2023']]) +steps['RECODR3_reHLT_HCALOnlyProfiling']=merge([{'-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly'}, steps['RECODR3_reHLT_2023']]) +## Alpaka +steps['RECODR3_reHLT_Alpaka_HCALOnlyCPU']=merge([step3_alpaka_cpu, steps['RECODR3_reHLT_HCALOnly']]) +steps['RECODR3_reHLT_Alpaka_HCALOnlyGPU']=merge([step3_alpaka_gpu, steps['RECODR3_reHLT_HCALOnly']]) +steps['RECODR3_reHLT_Alpaka_HCALOnlyGPUValidation']=merge([step3_alpaka_gpu_validation, steps['RECODR3_reHLT_Alpaka_HCALOnlyGPU']]) +steps['RECODR3_reHLT_Alpaka_HCALOnlyGPUProfiling']=merge([step3_hcal_profiling, steps['RECODR3_reHLT_HCALOnlyProfiling'], steps['RECODR3_reHLT_Alpaka_HCALOnlyGPU']]) +###################################################### steps['RECONANORUN3_reHLT_2022']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@standardDQMFakeHLT+@miniAODDQM+@nanoAODDQM','--datatier':'RECO,MINIAOD,NANOAOD,DQMIO','--eventcontent':'RECO,MINIAOD,NANOEDMAOD,DQM'},steps['RECODR3_reHLT_2022']]) steps['RECONANORUN3_ZB_reHLT_2022']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@rerecoZeroBiasFakeHLT+@miniAODDQM+@nanoAODDQM'},steps['RECONANORUN3_reHLT_2022']]) @@ -3147,16 +3178,16 @@ def gen2024HiMix(fragment,howMuch): steps['RECONANORUN3_ZB_reHLT_2024']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@rerecoZeroBias+@miniAODDQM+@nanoAODDQM'},steps['RECONANORUN3_reHLT_2024']]) steps['AODNANORUN3_reHLT_2024']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@standardDQM+@miniAODDQM+@nanoAODDQM','--datatier':'AOD,MINIAOD,NANOAOD,DQMIO','--eventcontent':'AOD,MINIAOD,NANOEDMAOD,DQM'},steps['RECODR3_reHLT_2024']]) -# patatrack validation in data -steps['RecoData_Patatrack_AllGPU_Validation_2023'] = merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', +# Patatrack Alpaka validation in data +steps['RecoData_Alpaka_AllGPU_Validation_2023'] = merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', '--conditions':'auto:run3_data_prompt', '--datatier':'RECO,MINIAOD,DQMIO', '-n':'100', '--eventcontent':'RECO,MINIAOD,DQM', '--geometry':'DB:Extended', '--era':'Run3', - '--accelerators': 'gpu-nvidia', - '--procModifiers':'pixelNtupletFit,gpuValidation'},dataReco]) + '--accelerators': 'gpu-*', + '--procModifiers':'alpakaValidation'},dataReco]) # Run-3 2022 skim for s in autoSkim.keys(): @@ -3322,13 +3353,13 @@ def gen2024HiMix(fragment,howMuch): '--era':'Run3_pp_on_PbPb_2023', '--procModifiers':'genJetSubEvent', },step3Up2015Defaults]) -steps['RECOHI2023PPRECOMB_PatatrackGPU']=merge([hiDefaults2023_ppReco,step3_pixel_ntuplet_gpu,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidationNoHLT+@miniAODValidation,DQM:@standardDQMFakeHLT+@miniAODDQM', +steps['RECOHI2023PPRECOMB_AlpakaGPU']=merge([hiDefaults2023_ppReco,step3_alpaka_gpu,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidationNoHLT+@miniAODValidation,DQM:@standardDQMFakeHLT+@miniAODDQM', '--datatier':'GEN-SIM-RECO,MINIAODSIM,DQMIO', '--eventcontent':'RECOSIM,MINIAODSIM,DQM', '--era':'Run3_pp_on_PbPb', '--procModifiers':'genJetSubEvent', },step3Up2015Defaults]) -steps['RECOHI2023PPRECOMB_PatatrackCPU']=merge([hiDefaults2023_ppReco,step3_pixel_ntuplet_cpu,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidationNoHLT+@miniAODValidation,DQM:@standardDQMFakeHLT+@miniAODDQM', +steps['RECOHI2023PPRECOMB_AlpakaCPU']=merge([hiDefaults2023_ppReco,step3_alpaka_cpu,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidationNoHLT+@miniAODValidation,DQM:@standardDQMFakeHLT+@miniAODDQM', '--datatier':'GEN-SIM-RECO,MINIAODSIM,DQMIO', '--eventcontent':'RECOSIM,MINIAODSIM,DQM', '--era':'Run3_pp_on_PbPb', @@ -3901,7 +3932,7 @@ def gen2024HiMix(fragment,howMuch): steps['HARVESTRUN3_HCALOnly'] = merge([ {'-s':'HARVESTING:@hcalOnly'}, steps['HARVESTRUN3_2023']]) steps['HARVESTRUN3_HCALOnlyGPUValidation'] = merge([ {'--procModifiers':'gpuValidation'}, steps['HARVESTRUN3_HCALOnly']]) -steps['HARVESTData_Patatrack_AllGPU_Validation_2023'] = merge([{'--data':'', +steps['HARVESTData_Alpaka_AllGPU_Validation_2023'] = merge([{'--data':'', '-s':'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only', '--conditions':'auto:run3_data_prompt', '--geometry':'DB:Extended', diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 0dce1e1c1a852..a9be3edf4afe4 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -1030,169 +1030,51 @@ def setup_(self, step, stepName, stepDict, k, properties): else: stepDict[stepName][k] = merge([self.__harvest, stepDict[step][k]]) -# Pixel-only quadruplets workflow running on CPU -# - HLT on CPU -# - Pixel-only reconstruction on CPU, with DQM and validation -# - harvesting - -upgradeWFs['PatatrackPixelOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyCPU', - offset = 0.501, -) - -# Pixel-only quadruplets workflow running on CPU or GPU -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackPixelOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyGPU', - offset = 0.502, -) - -# Pixel-only quadruplets workflow running on CPU and GPU -# - HLT on GPU (required) -# - Pixel-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackPixelOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_PixelOnlyGPU_Validation', - offset = 0.503, -) - -# Pixel-only quadruplets workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional) -upgradeWFs['PatatrackPixelOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise' : 'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_PixelOnlyGPU_Profiling', - offset = 0.504, -) +############################################################################################################### +### Calorimeter-only reco +### these are not technically Patarack workflows but for +### the moment we can still leverage on the PatatrackWorkflow +### constructor for simplicity -# Pixel-only triplets workflow running on CPU +# ECAL-only workflow running on CPU # - HLT on CPU -# - Pixel-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyTripletsCPU', - offset = 0.505, -) - -# Pixel-only triplets workflow running on CPU or GPU -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional), with DQM and validation +# - ECAL-only reconstruction on CPU, with DQM and validation # - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsGPU'] = PatatrackWorkflow( +upgradeWFs['ECALOnlyCPU'] = PatatrackWorkflow( digi = { # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' }, reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' + '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', }, harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' + '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' }, - suffix = 'Patatrack_PixelOnlyTripletsGPU', - offset = 0.506, + suffix = 'ECALOnlyCPU', + offset = 0.511, ) -# Pixel-only triplets workflow running on CPU and GPU -# - HLT on GPU (required) -# - Pixel-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons +# HCAL-only workflow running on CPU +# - HLT on CPU +# - HCAL-only reconstruction on CPU, with DQM and validation # - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsGPUValidation'] = PatatrackWorkflow( +upgradeWFs['HCALOnlyCPU'] = PatatrackWorkflow( digi = { # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' }, reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' + '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', }, harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM', - '--procModifiers': 'gpuValidation', + '-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' }, - suffix = 'Patatrack_PixelOnlyTripletsGPU_Validation', - offset = 0.507, + suffix = 'HCALOnlyCPU', + offset = 0.521, ) -# Pixel-only triplets workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional) -upgradeWFs['PatatrackPixelOnlyTripletsGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_PixelOnlyTripletsGPU_Profiling', - offset = 0.508, -) +############################################################################################################### +### Alpaka workflows +### # ECAL-only workflow running on CPU or GPU with Alpaka code # - HLT with Alpaka @@ -1201,7 +1083,6 @@ def setup_(self, step, stepName, stepDict, k, properties): upgradeWFs['PatatrackECALOnlyAlpaka'] = PatatrackWorkflow( digi = { # customize the ECAL Local Reco part of the HLT menu for Alpaka - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1216,168 +1097,11 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.412, ) -# ECAL-only workflow running on CPU -# - HLT on CPU -# - ECAL-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackECALOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyCPU', - offset = 0.511, -) - -# ECAL-only workflow running on CPU or GPU -# - HLT on GPU (optional) -# - ECAL-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackECALOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - '--procModifiers': 'gpu' - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyGPU', - offset = 0.512, -) - -# ECAL-only workflow running on CPU and GPU -# - HLT on GPU (required) -# - ECAL-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackECALOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyGPU_Validation', - offset = 0.513, -) - -# ECAL-only workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - ECAL-only reconstruction on GPU (optional) -upgradeWFs['PatatrackECALOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly', - '--procModifiers': 'gpu', - '--customise' : 'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_ECALOnlyGPU_Profiling', - offset = 0.514, -) - -# HCAL-only workflow running on CPU -# - HLT on CPU -# - HCAL-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackHCALOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_HCALOnlyCPU', - offset = 0.521, -) - -# HCAL-only workflow running on CPU or GPU -# - HLT on GPU (optional) -# - HCAL-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackHCALOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - '--procModifiers': 'gpu' - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_HCALOnlyGPU', - offset = 0.522, -) - -# HCAL-only workflow running on CPU and GPU -# - HLT on GPU (required) -# - HCAL-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackHCALOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcal' - }, - suffix = 'Patatrack_HCALOnlyGPU_Validation', - offset = 0.523, -) - -# HCAL-only workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - HCAL-only reconstruction on GPU (optional) -upgradeWFs['PatatrackHCALOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly', - '--procModifiers': 'gpu', - '--customise' : 'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_HCALOnlyGPU_Profiling', - offset = 0.524, -) - # HCAL-PF Only workflow running HCAL local reco on GPU and PF with Alpaka with DQM and Validation # - HLT-alpaka # - HCAL-only reconstruction using Alpaka with DQM and Validation upgradeWFs['PatatrackHCALOnlyAlpakaValidation'] = PatatrackWorkflow( - digi = { - '--procModifiers': 'alpaka', + digi = { '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1397,7 +1121,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HCAL-only reconstruction using GPU and Alpaka with DQM and Validation for PF Alpaka vs CPU comparisons upgradeWFs['PatatrackHCALOnlyGPUandAlpakaValidation'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1417,7 +1140,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HCAL-only reconstruction using Alpaka upgradeWFs['PatatrackHCALOnlyAlpakaProfiling'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', }, reco = { '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly', @@ -1434,7 +1156,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - harvesting upgradeWFs['PatatrackFullRecoAlpaka'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1454,9 +1175,9 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HLT on GPU (optional) # - reconstruction on Alpaka, with DQM and validation # - harvesting + upgradeWFs['PatatrackFullRecoAlpaka'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1472,309 +1193,9 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.496, ) -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllCPU', - offset = 0.581, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU or GPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllGPU', - offset = 0.582, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU and GPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackAllGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_AllGPU_Validation', - offset = 0.583, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - minimal reconstruction on GPU (optional) -# FIXME workflow 0.584 to be implemented - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllTripletsCPU', - offset = 0.585, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU or GPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllTripletsGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllTripletsGPU', - offset = 0.586, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU and GPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons +# Pixel-only quadruplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with DQM and validation # - harvesting -upgradeWFs['PatatrackAllTripletsGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_AllTripletsGPU_Validation', - offset = 0.587, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - minimal reconstruction on GPU (optional) -# FIXME workflow 0.588 to be implemented - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU, together with the full offline reconstruction -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoCPU', - offset = 0.591, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on GPU (optional), together with the full offline reconstruction on CPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoGPU', - offset = 0.592, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU and GPU, together with the full offline reconstruction on CPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackFullRecoGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoGPU_Validation', - offset = 0.593, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU, together with the full offline reconstruction -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsCPU', - offset = 0.595, -) -# - ProdLike -upgradeWFs['PatatrackFullRecoTripletsCPUProdLike'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--datatier':'GEN-SIM-RAW', - '--eventcontent':'RAWSIM', - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets', - '--datatier':'AODSIM', - '--eventcontent':'AODSIM', - }, - harvest = None, - suffix = 'Patatrack_FullRecoTripletsCPUProdLike', - offset = 0.59521, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on GPU (optional), together with the full offline reconstruction on CPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsGPU', - offset = 0.596, -) -# - ProdLike -upgradeWFs['PatatrackFullRecoTripletsGPUProdLike'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu', - '--datatier':'GEN-SIM-RAW', - '--eventcontent':'RAWSIM', - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets', - '--datatier':'AODSIM', - '--eventcontent':'AODSIM', - }, - harvest = None, - suffix = 'Patatrack_FullRecoTripletsGPUProdLike', - offset = 0.59621, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU and GPU, together with the full offline reconstruction on CPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsGPU_Validation', - offset = 0.597, -) upgradeWFs['PatatrackPixelOnlyAlpaka'] = PatatrackWorkflow( digi = { @@ -1793,6 +1214,10 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.402, ) +# Pixel-only quadruplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyAlpakaValidation'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1811,6 +1236,8 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.403, ) +# Pixel-only quadruplets workflow running on CPU or GPU, trimmed down for benchmarking + upgradeWFs['PatatrackPixelOnlyAlpakaProfiling'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1825,6 +1252,11 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.404, ) + +# Pixel-only triplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyTripletsAlpaka'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1842,6 +1274,10 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.406, ) +# Pixel-only triplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyTripletsAlpakaValidation'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1874,6 +1310,7 @@ def setup_(self, step, stepName, stepDict, k, properties): ) # end of Patatrack workflows +############################################################################################################### class UpgradeWorkflow_ProdLike(UpgradeWorkflow): def setup_(self, step, stepName, stepDict, k, properties): diff --git a/Configuration/PyReleaseValidation/scripts/README.md b/Configuration/PyReleaseValidation/scripts/README.md index 829b8f1288e59..291a170176e5e 100644 --- a/Configuration/PyReleaseValidation/scripts/README.md +++ b/Configuration/PyReleaseValidation/scripts/README.md @@ -227,63 +227,62 @@ premix nano matrix> showWorkflow gpu -140.065506 Run3-2023_JetMET2022D_RecoPixelOnlyTripletsGPU -140.065512 Run3-2023_JetMET2022D_RecoECALOnlyGPU -140.065522 Run3-2023_JetMET2022D_RecoHCALOnlyGPU -11634.502 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU -11634.503 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU_Validation -11634.504 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU_Profiling -11634.506 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU -11634.507 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU_Validation -11634.508 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU_Profiling -11634.512 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU -11634.513 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU_Validation -11634.514 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU_Profiling -11634.522 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU -11634.523 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU_Validation -11634.524 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU_Profiling -11634.582 TTbar_14TeV+2021_Patatrack_AllGPU -11634.583 TTbar_14TeV+2021_Patatrack_AllGPU_Validation -11634.586 TTbar_14TeV+2021_Patatrack_AllTripletsGPU -11634.587 TTbar_14TeV+2021_Patatrack_AllTripletsGPU_Validation -11634.592 TTbar_14TeV+2021_Patatrack_FullRecoGPU -11634.593 TTbar_14TeV+2021_Patatrack_FullRecoGPU_Validation -11634.596 TTbar_14TeV+2021_Patatrack_FullRecoTripletsGPU -11634.597 TTbar_14TeV+2021_Patatrack_FullRecoTripletsGPU_Validation -11650.502 ZMM_14+2021_Patatrack_PixelOnlyGPU -11650.503 ZMM_14+2021_Patatrack_PixelOnlyGPU_Validation -11650.504 ZMM_14+2021_Patatrack_PixelOnlyGPU_Profiling -11650.506 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU -11650.507 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU_Validation -11650.508 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU_Profiling -12434.502 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU -12434.503 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU_Validation -12434.504 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU_Profiling -12434.506 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU -12434.507 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU_Validation -12434.508 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU_Profiling -12434.512 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU -12434.513 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU_Validation -12434.514 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU_Profiling -12434.522 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU -12434.523 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU_Validation -12434.524 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU_Profiling -12434.582 TTbar_14TeV+2023_Patatrack_AllGPU -12434.583 TTbar_14TeV+2023_Patatrack_AllGPU_Validation -12434.586 TTbar_14TeV+2023_Patatrack_AllTripletsGPU -12434.587 TTbar_14TeV+2023_Patatrack_AllTripletsGPU_Validation -12434.592 TTbar_14TeV+2023_Patatrack_FullRecoGPU -12434.593 TTbar_14TeV+2023_Patatrack_FullRecoGPU_Validation -12434.596 TTbar_14TeV+2023_Patatrack_FullRecoTripletsGPU -12434.597 TTbar_14TeV+2023_Patatrack_FullRecoTripletsGPU_Validation -12450.502 ZMM_14+2023_Patatrack_PixelOnlyGPU -12450.503 ZMM_14+2023_Patatrack_PixelOnlyGPU_Validation -12450.504 ZMM_14+2023_Patatrack_PixelOnlyGPU_Profiling -12450.506 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU -12450.507 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU_Validation -12450.508 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU_Profiling -gpu contains 55 workflows -matrix> +141.008506 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU +141.008507 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Validation +141.008508 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Profiling +141.008512 Run3-2023_JetMET2023B_RecoECALOnlyGPU +141.008513 Run3-2023_JetMET2023B_RecoECALOnlyGPU_Validation +141.008514 Run3-2023_JetMET2023B_RecoECALOnlyGPU_Profiling +141.008522 Run3-2023_JetMET2023B_RecoHCALOnlyGPU +141.008523 Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Validation +141.008524 Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Profiling +141.008583 Run3-2023_JetMET2023B_GPUValidation +160.03502 HydjetQ_MinBias_5362GeV_2023_ppReco +12450.406 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka +12450.407 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka_Validation +12450.408 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka_Profiling +12834.402 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka +12834.403 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka_Validation +12834.404 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka_Profiling +12834.406 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka +12834.407 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka_Validation +12834.408 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka_Profiling +12834.412 TTbar_14TeV+2024_Patatrack_ECALOnlyAlpaka +12834.422 TTbar_14TeV+2024_Patatrack_HCALOnlyAlpaka_Validation +12834.423 TTbar_14TeV+2024_Patatrack_HCALOnlyGPUandAlpaka_Validation +12834.424 TTbar_14TeV+2024_Patatrack_HCALOnlyAlpaka_Profiling +12850.402 ZMM_14+2024_Patatrack_PixelOnlyAlpaka +12850.403 ZMM_14+2024_Patatrack_PixelOnlyAlpaka_Validation +12850.404 ZMM_14+2024_Patatrack_PixelOnlyAlpaka_Profiling +12861.402 NuGun+2024_Patatrack_PixelOnlyAlpaka +13034.402 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka +13034.403 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka_Validation +13034.404 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka_Profiling +13034.406 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka +13034.407 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Validation +13034.408 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Profiling +13034.412 TTbar_14TeV+2024PU_Patatrack_ECALOnlyAlpaka +13034.422 TTbar_14TeV+2024PU_Patatrack_HCALOnlyAlpaka_Validation +13034.423 TTbar_14TeV+2024PU_Patatrack_HCALOnlyGPUandAlpaka_Validation +13034.424 TTbar_14TeV+2024PU_Patatrack_HCALOnlyAlpaka_Profiling +13050.402 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka +13050.403 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka_Validation +13050.404 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka_Profiling +13050.406 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka +13050.407 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Validation +13050.408 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Profiling +13061.402 NuGun+2024PU_Patatrack_PixelOnlyAlpaka +24834.704 TTbar_14TeV+Run4D98_lstOnGPUIters01TrackingOnly +29634.402 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka +29634.403 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka_Validation +29634.404 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka_Profiling +29634.406 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyTripletsAlpaka +29661.402 NuGun+Run4D110_Patatrack_PixelOnlyAlpaka +29834.402 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka +29834.403 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka_Validation +29834.404 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka_Profiling +gpu contains 54 workflows +matrix> ``` All commands come with dynamic TAB-completion. There's also a transient history diff --git a/Configuration/StandardSequences/python/RawToDigi_Repacked_cff.py b/Configuration/StandardSequences/python/RawToDigi_Repacked_cff.py index e40eaee29c6e1..63ccf991d7e92 100644 --- a/Configuration/StandardSequences/python/RawToDigi_Repacked_cff.py +++ b/Configuration/StandardSequences/python/RawToDigi_Repacked_cff.py @@ -11,7 +11,7 @@ gctDigis.inputLabel = 'rawDataRepacker' gtDigis.DaqGtInputTag = 'rawDataRepacker' gtEvmDigis.EvmGtInputTag = 'rawDataRepacker' -siPixelDigis.cpu.InputLabel = 'rawDataRepacker' +siPixelDigis.InputLabel = 'rawDataRepacker' siStripDigis.ProductLabel = 'rawDataRepacker' ecalDigisCPU.InputLabel = 'rawDataRepacker' gpu.toModify(ecalDigisGPU, InputLabel = 'rawDataRepacker') diff --git a/Configuration/StandardSequences/python/RawToDigi_cff.py b/Configuration/StandardSequences/python/RawToDigi_cff.py index 321e5daa02370..df40e9ca18c8a 100644 --- a/Configuration/StandardSequences/python/RawToDigi_cff.py +++ b/Configuration/StandardSequences/python/RawToDigi_cff.py @@ -77,7 +77,7 @@ from Configuration.ProcessModifiers.alpaka_cff import alpaka scalersRawToDigi.scalersInputTag = 'rawDataCollector' -siPixelDigis.cpu.InputLabel = 'rawDataCollector' +siPixelDigis.InputLabel = 'rawDataCollector' ecalDigisCPU.InputLabel = 'rawDataCollector' gpu.toModify(ecalDigisGPU, InputLabel = 'rawDataCollector') alpaka.toModify(ecalDigisPortable, InputLabel = 'rawDataCollector') diff --git a/Configuration/StandardSequences/python/Services_cff.py b/Configuration/StandardSequences/python/Services_cff.py index d7530b51f0ed9..4abf4783fa2da 100644 --- a/Configuration/StandardSequences/python/Services_cff.py +++ b/Configuration/StandardSequences/python/Services_cff.py @@ -14,10 +14,9 @@ def _addProcessAccelerators(process): process.load("Configuration.StandardSequences.Accelerators_cff") from Configuration.ProcessModifiers.gpu_cff import gpu -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit from Configuration.ProcessModifiers.alpaka_cff import alpaka -modifyConfigurationStandardSequencesServicesAddProcessAccelerators_ = (gpu | pixelNtupletFit | alpaka).makeProcessModifier(_addProcessAccelerators) +modifyConfigurationStandardSequencesServicesAddProcessAccelerators_ = (gpu | alpaka).makeProcessModifier(_addProcessAccelerators) # load TritonService when SONIC workflow is enabled def _addTritonService(process): diff --git a/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py index 32f1a9537eddf..5cf86c21e61e4 100644 --- a/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py @@ -315,7 +315,7 @@ process.muonDTDigis.inputLabel = rawDataInputTag process.muonRPCDigis.InputLabel = rawDataInputTag process.scalersRawToDigi.scalersInputTag = rawDataInputTag -process.siPixelDigis.cpu.InputLabel = rawDataInputTag +process.siPixelDigis.InputLabel = rawDataInputTag process.siStripDigis.ProductLabel = rawDataInputTag process.tcdsDigis.InputLabel = rawDataInputTag diff --git a/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py index 3c9b75122dfa9..3ddae1e585ece 100644 --- a/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py @@ -129,7 +129,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" - process.siPixelDigis.cpu.InputLabel = "rawDataCollector" + process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" @@ -182,7 +182,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py index e09887f21c8ad..8399a37a17ee0 100644 --- a/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py @@ -189,7 +189,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" process.cscMonitor.FEDRawDataCollectionTag = "rawDataCollector" process.dqmCSCClient.InputObjects = "rawDataCollector" @@ -214,7 +214,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" process.cscMonitor.FEDRawDataCollectionTag = "rawDataRepacker" process.dqmCSCClient.InputObjects = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/fed_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/fed_dqm_sourceclient-live_cfg.py index 2ea853810e263..6e0e1a2684ab0 100644 --- a/DQM/Integration/python/clients/fed_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/fed_dqm_sourceclient-live_cfg.py @@ -49,7 +49,7 @@ # Pixel sequence: process.load('Configuration.StandardSequences.MagneticField_cff') process.load('EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi') -process.siPixelDigis.cpu.IncludeErrors = True +process.siPixelDigis.IncludeErrors = True process.load('DQM.SiPixelMonitorRawData.SiPixelMonitorHLT_cfi') process.SiPixelHLTSource.saveFile = False process.SiPixelHLTSource.slowDown = False @@ -95,7 +95,7 @@ # Setting raw data collection label for all subsytem modules, depending on run type: if (process.runType.getRunType() == process.runType.hi_run): process.l1tStage2Fed.rawTag = 'rawDataRepacker' - process.siPixelDigis.cpu.InputLabel = 'rawDataRepacker' + process.siPixelDigis.InputLabel = 'rawDataRepacker' process.SiPixelHLTSource.RawInput = 'rawDataRepacker' process.siStripFEDCheck.RawDataTag = 'rawDataRepacker' process.esRawToDigi.sourceTag = 'rawDataRepacker' @@ -109,7 +109,7 @@ process.cscDQMEvF.InputObjects = 'rawDataRepacker' else: process.l1tStage2Fed.rawTag = 'rawDataCollector' - process.siPixelDigis.cpu.InputLabel = 'rawDataCollector' + process.siPixelDigis.InputLabel = 'rawDataCollector' process.SiPixelHLTSource.RawInput = 'rawDataCollector' process.siStripFEDCheck.RawDataTag = 'rawDataCollector' process.esRawToDigi.sourceTag = 'rawDataCollector' diff --git a/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py index c28be18e08d06..69ecac59f6f4d 100644 --- a/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py @@ -181,7 +181,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" process.bxTiming.FedSource = "rawDataCollector" process.l1s.fedRawData = "rawDataCollector" @@ -200,7 +200,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" process.bxTiming.FedSource = "rawDataRepacker" process.l1s.fedRawData = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py index b189cb730d78b..ff1c21439a091 100644 --- a/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py @@ -197,7 +197,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" #-------------------------------------------------- @@ -219,7 +219,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py index 9a7068ab5b2d7..33ac6ac576577 100644 --- a/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py @@ -192,7 +192,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" process.bxTiming.FedSource = "rawDataCollector" process.l1s.fedRawData = "rawDataCollector" @@ -211,7 +211,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" process.bxTiming.FedSource = "rawDataRepacker" process.l1s.fedRawData = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py index 000daa236ecc0..3093a87e67f59 100644 --- a/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py @@ -204,7 +204,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" #-------------------------------------------------- @@ -226,7 +226,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py index b9410f2f87fa0..7d69080b6077b 100644 --- a/DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py @@ -142,7 +142,7 @@ process.muonRPCDigis.InputLabel = rawDataRepackerLabel process.muonGEMDigis.InputLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel process.tcdsRawToDigi.InputLabel = rawDataRepackerLabel diff --git a/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py index 695c24a42fa4d..ac12957c8fc75 100644 --- a/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py @@ -139,7 +139,7 @@ process.muonRPCDigis.InputLabel = rawDataRepackerLabel process.muonGEMDigis.InputLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel process.tcdsRawToDigi.InputLabel = rawDataRepackerLabel diff --git a/DQM/Integration/python/clients/lumi_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/lumi_dqm_sourceclient-live_cfg.py index fc5e12b92e68d..cc96a75d9c717 100644 --- a/DQM/Integration/python/clients/lumi_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/lumi_dqm_sourceclient-live_cfg.py @@ -50,7 +50,7 @@ process.load("Configuration.StandardSequences.EndOfProcess_cff") process.load("Configuration.EventContent.EventContent_cff") process.load("Configuration.StandardSequences.Reconstruction_cff") -process.siPixelDigis.cpu.InputLabel = cms.InputTag("hltFEDSelectorLumiPixels") +process.siPixelDigis.InputLabel = cms.InputTag("hltFEDSelectorLumiPixels") process.reconstruction_step = cms.Sequence( process.siPixelDigis + diff --git a/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py index b9a8baef18c87..b9d1024aa5bf9 100644 --- a/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py @@ -61,7 +61,7 @@ # process.dqmSaverPB ) -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" ### process customizations included here from DQM.Integration.config.online_customizations_cfi import * @@ -74,4 +74,4 @@ print("Running with run type = ", process.runType.getRunType()) if (process.runType.getRunType() == process.runType.hi_run): - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py index aee5a5157257c..2e4a3e0ff867c 100644 --- a/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py @@ -105,20 +105,20 @@ # PixelPhase1 Real data raw to digi process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi") -process.siPixelDigis.cpu.IncludeErrors = True +process.siPixelDigis.IncludeErrors = True if (process.runType.getRunType() == process.runType.hi_run): rawDataRepackerLabel = 'rawDataRepacker' #-------------------------------- # Heavy Ion Configuration Changes #-------------------------------- - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel else : rawDataCollectorLabel = 'rawDataCollector' - process.siPixelDigis.cpu.InputLabel = rawDataCollectorLabel + process.siPixelDigis.InputLabel = rawDataCollectorLabel process.siStripDigis.ProductLabel = rawDataCollectorLabel ## Collision Reconstruction diff --git a/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py index d4dba8722178f..a46b00523b345 100644 --- a/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py @@ -82,7 +82,7 @@ #----------------------- # Real data raw to digi process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi") -process.siPixelDigis.cpu.IncludeErrors = True +process.siPixelDigis.IncludeErrors = True # Local Reconstruction process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi") @@ -95,13 +95,13 @@ # SelectEvents = cms.vstring('HLT_600Tower*','HLT_L1*','HLT_Jet*','HLT_*Cosmic*','HLT_HT*','HLT_MinBias_*','HLT_Physics*', 'HLT_ZeroBias*','HLT_HcalNZS*')) -process.siPixelDigis.cpu.InputLabel = cms.InputTag("rawDataCollector") +process.siPixelDigis.InputLabel = cms.InputTag("rawDataCollector") #-------------------------------- # Heavy Ion Configuration Changes #-------------------------------- if (process.runType.getRunType() == process.runType.hi_run): process.load('Configuration.StandardSequences.RawToDigi_Repacked_cff') - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" if not unitTest: process.source.SelectEvents = ['HLT_HIL1MinimumBiasHF2AND*'] diff --git a/DQM/Integration/python/clients/scal_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/scal_dqm_sourceclient-live_cfg.py index 1ff0bfaf4f903..21fa87d29783f 100644 --- a/DQM/Integration/python/clients/scal_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/scal_dqm_sourceclient-live_cfg.py @@ -99,7 +99,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py index 4a462e5c2602d..2110a3ae8b864 100644 --- a/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py @@ -193,7 +193,7 @@ process.muonDTDigis.inputLabel = rawDataRepackerLabel process.muonRPCDigis.InputLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel diff --git a/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py index 108e0d61e9db5..60f9deed8c9cb 100644 --- a/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py @@ -520,7 +520,7 @@ process.muonDTDigis.inputLabel = rawDataCollectorLabel process.muonRPCDigis.InputLabel = rawDataCollectorLabel process.scalersRawToDigi.scalersInputTag = rawDataCollectorLabel -process.siPixelDigis.cpu.InputLabel = rawDataCollectorLabel +process.siPixelDigis.InputLabel = rawDataCollectorLabel process.siStripDigis.ProductLabel = rawDataCollectorLabel process.siStripFEDMonitor.RawDataTag = rawDataCollectorLabel #-------------------------------------------------- @@ -543,7 +543,7 @@ process.muonDTDigis.inputLabel = rawDataRepackerLabel process.muonRPCDigis.InputLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.siStripFEDMonitor.RawDataTag = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel diff --git a/DQM/Physics/python/qcdLowPtDQM_cfi.py b/DQM/Physics/python/qcdLowPtDQM_cfi.py index ead851164104b..c77a780bb9725 100644 --- a/DQM/Physics/python/qcdLowPtDQM_cfi.py +++ b/DQM/Physics/python/qcdLowPtDQM_cfi.py @@ -7,7 +7,7 @@ from RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi import * from RecoLocalTracker.SiPixelRecHits.PixelCPEESProducers_cff import * -siPixelDigis.cpu.InputLabel = cms.InputTag("source") +siPixelDigis.InputLabel = cms.InputTag("source") myRecoSeq1 = cms.Sequence( siPixelDigis * diff --git a/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py b/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py index 26136836c7b5f..18eed6451c252 100644 --- a/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py +++ b/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py @@ -1,36 +1,17 @@ import FWCore.ParameterSet.Config as cms -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA -from Configuration.ProcessModifiers.gpu_cff import gpu # legacy pixel unpacker from EventFilter.SiPixelRawToDigi.siPixelRawToDigi_cfi import siPixelRawToDigi as _siPixelRawToDigi -siPixelDigis = SwitchProducerCUDA( - cpu = _siPixelRawToDigi.clone() -) +siPixelDigis = _siPixelRawToDigi.clone() # use the Phase 1 settings from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel -phase1Pixel.toModify(siPixelDigis.cpu, +phase1Pixel.toModify(siPixelDigis, UsePhase1 = True ) from Configuration.ProcessModifiers.siPixelQualityRawToDigi_cff import siPixelQualityRawToDigi -siPixelQualityRawToDigi.toModify(siPixelDigis.cpu, +siPixelQualityRawToDigi.toModify(siPixelDigis, UseQualityInfo = True, SiPixelQualityLabel = 'forRawToDigi', ) - -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA -(gpu & ~phase2_tracker).toModify(siPixelDigis, - cuda = cms.EDAlias( - siPixelDigiErrors = cms.VPSet( - cms.PSet(type = cms.string("DetIdedmEDCollection")), - cms.PSet(type = cms.string("SiPixelRawDataErroredmDetSetVector")), - cms.PSet(type = cms.string("PixelFEDChanneledmNewDetSetVector")) - ), - siPixelDigisClustersPreSplitting = cms.VPSet( - cms.PSet(type = cms.string("PixelDigiedmDetSetVector")) - ) - ) -) diff --git a/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py b/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py index b5484afd2fafa..05263e3e8bdf9 100644 --- a/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py +++ b/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py @@ -7,40 +7,7 @@ siPixelDigis ) -# copy the pixel digis (except errors) and clusters to the host -from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA -siPixelDigisSoA = _siPixelDigisSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" -) - -# copy the pixel digis errors to the host -from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsSoAFromCUDA_cfi import siPixelDigiErrorsSoAFromCUDA as _siPixelDigiErrorsSoAFromCUDA -siPixelDigiErrorsSoA = _siPixelDigiErrorsSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" -) - -# convert the pixel digis errors to the legacy format -from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoA_cfi import siPixelDigiErrorsFromSoA as _siPixelDigiErrorsFromSoA -siPixelDigiErrors = _siPixelDigiErrorsFromSoA.clone() - -# use the Phase 1 settings -from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel -phase1Pixel.toModify(siPixelDigiErrors, - UsePhase1 = True -) - -from Configuration.ProcessModifiers.gpu_cff import gpu +# Phase 2 Tracker Modifier from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -(gpu & ~phase2_tracker).toReplaceWith(siPixelDigisTask, cms.Task( - # copy the pixel digis (except errors) and clusters to the host - siPixelDigisSoA, - # copy the pixel digis errors to the host - siPixelDigiErrorsSoA, - # convert the pixel digis errors to the legacy format - siPixelDigiErrors, - # SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA - siPixelDigisTask.copy() -)) - # Remove siPixelDigis until we have phase2 pixel digis phase2_tracker.toReplaceWith(siPixelDigisTask, cms.Task()) #FIXME diff --git a/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py b/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py index 146bfe0bbf071..d2a9af667a117 100644 --- a/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py +++ b/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py @@ -132,66 +132,27 @@ hiConformalPixelTracks ) -from Configuration.ProcessModifiers.gpu_cff import gpu -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAHIonPhase1_cfi import pixelTrackSoAFromCUDAHIonPhase1 as _pixelTracksSoA -from RecoTracker.PixelSeeding.caHitNtupletCUDAHIonPhase1_cfi import caHitNtupletCUDAHIonPhase1 as _pixelTracksCUDA -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAHIonPhase1_cfi import pixelTrackProducerFromSoAHIonPhase1 as _pixelTrackProducerFromSoA - -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA - -hiPixelTracksCUDA = _pixelTracksCUDA.clone(pixelRecHitSrc="siPixelRecHitsPreSplittingCUDA", idealConditions = False, - ptmin = 0.25, z0Cut = 8.0, hardCurvCut = 0.0756, doPtCut = False, - onGPU = True, - dcaCutInnerTriplet = 0.05, dcaCutOuterTriplet = 0.10, - CAThetaCutForward = 0.002, CAThetaCutBarrel = 0.001, - phiCuts = cms.vint32(19*[900]), #19 pairs - trackQualityCuts = dict( - chi2MaxPt = 10, - chi2Coeff = [0.9,1.8], - chi2Scale = 1.8, - tripletMinPt = 0.1, - tripletMaxTip = 0.3, - tripletMaxZip = 12, - quadrupletMinPt = 0.1, - quadrupletMaxTip = 0.5, - quadrupletMaxZip = 12 - )) - -# SwitchProducer providing the pixel tracks in SoA format on the CPU -hiPixelTracksSoA = SwitchProducerCUDA( - # build pixel ntuplets and pixel tracks in SoA format on the CPU - cpu = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCPU", - idealConditions = False, - doPtCut = False, - ptmin = 0.25, - hardCurvCut = 0.0756, - onGPU = False, - phiCuts = cms.vint32(19*[900]), #19 pairs - trackQualityCuts = dict( - chi2MaxPt = 10, - chi2Coeff = [0.9,1.8], - chi2Scale = 8, - tripletMinPt = 0.5, - tripletMaxTip = 0.3, - tripletMaxZip = 12, - quadrupletMinPt = 0.3, - quadrupletMaxTip = 0.5, - quadrupletMaxZip = 12 - )) -) - -gpu.toModify(hiPixelTracksSoA, - # transfer the pixel tracks in SoA format to the host - cuda = _pixelTracksSoA.clone(src="hiPixelTracksCUDA") -) +## These are the parameters used for the offline CUDA HI Pixel Tracks +## leaving them here for the records until we have the Alpaka equivalent + +# hiPixelTracksCUDA = _pixelTracksCUDA.clone(pixelRecHitSrc="siPixelRecHitsPreSplittingCUDA", idealConditions = False, +# ptmin = 0.25, z0Cut = 8.0, hardCurvCut = 0.0756, doPtCut = False, +# onGPU = True, +# dcaCutInnerTriplet = 0.05, dcaCutOuterTriplet = 0.10, +# CAThetaCutForward = 0.002, CAThetaCutBarrel = 0.001, +# phiCuts = cms.vint32(19*[900]), #19 pairs +# trackQualityCuts = dict( +# chi2MaxPt = 10, +# chi2Coeff = [0.9,1.8], +# chi2Scale = 1.8, +# tripletMinPt = 0.1, +# tripletMaxTip = 0.3, +# tripletMaxZip = 12, +# quadrupletMinPt = 0.1, +# quadrupletMaxTip = 0.5, +# quadrupletMaxZip = 12 +# )) -pixelNtupletFit.toReplaceWith(hiConformalPixelTracks,_pixelTrackProducerFromSoA.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", - trackSrc = "hiPixelTracksSoA", - minQuality = "highPurity" -)) hiConformalPixelTracksTaskPhase1 = cms.Task( @@ -204,20 +165,6 @@ hiConformalPixelTracks ) -pixelNtupletFit.toReplaceWith(hiConformalPixelTracksTaskPhase1, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the CPU - hiPixelTracksSoA, - # convert the pixel tracks from SoA to legacy format - hiConformalPixelTracks -)) - -(gpu & pixelNtupletFit).toReplaceWith(hiConformalPixelTracksTaskPhase1, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the GPU - hiPixelTracksCUDA, - # just copying the task above - hiConformalPixelTracksTaskPhase1.copy() -)) - phase1Pixel.toReplaceWith(hiConformalPixelTracksTask, hiConformalPixelTracksTaskPhase1) from Configuration.Eras.Modifier_run3_upc_cff import run3_upc diff --git a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py index 2732b4641da19..68161bddd572e 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py @@ -1,34 +1,11 @@ import FWCore.ParameterSet.Config as cms -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA # SiPixelGainCalibrationServiceParameters from CondTools.SiPixel.SiPixelGainCalibrationService_cfi import * # legacy pixel cluster producer from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters -siPixelClustersPreSplitting = SwitchProducerCUDA( - cpu = _siPixelClusters.clone() -) - -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -from Configuration.ProcessModifiers.gpu_cff import gpu - -# ensure the same results when running on GPU (which supports only the 'HLT' payload) and CPU -# but not for phase-2 where we don't calibrate digis in the clusterizer (yet) -(gpu & ~phase2_tracker).toModify(siPixelClustersPreSplitting, - cpu = dict( - payloadType = 'HLT' - ) -) - -# SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA -gpu.toModify(siPixelClustersPreSplitting, - cuda = cms.EDAlias( - siPixelDigisClustersPreSplitting = cms.VPSet( - cms.PSet(type = cms.string("SiPixelClusteredmNewDetSetVector")) - ) - ) -) +siPixelClustersPreSplitting = _siPixelClusters.clone() from Configuration.ProcessModifiers.siPixelDigiMorphing_cff import siPixelDigiMorphing siPixelDigiMorphing.toModify( diff --git a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py index 1bbaef1910a19..9226180d24c46 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py @@ -17,8 +17,7 @@ ) # Run3, changes in the gain calibration scheme -#from Configuration.Eras.Era_Run3_cff import Run3 -#Run3.toModify(siPixelClusters, + from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toModify(siPixelClusters, VCaltoElectronGain = 1, # all gains=1, pedestals=0 @@ -46,7 +45,3 @@ (premix_stage2 & phase2_tracker).toModify(siPixelClusters, src = "mixData:Pixel" ) -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -(phase2_tracker & pixelNtupletFit).toModify(siPixelClusters, #at the moment the duplicate dropping is not imnplemented in Phase2 - DropDuplicates = False -) diff --git a/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py b/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py index 71d2ff35cadce..1ae9cc4bc2610 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py @@ -1,101 +1,20 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * from Configuration.Eras.Modifier_run3_common_cff import run3_common -from Configuration.ProcessModifiers.gpu_cff import gpu from Configuration.ProcessModifiers.alpaka_cff import alpaka -# conditions used *only* by the modules running on GPU -from CalibTracker.SiPixelESProducers.siPixelROCsStatusAndMappingWrapperESProducer_cfi import siPixelROCsStatusAndMappingWrapperESProducer -from CalibTracker.SiPixelESProducers.siPixelGainCalibrationForHLTGPU_cfi import siPixelGainCalibrationForHLTGPU - -# SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA -from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting - -siPixelClustersPreSplittingTask = cms.Task( - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplitting -) - -# reconstruct the pixel digis and clusters on the gpu -from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDAPhase1_cfi import siPixelRawToClusterCUDAPhase1 as _siPixelRawToClusterCUDA -from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDAHIonPhase1_cfi import siPixelRawToClusterCUDAHIonPhase1 as _siPixelRawToClusterCUDAHIonPhase1 - -siPixelClustersPreSplittingCUDA = _siPixelRawToClusterCUDA.clone() - # HIon Modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA # Phase 2 Tracker Modifier from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelClustersPreSplittingCUDA, _siPixelRawToClusterCUDAHIonPhase1.clone()) - -run3_common.toModify(siPixelClustersPreSplittingCUDA, - # use the pixel channel calibrations scheme for Run 3 - clusterThreshold_layer1 = 4000, - VCaltoElectronGain = 1, # all gains=1, pedestals=0 - VCaltoElectronGain_L1 = 1, - VCaltoElectronOffset = 0, - VCaltoElectronOffset_L1 = 0) - -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAPhase1_cfi import siPixelDigisClustersFromSoAPhase1 as _siPixelDigisClustersFromSoAPhase1 -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAPhase2_cfi import siPixelDigisClustersFromSoAPhase2 as _siPixelDigisClustersFromSoAPhase2 - -siPixelDigisClustersPreSplitting = _siPixelDigisClustersFromSoAPhase1.clone() - -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAHIonPhase1_cfi import siPixelDigisClustersFromSoAHIonPhase1 as _siPixelDigisClustersFromSoAHIonPhase1 -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting, _siPixelDigisClustersFromSoAHIonPhase1.clone()) - - -run3_common.toModify(siPixelDigisClustersPreSplitting, - clusterThreshold_layer1 = 4000) - -gpu.toReplaceWith(siPixelClustersPreSplittingTask, cms.Task( - # conditions used *only* by the modules running on GPU - siPixelROCsStatusAndMappingWrapperESProducer, - siPixelGainCalibrationForHLTGPU, - # reconstruct the pixel digis and clusters on the gpu - siPixelClustersPreSplittingCUDA, - # convert the pixel digis (except errors) and clusters to the legacy format - siPixelDigisClustersPreSplitting, - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplittingTask.copy() -)) - -from RecoLocalTracker.SiPixelClusterizer.siPixelPhase2DigiToClusterCUDA_cfi import siPixelPhase2DigiToClusterCUDA as _siPixelPhase2DigiToClusterCUDA -# for phase2 no pixel raw2digi is available at the moment -# so we skip the raw2digi step and run on pixel digis copied to gpu - -from SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi import PixelDigitizerAlgorithmCommon - -phase2_tracker.toReplaceWith(siPixelClustersPreSplittingCUDA,_siPixelPhase2DigiToClusterCUDA.clone( - Phase2ReadoutMode = PixelDigitizerAlgorithmCommon.Phase2ReadoutMode.value(), # Flag to decide Readout Mode : linear TDR (-1), dual slope with slope parameters (+1,+2,+3,+4 ...) with threshold subtraction - Phase2DigiBaseline = int(PixelDigitizerAlgorithmCommon.ThresholdInElectrons_Barrel.value()), #Same for barrel and endcap - Phase2KinkADC = 8, - ElectronPerADCGain = PixelDigitizerAlgorithmCommon.ElectronPerAdc.value() -)) +# The legacy pixel cluster producer +from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting -from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA -siPixelDigisPhase2SoA = _siPixelDigisSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" +siPixelClustersPreSplittingTask = cms.Task( + siPixelClustersPreSplitting ) -phase2_tracker.toReplaceWith(siPixelDigisClustersPreSplitting, _siPixelDigisClustersFromSoAPhase2.clone( - clusterThreshold_layer1 = 4000, - clusterThreshold_otherLayers = 4000, - src = "siPixelDigisPhase2SoA", - #produceDigis = False - )) - -(gpu & phase2_tracker).toReplaceWith(siPixelClustersPreSplittingTask, cms.Task( - # reconstruct the pixel clusters on the gpu from copied digis - siPixelClustersPreSplittingCUDA, - # copy from gpu to cpu - siPixelDigisPhase2SoA, - # convert the pixel digis (except errors) and clusters to the legacy format - siPixelDigisClustersPreSplitting, - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplitting)) - ###################################################################### ### Alpaka Pixel Clusters Reco @@ -127,6 +46,10 @@ def _addProcessCalibTrackerAlpakaES(process): from RecoLocalTracker.SiPixelClusterizer.siPixelPhase2DigiToCluster_cfi import siPixelPhase2DigiToCluster as _siPixelPhase2DigiToCluster +# for phase2 no pixel raw2digi is available at the moment +# so we skip the raw2digi step and run on pixel digis copied to gpu +from SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi import PixelDigitizerAlgorithmCommon + (alpaka & phase2_tracker).toReplaceWith(siPixelClustersPreSplittingAlpaka, _siPixelPhase2DigiToCluster.clone( Phase2ReadoutMode = PixelDigitizerAlgorithmCommon.Phase2ReadoutMode.value(), # flag to decide Readout Mode : linear TDR (-1), dual slope with slope parameters (+1,+2,+3,+4 ...) with threshold subtraction Phase2DigiBaseline = int(PixelDigitizerAlgorithmCommon.ThresholdInElectrons_Barrel.value()), # same for barrel and endcap @@ -141,15 +64,15 @@ def _addProcessCalibTrackerAlpakaES(process): from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAAlpakaPhase2_cfi import siPixelDigisClustersFromSoAAlpakaPhase2 as _siPixelDigisClustersFromSoAAlpakaPhase2 from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAAlpakaHIonPhase1_cfi import siPixelDigisClustersFromSoAAlpakaHIonPhase1 as _siPixelDigisClustersFromSoAAlpakaHIonPhase1 -(alpaka & ~phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaPhase1.clone( +alpaka.toReplaceWith(siPixelClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaPhase1.clone( src = "siPixelClustersPreSplittingAlpaka" )) -(alpaka & pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaHIonPhase1.clone( +(alpaka & pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaHIonPhase1.clone( src = "siPixelClustersPreSplittingAlpaka" )) -(alpaka & phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaPhase2.clone( +(alpaka & phase2_tracker).toReplaceWith(siPixelClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaPhase2.clone( clusterThreshold_layer1 = 4000, clusterThreshold_otherLayers = 4000, src = "siPixelClustersPreSplittingAlpaka", @@ -157,14 +80,6 @@ def _addProcessCalibTrackerAlpakaES(process): produceDigis = False )) -alpaka.toModify(siPixelClustersPreSplitting, - cpu = cms.EDAlias( - siPixelDigisClustersPreSplitting = cms.VPSet( - cms.PSet(type = cms.string("SiPixelClusteredmNewDetSetVector")) - ) - ) -) - # These produce pixelDigiErrors in Alpaka; they are constructed here because they need # siPixelClustersPreSplittingAlpaka* as input from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoAAlpaka_cfi import siPixelDigiErrorsFromSoAAlpaka as _siPixelDigiErrorsFromSoAAlpaka @@ -189,10 +104,8 @@ def _addProcessCalibTrackerAlpakaES(process): siPixelDigiErrorsAlpaka, siPixelDigiErrorsAlpakaSerial, # convert from host SoA to legacy formats (digis and clusters) - siPixelDigisClustersPreSplitting, - # EDAlias for the clusters - siPixelClustersPreSplitting) -) + siPixelClustersPreSplitting +)) # Phase 2 (alpaka & phase2_tracker).toReplaceWith(siPixelClustersPreSplittingTask, cms.Task( @@ -204,7 +117,5 @@ def _addProcessCalibTrackerAlpakaES(process): siPixelDigiErrorsAlpaka, siPixelDigiErrorsAlpakaSerial, # convert the pixel digis (except errors) and clusters to the legacy format - siPixelDigisClustersPreSplitting, - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplitting) -) + siPixelClustersPreSplitting +)) diff --git a/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py b/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py index 054e8b7c461ea..d0532d33ff260 100644 --- a/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py +++ b/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py @@ -11,9 +11,6 @@ # 2. Pixel Generic CPE # from RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerPhase1_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerPhase2_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerHIonPhase1_cfi import * # # 3. ESProducer for the Magnetic-field dependent template records # diff --git a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py index cb539a2b1c6e4..067270ec1ea70 100644 --- a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py +++ b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py @@ -1,130 +1,28 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA -from Configuration.ProcessModifiers.gpu_cff import gpu from Configuration.ProcessModifiers.alpaka_cff import alpaka -# legacy pixel rechit producer +# HIon Modifiers +from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA +# Phase 2 Tracker Modifier +from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker + +# The legacy pixel rechit producer siPixelRecHits = cms.EDProducer("SiPixelRecHitConverter", src = cms.InputTag("siPixelClusters"), CPE = cms.string('PixelCPEGeneric'), VerboseLevel = cms.untracked.int32(0) ) -# SwitchProducer wrapping the legacy pixel rechit producer -siPixelRecHitsPreSplitting = SwitchProducerCUDA( - cpu = siPixelRecHits.clone( +# The legacy pixel rechit producer +siPixelRecHitsPreSplitting = siPixelRecHits.clone( src = 'siPixelClustersPreSplitting' - ) ) -# phase 2 tracker modifier -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# HIon modifiers -from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA - -# convert the pixel rechits from legacy to SoA format on CPU -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyPhase1_cfi import siPixelRecHitSoAFromLegacyPhase1 as _siPixelRecHitsPreSplittingSoA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyPhase2_cfi import siPixelRecHitSoAFromLegacyPhase2 as _siPixelRecHitsPreSplittingSoAPhase2 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyHIonPhase1_cfi import siPixelRecHitSoAFromLegacyHIonPhase1 as _siPixelRecHitsPreSplittingSoAHIonPhase1 - -siPixelRecHitsPreSplittingCPU = _siPixelRecHitsPreSplittingSoA.clone(convertToLegacy=True) -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplittingCPU, _siPixelRecHitsPreSplittingSoAHIonPhase1.clone(convertToLegacy=True, CPE = cms.string('PixelCPEFastHIonPhase1'))) -phase2_tracker.toReplaceWith(siPixelRecHitsPreSplittingCPU, _siPixelRecHitsPreSplittingSoAPhase2.clone(convertToLegacy=True, CPE = cms.string('PixelCPEFastPhase2'))) - -# modifier used to prompt patatrack pixel tracks reconstruction on cpu -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -pixelNtupletFit.toModify(siPixelRecHitsPreSplitting, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("SiPixelRecHitedmNewDetSetVector")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ) -)) - - siPixelRecHitsPreSplittingTask = cms.Task( - # SwitchProducer wrapping the legacy pixel rechit producer or the cpu SoA producer siPixelRecHitsPreSplitting ) -# reconstruct the pixel rechits on the gpu -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAPhase1_cfi import siPixelRecHitCUDAPhase1 as _siPixelRecHitCUDAPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAPhase2_cfi import siPixelRecHitCUDAPhase2 as _siPixelRecHitCUDAPhase2 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAHIonPhase1_cfi import siPixelRecHitCUDAHIonPhase1 as _siPixelRecHitCUDAHIonPhase1 - -siPixelRecHitsPreSplittingCUDA = _siPixelRecHitCUDAPhase1.clone( - beamSpot = "offlineBeamSpotToCUDA" -) -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplittingCUDA,_siPixelRecHitCUDAHIonPhase1.clone( - beamSpot = "offlineBeamSpotToCUDA" -)) -phase2_tracker.toReplaceWith(siPixelRecHitsPreSplittingCUDA,_siPixelRecHitCUDAPhase2.clone( - beamSpot = "offlineBeamSpotToCUDA" -)) - -#this is an alias for the SoA on GPU or CPU to be used for DQM -siPixelRecHitsPreSplittingSoA = SwitchProducerCUDA( - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyPhase1TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - )), -) - -(pp_on_AA & ~phase2_tracker).toModify(siPixelRecHitsPreSplittingSoA, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyHIonPhase1TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ))) - -phase2_tracker.toModify(siPixelRecHitsPreSplittingSoA, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyPhase2TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ))) - -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAPhase1_cfi import siPixelRecHitSoAFromCUDAPhase1 as _siPixelRecHitSoAFromCUDA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAHIonPhase1_cfi import siPixelRecHitSoAFromCUDAHIonPhase1 as _siPixelRecHitSoAFromCUDAHIonPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAPhase2_cfi import siPixelRecHitSoAFromCUDAPhase2 as _siPixelRecHitSoAFromCUDAPhase2 - -(gpu & pixelNtupletFit).toModify(siPixelRecHitsPreSplittingSoA, cuda = _siPixelRecHitSoAFromCUDA.clone()) -(gpu & pixelNtupletFit & phase2_tracker).toModify(siPixelRecHitsPreSplittingSoA, cuda = _siPixelRecHitSoAFromCUDAPhase2.clone()) - -# transfer the pixel rechits to the host and convert them from SoA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAPhase1_cfi import siPixelRecHitFromCUDAPhase1 as _siPixelRecHitFromCUDA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAHIonPhase1_cfi import siPixelRecHitFromCUDAHIonPhase1 as _siPixelRecHitFromCUDAHIonPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAPhase2_cfi import siPixelRecHitFromCUDAPhase2 as _siPixelRecHitFromCUDAPhase2 - -(gpu & pixelNtupletFit).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDA.clone()) -(gpu & pixelNtupletFit & pp_on_AA).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDAHIonPhase1.clone()) -(gpu & pixelNtupletFit & phase2_tracker).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDAPhase2.clone()) - - -pixelNtupletFit.toReplaceWith(siPixelRecHitsPreSplittingTask, cms.Task( - cms.Task( - # reconstruct the pixel rechits on the cpu - siPixelRecHitsPreSplittingCPU, - # SwitchProducer wrapping an EDAlias on cpu or the converter from SoA to legacy on gpu - siPixelRecHitsPreSplittingTask.copy(), - # producing and converting on cpu (if needed) - siPixelRecHitsPreSplittingSoA) - ) - ) - -(gpu & pixelNtupletFit).toReplaceWith(siPixelRecHitsPreSplittingTask, cms.Task( - # reconstruct the pixel rechits on the gpu or on the cpu - # (normally only one of the two is run because only one is consumed from later stages) - siPixelRecHitsPreSplittingCUDA, - siPixelRecHitsPreSplittingCPU, - # SwitchProducer wrapping an EDAlias on cpu or the converter from SoA to legacy on gpu - siPixelRecHitsPreSplittingTask.copy(), - # producing and converting on cpu (if needed) - siPixelRecHitsPreSplittingSoA -)) - ###################################################################### ### Alpaka Pixel Hits Reco @@ -153,20 +51,17 @@ from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromSoAAlpakaPhase2_cfi import siPixelRecHitFromSoAAlpakaPhase2 as _siPixelRecHitFromSoAAlpakaPhase2 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromSoAAlpakaHIonPhase1_cfi import siPixelRecHitFromSoAAlpakaHIonPhase1 as _siPixelRecHitFromSoAAlpakaHIonPhase1 -(alpaka & ~phase2_tracker).toModify(siPixelRecHitsPreSplitting, - cpu = _siPixelRecHitFromSoAAlpakaPhase1.clone( +(alpaka & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaPhase1.clone( pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'), src = cms.InputTag('siPixelClustersPreSplitting')) ) -(alpaka & phase2_tracker).toModify(siPixelRecHitsPreSplitting, - cpu = _siPixelRecHitFromSoAAlpakaPhase2.clone( +(alpaka & phase2_tracker).toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaPhase2.clone( pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'), src = cms.InputTag('siPixelClustersPreSplitting')) ) -(alpaka & pp_on_AA & ~phase2_tracker).toModify(siPixelRecHitsPreSplitting, - cpu = _siPixelRecHitFromSoAAlpakaHIonPhase1.clone( +(alpaka & pp_on_AA & ~phase2_tracker).toModify(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaHIonPhase1.clone( pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'), src = cms.InputTag('siPixelClustersPreSplitting')) ) diff --git a/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py b/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py index c8c3719edfc84..79b257ab64fa3 100644 --- a/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py +++ b/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA from RecoLocalTracker.SiStripRecHitConverter.StripCPEfromTrackAngle_cfi import * from RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitMatcher_cfi import * @@ -88,123 +87,11 @@ _pixelTracksTask_lowPU.replace(pixelTracksHitQuadruplets, pixelTracksHitTriplets) trackingLowPU.toReplaceWith(pixelTracksTask, _pixelTracksTask_lowPU) - -# "Patatrack" pixel ntuplets, fishbone cleaning, Broken Line fit, and density-based vertex reconstruction -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit - -from RecoTracker.PixelSeeding.caHitNtupletCUDAPhase1_cfi import caHitNtupletCUDAPhase1 as _pixelTracksCUDA -from RecoTracker.PixelSeeding.caHitNtupletCUDAPhase2_cfi import caHitNtupletCUDAPhase2 as _pixelTracksCUDAPhase2 -from RecoTracker.PixelSeeding.caHitNtupletCUDAHIonPhase1_cfi import caHitNtupletCUDAHIonPhase1 as _pixelTracksCUDAHIonPhase1 - # Phase 2 modifier from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker # HIon modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA -# SwitchProducer providing the pixel tracks in SoA format on the CPU -pixelTracksSoA = SwitchProducerCUDA( - # build pixel ntuplets and pixel tracks in SoA format on the CPU - cpu = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - idealConditions = False, - onGPU = False - ) -) - -# use quality cuts tuned for Run 2 ideal conditions for all Run 3 workflows -run3_common.toModify(pixelTracksSoA.cpu, - idealConditions = True -) - -# convert the pixel tracks from SoA to legacy format -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAPhase1_cfi import pixelTrackProducerFromSoAPhase1 as _pixelTrackProducerFromSoA -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAPhase2_cfi import pixelTrackProducerFromSoAPhase2 as _pixelTrackProducerFromSoAPhase2 -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAHIonPhase1_cfi import pixelTrackProducerFromSoAHIonPhase1 as _pixelTrackProducerFromSoAHIonPhase1 - -pixelNtupletFit.toReplaceWith(pixelTracks, _pixelTrackProducerFromSoA.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -(pixelNtupletFit & phase2_tracker).toReplaceWith(pixelTracks, _pixelTrackProducerFromSoAPhase2.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -(pixelNtupletFit & pp_on_AA).toReplaceWith(pixelTracks, _pixelTrackProducerFromSoAHIonPhase1.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -pixelNtupletFit.toReplaceWith(pixelTracksTask, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the GPU - pixelTracksSoA, - # convert the pixel tracks from SoA to legacy format - pixelTracks -)) - -# "Patatrack" sequence running on GPU (or CPU if not available) -from Configuration.ProcessModifiers.gpu_cff import gpu - -# build the pixel ntuplets and pixel tracks in SoA format on the GPU -pixelTracksCUDA = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - idealConditions = False, - onGPU = True, -) - -# use quality cuts tuned for Run 2 ideal conditions for all Run 3 workflows -run3_common.toModify(pixelTracksCUDA, - idealConditions = True -) - -# SwitchProducer providing the pixel tracks in SoA format on the CPU -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAPhase1_cfi import pixelTrackSoAFromCUDAPhase1 as _pixelTracksSoA -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAPhase2_cfi import pixelTrackSoAFromCUDAPhase2 as _pixelTracksSoAPhase2 -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAHIonPhase1_cfi import pixelTrackSoAFromCUDAHIonPhase1 as _pixelTracksSoAHIonPhase1 - -gpu.toModify(pixelTracksSoA, - # transfer the pixel tracks in SoA format to the host - cuda = _pixelTracksSoA.clone() -) - -(gpu & phase2_tracker).toModify(pixelTracksSoA,cuda = _pixelTracksSoAPhase2.clone( -)) - -(gpu & pp_on_AA).toModify(pixelTracksSoA,cuda = _pixelTracksSoAHIonPhase1.clone( -)) - -phase2_tracker.toModify(pixelTracksSoA,cpu = _pixelTracksCUDAPhase2.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - onGPU = False -)) - -(pp_on_AA & ~phase2_tracker).toModify(pixelTracksSoA,cpu = _pixelTracksCUDAHIonPhase1.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - onGPU = False -)) - -phase2_tracker.toReplaceWith(pixelTracksCUDA,_pixelTracksCUDAPhase2.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - onGPU = True, -)) - -(pp_on_AA & ~phase2_tracker).toReplaceWith(pixelTracksCUDA,_pixelTracksCUDAHIonPhase1.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - onGPU = True, -)) - -(pixelNtupletFit & gpu).toReplaceWith(pixelTracksTask, cms.Task( - # build the pixel ntuplets and pixel tracks in SoA format on the GPU - pixelTracksCUDA, - # transfer the pixel tracks in SoA format to the CPU, and convert them to legacy format - pixelTracksTask.copy() -)) - -## GPU vs CPU validation -# force CPU vertexing to use hit SoA from CPU chain and not the converted one from GPU chain -from Configuration.ProcessModifiers.gpuValidationPixel_cff import gpuValidationPixel -(pixelNtupletFit & gpu & gpuValidationPixel).toModify(pixelTracksSoA.cpu, - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA@cpu" - ) - ###################################################################### ### Alpaka Pixel Track Reco diff --git a/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py b/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py index 5c17275c17274..03775db850083 100644 --- a/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py +++ b/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py @@ -1,16 +1,10 @@ import FWCore.ParameterSet.Config as cms from RecoVertex.BeamSpotProducer.BeamSpot_cfi import * -from RecoVertex.BeamSpotProducer.offlineBeamSpotToCUDA_cfi import offlineBeamSpotToCUDA from RecoVertex.BeamSpotProducer.beamSpotDeviceProducer_cfi import beamSpotDeviceProducer as _beamSpotDeviceProducer offlineBeamSpotTask = cms.Task(offlineBeamSpot) -from Configuration.ProcessModifiers.gpu_cff import gpu -_offlineBeamSpotTask_gpu = offlineBeamSpotTask.copy() -_offlineBeamSpotTask_gpu.add(offlineBeamSpotToCUDA) -gpu.toReplaceWith(offlineBeamSpotTask, _offlineBeamSpotTask_gpu) - from Configuration.ProcessModifiers.alpaka_cff import alpaka _offlineBeamSpotTask_alpaka = offlineBeamSpotTask.copy() offlineBeamSpotDevice = _beamSpotDeviceProducer.clone(src = cms.InputTag('offlineBeamSpot')) diff --git a/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py b/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py index 0a2bb0d2b63b7..96dec2b62dd1b 100644 --- a/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py +++ b/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py @@ -1,105 +1,21 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA from RecoTracker.PixelTrackFitting.PixelTracks_cff import * from RecoVertex.PixelVertexFinding.PixelVertices_cff import * -# legacy pixel vertex reconsruction using the divisive vertex finder -pixelVerticesTask = cms.Task( - pixelVertices -) - -# "Patatrack" pixel ntuplets, fishbone cleaning, Broken Line fit, and density-based vertex reconstruction -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker - -# HIon modifiers +# HIon Modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA +# Phase 2 Tracker Modifier +from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# build the pixel vertices in SoA format on the CPU -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAPhase1_cfi import pixelVertexProducerCUDAPhase1 as _pixelVerticesCUDA -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAPhase2_cfi import pixelVertexProducerCUDAPhase2 as _pixelVerticesCUDAPhase2 -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAHIonPhase1_cfi import pixelVertexProducerCUDAHIonPhase1 as _pixelVerticesCUDAHIonPhase1 - -pixelVerticesSoA = SwitchProducerCUDA( - cpu = _pixelVerticesCUDA.clone( - pixelTrackSrc = "pixelTracksSoA", - onGPU = False - ) -) - -phase2_tracker.toModify(pixelVerticesSoA,cpu = _pixelVerticesCUDAPhase2.clone( - pixelTrackSrc = "pixelTracksSoA", - onGPU = False, - PtMin = 2.0 -)) - -(pp_on_AA & ~phase2_tracker).toModify(pixelVerticesSoA,cpu = _pixelVerticesCUDAHIonPhase1.clone( - pixelTrackSrc = "pixelTracksSoA", - doSplitting = False, - onGPU = False, -)) - -# convert the pixel vertices from SoA to legacy format -from RecoVertex.PixelVertexFinding.pixelVertexFromSoA_cfi import pixelVertexFromSoA as _pixelVertexFromSoA - -(pixelNtupletFit).toReplaceWith(pixelVertices, _pixelVertexFromSoA.clone( - src = "pixelVerticesSoA" -)) - -(pixelNtupletFit).toReplaceWith(pixelVerticesTask, cms.Task( - # build the pixel vertices in SoA format on the CPU - pixelVerticesSoA, - # convert the pixel vertices from SoA to legacy format +# legacy pixel vertex reconsruction using the divisive vertex finder +pixelVerticesTask = cms.Task( pixelVertices -)) - - -# "Patatrack" sequence running on the GPU -from Configuration.ProcessModifiers.gpu_cff import gpu - -# build pixel vertices in SoA format on the GPU -pixelVerticesCUDA = _pixelVerticesCUDA.clone( - pixelTrackSrc = "pixelTracksCUDA", - onGPU = True ) -phase2_tracker.toReplaceWith(pixelVerticesCUDA,_pixelVerticesCUDAPhase2.clone( - pixelTrackSrc = "pixelTracksCUDA", - onGPU = True, - PtMin = 2.0 -)) - -(pp_on_AA & ~phase2_tracker).toReplaceWith(pixelVerticesCUDA,_pixelVerticesCUDAHIonPhase1.clone( - pixelTrackSrc = "pixelTracksCUDA", - doSplitting = False, - onGPU = True -)) - -# transfer the pixel vertices in SoA format to the CPU -from RecoVertex.PixelVertexFinding.pixelVerticesSoA_cfi import pixelVerticesSoA as _pixelVerticesSoA -gpu.toModify(pixelVerticesSoA, - cuda = _pixelVerticesSoA.clone( - src = cms.InputTag("pixelVerticesCUDA") - ) -) - -## GPU vs CPU validation -# force CPU vertexing to use track SoA from CPU chain and not the converted one from GPU chain -from Configuration.ProcessModifiers.gpuValidationPixel_cff import gpuValidationPixel -(pixelNtupletFit & gpu & gpuValidationPixel).toModify(pixelVerticesSoA.cpu, - pixelTrackSrc = "pixelTracksSoA@cpu" -) - -(pixelNtupletFit & gpu).toReplaceWith(pixelVerticesTask, cms.Task( - # build pixel vertices in SoA format on the GPU - pixelVerticesCUDA, - # transfer the pixel vertices in SoA format to the CPU and convert them to legacy format - pixelVerticesTask.copy() -)) - -## pixel vertex reconstruction with Alpaka +############################################################ +## Pixel vertex reconstruction with Alpaka # pixel vertex SoA producer with alpaka on the device from RecoVertex.PixelVertexFinding.pixelVertexProducerAlpakaPhase1_cfi import pixelVertexProducerAlpakaPhase1 as _pixelVerticesAlpakaPhase1 diff --git a/Validation/RecoTrack/python/TrackValidation_cff.py b/Validation/RecoTrack/python/TrackValidation_cff.py index 37063ed169dbe..6be1c383f9113 100644 --- a/Validation/RecoTrack/python/TrackValidation_cff.py +++ b/Validation/RecoTrack/python/TrackValidation_cff.py @@ -719,10 +719,11 @@ def _uniqueFirstLayers(layerList): associator = "quickTrackAssociatorByHits", ) -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit +# For the moment we have no Alpaka version of the hiConformalPixelTracks +# from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -pixelNtupletFit.toModify(trackingParticleHIPixelTrackAssociation, - associator = "quickTrackAssociatorByHitsPreSplitting") +# pixelNtupletFit.toModify(trackingParticleHIPixelTrackAssociation, +# associator = "quickTrackAssociatorByHitsPreSplitting") HIPixelVertexAssociatorByPositionAndTracks = VertexAssociatorByPositionAndTracks.clone( trackAssociation = "trackingParticleHIPixelTrackAssociation"