CMS 3D CMS Logo

PixelPairStep_cff.py
Go to the documentation of this file.
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
5 
6 # NEW CLUSTERS (remove previously used clusters)
7 pixelPairStepClusters = _cfg.clusterRemoverForIter("PixelPairStep")
8 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
9  _era.toReplaceWith(pixelPairStepClusters, _cfg.clusterRemoverForIter("PixelPairStep", _eraName, _postfix))
10 
11 
12 # SEEDING LAYERS
13 pixelPairStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
14  layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3',
15  'BPix1+FPix1_pos', 'BPix1+FPix1_neg',
16  'BPix2+FPix1_pos', 'BPix2+FPix1_neg',
17  'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'),
18  BPix = cms.PSet(
19  TTRHBuilder = cms.string('WithTrackAngle'),
20  HitProducer = cms.string('siPixelRecHits'),
21  skipClusters = cms.InputTag('pixelPairStepClusters')
22  ),
23  FPix = cms.PSet(
24  TTRHBuilder = cms.string('WithTrackAngle'),
25  HitProducer = cms.string('siPixelRecHits'),
26  skipClusters = cms.InputTag('pixelPairStepClusters')
27  )
28 )
29 # layers covering the region not covered by quadruplets (so it is
30 # just acting as backup of triplets)
31 _layerListForPhase1 = [
32  'BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3',
33  'BPix1+FPix1_pos', 'BPix1+FPix1_neg',
34  'BPix2+FPix1_pos', 'BPix2+FPix1_neg',
35 ]
36 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
37 trackingPhase1.toModify(pixelPairStepSeedLayers, layerList = _layerListForPhase1)
38 
39 # only layers covering the region not covered by quadruplets
40 # (so it is just acting as backup of triplets)
41 _layerListForPhase2 = [
42  'BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3',
43  'BPix1+FPix1_pos', 'BPix1+FPix1_neg',
44  'BPix2+FPix1_pos', 'BPix2+FPix1_neg'
45 ]
46 # modifing these errors seems to make no difference
47 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
48 trackingPhase2PU140.toModify(pixelPairStepSeedLayers,
49  layerList = _layerListForPhase2,
50  BPix = dict(
51  useErrorsFromParam = cms.bool(True),
52  hitErrorRPhi = cms.double(0.0016),
53  hitErrorRZ = cms.double(0.0035),
54  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
55  ),
56  FPix = dict(
57  useErrorsFromParam = cms.bool(True),
58  hitErrorRPhi = cms.double(0.0030),
59  hitErrorRZ = cms.double(0.0020),
60  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
61  )
62 )
63 
64 # TrackingRegion
65 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
66 pixelPairStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet = dict(
67  ptMin = 0.6,
68  originRadius = 0.015,
69  fixedError = 0.03,
70  useMultipleScattering = True,
71 ))
72 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
73 trackingLowPU.toModify(pixelPairStepTrackingRegions, RegionPSet=dict(useMultipleScattering=False))
74 _region_Phase1 = dict(
75  useMultipleScattering = False,
76  maxNVertices = 5,
77 )
78 trackingPhase1.toModify(pixelPairStepTrackingRegions, RegionPSet=_region_Phase1)
79 trackingPhase2PU140.toModify(pixelPairStepTrackingRegions, RegionPSet=_region_Phase1)
80 from Configuration.Eras.Modifier_highBetaStar_2018_cff import highBetaStar_2018
81 highBetaStar_2018.toModify(pixelPairStepTrackingRegions,RegionPSet = dict(
82  ptMin = 0.05,
83  originRadius = 0.2,
84  fixedError = 4.
85 ))
86 fastSim.toModify(pixelPairStepTrackingRegions, RegionPSet=dict(VertexCollection = "firstStepPrimaryVerticesBeforeMixing"))
87 
88 # SEEDS
89 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
90 pixelPairStepHitDoublets = _hitPairEDProducer.clone(
91  seedingLayers = "pixelPairStepSeedLayers",
92  trackingRegions = "pixelPairStepTrackingRegions",
93  produceSeedingHitSets = True,
94  maxElementTotal = 12000000,
95 )
96 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
97 pixelPairStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
98  seedingHitSets = "pixelPairStepHitDoublets",
99  SeedComparitorPSet = dict(# FIXME: is this defined in any cfi that could be imported instead of copy-paste?
100  ComponentName = 'PixelClusterShapeSeedComparitor',
101  FilterAtHelixStage = cms.bool(True),
102  FilterPixelHits = cms.bool(True),
103  FilterStripHits = cms.bool(False),
104  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
105  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache'),
106  )
107 )
108 
109 # Clone for the phase1 recovery mode
110 pixelPairStepSeedsA = pixelPairStepSeeds.clone()
111 
112 #have to do it after making pixelPairStepSeedsA since pixelPairStepSeedsB clones A
113 # and then modifies it
114 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
115 fastSim.toReplaceWith(pixelPairStepSeeds,
116  FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
117  trackingRegions = "pixelPairStepTrackingRegions",
118  hitMasks = cms.InputTag("pixelPairStepMasks"),
119  seedFinderSelector = dict(layerList = pixelPairStepSeedLayers.layerList.value())
120  )
121 )
122 
123 # Recovery for regions with 2 inactive layers
124 from RecoTracker.TkTrackingRegions.pixelInactiveAreaTrackingRegionsAndSeedingLayers_cfi import pixelInactiveAreaTrackingRegionsAndSeedingLayers as _pixelInactiveAreaTrackingRegionsAndSeedingLayers
125 pixelPairStepTrackingRegionsSeedLayersB = _pixelInactiveAreaTrackingRegionsAndSeedingLayers.clone(
126  layerList = [
127 # Commented ones are already included in the global seeds (A), but are
128 # included below for completenees
129 #
130 # "BPix1+BPix2",
131 # "BPix1+BPix3",
132  "BPix1+BPix4",
133 # "BPix2+BPix3",
134  "BPix2+BPix4",
135  "BPix3+BPix4",
136 # "BPix1+FPix1_pos" , "BPix1+FPix1_neg",
137  "BPix1+FPix2_pos" , "BPix1+FPix2_neg",
138  "BPix1+FPix3_pos" , "BPix1+FPix3_neg",
139 # "BPix2+FPix1_pos" , "BPix2+FPix1_neg",
140  "BPix2+FPix2_pos" , "BPix2+FPix2_neg",
141  "BPix3+FPix1_pos" , "BPix3+FPix1_neg",
142  "FPix1_pos+FPix2_pos", "FPix1_neg+FPix2_neg",
143  "FPix1_pos+FPix3_pos", "FPix1_neg+FPix3_neg",
144  "FPix2_pos+FPix3_pos", "FPix2_neg+FPix3_neg",
145  ],
146  BPix = dict(
147  TTRHBuilder = cms.string('WithTrackAngle'),
148  HitProducer = cms.string('siPixelRecHits'),
149  skipClusters = cms.InputTag('pixelPairStepClusters')
150  ),
151  FPix = dict(
152  TTRHBuilder = cms.string('WithTrackAngle'),
153  HitProducer = cms.string('siPixelRecHits'),
154  skipClusters = cms.InputTag('pixelPairStepClusters')
155  ),
156  RegionPSet = dict(
157  ptMin = 0.6,
158  originRadius = 0.015,
159  operationMode = "VerticesFixed",
160  zErrorVertex = 0.03,
161  maxNVertices = 5,
162  ),
163  ignoreSingleFPixPanelModules = True,
164 )
165 highBetaStar_2018.toModify(pixelPairStepTrackingRegionsSeedLayersB,RegionPSet = dict(
166  ptMin = 0.05,
167  originRadius = 0.2,
168 ))
169 #include commented lines from above in pp_on_XY eras; global seeds (A) are not used in this era b/c timing
170 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
171 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018
172 (pp_on_XeXe_2017 | pp_on_AA_2018).toModify(pixelPairStepTrackingRegionsSeedLayersB, layerList = [
173  "BPix1+BPix2", "BPix1+BPix3", "BPix1+BPix4", "BPix2+BPix3", "BPix2+BPix4","BPix3+BPix4",
174  "BPix1+FPix1_pos" , "BPix1+FPix1_neg",
175  "BPix1+FPix2_pos" , "BPix1+FPix2_neg",
176  "BPix1+FPix3_pos" , "BPix1+FPix3_neg",
177  "BPix2+FPix1_pos" , "BPix2+FPix1_neg",
178  "BPix2+FPix2_pos" , "BPix2+FPix2_neg",
179  "BPix3+FPix1_pos" , "BPix3+FPix1_neg",
180  "FPix1_pos+FPix2_pos", "FPix1_neg+FPix2_neg",
181  "FPix1_pos+FPix3_pos", "FPix1_neg+FPix3_neg",
182  "FPix2_pos+FPix3_pos", "FPix2_neg+FPix3_neg"
183  ])
184 
185 pixelPairStepHitDoubletsB = pixelPairStepHitDoublets.clone(
186  seedingLayers = "",
187  trackingRegions = "",
188  trackingRegionsSeedingLayers = "pixelPairStepTrackingRegionsSeedLayersB",
189 )
190 pixelPairStepSeedsB = pixelPairStepSeedsA.clone(seedingHitSets = "pixelPairStepHitDoubletsB")
191 
192 
193 # Merge
194 from RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi import globalCombinedSeeds as _globalCombinedSeeds
195 _pixelPairStepSeedsMerged = _globalCombinedSeeds.clone(
196  seedCollections = ["pixelPairStepSeedsA", "pixelPairStepSeedsB"],
197 )
198 (trackingPhase1 & ~fastSim).toReplaceWith(pixelPairStepSeeds, _pixelPairStepSeedsMerged)
199 
200 #only use region B for pp_on_XY era for timing reasons
201 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(pixelPairStepSeeds, pixelPairStepSeedsB)
202 
203 # QUALITY CUTS DURING TRACK BUILDING
205 _pixelPairStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
206  minimumNumberOfHits = 3,
207  minPt = 0.1,
208 )
209 pixelPairStepTrajectoryFilterBase = _pixelPairStepTrajectoryFilterBase.clone(
210  seedPairPenalty =0,
211  maxCCCLostHits = 0,
212  minGoodStripCharge = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose'))
213 )
214 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016
215 _tracker_apv_vfp30_2016.toModify(pixelPairStepTrajectoryFilterBase, maxCCCLostHits = 2)
216 trackingLowPU.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase)
217 trackingPhase1.toModify(pixelPairStepTrajectoryFilterBase, minimumNumberOfHits = 4)
218 trackingPhase2PU140.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase.clone(
219  minimumNumberOfHits = 4,
220  maxLostHitsFraction = 1./10.,
221  constantValueForLostHitsFractionFilter = 0.701,
222 ))
223 highBetaStar_2018.toModify(pixelPairStepTrajectoryFilterBase, minPt = 0.05)
224 
225 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
226 pixelPairStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
227 pixelPairStepTrajectoryFilter = cms.PSet(
228  ComponentType = cms.string('CompositeTrajectoryFilter'),
229  filters = cms.VPSet(
230  cms.PSet( refToPSet_ = cms.string('pixelPairStepTrajectoryFilterBase')),
231  # cms.PSet( refToPSet_ = cms.string('pixelPairStepTrajectoryFilterShape'))
232  ),
233 )
235 trackingPhase2PU140.toModify(pixelPairStepTrajectoryFilter,
236  filters = pixelPairStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))]
237 )
238 
239 
240 
241 pixelPairStepTrajectoryFilterInOut = pixelPairStepTrajectoryFilterBase.clone(
242  minimumNumberOfHits = 4,
243  seedExtension = 1,
244  strictSeedExtension = False, # allow inactive
245  pixelSeedExtension = False,
246 )
247 
248 
249 
250 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
251 pixelPairStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
252  ComponentName = cms.string('pixelPairStepChi2Est'),
253  nSigma = cms.double(3.0),
254  MaxChi2 = cms.double(9.0),
255  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose')),
256  pTChargeCutThreshold = cms.double(15.)
257 )
258 _tracker_apv_vfp30_2016.toModify(pixelPairStepChi2Est,
259  clusterChargeCut = dict(refToPSet_ = "SiStripClusterChargeCutTiny")
260 )
261 trackingLowPU.toModify(pixelPairStepChi2Est,
262  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny'),
263 )
264 highBetaStar_2018.toModify(pixelPairStepChi2Est,MaxChi2 = cms.double(30))
265 
266 # TRACK BUILDING
268 pixelPairStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
269  MeasurementTrackerName = '',
270  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('pixelPairStepTrajectoryFilter')),
271  maxCand = 3,
272  estimator = cms.string('pixelPairStepChi2Est'),
273  maxDPhiForLooperReconstruction = cms.double(2.0),
274  maxPtForLooperReconstruction = cms.double(0.7)
275  )
276 trackingLowPU.toModify(pixelPairStepTrajectoryBuilder, maxCand = 2)
277 _seedExtension = dict(
278  inOutTrajectoryFilter = dict(refToPSet_ = "pixelPairStepTrajectoryFilterInOut"),
279  useSameTrajFilter = False,
280 )
281 trackingPhase1.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
282 trackingPhase2PU140.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
283 
284 
285 
286 
287 # MAKING OF TRACK CANDIDATES
289 pixelPairStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
290  src = cms.InputTag('pixelPairStepSeeds'),
291  clustersToSkip = cms.InputTag('pixelPairStepClusters'),
292  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('pixelPairStepTrajectoryBuilder')),
293  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
294  numHitsForSeedCleaner = cms.int32(50),
295  onlyPixelHitsForSeedCleaner = cms.bool(True),
296 
297 )
298 trackingPhase2PU140.toModify(pixelPairStepTrackCandidates,
299  clustersToSkip = None,
300  phase2clustersToSkip = cms.InputTag("pixelPairStepClusters"),
301  TrajectoryCleaner = "pixelPairStepTrajectoryCleanerBySharedHits"
302 )
303 import FastSimulation.Tracking.TrackCandidateProducer_cfi
304 fastSim.toReplaceWith(pixelPairStepTrackCandidates,
305  FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
306  src = cms.InputTag("pixelPairStepSeeds"),
307  MinNumberOfCrossedLayers = 2, # ?
308  hitMasks = cms.InputTag("pixelPairStepMasks")
309  )
310 )
311 
312 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits as _trajectoryCleanerBySharedHits
313 pixelPairStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
314  ComponentName = 'pixelPairStepTrajectoryCleanerBySharedHits',
315  fractionShared = 0.095,
316  allowSharedFirstHit = True
317 )
318 trackingPhase2PU140.toModify(pixelPairStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
319 
320 # TRACK FITTING
322 pixelPairStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
323  AlgorithmName = cms.string('pixelPairStep'),
324  src = 'pixelPairStepTrackCandidates',
325  Fitter = cms.string('FlexibleKFFittingSmoother')
326  )
327 fastSim.toModify(pixelPairStepTracks, TTRHBuilder = 'WithoutRefit')
328 
329 # Final selection
331 pixelPairStep = TrackMVAClassifierPrompt.clone()
332 pixelPairStep.src = 'pixelPairStepTracks'
333 pixelPairStep.mva.GBRForestLabel = 'MVASelectorIter2_13TeV'
334 pixelPairStep.qualityCuts = [-0.2,0.0,0.3]
335 highBetaStar_2018.toModify(pixelPairStep,qualityCuts = [-0.95,0.0,0.3])
336 
337 trackingPhase1.toModify(pixelPairStep, mva=dict(GBRForestLabel = 'MVASelectorPixelPairStep_Phase1'))
338 fastSim.toModify(pixelPairStep, vertices = "firstStepPrimaryVerticesBeforeMixing")
339 pp_on_AA_2018.toModify(pixelPairStep, qualityCuts = [-0.2, 0.0, 0.9])
340 
341 # For LowPU and Phase2PU140
343 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
344 pixelPairStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
345  src='pixelPairStepTracks',
346  useAnyMVA = cms.bool(True),
347  GBRForestLabel = cms.string('MVASelectorIter2'),
348  trackSelectors= cms.VPSet(
349  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
350  name = 'pixelPairStepLoose',
351  ), #end of pset
352  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
353  name = 'pixelPairStepTight',
354  preFilterName = 'pixelPairStepLoose',
355  ),
356  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
357  name = 'QualityMasks',
358  preFilterName = 'pixelPairStepTight',
359  ),
360  ),
361  vertices = cms.InputTag("pixelVertices")#end of vpset
362 ) #end of clone
363 trackingPhase2PU140.toModify(pixelPairStepSelector,
364  useAnyMVA = None,
365  GBRForestLabel = None,
366  trackSelectors= cms.VPSet(
367  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
368  name = 'pixelPairStepLoose',
369  chi2n_par = 0.7,
370  res_par = ( 0.003, 0.002 ),
371  minNumberLayers = 3,
372  maxNumberLostLayers = 2,
373  minNumber3DLayers = 3,
374  d0_par1 = ( 0.4, 4.0 ),
375  dz_par1 = ( 0.4, 4.0 ),
376  d0_par2 = ( 0.6, 4.0 ),
377  dz_par2 = ( 0.45, 4.0 )
378  ), #end of pset
379  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
380  name = 'pixelPairStepTight',
381  preFilterName = 'pixelPairStepLoose',
382  chi2n_par = 0.6,
383  res_par = ( 0.003, 0.002 ),
384  minNumberLayers = 4,
385  maxNumberLostLayers = 2,
386  minNumber3DLayers = 3,
387  d0_par1 = ( 0.35, 4.0 ),
388  dz_par1 = ( 0.35, 4.0 ),
389  d0_par2 = ( 0.5, 4.0 ),
390  dz_par2 = ( 0.4, 4.0 )
391  ),
392  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
393  name = 'pixelPairStep',
394  preFilterName = 'pixelPairStepTight',
395  chi2n_par = 0.5,
396  res_par = ( 0.003, 0.001 ),
397  minNumberLayers = 5,
398  maxNumberLostLayers = 2,
399  minNumber3DLayers = 4,
400  d0_par1 = ( 0.3, 4.0 ),
401  dz_par1 = ( 0.3, 4.0 ),
402  d0_par2 = ( 0.45, 4.0 ),
403  dz_par2 = ( 0.35, 4.0 )
404  ),
405  ), #end of vpset
406  vertices = "firstStepPrimaryVertices"
407 ) #end of clone
408 
409 
410 # Final sequence
411 PixelPairStepTask = cms.Task(pixelPairStepClusters,
412  pixelPairStepSeedLayers,
413  pixelPairStepTrackingRegions,
414  pixelPairStepHitDoublets,
415  pixelPairStepSeeds,
416  pixelPairStepTrackCandidates,
417  pixelPairStepTracks,
418  pixelPairStep)
419 PixelPairStep = cms.Sequence(PixelPairStepTask)
420 
421 _PixelPairStepTask_LowPU_Phase2PU140 = PixelPairStepTask.copy()
422 _PixelPairStepTask_LowPU_Phase2PU140.replace(pixelPairStep, pixelPairStepSelector)
423 trackingLowPU.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
424 trackingPhase2PU140.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
425 
426 _PixelPairStepTask_Phase1 = PixelPairStepTask.copy()
427 _PixelPairStepTask_pp_on_AA = PixelPairStepTask.copy()
428 _PixelPairStepTask_Phase1.replace(pixelPairStepSeeds,cms.Task(
429  pixelPairStepSeedsA ,
430  pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB,pixelPairStepSeedsB,
431  pixelPairStepSeeds))
432 trackingPhase1.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_Phase1)
433 
434 _PixelPairStepTask_pp_on_AA.replace(pixelPairStepHitDoublets, cms.Task(pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB))
435 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(PixelPairStepTask, _PixelPairStepTask_pp_on_AA)
436 
437 #fastSim
438 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
439 pixelPairStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(pixelPairStepClusters)
440 fastSim.toReplaceWith(PixelPairStepTask,
441  cms.Task(pixelPairStepMasks
442  ,pixelPairStepTrackingRegions
443  ,pixelPairStepSeeds
444  ,pixelPairStepTrackCandidates
445  ,pixelPairStepTracks
446  ,pixelPairStep
447  )
448 )