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