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