1 import FWCore.ParameterSet.Config
as cms
2 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
as _tracker_apv_vfp30_2016
3 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
4 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
7 from Configuration.ProcessModifiers.trackdnn_cff
import trackdnn
8 from RecoTracker.IterativeTracking.dnnQualityCuts
import qualityCutDictionary
11 from Configuration.ProcessModifiers.trackingNoLoopers_cff
import trackingNoLoopers
14 pixelPairStepClusters = _cfg.clusterRemoverForIter(
'PixelPairStep')
15 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
16 _era.toReplaceWith(pixelPairStepClusters, _cfg.clusterRemoverForIter(
'PixelPairStep', _eraName, _postfix))
21 pixelPairStepSeedLayers = _mod.seedingLayersEDProducer.clone(
22 layerList = [
'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
23 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
24 'BPix2+FPix1_pos',
'BPix2+FPix1_neg',
25 'FPix1_pos+FPix2_pos',
'FPix1_neg+FPix2_neg'],
27 TTRHBuilder = cms.string(
'WithTrackAngle'),
28 HitProducer = cms.string(
'siPixelRecHits'),
29 skipClusters = cms.InputTag(
'pixelPairStepClusters')
32 TTRHBuilder = cms.string(
'WithTrackAngle'),
33 HitProducer = cms.string(
'siPixelRecHits'),
34 skipClusters = cms.InputTag(
'pixelPairStepClusters')
39 _layerListForPhase1 = [
40 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
41 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
42 'BPix2+FPix1_pos',
'BPix2+FPix1_neg',
44 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
45 trackingPhase1.toModify(pixelPairStepSeedLayers, layerList = _layerListForPhase1)
49 _layerListForPhase2 = [
50 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
51 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
52 'BPix2+FPix1_pos',
'BPix2+FPix1_neg' 55 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
56 trackingPhase2PU140.toModify(pixelPairStepSeedLayers,
57 layerList = _layerListForPhase2,
59 useErrorsFromParam = cms.bool(
True),
60 hitErrorRPhi = cms.double(0.0016),
61 hitErrorRZ = cms.double(0.0035),
62 TTRHBuilder =
'TTRHBuilderWithoutAngle4PixelPairs',
65 useErrorsFromParam = cms.bool(
True),
66 hitErrorRPhi = cms.double(0.0030),
67 hitErrorRZ = cms.double(0.0020),
68 TTRHBuilder =
'TTRHBuilderWithoutAngle4PixelPairs',
74 pixelPairStepTrackingRegions = _globalTrackingRegionWithVertices.clone(
79 useMultipleScattering =
True)
81 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
82 trackingLowPU.toModify(pixelPairStepTrackingRegions, RegionPSet=dict(useMultipleScattering=
False))
83 _region_Phase1 = dict(
84 useMultipleScattering =
False,
87 trackingPhase1.toModify(pixelPairStepTrackingRegions, RegionPSet=_region_Phase1)
88 trackingPhase2PU140.toModify(pixelPairStepTrackingRegions, RegionPSet=_region_Phase1)
89 from Configuration.Eras.Modifier_highBetaStar_cff
import highBetaStar
90 highBetaStar.toModify(pixelPairStepTrackingRegions,RegionPSet = dict(
95 from Configuration.Eras.Modifier_run3_upc_cff
import run3_upc
96 (highBetaStar & run3_upc).toModify(pixelPairStepTrackingRegions,RegionPSet = dict(originRadius = 0.015))
97 fastSim.toModify(pixelPairStepTrackingRegions, RegionPSet=dict(VertexCollection =
'firstStepPrimaryVerticesBeforeMixing'))
100 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
101 pixelPairStepHitDoublets = _hitPairEDProducer.clone(
102 seedingLayers =
'pixelPairStepSeedLayers',
103 trackingRegions =
'pixelPairStepTrackingRegions',
104 produceSeedingHitSets =
True,
105 maxElementTotal = 12000000,
107 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
108 pixelPairStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
109 seedingHitSets =
'pixelPairStepHitDoublets',
110 SeedComparitorPSet = dict(
111 ComponentName =
'PixelClusterShapeSeedComparitor',
112 FilterAtHelixStage = cms.bool(
True),
113 FilterPixelHits = cms.bool(
True),
114 FilterStripHits = cms.bool(
False),
115 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
116 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache'),
121 pixelPairStepSeedsA = pixelPairStepSeeds.clone()
125 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
126 fastSim.toReplaceWith(pixelPairStepSeeds,
127 FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
128 trackingRegions =
'pixelPairStepTrackingRegions',
129 hitMasks = cms.InputTag(
'pixelPairStepMasks'),
130 seedFinderSelector = dict(layerList = pixelPairStepSeedLayers.layerList.value())
135 from RecoTracker.TkTrackingRegions.pixelInactiveAreaTrackingRegionsAndSeedingLayers_cfi
import pixelInactiveAreaTrackingRegionsAndSeedingLayers
as _pixelInactiveAreaTrackingRegionsAndSeedingLayers
136 pixelPairStepTrackingRegionsSeedLayersB = _pixelInactiveAreaTrackingRegionsAndSeedingLayers.clone(
148 'BPix1+FPix2_pos' ,
'BPix1+FPix2_neg',
149 'BPix1+FPix3_pos' ,
'BPix1+FPix3_neg',
151 'BPix2+FPix2_pos' ,
'BPix2+FPix2_neg',
152 'BPix3+FPix1_pos' ,
'BPix3+FPix1_neg',
153 'FPix1_pos+FPix2_pos',
'FPix1_neg+FPix2_neg',
154 'FPix1_pos+FPix3_pos',
'FPix1_neg+FPix3_neg',
155 'FPix2_pos+FPix3_pos',
'FPix2_neg+FPix3_neg',
158 TTRHBuilder = cms.string(
'WithTrackAngle'),
159 HitProducer = cms.string(
'siPixelRecHits'),
160 skipClusters = cms.InputTag(
'pixelPairStepClusters')
163 TTRHBuilder = cms.string(
'WithTrackAngle'),
164 HitProducer = cms.string(
'siPixelRecHits'),
165 skipClusters = cms.InputTag(
'pixelPairStepClusters')
169 originRadius = 0.015,
170 operationMode =
'VerticesFixed',
174 ignoreSingleFPixPanelModules =
True,
176 highBetaStar.toModify(pixelPairStepTrackingRegionsSeedLayersB,RegionPSet = dict(
181 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
182 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
183 (pp_on_XeXe_2017 | pp_on_AA).toModify(pixelPairStepTrackingRegionsSeedLayersB, layerList = [
184 'BPix1+BPix2',
'BPix1+BPix3',
'BPix1+BPix4',
'BPix2+BPix3',
'BPix2+BPix4',
'BPix3+BPix4',
185 'BPix1+FPix1_pos' ,
'BPix1+FPix1_neg',
186 'BPix1+FPix2_pos' ,
'BPix1+FPix2_neg',
187 'BPix1+FPix3_pos' ,
'BPix1+FPix3_neg',
188 'BPix2+FPix1_pos' ,
'BPix2+FPix1_neg',
189 'BPix2+FPix2_pos' ,
'BPix2+FPix2_neg',
190 'BPix3+FPix1_pos' ,
'BPix3+FPix1_neg',
191 'FPix1_pos+FPix2_pos',
'FPix1_neg+FPix2_neg',
192 'FPix1_pos+FPix3_pos',
'FPix1_neg+FPix3_neg',
193 'FPix2_pos+FPix3_pos',
'FPix2_neg+FPix3_neg' 196 pixelPairStepHitDoubletsB = pixelPairStepHitDoublets.clone(
198 trackingRegions =
'',
199 trackingRegionsSeedingLayers =
'pixelPairStepTrackingRegionsSeedLayersB',
201 pixelPairStepSeedsB = pixelPairStepSeedsA.clone(seedingHitSets =
'pixelPairStepHitDoubletsB')
206 _pixelPairStepSeedsMerged = _globalCombinedSeeds.clone(
207 seedCollections = [
'pixelPairStepSeedsA',
'pixelPairStepSeedsB'],
209 (trackingPhase1 & ~fastSim).toReplaceWith(pixelPairStepSeeds, _pixelPairStepSeedsMerged)
212 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(pixelPairStepSeeds, pixelPairStepSeedsB)
216 _pixelPairStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
217 minimumNumberOfHits = 3,
220 pixelPairStepTrajectoryFilterBase = _pixelPairStepTrajectoryFilterBase.clone(
223 minGoodStripCharge = dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
225 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
226 _tracker_apv_vfp30_2016.toModify(pixelPairStepTrajectoryFilterBase, maxCCCLostHits = 2)
227 trackingLowPU.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase)
228 trackingPhase1.toModify(pixelPairStepTrajectoryFilterBase, minimumNumberOfHits = 4)
229 trackingPhase2PU140.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase.clone(
230 minimumNumberOfHits = 4,
231 maxLostHitsFraction = 1./10.,
232 constantValueForLostHitsFractionFilter = 0.701,
234 highBetaStar.toModify(pixelPairStepTrajectoryFilterBase, minPt = 0.05)
236 import RecoTracker.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
237 pixelPairStepTrajectoryFilterShape = RecoTracker.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
238 pixelPairStepTrajectoryFilter = cms.PSet(
239 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
241 cms.PSet( refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilterBase')),
246 trackingPhase2PU140.toModify(pixelPairStepTrajectoryFilter,
247 filters = pixelPairStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
252 pixelPairStepTrajectoryFilterInOut = pixelPairStepTrajectoryFilterBase.clone(
253 minimumNumberOfHits = 4,
255 strictSeedExtension =
False,
256 pixelSeedExtension =
False,
261 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
262 pixelPairStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
263 ComponentName =
'pixelPairStepChi2Est',
266 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutLoose'),
267 pTChargeCutThreshold = 15.
269 _tracker_apv_vfp30_2016.toModify(pixelPairStepChi2Est,
270 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
272 trackingLowPU.toModify(pixelPairStepChi2Est,
273 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny'),
275 highBetaStar.toModify(pixelPairStepChi2Est, MaxChi2 = 30)
279 pixelPairStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilderIterativeDefault.clone(
280 trajectoryFilter = dict(refToPSet_ =
'pixelPairStepTrajectoryFilter'),
282 estimator =
'pixelPairStepChi2Est',
283 maxDPhiForLooperReconstruction = 2.0,
284 maxPtForLooperReconstruction = 0.7,
286 trackingNoLoopers.toModify(pixelPairStepTrajectoryBuilder,
287 maxPtForLooperReconstruction = 0.0)
288 trackingLowPU.toModify(pixelPairStepTrajectoryBuilder, maxCand = 2)
289 _seedExtension = dict(
290 inOutTrajectoryFilter = dict(refToPSet_ =
'pixelPairStepTrajectoryFilterInOut'),
291 useSameTrajFilter =
False,
293 trackingPhase1.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
294 trackingPhase2PU140.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
302 _pixelPairStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidatesIterativeDefault.clone(
303 src =
'pixelPairStepSeeds',
304 clustersToSkip =
'pixelPairStepClusters',
305 TrajectoryBuilderPSet = dict(refToPSet_ =
'pixelPairStepTrajectoryBuilder'),
307 numHitsForSeedCleaner = 50,
308 onlyPixelHitsForSeedCleaner =
True,
310 pixelPairStepTrackCandidates = _pixelPairStepTrackCandidatesCkf.clone()
313 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as _mkFitSeedConverter_cfi
314 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as _mkFitIterationConfigESProducer_cfi
315 import RecoTracker.MkFit.mkFitProducer_cfi
as _mkFitProducer_cfi
316 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as _mkFitOutputConverter_cfi
317 pixelPairStepTrackCandidatesMkFitSeeds = _mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
318 seeds =
'pixelPairStepSeeds',
320 pixelPairStepTrackCandidatesMkFitConfig = _mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
321 ComponentName =
'pixelPairStepTrackCandidatesMkFitConfig',
322 config =
'RecoTracker/MkFit/data/mkfit-phase1-pixelPairStep.json',
324 pixelPairStepTrackCandidatesMkFit = _mkFitProducer_cfi.mkFitProducer.clone(
325 seeds =
'pixelPairStepTrackCandidatesMkFitSeeds',
326 config = (
'',
'pixelPairStepTrackCandidatesMkFitConfig'),
327 clustersToSkip =
'pixelPairStepClusters',
329 trackingMkFitPixelPairStep.toReplaceWith(pixelPairStepTrackCandidates, _mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
330 seeds =
'pixelPairStepSeeds',
331 mkFitSeeds =
'pixelPairStepTrackCandidatesMkFitSeeds',
332 tracks =
'pixelPairStepTrackCandidatesMkFit',
335 trackingPhase2PU140.toModify(pixelPairStepTrackCandidates,
337 phase2clustersToSkip =
'pixelPairStepClusters',
338 TrajectoryCleaner =
'pixelPairStepTrajectoryCleanerBySharedHits' 340 import FastSimulation.Tracking.TrackCandidateProducer_cfi
341 fastSim.toReplaceWith(pixelPairStepTrackCandidates,
342 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
343 src =
'pixelPairStepSeeds',
344 MinNumberOfCrossedLayers = 2,
345 hitMasks = cms.InputTag(
'pixelPairStepMasks')
350 pixelPairStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
351 ComponentName =
'pixelPairStepTrajectoryCleanerBySharedHits',
352 fractionShared = 0.095,
353 allowSharedFirstHit =
True 355 trackingPhase2PU140.toModify(pixelPairStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
358 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
359 pixelPairStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
360 AlgorithmName =
'pixelPairStep',
361 src =
'pixelPairStepTrackCandidates',
362 Fitter =
'FlexibleKFFittingSmoother' 364 fastSim.toModify(pixelPairStepTracks, TTRHBuilder =
'WithoutRefit')
366 from Configuration.Eras.Modifier_phase2_timing_layer_cff
import phase2_timing_layer
367 phase2_timing_layer.toModify(pixelPairStepTracks, TrajectoryInEvent =
True)
371 pixelPairStep = TrackMVAClassifierPrompt.clone(
372 src =
'pixelPairStepTracks',
373 mva = dict(GBRForestLabel =
'MVASelectorIter2_13TeV'),
374 qualityCuts = [-0.2,0.0,0.3]
376 trackingPhase1.toModify(pixelPairStep, mva=dict(GBRForestLabel =
'MVASelectorPixelPairStep_Phase1'))
381 trackdnn.toReplaceWith(pixelPairStep, trackTfClassifier.clone(
382 src=
'pixelPairStepTracks',
383 qualityCuts=qualityCutDictionary.PixelPairStep.value()
386 highBetaStar.toModify(pixelPairStep,qualityCuts = [-0.95,0.0,0.3])
387 pp_on_AA.toModify(pixelPairStep, qualityCuts = [0.85, 0.95, 0.98])
388 fastSim.toModify(pixelPairStep, vertices =
'firstStepPrimaryVerticesBeforeMixing')
392 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
393 pixelPairStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
394 src =
'pixelPairStepTracks',
395 useAnyMVA = cms.bool(
True),
396 GBRForestLabel = cms.string(
'MVASelectorIter2'),
397 trackSelectors = cms.VPSet(
398 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
399 name =
'pixelPairStepLoose',
401 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
402 name =
'pixelPairStepTight',
403 preFilterName =
'pixelPairStepLoose',
405 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
406 name =
'QualityMasks',
407 preFilterName =
'pixelPairStepTight',
410 vertices =
'pixelVertices' 412 trackingPhase2PU140.toModify(pixelPairStepSelector,
414 GBRForestLabel =
None,
415 trackSelectors = cms.VPSet(
416 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
417 name =
'pixelPairStepLoose',
419 res_par = ( 0.003, 0.002 ),
421 maxNumberLostLayers = 2,
422 minNumber3DLayers = 3,
423 d0_par1 = ( 0.4, 4.0 ),
424 dz_par1 = ( 0.4, 4.0 ),
425 d0_par2 = ( 0.6, 4.0 ),
426 dz_par2 = ( 0.45, 4.0 )
428 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
429 name =
'pixelPairStepTight',
430 preFilterName =
'pixelPairStepLoose',
432 res_par = ( 0.003, 0.002 ),
434 maxNumberLostLayers = 2,
435 minNumber3DLayers = 3,
436 d0_par1 = ( 0.35, 4.0 ),
437 dz_par1 = ( 0.35, 4.0 ),
438 d0_par2 = ( 0.5, 4.0 ),
439 dz_par2 = ( 0.4, 4.0 )
441 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
442 name =
'pixelPairStep',
443 preFilterName =
'pixelPairStepTight',
447 res_par = ( 0.003, 0.001 ),
449 maxNumberLostLayers = 2,
450 minNumber3DLayers = 4,
451 d0_par1 = ( 0.3, 4.0 ),
452 dz_par1 = ( 0.3, 4.0 ),
453 d0_par2 = ( 0.45, 4.0 ),
454 dz_par2 = ( 0.35, 4.0 )
457 vertices =
'firstStepPrimaryVertices' 460 from Configuration.ProcessModifiers.vectorHits_cff
import vectorHits
461 vectorHits.toModify(pixelPairStepSelector.trackSelectors[2], minNumberLayers = 3, minNumber3DLayers = 3)
464 PixelPairStepTask = cms.Task(pixelPairStepClusters,
465 pixelPairStepSeedLayers,
466 pixelPairStepTrackingRegions,
467 pixelPairStepHitDoublets,
469 pixelPairStepTrackCandidates,
472 PixelPairStep = cms.Sequence(PixelPairStepTask)
474 _PixelPairStepTask_trackingMkFit = PixelPairStepTask.copy()
475 _PixelPairStepTask_trackingMkFit.add(pixelPairStepTrackCandidatesMkFitSeeds, pixelPairStepTrackCandidatesMkFit, pixelPairStepTrackCandidatesMkFit)
476 trackingMkFitPixelPairStep.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_trackingMkFit)
478 _PixelPairStepTask_LowPU_Phase2PU140 = PixelPairStepTask.copy()
479 _PixelPairStepTask_LowPU_Phase2PU140.replace(pixelPairStep, pixelPairStepSelector)
480 trackingLowPU.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
481 trackingPhase2PU140.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
483 _PixelPairStepTask_Phase1 = PixelPairStepTask.copy()
484 _PixelPairStepTask_pp_on_AA = PixelPairStepTask.copy()
485 _PixelPairStepTask_Phase1.replace(pixelPairStepSeeds,cms.Task(
486 pixelPairStepSeedsA ,
487 pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB,pixelPairStepSeedsB,
489 trackingPhase1.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_Phase1)
491 _PixelPairStepTask_pp_on_AA.replace(pixelPairStepHitDoublets, cms.Task(pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB))
492 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(PixelPairStepTask, _PixelPairStepTask_pp_on_AA)
495 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
496 pixelPairStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(pixelPairStepClusters)
497 fastSim.toReplaceWith(PixelPairStepTask,
498 cms.Task(pixelPairStepMasks
499 ,pixelPairStepTrackingRegions
501 ,pixelPairStepTrackCandidates