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))
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'],
24 TTRHBuilder = cms.string(
'WithTrackAngle'),
25 HitProducer = cms.string(
'siPixelRecHits'),
26 skipClusters = cms.InputTag(
'pixelPairStepClusters')
29 TTRHBuilder = cms.string(
'WithTrackAngle'),
30 HitProducer = cms.string(
'siPixelRecHits'),
31 skipClusters = cms.InputTag(
'pixelPairStepClusters')
36 _layerListForPhase1 = [
37 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
38 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
39 'BPix2+FPix1_pos',
'BPix2+FPix1_neg',
41 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
42 trackingPhase1.toModify(pixelPairStepSeedLayers, layerList = _layerListForPhase1)
46 _layerListForPhase2 = [
47 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
48 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
49 'BPix2+FPix1_pos',
'BPix2+FPix1_neg'
52 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
53 trackingPhase2PU140.toModify(pixelPairStepSeedLayers,
54 layerList = _layerListForPhase2,
56 useErrorsFromParam = cms.bool(
True),
57 hitErrorRPhi = cms.double(0.0016),
58 hitErrorRZ = cms.double(0.0035),
59 TTRHBuilder =
'TTRHBuilderWithoutAngle4PixelPairs',
62 useErrorsFromParam = cms.bool(
True),
63 hitErrorRPhi = cms.double(0.0030),
64 hitErrorRZ = cms.double(0.0020),
65 TTRHBuilder =
'TTRHBuilderWithoutAngle4PixelPairs',
71 pixelPairStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet = dict(
75 useMultipleScattering =
True,
77 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
78 trackingLowPU.toModify(pixelPairStepTrackingRegions, RegionPSet=dict(useMultipleScattering=
False))
79 _region_Phase1 = dict(
80 useMultipleScattering =
False,
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(
91 fastSim.toModify(pixelPairStepTrackingRegions, RegionPSet=dict(VertexCollection =
'firstStepPrimaryVerticesBeforeMixing'))
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,
101 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
102 pixelPairStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
103 seedingHitSets =
'pixelPairStepHitDoublets',
104 SeedComparitorPSet = dict(
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'),
115 pixelPairStepSeedsA = pixelPairStepSeeds.clone()
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())
129 from RecoTracker.TkTrackingRegions.pixelInactiveAreaTrackingRegionsAndSeedingLayers_cfi
import pixelInactiveAreaTrackingRegionsAndSeedingLayers
as _pixelInactiveAreaTrackingRegionsAndSeedingLayers
130 pixelPairStepTrackingRegionsSeedLayersB = _pixelInactiveAreaTrackingRegionsAndSeedingLayers.clone(
142 'BPix1+FPix2_pos' ,
'BPix1+FPix2_neg',
143 'BPix1+FPix3_pos' ,
'BPix1+FPix3_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',
152 TTRHBuilder = cms.string(
'WithTrackAngle'),
153 HitProducer = cms.string(
'siPixelRecHits'),
154 skipClusters = cms.InputTag(
'pixelPairStepClusters')
157 TTRHBuilder = cms.string(
'WithTrackAngle'),
158 HitProducer = cms.string(
'siPixelRecHits'),
159 skipClusters = cms.InputTag(
'pixelPairStepClusters')
163 originRadius = 0.015,
164 operationMode =
'VerticesFixed',
168 ignoreSingleFPixPanelModules =
True,
170 highBetaStar_2018.toModify(pixelPairStepTrackingRegionsSeedLayersB,RegionPSet = dict(
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'
190 pixelPairStepHitDoubletsB = pixelPairStepHitDoublets.clone(
192 trackingRegions =
'',
193 trackingRegionsSeedingLayers =
'pixelPairStepTrackingRegionsSeedLayersB',
195 pixelPairStepSeedsB = pixelPairStepSeedsA.clone(seedingHitSets =
'pixelPairStepHitDoubletsB')
200 _pixelPairStepSeedsMerged = _globalCombinedSeeds.clone(
201 seedCollections = [
'pixelPairStepSeedsA',
'pixelPairStepSeedsB'],
203 (trackingPhase1 & ~fastSim).toReplaceWith(pixelPairStepSeeds, _pixelPairStepSeedsMerged)
206 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(pixelPairStepSeeds, pixelPairStepSeedsB)
210 _pixelPairStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
211 minimumNumberOfHits = 3,
214 pixelPairStepTrajectoryFilterBase = _pixelPairStepTrajectoryFilterBase.clone(
217 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
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,
228 highBetaStar_2018.toModify(pixelPairStepTrajectoryFilterBase, minPt = 0.05)
230 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
231 pixelPairStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
232 pixelPairStepTrajectoryFilter = cms.PSet(
233 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
235 cms.PSet( refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilterBase')),
240 trackingPhase2PU140.toModify(pixelPairStepTrajectoryFilter,
241 filters = pixelPairStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
246 pixelPairStepTrajectoryFilterInOut = pixelPairStepTrajectoryFilterBase.clone(
247 minimumNumberOfHits = 4,
249 strictSeedExtension =
False,
250 pixelSeedExtension =
False,
255 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
256 pixelPairStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
257 ComponentName =
'pixelPairStepChi2Est',
260 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose')),
261 pTChargeCutThreshold = 15.
263 _tracker_apv_vfp30_2016.toModify(pixelPairStepChi2Est,
264 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
266 trackingLowPU.toModify(pixelPairStepChi2Est,
267 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny'),
269 highBetaStar_2018.toModify(pixelPairStepChi2Est,MaxChi2 = 30)
273 pixelPairStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
274 MeasurementTrackerName =
'',
275 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilter')),
277 estimator =
'pixelPairStepChi2Est',
278 maxDPhiForLooperReconstruction = cms.double(2.0),
279 maxPtForLooperReconstruction = cms.double(0.7)
281 trackingLowPU.toModify(pixelPairStepTrajectoryBuilder, maxCand = 2)
282 _seedExtension = dict(
283 inOutTrajectoryFilter = dict(refToPSet_ =
'pixelPairStepTrajectoryFilterInOut'),
284 useSameTrajFilter =
False,
286 trackingPhase1.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
287 trackingPhase2PU140.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
294 pixelPairStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
295 src =
'pixelPairStepSeeds',
296 clustersToSkip = cms.InputTag(
'pixelPairStepClusters'),
297 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryBuilder')),
299 numHitsForSeedCleaner = cms.int32(50),
300 onlyPixelHitsForSeedCleaner = cms.bool(
True),
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',
312 pixelPairStepTrackCandidatesMkFitConfig = _mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
313 ComponentName =
'pixelPairStepTrackCandidatesMkFitConfig',
314 config =
'RecoTracker/MkFit/data/mkfit-phase1-pixelPairStep.json',
316 pixelPairStepTrackCandidatesMkFit = _mkFitProducer_cfi.mkFitProducer.clone(
317 seeds =
'pixelPairStepTrackCandidatesMkFitSeeds',
318 config = (
'',
'pixelPairStepTrackCandidatesMkFitConfig'),
319 clustersToSkip =
'pixelPairStepClusters',
321 trackingMkFitPixelPairStep.toReplaceWith(pixelPairStepTrackCandidates, _mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
322 seeds =
'pixelPairStepSeeds',
323 mkFitSeeds =
'pixelPairStepTrackCandidatesMkFitSeeds',
324 tracks =
'pixelPairStepTrackCandidatesMkFit',
327 trackingPhase2PU140.toModify(pixelPairStepTrackCandidates,
328 clustersToSkip =
None,
329 phase2clustersToSkip = cms.InputTag(
'pixelPairStepClusters'),
330 TrajectoryCleaner =
'pixelPairStepTrajectoryCleanerBySharedHits'
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')
342 pixelPairStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
343 ComponentName =
'pixelPairStepTrajectoryCleanerBySharedHits',
344 fractionShared = 0.095,
345 allowSharedFirstHit =
True
347 trackingPhase2PU140.toModify(pixelPairStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
351 pixelPairStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
352 AlgorithmName =
'pixelPairStep',
353 src =
'pixelPairStepTrackCandidates',
354 Fitter =
'FlexibleKFFittingSmoother'
356 fastSim.toModify(pixelPairStepTracks, TTRHBuilder =
'WithoutRefit')
360 pixelPairStep = TrackMVAClassifierPrompt.clone(
361 src =
'pixelPairStepTracks',
362 mva = dict(GBRForestLabel =
'MVASelectorIter2_13TeV'),
363 qualityCuts = [-0.2,0.0,0.3]
365 trackingPhase1.toModify(pixelPairStep, mva=dict(GBRForestLabel =
'MVASelectorPixelPairStep_Phase1'))
369 trackdnn.toReplaceWith(pixelPairStep, TrackTfClassifier.clone(
370 src=
'pixelPairStepTracks',
371 qualityCuts=qualityCutDictionary[
'PixelPairStep']
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')
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',
389 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
390 name =
'pixelPairStepTight',
391 preFilterName =
'pixelPairStepLoose',
393 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
394 name =
'QualityMasks',
395 preFilterName =
'pixelPairStepTight',
398 vertices =
'pixelVertices'
400 trackingPhase2PU140.toModify(pixelPairStepSelector,
402 GBRForestLabel =
None,
403 trackSelectors = cms.VPSet(
404 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
405 name =
'pixelPairStepLoose',
407 res_par = ( 0.003, 0.002 ),
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 )
416 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
417 name =
'pixelPairStepTight',
418 preFilterName =
'pixelPairStepLoose',
420 res_par = ( 0.003, 0.002 ),
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 )
429 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
430 name =
'pixelPairStep',
431 preFilterName =
'pixelPairStepTight',
435 res_par = ( 0.003, 0.001 ),
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 )
445 vertices =
'firstStepPrimaryVertices'
448 from Configuration.ProcessModifiers.vectorHits_cff
import vectorHits
449 vectorHits.toModify(pixelPairStepSelector.trackSelectors[2], minNumberLayers = 3, minNumber3DLayers = 3)
452 PixelPairStepTask = cms.Task(pixelPairStepClusters,
453 pixelPairStepSeedLayers,
454 pixelPairStepTrackingRegions,
455 pixelPairStepHitDoublets,
457 pixelPairStepTrackCandidates,
460 PixelPairStep = cms.Sequence(PixelPairStepTask)
462 _PixelPairStepTask_trackingMkFit = PixelPairStepTask.copy()
463 _PixelPairStepTask_trackingMkFit.add(pixelPairStepTrackCandidatesMkFitSeeds, pixelPairStepTrackCandidatesMkFit, pixelPairStepTrackCandidatesMkFit)
464 trackingMkFitPixelPairStep.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_trackingMkFit)
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)
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,
477 trackingPhase1.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_Phase1)
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)
483 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
484 pixelPairStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(pixelPairStepClusters)
485 fastSim.toReplaceWith(PixelPairStepTask,
486 cms.Task(pixelPairStepMasks
487 ,pixelPairStepTrackingRegions
489 ,pixelPairStepTrackCandidates