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