Esempio n. 1
0
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",
Esempio n. 2
0
    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,
    ]))
Esempio n. 3
0
# 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()))
Esempio n. 4
0
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)

Esempio n. 5
0
                           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)
Esempio n. 6
0
# 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,
    ))
Esempio n. 7
0
# 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())
Esempio n. 8
0
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)
Esempio n. 9
0
  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,
))
Esempio n. 10
0
                                         '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
Esempio n. 11
0
# 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()))
Esempio n. 12
0
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 = ""
))
Esempio n. 13
0
# 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()))
Esempio n. 14
0
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))
Esempio n. 15
0
    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)
Esempio n. 16
0
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)
Esempio n. 17
0
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)
Esempio n. 18
0
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))
Esempio n. 19
0
# 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))
Esempio n. 20
0
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)
Esempio n. 21
0
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)
Esempio n. 22
0
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