1 import FWCore.ParameterSet.Config
as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
4 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
7 from Configuration.ProcessModifiers.trackdnn_cff
import trackdnn
13 pixelLessStepClusters = _cfg.clusterRemoverForIter(
"PixelLessStep")
14 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
15 _era.toReplaceWith(pixelLessStepClusters, _cfg.clusterRemoverForIter(
"PixelLessStep", _eraName, _postfix))
21 pixelLessStepSeedLayers = cms.EDProducer(
"SeedingLayersEDProducer",
22 layerList = cms.vstring(
24 'TIB1+TIB2+MTIB3',
'TIB1+TIB2+MTIB4',
26 'TIB1+TIB2+MTID1_pos',
'TIB1+TIB2+MTID1_neg',
28 'TID1_pos+TID2_pos+TID3_pos',
'TID1_neg+TID2_neg+TID3_neg',
29 'TID1_pos+TID2_pos+MTID3_pos',
'TID1_neg+TID2_neg+MTID3_neg',
30 'TID1_pos+TID2_pos+MTEC1_pos',
'TID1_neg+TID2_neg+MTEC1_neg',
32 'TID2_pos+TID3_pos+TEC1_pos',
'TID2_neg+TID3_neg+TEC1_neg',
33 'TID2_pos+TID3_pos+MTEC1_pos',
'TID2_neg+TID3_neg+MTEC1_neg',
35 'TEC1_pos+TEC2_pos+TEC3_pos',
'TEC1_neg+TEC2_neg+TEC3_neg',
36 'TEC1_pos+TEC2_pos+MTEC3_pos',
'TEC1_neg+TEC2_neg+MTEC3_neg',
37 'TEC1_pos+TEC2_pos+TEC4_pos',
'TEC1_neg+TEC2_neg+TEC4_neg',
38 'TEC1_pos+TEC2_pos+MTEC4_pos',
'TEC1_neg+TEC2_neg+MTEC4_neg',
39 'TEC2_pos+TEC3_pos+TEC4_pos',
'TEC2_neg+TEC3_neg+TEC4_neg',
40 'TEC2_pos+TEC3_pos+MTEC4_pos',
'TEC2_neg+TEC3_neg+MTEC4_neg',
41 'TEC2_pos+TEC3_pos+TEC5_pos',
'TEC2_neg+TEC3_neg+TEC5_neg',
42 'TEC2_pos+TEC3_pos+TEC6_pos',
'TEC2_neg+TEC3_neg+TEC6_neg',
43 'TEC3_pos+TEC4_pos+TEC5_pos',
'TEC3_neg+TEC4_neg+TEC5_neg',
44 'TEC3_pos+TEC4_pos+MTEC5_pos',
'TEC3_neg+TEC4_neg+MTEC5_neg',
45 'TEC3_pos+TEC5_pos+TEC6_pos',
'TEC3_neg+TEC5_neg+TEC6_neg',
46 'TEC4_pos+TEC5_pos+TEC6_pos',
'TEC4_neg+TEC5_neg+TEC6_neg' 49 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
50 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
51 skipClusters = cms.InputTag(
'pixelLessStepClusters')
54 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
55 skipClusters = cms.InputTag(
'pixelLessStepClusters'),
56 rphiRecHits = cms.InputTag(
"siStripMatchedRecHits",
"rphiRecHit")
59 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
60 skipClusters = cms.InputTag(
'pixelLessStepClusters'),
61 useRingSlector = cms.bool(
True),
62 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
63 minRing = cms.int32(1),
64 maxRing = cms.int32(2)
67 rphiRecHits = cms.InputTag(
"siStripMatchedRecHits",
"rphiRecHit"),
68 skipClusters = cms.InputTag(
'pixelLessStepClusters'),
69 useRingSlector = cms.bool(
True),
70 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
71 minRing = cms.int32(3),
72 maxRing = cms.int32(3)
75 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
76 skipClusters = cms.InputTag(
'pixelLessStepClusters'),
77 useRingSlector = cms.bool(
True),
78 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
79 minRing = cms.int32(1),
80 maxRing = cms.int32(2)
83 rphiRecHits = cms.InputTag(
"siStripMatchedRecHits",
"rphiRecHit"),
84 skipClusters = cms.InputTag(
'pixelLessStepClusters'),
85 useRingSlector = cms.bool(
True),
86 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
87 minRing = cms.int32(3),
88 maxRing = cms.int32(3)
91 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
92 trackingLowPU.toModify(pixelLessStepSeedLayers,
95 'TID1_pos+TID2_pos',
'TID2_pos+TID3_pos',
96 'TEC1_pos+TEC2_pos',
'TEC2_pos+TEC3_pos',
'TEC3_pos+TEC4_pos',
'TEC3_pos+TEC5_pos',
'TEC4_pos+TEC5_pos',
97 'TID1_neg+TID2_neg',
'TID2_neg+TID3_neg',
98 'TEC1_neg+TEC2_neg',
'TEC2_neg+TEC3_neg',
'TEC3_neg+TEC4_neg',
'TEC3_neg+TEC5_neg',
'TEC4_neg+TEC5_neg' 100 TIB = dict(clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')),
101 TID = dict(clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')),
102 TEC = dict(clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')),
109 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
110 pixelLessStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
112 originHalfLength = 12.0,
115 trackingLowPU.toModify(pixelLessStepTrackingRegions, RegionPSet = dict(
117 originHalfLength = 10.0,
121 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
122 from Configuration.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
124 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(pixelLessStepTrackingRegions,
125 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
126 ptMinScaling4BigEvts=
False,
136 pixelLessStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
137 ComponentName =
'pixelLessStepClusterShapeHitFilter',
138 doStripShapeCut = cms.bool(
False),
139 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTight')
142 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
143 pixelLessStepHitDoublets = _hitPairEDProducer.clone(
144 seedingLayers =
"pixelLessStepSeedLayers",
145 trackingRegions =
"pixelLessStepTrackingRegions",
146 maxElement = 50000000,
147 produceIntermediateHitDoublets =
True,
149 from RecoTracker.TkSeedGenerator.multiHitFromChi2EDProducer_cfi
import multiHitFromChi2EDProducer
as _multiHitFromChi2EDProducer
150 pixelLessStepHitTriplets = _multiHitFromChi2EDProducer.clone(
151 doublets =
"pixelLessStepHitDoublets",
153 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
154 from RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi
import StripSubClusterShapeSeedFilter
as _StripSubClusterShapeSeedFilter
155 pixelLessStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
156 seedingHitSets =
"pixelLessStepHitTriplets",
157 SeedComparitorPSet = dict(
158 ComponentName =
'CombinedSeedComparitor',
159 mode = cms.string(
"and"),
160 comparitors = cms.VPSet(
162 ComponentName = cms.string(
'PixelClusterShapeSeedComparitor'),
163 FilterAtHelixStage = cms.bool(
True),
164 FilterPixelHits = cms.bool(
False),
165 FilterStripHits = cms.bool(
True),
166 ClusterShapeHitFilterName = cms.string(
'pixelLessStepClusterShapeHitFilter'),
167 ClusterShapeCacheSrc = cms.InputTag(
"siPixelClusterShapeCache")
169 _StripSubClusterShapeSeedFilter.clone()
173 trackingLowPU.toModify(pixelLessStepHitDoublets, produceSeedingHitSets=
True, produceIntermediateHitDoublets=
False)
174 trackingLowPU.toModify(pixelLessStepSeeds,
175 seedingHitSets =
"pixelLessStepHitDoublets",
176 SeedComparitorPSet = dict(
177 ComponentName =
'PixelClusterShapeSeedComparitor',
178 FilterAtHelixStage = cms.bool(
True),
179 FilterPixelHits = cms.bool(
False),
180 FilterStripHits = cms.bool(
True),
181 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
182 ClusterShapeCacheSrc = cms.InputTag(
"siPixelClusterShapeCache")
186 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
187 _fastSim_pixelLessStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
188 trackingRegions =
"pixelLessStepTrackingRegions",
189 hitMasks = cms.InputTag(
"pixelLessStepMasks"),
191 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
193 _fastSim_pixelLessStepSeeds.seedFinderSelector.MultiHitGeneratorFactory.refitHits =
False 194 _fastSim_pixelLessStepSeeds.seedFinderSelector.layerList = pixelLessStepSeedLayers.layerList.value()
195 fastSim.toReplaceWith(pixelLessStepSeeds,_fastSim_pixelLessStepSeeds)
199 _pixelLessStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
201 minimumNumberOfHits = 4,
204 pixelLessStepTrajectoryFilter = _pixelLessStepTrajectoryFilterBase.clone(
207 trackingLowPU.toReplaceWith(pixelLessStepTrajectoryFilter, _pixelLessStepTrajectoryFilterBase)
208 for e
in [pp_on_XeXe_2017, pp_on_AA_2018]:
209 e.toModify(pixelLessStepTrajectoryFilter, minPt=2.0)
211 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
212 pixelLessStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
213 ComponentName = cms.string(
'pixelLessStepChi2Est'),
214 nSigma = cms.double(3.0),
215 MaxChi2 = cms.double(16.0),
216 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight'))
218 trackingLowPU.toModify(pixelLessStepChi2Est,
219 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
224 pixelLessStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
225 MeasurementTrackerName =
'',
226 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'pixelLessStepTrajectoryFilter')),
227 minNrOfHitsForRebuild = 4,
229 alwaysUseInvalidHits =
False,
230 estimator = cms.string(
'pixelLessStepChi2Est'),
231 maxDPhiForLooperReconstruction = cms.double(2.0),
232 maxPtForLooperReconstruction = cms.double(0.7)
237 pixelLessStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
238 src = cms.InputTag(
'pixelLessStepSeeds'),
239 clustersToSkip = cms.InputTag(
'pixelLessStepClusters'),
241 numHitsForSeedCleaner = cms.int32(50),
243 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'pixelLessStepTrajectoryBuilder')),
244 TrajectoryCleaner =
'pixelLessStepTrajectoryCleanerBySharedHits' 246 import FastSimulation.Tracking.TrackCandidateProducer_cfi
247 fastSim.toReplaceWith(pixelLessStepTrackCandidates,
248 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
249 src = cms.InputTag(
"pixelLessStepSeeds"),
250 MinNumberOfCrossedLayers = 6,
251 hitMasks = cms.InputTag(
"pixelLessStepMasks")
256 pixelLessStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
257 ComponentName = cms.string(
'pixelLessStepTrajectoryCleanerBySharedHits'),
258 fractionShared = cms.double(0.11),
259 allowSharedFirstHit = cms.bool(
True)
261 trackingLowPU.toModify(pixelLessStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
266 pixelLessStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
267 src =
'pixelLessStepTrackCandidates',
268 AlgorithmName = cms.string(
'pixelLessStep'),
269 Fitter = cms.string(
'FlexibleKFFittingSmoother')
271 fastSim.toModify(pixelLessStepTracks, TTRHBuilder =
'WithoutRefit')
277 pixelLessStepClassifier1 = TrackMVAClassifierPrompt.clone()
278 pixelLessStepClassifier1.src =
'pixelLessStepTracks' 279 pixelLessStepClassifier1.mva.GBRForestLabel =
'MVASelectorIter5_13TeV' 280 pixelLessStepClassifier1.qualityCuts = [-0.4,0.0,0.4]
281 fastSim.toModify(pixelLessStepClassifier1, vertices =
"firstStepPrimaryVerticesBeforeMixing" )
283 pixelLessStepClassifier2 = TrackMVAClassifierPrompt.clone()
284 pixelLessStepClassifier2.src =
'pixelLessStepTracks' 285 pixelLessStepClassifier2.mva.GBRForestLabel =
'MVASelectorIter0_13TeV' 286 pixelLessStepClassifier2.qualityCuts = [-0.0,0.0,0.0]
287 fastSim.toModify(pixelLessStepClassifier2, vertices =
"firstStepPrimaryVerticesBeforeMixing" )
290 pixelLessStep = ClassifierMerger.clone()
291 pixelLessStep.inputClassifiers=[
'pixelLessStepClassifier1',
'pixelLessStepClassifier2']
293 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
295 trackingPhase1.toReplaceWith(pixelLessStep, pixelLessStepClassifier1.clone(
296 mva = dict(GBRForestLabel =
'MVASelectorPixelLessStep_Phase1'),
297 qualityCuts = [-0.4,0.0,0.4]
302 trackdnn.toReplaceWith(pixelLessStep, TrackLwtnnClassifier.clone(
303 src =
'pixelLessStepTracks',
304 qualityCuts = [-0.6, -0.05, 0.5]
306 (trackdnn & fastSim).toModify(pixelLessStep,vertices =
"firstStepPrimaryVerticesBeforeMixing")
308 pp_on_AA_2018.toModify(pixelLessStep, qualityCuts = [-0.4,0.0,0.8])
311 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
312 pixelLessStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
313 src=
'pixelLessStepTracks',
314 useAnyMVA = cms.bool(
False),
315 GBRForestLabel = cms.string(
'MVASelectorIter5'),
316 trackSelectors= cms.VPSet(
317 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
318 name =
'pixelLessStepLoose',
320 res_par = ( 0.003, 0.001 ),
322 maxNumberLostLayers = 1,
323 minNumber3DLayers = 3,
324 d0_par1 = ( 1.3, 4.0 ),
325 dz_par1 = ( 1.3, 4.0 ),
326 d0_par2 = ( 1.3, 4.0 ),
327 dz_par2 = ( 1.3, 4.0 )
329 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
330 name =
'pixelLessStepTight',
331 preFilterName =
'pixelLessStepLoose',
333 res_par = ( 0.003, 0.001 ),
335 maxNumberLostLayers = 0,
336 minNumber3DLayers = 3,
337 d0_par1 = ( 1.1, 4.0 ),
338 dz_par1 = ( 1.1, 4.0 ),
339 d0_par2 = ( 1.1, 4.0 ),
340 dz_par2 = ( 1.1, 4.0 )
342 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
343 name =
'QualityMasks',
344 preFilterName =
'pixelLessStepTight',
346 res_par = ( 0.003, 0.001 ),
348 maxNumberLostLayers = 0,
349 minNumber3DLayers = 3,
350 d0_par1 = ( 0.9, 4.0 ),
351 dz_par1 = ( 0.9, 4.0 ),
352 d0_par2 = ( 0.9, 4.0 ),
353 dz_par2 = ( 0.9, 4.0 )
356 vertices = cms.InputTag(
"pixelVertices")
359 PixelLessStepTask = cms.Task(pixelLessStepClusters,
360 pixelLessStepSeedLayers,
361 pixelLessStepTrackingRegions,
362 pixelLessStepHitDoublets,
363 pixelLessStepHitTriplets,
365 pixelLessStepTrackCandidates,
367 pixelLessStepClassifier1,pixelLessStepClassifier2,
369 PixelLessStep = cms.Sequence(PixelLessStepTask)
371 _PixelLessStepTask_LowPU = PixelLessStepTask.copyAndExclude([pixelLessStepHitTriplets, pixelLessStepClassifier1, pixelLessStepClassifier2])
372 _PixelLessStepTask_LowPU.replace(pixelLessStep, pixelLessStepSelector)
373 trackingLowPU.toReplaceWith(PixelLessStepTask, _PixelLessStepTask_LowPU)
375 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
377 fastSim.toReplaceWith(PixelLessStepTask,
378 cms.Task(pixelLessStepMasks
379 ,pixelLessStepTrackingRegions
381 ,pixelLessStepTrackCandidates
383 ,pixelLessStepClassifier1,pixelLessStepClassifier2
def _hitSetProducerToFactoryPSet(producer)
def maskProducerFromClusterRemover(clusterRemover)