forked from cms-sw/cmssw
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rework the definition of the Patatrack pixel workflows
Drop the obsolete pixelNtupleFit modifier, and replace the customizePixelTracksSoAonCPU function with the pixelNtupletFit modifier. Make the "gpu" workflows autodetect if a GPU is a present, and fall back to running only on CPU otherwise. Update the name of the modules for better consistency.
- Loading branch information
Showing
25 changed files
with
304 additions
and
219 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,24 @@ | ||
import FWCore.ParameterSet.Config as cms | ||
|
||
#local reconstruction | ||
# local reconstruction | ||
from EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi import * | ||
from EventFilter.SiStripRawToDigi.SiStripDigis_cfi import * | ||
from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import * | ||
from RecoLocalTracker.SiStripZeroSuppression.SiStripZeroSuppression_cfi import * | ||
from RecoLocalTracker.SiStripClusterizer.SiStripClusterizer_cfi import * | ||
recolocal = cms.Sequence( siPixelDigis*siPixelClustersPreSplitting*siStripDigis*siStripZeroSuppression*siStripClusters) | ||
siPixelDigis.InputLabel = 'rawDataCollector' | ||
recolocal = cms.Sequence(siPixelDigis + siPixelClustersPreSplitting + siStripDigis + siStripZeroSuppression + siStripClusters) | ||
siPixelDigis.cpu.InputLabel = 'rawDataCollector' | ||
|
||
#tracking | ||
# tracking | ||
from RecoVertex.BeamSpotProducer.BeamSpot_cff import * | ||
from RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi import * | ||
from RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi import * | ||
from RecoTracker.Configuration.RecoTracker_cff import * | ||
from RecoTracker.Configuration.RecoTrackerP5_cff import * | ||
from RecoPixelVertexing.Configuration.RecoPixelVertexing_cff import * | ||
recotrack = cms.Sequence( offlineBeamSpot + siPixelRecHitsPreSplitting*siStripMatchedRecHits*recopixelvertexing*ckftracks) | ||
recotrackP5 = cms.Sequence( offlineBeamSpot + siPixelRecHitsPreSplitting*siStripMatchedRecHits*recopixelvertexing*ctftracksP5) | ||
recotrack = cms.Sequence(offlineBeamSpot + siPixelRecHitsPreSplitting + siStripMatchedRecHits + recopixelvertexing + ckftracks) | ||
recotrackP5 = cms.Sequence(offlineBeamSpot + siPixelRecHitsPreSplitting + siStripMatchedRecHits + recopixelvertexing + ctftracksP5) | ||
|
||
#Schedule | ||
reconstruction_step = cms.Path( recolocal + recotrack ) | ||
reconstructionP5_step = cms.Path( recolocal + recotrackP5 ) | ||
# Schedule | ||
reconstruction_step = cms.Path(recolocal + recotrack) | ||
reconstructionP5_step = cms.Path(recolocal + recotrackP5) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
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() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 9 additions & 4 deletions
13
EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,43 @@ | ||
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) | ||
siPixelDigisTask = cms.Task( | ||
# SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA | ||
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) | ||
|
||
siPixelDigisTaskCUDA = cms.Task( | ||
siPixelDigisSoA, | ||
siPixelDigiErrorsSoA, | ||
siPixelDigiErrors | ||
phase1Pixel.toModify(siPixelDigiErrors, | ||
UsePhase1 = True | ||
) | ||
|
||
|
||
from Configuration.ProcessModifiers.gpu_cff import gpu | ||
_siPixelDigisTask_gpu = siPixelDigisTask.copy() | ||
_siPixelDigisTask_gpu.add(siPixelDigisTaskCUDA) | ||
gpu.toReplaceWith(siPixelDigisTask, _siPixelDigisTask_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() | ||
)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 9 additions & 1 deletion
10
RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 28 additions & 14 deletions
42
RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,40 @@ | ||
import FWCore.ParameterSet.Config as cms | ||
from Configuration.Eras.Modifier_run3_common_cff import run3_common | ||
from Configuration.ProcessModifiers.gpu_cff import gpu | ||
|
||
# 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 | ||
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) | ||
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.siPixelRawToClusterCUDA_cfi import siPixelRawToClusterCUDA as _siPixelRawToClusterCUDA | ||
siPixelClustersPreSplittingCUDA = _siPixelRawToClusterCUDA.clone() | ||
from Configuration.Eras.Modifier_run3_common_cff import run3_common | ||
|
||
run3_common.toModify(siPixelClustersPreSplittingCUDA, | ||
isRun2=False | ||
# use the pixel channel calibrations scheme for Run 3 | ||
isRun2 = False | ||
) | ||
|
||
# convert the pixel digis (except errors) and clusters to the legacy format | ||
from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoA_cfi import siPixelDigisClustersFromSoA as _siPixelDigisClustersFromSoA | ||
siPixelDigisClustersPreSplitting = _siPixelDigisClustersFromSoA.clone() | ||
siPixelClustersPreSplittingTaskCUDA = cms.Task( | ||
|
||
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, | ||
) | ||
|
||
from Configuration.ProcessModifiers.gpu_cff import gpu | ||
_siPixelClustersPreSplittingTask_gpu = siPixelClustersPreSplittingTask.copy() | ||
_siPixelClustersPreSplittingTask_gpu.add(siPixelClustersPreSplittingTaskCUDA) | ||
gpu.toReplaceWith(siPixelClustersPreSplittingTask, _siPixelClustersPreSplittingTask_gpu) | ||
# SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA | ||
siPixelClustersPreSplittingTask.copy() | ||
)) |
Oops, something went wrong.