Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-09 23:34:02

0001 import FWCore.ParameterSet.Config as cms
0002 from HeterogeneousCore.AlpakaCore.functions import *
0003 
0004 from RecoTracker.PixelTrackFitting.PixelTracks_cff import *
0005 from RecoVertex.PixelVertexFinding.PixelVertices_cff import *
0006 
0007 # HIon Modifiers
0008 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
0009 # Phase 2 Tracker Modifier
0010 from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
0011 
0012 # legacy pixel vertex reconsruction using the divisive vertex finder
0013 pixelVerticesTask = cms.Task(
0014     pixelVertices
0015 )
0016 
0017 ############################################################
0018 ## Pixel vertex reconstruction with Alpaka
0019 
0020 # pixel vertex SoA producer with alpaka on the device
0021 from RecoVertex.PixelVertexFinding.pixelVertexProducerAlpakaPhase1_cfi import pixelVertexProducerAlpakaPhase1 as _pixelVerticesAlpakaPhase1
0022 from RecoVertex.PixelVertexFinding.pixelVertexProducerAlpakaPhase2_cfi import pixelVertexProducerAlpakaPhase2 as _pixelVerticesAlpakaPhase2
0023 from RecoVertex.PixelVertexFinding.pixelVertexProducerAlpakaHIonPhase1_cfi import pixelVertexProducerAlpakaHIonPhase1 as _pixelVerticesAlpakaHIonPhase1
0024 pixelVerticesAlpaka = _pixelVerticesAlpakaPhase1.clone()
0025 phase2_tracker.toReplaceWith(pixelVerticesAlpaka,_pixelVerticesAlpakaPhase2.clone( maxVertices = 512))
0026 (pp_on_AA & ~phase2_tracker).toReplaceWith(pixelVerticesAlpaka,_pixelVerticesAlpakaHIonPhase1.clone(doSplitting = False, maxVertices = 32))
0027 
0028 from RecoVertex.PixelVertexFinding.pixelVertexFromSoAAlpaka_cfi import pixelVertexFromSoAAlpaka as _pixelVertexFromSoAAlpaka
0029 alpaka.toReplaceWith(pixelVertices, _pixelVertexFromSoAAlpaka.clone())
0030 
0031 # pixel vertex SoA producer with alpaka on the cpu, for validation
0032 pixelVerticesAlpakaSerial = makeSerialClone(pixelVerticesAlpaka,
0033     pixelTrackSrc = 'pixelTracksAlpakaSerial'
0034 )
0035 
0036 alpaka.toReplaceWith(pixelVerticesTask, cms.Task(
0037     # Build the pixel vertices in SoA format with alpaka on the device
0038     pixelVerticesAlpaka,
0039     # Build the pixel vertices in SoA format with alpaka on the cpu (if requested by the validation)
0040     pixelVerticesAlpakaSerial,
0041     # Convert the pixel vertices from SoA format (on the host) to the legacy format
0042     pixelVertices
0043 ))
0044 
0045 # Tasks and Sequences
0046 recopixelvertexingTask = cms.Task(
0047     pixelTracksTask,
0048     pixelVerticesTask
0049 )
0050 recopixelvertexing = cms.Sequence(recopixelvertexingTask)