Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-12 23:42:06

0001 import FWCore.ParameterSet.Config as cms
0002 from HeterogeneousCore.AlpakaCore.functions import *
0003 from Configuration.ProcessModifiers.alpaka_cff import alpaka
0004 
0005 
0006 # legacy pixel rechit producer
0007 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitConverter_cfi import siPixelRecHitConverter as _siPixelRecHitConverter
0008 siPixelRecHits = _siPixelRecHitConverter.clone()
0009 
0010 # HIon Modifiers
0011 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
0012 # Phase 2 Tracker Modifier
0013 from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
0014 
0015 # The legacy pixel rechit producer
0016 siPixelRecHitsPreSplitting = siPixelRecHits.clone(
0017         src = 'siPixelClustersPreSplitting'
0018 )
0019 
0020 siPixelRecHitsPreSplittingTask = cms.Task(
0021     siPixelRecHitsPreSplitting
0022 )
0023 
0024 ######################################################################
0025 
0026 ### Alpaka Pixel Hits Reco
0027 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitAlpakaPhase1_cfi import siPixelRecHitAlpakaPhase1 as _siPixelRecHitAlpakaPhase1
0028 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitAlpakaPhase2_cfi import siPixelRecHitAlpakaPhase2 as _siPixelRecHitAlpakaPhase2
0029 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitAlpakaHIonPhase1_cfi import siPixelRecHitAlpakaHIonPhase1 as _siPixelRecHitAlpakaHIonPhase1
0030 
0031 
0032 # Hit SoA producer on the device
0033 siPixelRecHitsPreSplittingAlpaka = _siPixelRecHitAlpakaPhase1.clone(
0034     src = "siPixelClustersPreSplittingAlpaka"
0035 )
0036 phase2_tracker.toReplaceWith(siPixelRecHitsPreSplittingAlpaka,_siPixelRecHitAlpakaPhase2.clone(
0037     src = "siPixelClustersPreSplittingAlpaka"
0038 ))
0039 (pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplittingAlpaka,_siPixelRecHitAlpakaHIonPhase1.clone(
0040     src = "siPixelClustersPreSplittingAlpaka"
0041 ))
0042 
0043 # Hit SoA producer on the cpu, for validation
0044 siPixelRecHitsPreSplittingAlpakaSerial = makeSerialClone(siPixelRecHitsPreSplittingAlpaka,
0045     src = "siPixelClustersPreSplittingAlpakaSerial"
0046 )
0047 
0048 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromSoAAlpakaPhase1_cfi import siPixelRecHitFromSoAAlpakaPhase1 as _siPixelRecHitFromSoAAlpakaPhase1
0049 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromSoAAlpakaPhase2_cfi import siPixelRecHitFromSoAAlpakaPhase2 as _siPixelRecHitFromSoAAlpakaPhase2
0050 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromSoAAlpakaHIonPhase1_cfi import siPixelRecHitFromSoAAlpakaHIonPhase1 as _siPixelRecHitFromSoAAlpakaHIonPhase1
0051 
0052 (alpaka & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaPhase1.clone(
0053             pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'),
0054             src = cms.InputTag('siPixelClustersPreSplitting'))
0055 )
0056 
0057 (alpaka & phase2_tracker).toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaPhase2.clone(
0058             pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'),
0059             src = cms.InputTag('siPixelClustersPreSplitting'))
0060 )
0061 
0062 (alpaka & pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaHIonPhase1.clone(
0063             pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'),
0064             src = cms.InputTag('siPixelClustersPreSplitting'))
0065 )
0066 
0067 
0068 alpaka.toReplaceWith(siPixelRecHitsPreSplittingTask, cms.Task(
0069                         # Reconstruct the pixel hits with alpaka on the device
0070                         siPixelRecHitsPreSplittingAlpaka,
0071                         # Reconstruct the pixel hits with alpaka on the cpu (if requested by the validation)
0072                         siPixelRecHitsPreSplittingAlpakaSerial,
0073                         # Convert hit soa on host to legacy formats
0074                         siPixelRecHitsPreSplitting))