File indexing completed on 2024-04-06 12:28:13
0001 import FWCore.ParameterSet.Config as cms
0002
0003 import RecoTracker.MkFit.mkFitGeometryESProducer_cfi as mkFitGeometryESProducer_cfi
0004 import RecoTracker.MkFit.mkFitSiPixelHitConverter_cfi as mkFitSiPixelHitConverter_cfi
0005 import RecoTracker.MkFit.mkFitSiStripHitConverter_cfi as mkFitSiStripHitConverter_cfi
0006 import RecoTracker.MkFit.mkFitEventOfHitsProducer_cfi as mkFitEventOfHitsProducer_cfi
0007 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
0008 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
0009 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
0010 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
0011 import RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi as SiStripRecHitConverter_cfi
0012
0013 def customizeHLTIter0ToMkFit(process):
0014
0015
0016 for objLabel in [
0017 'hltSiStripRawToClustersFacility',
0018 'HLTDoLocalStripSequence',
0019 'HLTIterativeTrackingIteration0',
0020 'hltIter0PFlowCkfTrackCandidates',
0021 ]:
0022 if not hasattr(process, objLabel):
0023 print(f'# WARNING: customizeHLTIter0ToMkFit failed (object with label "{objLabel}" not found) - no customisation applied !')
0024 return process
0025
0026
0027 process.hltSiStripRawToClustersFacility.onDemand = False
0028
0029 process.hltSiStripRecHits = SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
0030 ClusterProducer = "hltSiStripRawToClustersFacility",
0031 StripCPE = "hltESPStripCPEfromTrackAngle:hltESPStripCPEfromTrackAngle",
0032 doMatching = False,
0033 )
0034
0035
0036 process.hltIter0PFLowPixelSeedsFromPixelTracks.includeFourthHit = cms.bool(True)
0037
0038 process.hltMkFitGeometryESProducer = mkFitGeometryESProducer_cfi.mkFitGeometryESProducer.clone()
0039
0040 process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits = mkFitSiPixelHitConverter_cfi.mkFitSiPixelHitConverter.clone(
0041 hits = "hltSiPixelRecHits",
0042 ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0043 )
0044 process.hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits = mkFitSiStripHitConverter_cfi.mkFitSiStripHitConverter.clone(
0045 rphiHits = "hltSiStripRecHits:rphiRecHit",
0046 stereoHits = "hltSiStripRecHits:stereoRecHit",
0047 ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0048 minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutLoose'),
0049 )
0050 process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits = mkFitEventOfHitsProducer_cfi.mkFitEventOfHitsProducer.clone(
0051 beamSpot = "hltOnlineBeamSpot",
0052 pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0053 stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0054 )
0055 process.hltIter0PFlowCkfTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
0056 seeds = "hltIter0PFLowPixelSeedsFromPixelTracks",
0057 ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0058 )
0059 process.hltIter0PFlowTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
0060 ComponentName = 'hltIter0PFlowTrackCandidatesMkFitConfig',
0061 config = 'RecoTracker/MkFit/data/mkfit-phase1-initialStep.json',
0062 )
0063 process.hltIter0PFlowCkfTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
0064 pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0065 stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0066 eventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits",
0067 seeds = "hltIter0PFlowCkfTrackCandidatesMkFitSeeds",
0068 config = ('', 'hltIter0PFlowTrackCandidatesMkFitConfig'),
0069 minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutLoose'),
0070 )
0071 process.hltIter0PFlowCkfTrackCandidates = mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
0072 seeds = "hltIter0PFLowPixelSeedsFromPixelTracks",
0073 mkFitEventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits",
0074 mkFitPixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0075 mkFitStripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0076 mkFitSeeds = "hltIter0PFlowCkfTrackCandidatesMkFitSeeds",
0077 tracks = "hltIter0PFlowCkfTrackCandidatesMkFit",
0078 ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0079 propagatorAlong = ":PropagatorWithMaterialParabolicMf",
0080 propagatorOpposite = ":PropagatorWithMaterialParabolicMfOpposite",
0081 )
0082
0083 process.HLTDoLocalStripSequence += process.hltSiStripRecHits
0084
0085 replaceWith = (process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits +
0086 process.hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits +
0087 process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits +
0088 process.hltIter0PFlowCkfTrackCandidatesMkFitSeeds +
0089 process.hltIter0PFlowCkfTrackCandidatesMkFit +
0090 process.hltIter0PFlowCkfTrackCandidates)
0091
0092 process.HLTIterativeTrackingIteration0.replace(process.hltIter0PFlowCkfTrackCandidates, replaceWith)
0093
0094 for path in process.paths_().values():
0095 if not path.contains(process.HLTIterativeTrackingIteration0) and path.contains(process.hltIter0PFlowCkfTrackCandidates):
0096 path.replace(process.hltIter0PFlowCkfTrackCandidates, replaceWith)
0097
0098 return process