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 pixelPairStepClusters = _cfg.clusterRemoverForIter(
'PixelPairStep')
12 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
13 _era.toReplaceWith(pixelPairStepClusters, _cfg.clusterRemoverForIter(
'PixelPairStep', _eraName, _postfix))
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'),
23 TTRHBuilder = cms.string(
'WithTrackAngle'),
24 HitProducer = cms.string(
'siPixelRecHits'),
25 skipClusters = cms.InputTag(
'pixelPairStepClusters')
28 TTRHBuilder = cms.string(
'WithTrackAngle'),
29 HitProducer = cms.string(
'siPixelRecHits'),
30 skipClusters = cms.InputTag(
'pixelPairStepClusters')
35 _layerListForPhase1 = [
36 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
37 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
38 'BPix2+FPix1_pos',
'BPix2+FPix1_neg',
40 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
41 trackingPhase1.toModify(pixelPairStepSeedLayers, layerList = _layerListForPhase1)
45 _layerListForPhase2 = [
46 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
47 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
48 'BPix2+FPix1_pos',
'BPix2+FPix1_neg'
51 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
52 trackingPhase2PU140.toModify(pixelPairStepSeedLayers,
53 layerList = _layerListForPhase2,
55 useErrorsFromParam = cms.bool(
True),
56 hitErrorRPhi = cms.double(0.0016),
57 hitErrorRZ = cms.double(0.0035),
58 TTRHBuilder =
'TTRHBuilderWithoutAngle4PixelPairs',
61 useErrorsFromParam = cms.bool(
True),
62 hitErrorRPhi = cms.double(0.0030),
63 hitErrorRZ = cms.double(0.0020),
64 TTRHBuilder =
'TTRHBuilderWithoutAngle4PixelPairs',
70 pixelPairStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet = dict(
74 useMultipleScattering =
True,
76 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
77 trackingLowPU.toModify(pixelPairStepTrackingRegions, RegionPSet=dict(useMultipleScattering=
False))
78 _region_Phase1 = dict(
79 useMultipleScattering =
False,
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(
90 fastSim.toModify(pixelPairStepTrackingRegions, RegionPSet=dict(VertexCollection =
'firstStepPrimaryVerticesBeforeMixing'))
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,
100 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
101 pixelPairStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
102 seedingHitSets =
'pixelPairStepHitDoublets',
103 SeedComparitorPSet = dict(
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'),
114 pixelPairStepSeedsA = pixelPairStepSeeds.clone()
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())
128 from RecoTracker.TkTrackingRegions.pixelInactiveAreaTrackingRegionsAndSeedingLayers_cfi
import pixelInactiveAreaTrackingRegionsAndSeedingLayers
as _pixelInactiveAreaTrackingRegionsAndSeedingLayers
129 pixelPairStepTrackingRegionsSeedLayersB = _pixelInactiveAreaTrackingRegionsAndSeedingLayers.clone(
141 'BPix1+FPix2_pos' ,
'BPix1+FPix2_neg',
142 'BPix1+FPix3_pos' ,
'BPix1+FPix3_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',
151 TTRHBuilder = cms.string(
'WithTrackAngle'),
152 HitProducer = cms.string(
'siPixelRecHits'),
153 skipClusters = cms.InputTag(
'pixelPairStepClusters')
156 TTRHBuilder = cms.string(
'WithTrackAngle'),
157 HitProducer = cms.string(
'siPixelRecHits'),
158 skipClusters = cms.InputTag(
'pixelPairStepClusters')
162 originRadius = 0.015,
163 operationMode =
'VerticesFixed',
167 ignoreSingleFPixPanelModules =
True,
169 highBetaStar_2018.toModify(pixelPairStepTrackingRegionsSeedLayersB,RegionPSet = dict(
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'
189 pixelPairStepHitDoubletsB = pixelPairStepHitDoublets.clone(
191 trackingRegions =
'',
192 trackingRegionsSeedingLayers =
'pixelPairStepTrackingRegionsSeedLayersB',
194 pixelPairStepSeedsB = pixelPairStepSeedsA.clone(seedingHitSets =
'pixelPairStepHitDoubletsB')
199 _pixelPairStepSeedsMerged = _globalCombinedSeeds.clone(
200 seedCollections = [
'pixelPairStepSeedsA',
'pixelPairStepSeedsB'],
202 (trackingPhase1 & ~fastSim).toReplaceWith(pixelPairStepSeeds, _pixelPairStepSeedsMerged)
205 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(pixelPairStepSeeds, pixelPairStepSeedsB)
209 _pixelPairStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
210 minimumNumberOfHits = 3,
213 pixelPairStepTrajectoryFilterBase = _pixelPairStepTrajectoryFilterBase.clone(
216 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
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,
227 highBetaStar_2018.toModify(pixelPairStepTrajectoryFilterBase, minPt = 0.05)
229 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
230 pixelPairStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
231 pixelPairStepTrajectoryFilter = cms.PSet(
232 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
234 cms.PSet( refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilterBase')),
239 trackingPhase2PU140.toModify(pixelPairStepTrajectoryFilter,
240 filters = pixelPairStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
245 pixelPairStepTrajectoryFilterInOut = pixelPairStepTrajectoryFilterBase.clone(
246 minimumNumberOfHits = 4,
248 strictSeedExtension =
False,
249 pixelSeedExtension =
False,
254 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
255 pixelPairStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
256 ComponentName =
'pixelPairStepChi2Est',
259 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose')),
260 pTChargeCutThreshold = 15.
262 _tracker_apv_vfp30_2016.toModify(pixelPairStepChi2Est,
263 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
265 trackingLowPU.toModify(pixelPairStepChi2Est,
266 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny'),
268 highBetaStar_2018.toModify(pixelPairStepChi2Est,MaxChi2 = 30)
272 pixelPairStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
273 MeasurementTrackerName =
'',
274 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilter')),
276 estimator =
'pixelPairStepChi2Est',
277 maxDPhiForLooperReconstruction = cms.double(2.0),
278 maxPtForLooperReconstruction = cms.double(0.7)
280 trackingLowPU.toModify(pixelPairStepTrajectoryBuilder, maxCand = 2)
281 _seedExtension = dict(
282 inOutTrajectoryFilter = dict(refToPSet_ =
'pixelPairStepTrajectoryFilterInOut'),
283 useSameTrajFilter =
False,
285 trackingPhase1.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
286 trackingPhase2PU140.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
293 pixelPairStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
294 src =
'pixelPairStepSeeds',
295 clustersToSkip = cms.InputTag(
'pixelPairStepClusters'),
296 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryBuilder')),
298 numHitsForSeedCleaner = cms.int32(50),
299 onlyPixelHitsForSeedCleaner = cms.bool(
True),
302 trackingPhase2PU140.toModify(pixelPairStepTrackCandidates,
303 clustersToSkip =
None,
304 phase2clustersToSkip = cms.InputTag(
'pixelPairStepClusters'),
305 TrajectoryCleaner =
'pixelPairStepTrajectoryCleanerBySharedHits'
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')
317 pixelPairStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
318 ComponentName =
'pixelPairStepTrajectoryCleanerBySharedHits',
319 fractionShared = 0.095,
320 allowSharedFirstHit =
True
322 trackingPhase2PU140.toModify(pixelPairStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
326 pixelPairStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
327 AlgorithmName =
'pixelPairStep',
328 src =
'pixelPairStepTrackCandidates',
329 Fitter =
'FlexibleKFFittingSmoother'
331 fastSim.toModify(pixelPairStepTracks, TTRHBuilder =
'WithoutRefit')
335 pixelPairStep = TrackMVAClassifierPrompt.clone(
336 src =
'pixelPairStepTracks',
337 mva = dict(GBRForestLabel =
'MVASelectorIter2_13TeV'),
338 qualityCuts = [-0.2,0.0,0.3]
340 trackingPhase1.toModify(pixelPairStep, mva=dict(GBRForestLabel =
'MVASelectorPixelPairStep_Phase1'))
344 trackdnn.toReplaceWith(pixelPairStep, TrackTfClassifier.clone(
345 src=
'pixelPairStepTracks',
346 qualityCuts=qualityCutDictionary[
'PixelPairStep']
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')
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',
364 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
365 name =
'pixelPairStepTight',
366 preFilterName =
'pixelPairStepLoose',
368 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
369 name =
'QualityMasks',
370 preFilterName =
'pixelPairStepTight',
373 vertices =
'pixelVertices'
375 trackingPhase2PU140.toModify(pixelPairStepSelector,
377 GBRForestLabel =
None,
378 trackSelectors = cms.VPSet(
379 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
380 name =
'pixelPairStepLoose',
382 res_par = ( 0.003, 0.002 ),
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 )
391 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
392 name =
'pixelPairStepTight',
393 preFilterName =
'pixelPairStepLoose',
395 res_par = ( 0.003, 0.002 ),
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 )
404 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
405 name =
'pixelPairStep',
406 preFilterName =
'pixelPairStepTight',
410 res_par = ( 0.003, 0.001 ),
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 )
420 vertices =
'firstStepPrimaryVertices'
423 from Configuration.ProcessModifiers.vectorHits_cff
import vectorHits
424 vectorHits.toModify(pixelPairStepSelector.trackSelectors[2], minNumberLayers = 3, minNumber3DLayers = 3)
427 PixelPairStepTask = cms.Task(pixelPairStepClusters,
428 pixelPairStepSeedLayers,
429 pixelPairStepTrackingRegions,
430 pixelPairStepHitDoublets,
432 pixelPairStepTrackCandidates,
435 PixelPairStep = cms.Sequence(PixelPairStepTask)
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)
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,
448 trackingPhase1.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_Phase1)
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)
454 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
455 pixelPairStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(pixelPairStepClusters)
456 fastSim.toReplaceWith(PixelPairStepTask,
457 cms.Task(pixelPairStepMasks
458 ,pixelPairStepTrackingRegions
460 ,pixelPairStepTrackCandidates