from Configuration.ProcessModifiers.run2_HECollapse_2018_cff import run2_HECollapse_2018 run2_HECollapse_2018.toReplaceWith(hcalLocalRecoTask, _collapse_hcalLocalRecoTask) #--- for Run 3 and later _run3_hcalLocalRecoTask = _phase1_hcalLocalRecoTask.copy() _run3_hcalLocalRecoTask.remove(hbheprereco) from Configuration.Eras.Modifier_run3_HB_cff import run3_HB run3_HB.toReplaceWith(hcalLocalRecoTask, _run3_hcalLocalRecoTask) #--- for Run 3 on GPU from Configuration.ProcessModifiers.gpu_cff import gpu from RecoLocalCalo.HcalRecProducers.hbheRecHitProducerGPUTask_cff import * _run3_hcalLocalRecoGPUTask = _run3_hcalLocalRecoTask.copy() _run3_hcalLocalRecoGPUTask.add(hbheRecHitProducerGPUTask) gpu.toReplaceWith(hcalLocalRecoTask, _run3_hcalLocalRecoGPUTask) #--- HCAL-only workflow for Run 3 # FIXME rename `hbheprereco` to `hbhereco` and use it from hcalGlobalRecoTask hcalOnlyLocalRecoTask = cms.Task(hbheprereco, hfprereco, hfreco, horeco) #--- HCAL-only workflow for Run 3 on GPU from Configuration.ProcessModifiers.gpu_cff import gpu _hcalOnlyLocalRecoGPUTask = hcalOnlyLocalRecoTask.copy() _hcalOnlyLocalRecoGPUTask.add(hbheRecHitProducerGPUTask) gpu.toReplaceWith(hcalOnlyLocalRecoTask, _hcalOnlyLocalRecoGPUTask) from RecoLocalCalo.HcalRecProducers.hcalCPURecHitsProducer_cfi import hcalCPURecHitsProducer as _hcalCPURecHitsProducer gpu.toReplaceWith(hbheprereco, _hcalCPURecHitsProducer.clone( recHitsM0LabelIn = "hbheRecHitProducerGPU",
tpClusterProducer, tpClusterProducerPreSplitting, # trackAssociatorByChi2, #uncomment for byChi2 assoc. for jetcore studies (4/5) # MTVTrackAssociationByChi2, #uncomment for byChi2 assoc. for jetcore studies (5/5) quickTrackAssociatorByHits, quickTrackAssociatorByHitsPreSplitting, trackingParticleRecoTrackAsssociation, VertexAssociatorByPositionAndTracks, trackingParticleNumberOfLayersProducer) #gpu tp ??? from Configuration.ProcessModifiers.gpu_cff import gpu tpClusterProducerPreSplittingCUDA = cms.Task(tpClusterProducerCUDAPreSplitting) _tracksValidationTruth_gpu = tracksValidationTruth.copy() _tracksValidationTruth_gpu.add(tpClusterProducerPreSplittingCUDA) gpu.toReplaceWith(tracksValidationTruth, _tracksValidationTruth_gpu) fastSim.toModify(tracksValidationTruth, lambda x: x.remove(tpClusterProducer)) tracksPreValidation = cms.Task( highPtJetsForTrk, tracksValidationSelectors, tracksValidationSelectorsPt09, tracksValidationSelectorsFromPV, tracksValidationSelectorsFromPVPt09, tracksValidationTruth, trackingParticlesSignal, trackingParticlesElectron, trackingParticlesConversion) fastSim.toReplaceWith( tracksPreValidation, tracksPreValidation.copyAndExclude([ trackingParticlesElectron, trackingParticlesConversion, ]))
# 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 gpu.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()))
import FWCore.ParameterSet.Config as cms from RecoPixelVertexing.PixelTrackFitting.PixelTracks_cff import * # # for STARTUP ONLY use try and use Offline 3D PV from pixelTracks, with adaptive vertex # from RecoPixelVertexing.PixelVertexFinding.PixelVertexes_cff import * #from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import * recopixelvertexingTask = cms.Task(pixelTracksTask,pixelVertices) recopixelvertexing = cms.Sequence(recopixelvertexingTask) from Configuration.ProcessModifiers.gpu_cff import gpu from RecoPixelVertexing.PixelVertexFinding.pixelVertexCUDA_cfi import pixelVertexCUDA from RecoPixelVertexing.PixelVertexFinding.pixelVertexSoA_cfi import pixelVertexSoA from RecoPixelVertexing.PixelVertexFinding.pixelVertexFromSoA_cfi import pixelVertexFromSoA as _pixelVertexFromSoA _pixelVertexingCUDATask = cms.Task(pixelTracksTask,pixelVertexCUDA,pixelVertexSoA,pixelVertices) # pixelVertexSoAonCPU = pixelVertexCUDA.clone() # pixelVertexSoAonCPU.onGPU = False; gpu.toReplaceWith(pixelVertices,_pixelVertexFromSoA) gpu.toReplaceWith(recopixelvertexingTask,_pixelVertexingCUDATask)
pixelTrackFilterByKinematics, pixelTracksSeedLayers, pixelTracksHitDoublets, pixelTracksHitQuadruplets, pixelTracks) _pixelTracksTask_lowPU = pixelTracksTask.copy() _pixelTracksTask_lowPU.replace(pixelTracksHitQuadruplets, pixelTracksHitTriplets) trackingLowPU.toReplaceWith(pixelTracksTask, _pixelTracksTask_lowPU) # Use ntuple fit and substitute previous Fitter producer with the ntuple one from Configuration.ProcessModifiers.pixelNtupleFit_cff import pixelNtupleFit as ntupleFit ntupleFit.toModify(pixelTracks, Fitter="pixelNtupletsFitter") _pixelTracksTask_ntupleFit = pixelTracksTask.copy() _pixelTracksTask_ntupleFit.replace(pixelFitterByHelixProjections, pixelNtupletsFitter) ntupleFit.toReplaceWith(pixelTracksTask, _pixelTracksTask_ntupleFit) from Configuration.ProcessModifiers.gpu_cff import gpu from RecoPixelVertexing.PixelTriplets.caHitNtupletCUDA_cfi import caHitNtupletCUDA from RecoPixelVertexing.PixelTrackFitting.pixelTrackSoA_cfi import pixelTrackSoA from RecoPixelVertexing.PixelTrackFitting.pixelTrackProducerFromSoA_cfi import pixelTrackProducerFromSoA as _pixelTrackFromSoA _pixelTracksGPUTask = cms.Task( caHitNtupletCUDA, pixelTrackSoA, pixelTracks # FromSoA ) gpu.toReplaceWith(pixelTracksTask, _pixelTracksGPUTask) gpu.toReplaceWith(pixelTracks, _pixelTrackFromSoA) pixelTracksSequence = cms.Sequence(pixelTracksTask)
# copy the uncalibrated rechits from GPU to CPU from RecoLocalCalo.EcalRecProducers.ecalCPUUncalibRecHitProducer_cfi import ecalCPUUncalibRecHitProducer as _ecalCPUUncalibRecHitProducer ecalUncalibRecHitSoA = _ecalCPUUncalibRecHitProducer.clone( recHitsInLabelEB=('ecalUncalibRecHitPhase2GPU', 'EcalUncalibRecHitsEB'), isPhase2=True, recHitsInLabelEE=None, # remove unneeded Phase1 parameters recHitsOutLabelEE=None) from RecoLocalCalo.EcalRecProducers.ecalUncalibRecHitConvertGPU2CPUFormat_cfi import ecalUncalibRecHitConvertGPU2CPUFormat as _ecalUncalibRecHitConvertGPU2CPUFormat gpu.toModify( ecalUncalibRecHitPhase2, cuda=_ecalUncalibRecHitConvertGPU2CPUFormat.clone( isPhase2=cms.bool(True), recHitsLabelGPUEB=cms.InputTag('ecalUncalibRecHitSoA', 'EcalUncalibRecHitsEB'), recHitsLabelGPUEE=None, # remove unneeded Phase1 parameters recHitsLabelCPUEE=None)) gpu.toReplaceWith( ecalUncalibRecHitPhase2Task, cms.Task( # convert phase2 digis to GPU SoA ecalPhase2DigiToGPUProducer, # ECAL weights running on GPU ecalUncalibRecHitPhase2GPU, # copy the uncalibrated rechits from GPU to CPU ecalUncalibRecHitSoA, # ECAL multifit running on CPU, or convert the uncalibrated rechits from SoA to legacy format ecalUncalibRecHitPhase2, ))
# phase1 pixel from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel phase1Pixel.toModify( siPixelClusters, VCaltoElectronGain=cms.int32(47), # L2-4: 47 +- 4.7 VCaltoElectronGain_L1=cms.int32(50), # L1: 49.6 +- 2.6 VCaltoElectronOffset=cms.int32(-60), # L2-4: -60 +- 130 VCaltoElectronOffset_L1=cms.int32(-670), # L1: -670 +- 220 ChannelThreshold=cms.int32(10), SeedThreshold=cms.int32(1000), ClusterThreshold=cms.int32(4000), ClusterThreshold_L1=cms.int32(2000)) # Need these until phase2 pixel templates are used from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify( siPixelClusters, # FIXME src=cms.InputTag('simSiPixelDigis', "Pixel"), MissCalibrate=False, ElectronPerADCGain=cms.double( 600.) # it can be changed to something else (e.g. 135e) if needed ) from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 (premix_stage2 & phase2_tracker).toModify(siPixelClusters, src="mixData:Pixel") from Configuration.ProcessModifiers.gpu_cff import gpu from RecoLocalTracker.SiPixelClusterizer.siPixelClusterHeterogeneousConverter_cfi import siPixelClusterHeterogeneousConverter as _siPixelClusterHeterogeneousConverter gpu.toReplaceWith(siPixelClusters, _siPixelClusterHeterogeneousConverter.clone())
import FWCore.ParameterSet.Config as cms from RecoPixelVertexing.PixelTriplets.caHitQuadrupletDefaultEDProducer_cfi import caHitQuadrupletDefaultEDProducer as _caHitQuadrupletDefaultEDProducer caHitQuadrupletEDProducer = _caHitQuadrupletDefaultEDProducer.clone() from Configuration.ProcessModifiers.gpu_cff import gpu from RecoPixelVertexing.PixelTriplets.caHitQuadrupletHeterogeneousEDProducer_cfi import caHitQuadrupletHeterogeneousEDProducer as _caHitQuadrupletHeterogeneousEDProducer gpu.toReplaceWith(caHitQuadrupletEDProducer, _caHitQuadrupletHeterogeneousEDProducer)
recHitsInLabelEB = cms.InputTag('ecalMultiFitUncalibRecHitGPU', 'EcalUncalibRecHitsEB'), recHitsInLabelEE = cms.InputTag('ecalMultiFitUncalibRecHitGPU', 'EcalUncalibRecHitsEE'), ) # convert the uncalibrated rechits from SoA to legacy format from RecoLocalCalo.EcalRecProducers.ecalUncalibRecHitConvertGPU2CPUFormat_cfi import ecalUncalibRecHitConvertGPU2CPUFormat as _ecalUncalibRecHitConvertGPU2CPUFormat gpu.toModify(ecalMultiFitUncalibRecHit, cuda = _ecalUncalibRecHitConvertGPU2CPUFormat.clone( recHitsLabelGPUEB = cms.InputTag('ecalMultiFitUncalibRecHitSoA', 'EcalUncalibRecHitsEB'), recHitsLabelGPUEE = cms.InputTag('ecalMultiFitUncalibRecHitSoA', 'EcalUncalibRecHitsEE'), ) ) gpu.toReplaceWith(ecalMultiFitUncalibRecHitTask, cms.Task( # ECAL conditions used by the multifit running on GPU ecalPedestalsGPUESProducer, ecalGainRatiosGPUESProducer, ecalPulseShapesGPUESProducer, ecalPulseCovariancesGPUESProducer, ecalSamplesCorrelationGPUESProducer, ecalTimeBiasCorrectionsGPUESProducer, ecalTimeCalibConstantsGPUESProducer, ecalMultifitParametersGPUESProducer, # ECAL multifit running on GPU ecalMultiFitUncalibRecHitGPU, # copy the uncalibrated rechits from GPU to CPU ecalMultiFitUncalibRecHitSoA, # ECAL multifit running on CPU, or convert the uncalibrated rechits from SoA to legacy format ecalMultiFitUncalibRecHit, ))
'EcalUncalibRecHitsEE')) # copy the rechits from GPU to CPU from RecoLocalCalo.EcalRecProducers.ecalCPURecHitProducer_cfi import ecalCPURecHitProducer as _ecalCPURecHitProducer ecalRecHitSoA = _ecalCPURecHitProducer.clone( recHitsInLabelEB=cms.InputTag('ecalRecHitGPU', 'EcalRecHitsEB'), recHitsInLabelEE=cms.InputTag('ecalRecHitGPU', 'EcalRecHitsEE')) # convert the rechits from SoA to legacy format from RecoLocalCalo.EcalRecProducers.ecalRecHitConvertGPU2CPUFormat_cfi import ecalRecHitConvertGPU2CPUFormat as _ecalRecHitConvertGPU2CPUFormat _ecalRecHit_gpu = _ecalRecHitConvertGPU2CPUFormat.clone( recHitsLabelGPUEB=cms.InputTag('ecalRecHitSoA', 'EcalRecHitsEB'), recHitsLabelGPUEE=cms.InputTag('ecalRecHitSoA', 'EcalRecHitsEE')) gpu.toReplaceWith(ecalRecHit, _ecalRecHit_gpu) # ECAL reconstruction on GPU gpu.toReplaceWith( ecalRecHitNoTPTask, cms.Task( # ECAL rechit calibrations on GPU ecalRechitADCToGeVConstantGPUESProducer, ecalRechitChannelStatusGPUESProducer, ecalIntercalibConstantsGPUESProducer, ecalLaserAPDPNRatiosGPUESProducer, ecalLaserAPDPNRatiosRefGPUESProducer, ecalLaserAlphasGPUESProducer, ecalLinearCorrectionsGPUESProducer, ecalRecHitParametersGPUESProducer, # ECAL rechits running on GPU
# SwitchProducer wrapping the legacy pixel rechit producer siPixelRecHitsPreSplitting = SwitchProducerCUDA(cpu=siPixelRecHits.clone( src='siPixelClustersPreSplitting')) # convert the pixel rechits from legacy to SoA format from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacy_cfi import siPixelRecHitSoAFromLegacy as siPixelRecHitsPreSplittingSoA siPixelRecHitsPreSplittingTask = cms.Task( # SwitchProducer wrapping the legacy pixel rechit producer siPixelRecHitsPreSplitting, # convert the pixel rechits from legacy to SoA format siPixelRecHitsPreSplittingSoA) # reconstruct the pixel rechits on the gpu from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDA_cfi import siPixelRecHitCUDA as _siPixelRecHitCUDA siPixelRecHitsPreSplittingCUDA = _siPixelRecHitCUDA.clone( beamSpot="offlineBeamSpotToCUDA") # transfer the pixel rechits to the host and convert them from SoA from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDA_cfi import siPixelRecHitFromCUDA as _siPixelRecHitFromCUDA gpu.toModify(siPixelRecHitsPreSplitting, cuda=_siPixelRecHitFromCUDA.clone()) gpu.toReplaceWith( siPixelRecHitsPreSplittingTask, cms.Task( # reconstruct the pixel rechits on the gpu siPixelRecHitsPreSplittingCUDA, # SwitchProducer wrapping the legacy pixel rechit producer or the transfer of the pixel rechits to the host and the conversion from SoA siPixelRecHitsPreSplittingTask.copy()))
import FWCore.ParameterSet.Config as cms from RecoLocalCalo.HcalRecProducers.HBHEIsolatedNoiseReflagger_cfi import * hcalGlobalRecoTask = cms.Task(hbhereco) hcalGlobalRecoSequence = cms.Sequence(hcalGlobalRecoTask) #--- for Run 3 and later from Configuration.Eras.Modifier_run3_HB_cff import run3_HB from RecoLocalCalo.HcalRecProducers.HBHEPhase1Reconstructor_cfi import hbheprereco as _phase1_hbheprereco run3_HB.toReplaceWith(hbhereco, _phase1_hbheprereco) #--- for Run 3 on GPU from Configuration.ProcessModifiers.gpu_cff import gpu from RecoLocalCalo.HcalRecProducers.hcalCPURecHitsProducer_cfi import hcalCPURecHitsProducer as _hcalCPURecHitsProducer gpu.toReplaceWith(hbhereco, _hcalCPURecHitsProducer.clone( recHitsM0LabelIn = "hbheRecHitProducerGPU", recHitsM0LabelOut = "", recHitsLegacyLabelOut = "" ))
# reconstruct the pixel digis and clusters on the gpu from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDA_cfi import siPixelRawToClusterCUDA as _siPixelRawToClusterCUDA siPixelClustersPreSplittingCUDA = _siPixelRawToClusterCUDA.clone() run3_common.toModify( siPixelClustersPreSplittingCUDA, # use the pixel channel calibrations scheme for Run 3 isRun2=False, clusterThreshold_layer1=4000) # convert the pixel digis (except errors) and clusters to the legacy format from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoA_cfi import siPixelDigisClustersFromSoA as _siPixelDigisClustersFromSoA siPixelDigisClustersPreSplitting = _siPixelDigisClustersFromSoA.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 CalibTracker.SiPixelESProducers.siPixelGainCalibrationForHLTGPU_cfi import * from RecoLocalTracker.SiPixelRecHits.siPixelRecHitHeterogeneous_cfi import * from RecoLocalTracker.SiPixelRecHits.siPixelRecHitHeterogeneousConverter_cfi import siPixelRecHitHeterogeneousConverter as _siPixelRecHitHeterogeneousConverter gpu.toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitHeterogeneousConverter.clone()) from Configuration.ProcessModifiers.gpu_cff import gpu _pixeltrackerlocalreco_gpu = pixeltrackerlocalreco.copy() _pixeltrackerlocalreco_gpu.replace( siPixelClustersPreSplitting, siPixelClustersHeterogeneous + siPixelClustersPreSplitting) _pixeltrackerlocalreco_gpu.replace( siPixelRecHitsPreSplitting, siPixelRecHitHeterogeneous + siPixelRecHitsPreSplitting) gpu.toReplaceWith(pixeltrackerlocalreco, _pixeltrackerlocalreco_gpu) from RecoLocalTracker.SiPhase2Clusterizer.phase2TrackerClusterizer_cfi import * from RecoLocalTracker.Phase2TrackerRecHits.Phase2StripCPEGeometricESProducer_cfi import * from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toReplaceWith( pixeltrackerlocalreco, cms.Sequence(siPhase2Clusters + siPixelClustersPreSplitting + siPixelRecHitsPreSplitting)) phase2_tracker.toModify(clusterSummaryProducer, doStrips=False, stripClusters='') phase2_tracker.toReplaceWith( trackerlocalreco, cms.Sequence(pixeltrackerlocalreco * clusterSummaryProducer))
cpu = _siPixelRecHitsPreSplitting.clone() ) from Configuration.ProcessModifiers.gpu_cff import gpu from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDA_cfi import siPixelRecHitCUDA as _siPixelRecHitCUDA from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromSOA_cfi import siPixelRecHitFromSOA as _siPixelRecHitFromSOA gpu.toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromSOA.clone() ) siPixelRecHitsPreSplittingTask = cms.Task(siPixelRecHitsPreSplitting) siPixelRecHitsCUDAPreSplitting = _siPixelRecHitCUDA.clone( beamSpot = "offlineBeamSpotToCUDA" ) siPixelRecHitsLegacyPreSplitting = _siPixelRecHitFromSOA.clone() siPixelRecHitsPreSplittingTaskCUDA = cms.Task( siPixelRecHitsCUDAPreSplitting, siPixelRecHitsLegacyPreSplitting, ) from Configuration.ProcessModifiers.gpu_cff import gpu _siPixelRecHitsPreSplittingTask_gpu = siPixelRecHitsPreSplittingTask.copy() _siPixelRecHitsPreSplittingTask_gpu.add(siPixelRecHitsPreSplittingTaskCUDA) gpu.toReplaceWith(siPixelRecHitsPreSplittingTask, _siPixelRecHitsPreSplittingTask_gpu)
import FWCore.ParameterSet.Config as cms from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDA_cfi import siPixelRawToClusterCUDA as _siPixelRawToClusterCUDA from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoA_cfi import siPixelDigisClustersFromSoA as _siPixelDigisClustersFromSoA from CalibTracker.SiPixelESProducers.siPixelROCsStatusAndMappingWrapperESProducer_cfi import * from CalibTracker.SiPixelESProducers.siPixelGainCalibrationForHLTGPU_cfi import * siPixelClustersPreSplittingTask = cms.Task(siPixelClustersPreSplitting) siPixelClustersPreSplittingCUDA = _siPixelRawToClusterCUDA.clone() from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toModify(siPixelClustersPreSplittingCUDA, isRun2=False) siPixelDigisClustersPreSplitting = _siPixelDigisClustersFromSoA.clone() siPixelClustersPreSplittingTaskCUDA = cms.Task( siPixelClustersPreSplittingCUDA, siPixelDigisClustersPreSplitting, ) from Configuration.ProcessModifiers.gpu_cff import gpu _siPixelClustersPreSplittingTask_gpu = siPixelClustersPreSplittingTask.copy() _siPixelClustersPreSplittingTask_gpu.add(siPixelClustersPreSplittingTaskCUDA) gpu.toReplaceWith(siPixelClustersPreSplittingTask, _siPixelClustersPreSplittingTask_gpu)
import EventFilter.SiPixelRawToDigi.siPixelRawToDigi_cfi import RecoLocalTracker.SiPixelClusterizer.siPixelDigiHeterogeneousConverter_cfi siPixelDigis = EventFilter.SiPixelRawToDigi.siPixelRawToDigi_cfi.siPixelRawToDigi.clone( ) siPixelDigis.Timing = cms.untracked.bool(False) siPixelDigis.IncludeErrors = cms.bool(True) siPixelDigis.InputLabel = cms.InputTag("siPixelRawData") siPixelDigis.UseQualityInfo = cms.bool(False) ## ErrorList: list of error codes used by tracking to invalidate modules siPixelDigis.ErrorList = cms.vint32(29) ## UserErrorList: list of error codes used by Pixel experts for investigation siPixelDigis.UserErrorList = cms.vint32(40) ## Use pilot blades siPixelDigis.UsePilotBlade = cms.bool(False) ## Use phase1 siPixelDigis.UsePhase1 = cms.bool(False) ## Empty Regions PSet means complete unpacking siPixelDigis.Regions = cms.PSet() siPixelDigis.CablingMapLabel = cms.string("") from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel phase1Pixel.toModify(siPixelDigis, UsePhase1=True) _siPixelDigis_gpu = RecoLocalTracker.SiPixelClusterizer.siPixelDigiHeterogeneousConverter_cfi.siPixelDigiHeterogeneousConverter.clone( ) _siPixelDigis_gpu.includeErrors = cms.bool(True) from Configuration.ProcessModifiers.gpu_cff import gpu gpu.toReplaceWith(siPixelDigis, _siPixelDigis_gpu)
import FWCore.ParameterSet.Config as cms # legacy raw to digi on the CPU from EventFilter.EcalRawToDigi.EcalUnpackerData_cfi import ecalEBunpacker as _ecalEBunpacker ecalDigis = _ecalEBunpacker.clone() ecalDigisTask = cms.Task(ecalDigis) # process modifier to run on GPUs from Configuration.ProcessModifiers.gpu_cff import gpu # GPU-friendly EventSetup modules from EventFilter.EcalRawToDigi.ecalElectronicsMappingGPUESProducer_cfi import ecalElectronicsMappingGPUESProducer # raw to digi on GPUs from EventFilter.EcalRawToDigi.ecalRawToDigiGPU_cfi import ecalRawToDigiGPU as _ecalRawToDigiGPU ecalDigisGPU = _ecalRawToDigiGPU.clone() # copy the digi from the GPU to the CPU and convert to legacy format from EventFilter.EcalRawToDigi.ecalCPUDigisProducer_cfi import ecalCPUDigisProducer as _ecalCPUDigisProducer _ecalDigis_gpu = _ecalCPUDigisProducer.clone( digisInLabelEB=('ecalDigisGPU', 'ebDigis'), digisInLabelEE=('ecalDigisGPU', 'eeDigis'), produceDummyIntegrityCollections=True) gpu.toReplaceWith(ecalDigis, _ecalDigis_gpu) gpu.toReplaceWith( ecalDigisTask, cms.Task(ecalElectronicsMappingGPUESProducer, ecalDigisGPU, ecalDigis))
# ECAL conditions used by the unpacker running on GPU from EventFilter.EcalRawToDigi.ecalElectronicsMappingGPUESProducer_cfi import ecalElectronicsMappingGPUESProducer # ECAL unpacker running on GPU from EventFilter.EcalRawToDigi.ecalRawToDigiGPU_cfi import ecalRawToDigiGPU as _ecalRawToDigiGPU ecalDigisGPU = _ecalRawToDigiGPU.clone() # disable the ECAL unpacker collections that are not available in the GPU unpacker gpu.toModify(ecalDigis.cpu, headerUnpacking=False, memUnpacking=False) # extend the SwitchProducer to add a case to copy the ECAL digis from GPU to CPU and covert them from SoA to legacy format from EventFilter.EcalRawToDigi.ecalCPUDigisProducer_cfi import ecalCPUDigisProducer as _ecalCPUDigisProducer gpu.toModify( ecalDigis, # copy the ECAL digis from GPU to CPU and covert them from SoA to legacy format cuda=_ecalCPUDigisProducer.clone(digisInLabelEB=('ecalDigisGPU', 'ebDigis'), digisInLabelEE=('ecalDigisGPU', 'eeDigis'), produceDummyIntegrityCollections=True)) gpu.toReplaceWith( ecalDigisTask, cms.Task( # ECAL conditions used by the unpacker running on GPU ecalElectronicsMappingGPUESProducer, # run the ECAL unpacker on GPU ecalDigisGPU, # run the ECAL unpacker on CPU, or copy the ECAL digis from GPU to CPU and covert them from SoA to legacy format ecalDigis))
import FWCore.ParameterSet.Config as cms from EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi import siPixelDigis from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsSoAFromCUDA_cfi import siPixelDigiErrorsSoAFromCUDA as _siPixelDigiErrorsSoAFromCUDA from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoA_cfi import siPixelDigiErrorsFromSoA as _siPixelDigiErrorsFromSoA siPixelDigisTask = cms.Task(siPixelDigis) siPixelDigisSoA = _siPixelDigisSoAFromCUDA.clone( src="siPixelClustersCUDAPreSplitting") siPixelDigiErrorsSoA = _siPixelDigiErrorsSoAFromCUDA.clone( src="siPixelClustersCUDAPreSplitting") siPixelDigiErrors = _siPixelDigiErrorsFromSoA.clone() from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel phase1Pixel.toModify(siPixelDigiErrors, UsePhase1=True) siPixelDigisTaskCUDA = cms.Task(siPixelDigisSoA, siPixelDigiErrorsSoA, siPixelDigiErrors) from Configuration.ProcessModifiers.gpu_cff import gpu _siPixelDigisTask_gpu = siPixelDigisTask.copy() _siPixelDigisTask_gpu.add(siPixelDigisTaskCUDA) gpu.toReplaceWith(siPixelDigisTask, _siPixelDigisTask_gpu)
import FWCore.ParameterSet.Config as cms from RecoVertex.BeamSpotProducer.BeamSpot_cfi import * from RecoVertex.BeamSpotProducer.offlineBeamSpotToCUDA_cfi import offlineBeamSpotToCUDA 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.run2_HECollapse_2018_cff import run2_HECollapse_2018 run2_HECollapse_2018.toReplaceWith(hcalLocalRecoTask, _collapse_hcalLocalRecoTask) #--- for Run 3 and later _run3_hcalLocalRecoTask = _phase1_hcalLocalRecoTask.copy() _run3_hcalLocalRecoTask.remove(hbheprereco) from Configuration.Eras.Modifier_run3_HB_cff import run3_HB run3_HB.toReplaceWith(hcalLocalRecoTask, _run3_hcalLocalRecoTask) #--- for Run 3 on GPU from Configuration.ProcessModifiers.gpu_cff import gpu from RecoLocalCalo.HcalRecProducers.hbheRecHitProducerGPUTask_cff import * _run3_hcalLocalRecoGPUTask = hcalLocalRecoTask.copy() _run3_hcalLocalRecoGPUTask.add(hbheRecHitProducerGPUTask) gpu.toReplaceWith(hcalLocalRecoTask, _run3_hcalLocalRecoGPUTask) #--- HCAL-only workflow hcalOnlyLocalRecoTask = hcalLocalRecoTask.copyAndExclude([zdcreco]) #--- HCAL-only workflow for Run 2 on GPU from RecoLocalCalo.HcalRecProducers.hcalCPURecHitsProducer_cfi import hcalCPURecHitsProducer as _hbheprerecoFromCUDA (gpu & ~run3_HB).toModify(hbheprereco, cuda = _hbheprerecoFromCUDA.clone( produceSoA = False ) ) #--- for FastSim _fastSim_hcalLocalRecoTask = hcalLocalRecoTask.copyAndExclude([zdcreco]) from Configuration.Eras.Modifier_fastSim_cff import fastSim