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
10 pixelPairStepClusters = _cfg.clusterRemoverForIter(
"PixelPairStep")
11 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
12 _era.toReplaceWith(pixelPairStepClusters, _cfg.clusterRemoverForIter(
"PixelPairStep", _eraName, _postfix))
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'),
22 TTRHBuilder = cms.string(
'WithTrackAngle'),
23 HitProducer = cms.string(
'siPixelRecHits'),
24 skipClusters = cms.InputTag(
'pixelPairStepClusters')
27 TTRHBuilder = cms.string(
'WithTrackAngle'),
28 HitProducer = cms.string(
'siPixelRecHits'),
29 skipClusters = cms.InputTag(
'pixelPairStepClusters')
34 _layerListForPhase1 = [
35 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
36 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
37 'BPix2+FPix1_pos',
'BPix2+FPix1_neg',
39 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
40 trackingPhase1.toModify(pixelPairStepSeedLayers, layerList = _layerListForPhase1)
44 _layerListForPhase2 = [
45 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
46 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
47 'BPix2+FPix1_pos',
'BPix2+FPix1_neg' 50 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
51 trackingPhase2PU140.toModify(pixelPairStepSeedLayers,
52 layerList = _layerListForPhase2,
54 useErrorsFromParam = cms.bool(
True),
55 hitErrorRPhi = cms.double(0.0016),
56 hitErrorRZ = cms.double(0.0035),
57 TTRHBuilder = cms.string(
'TTRHBuilderWithoutAngle4PixelPairs'),
60 useErrorsFromParam = cms.bool(
True),
61 hitErrorRPhi = cms.double(0.0030),
62 hitErrorRZ = cms.double(0.0020),
63 TTRHBuilder = cms.string(
'TTRHBuilderWithoutAngle4PixelPairs'),
69 pixelPairStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet =
dict(
73 useMultipleScattering =
True,
75 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
76 trackingLowPU.toModify(pixelPairStepTrackingRegions, RegionPSet=
dict(useMultipleScattering=
False))
78 useMultipleScattering =
False,
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(
89 fastSim.toModify(pixelPairStepTrackingRegions, RegionPSet=
dict(VertexCollection =
"firstStepPrimaryVerticesBeforeMixing"))
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,
99 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
100 pixelPairStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
101 seedingHitSets =
"pixelPairStepHitDoublets",
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'),
113 pixelPairStepSeedsA = pixelPairStepSeeds.clone()
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())
127 from RecoTracker.TkTrackingRegions.pixelInactiveAreaTrackingRegionsAndSeedingLayers_cfi
import pixelInactiveAreaTrackingRegionsAndSeedingLayers
as _pixelInactiveAreaTrackingRegionsAndSeedingLayers
128 pixelPairStepTrackingRegionsSeedLayersB = _pixelInactiveAreaTrackingRegionsAndSeedingLayers.clone(
140 "BPix1+FPix2_pos" ,
"BPix1+FPix2_neg",
141 "BPix1+FPix3_pos" ,
"BPix1+FPix3_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",
150 TTRHBuilder = cms.string(
'WithTrackAngle'),
151 HitProducer = cms.string(
'siPixelRecHits'),
152 skipClusters = cms.InputTag(
'pixelPairStepClusters')
155 TTRHBuilder = cms.string(
'WithTrackAngle'),
156 HitProducer = cms.string(
'siPixelRecHits'),
157 skipClusters = cms.InputTag(
'pixelPairStepClusters')
161 originRadius = 0.015,
162 operationMode =
"VerticesFixed",
166 ignoreSingleFPixPanelModules =
True,
168 highBetaStar_2018.toModify(pixelPairStepTrackingRegionsSeedLayersB,RegionPSet =
dict(
173 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
174 from Configuration.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
175 (pp_on_XeXe_2017 | pp_on_AA_2018).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" 188 pixelPairStepHitDoubletsB = pixelPairStepHitDoublets.clone(
190 trackingRegions =
"",
191 trackingRegionsSeedingLayers =
"pixelPairStepTrackingRegionsSeedLayersB",
193 pixelPairStepSeedsB = pixelPairStepSeedsA.clone(seedingHitSets =
"pixelPairStepHitDoubletsB")
198 _pixelPairStepSeedsMerged = _globalCombinedSeeds.clone(
199 seedCollections = [
"pixelPairStepSeedsA",
"pixelPairStepSeedsB"],
201 (trackingPhase1 & ~fastSim).toReplaceWith(pixelPairStepSeeds, _pixelPairStepSeedsMerged)
204 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(pixelPairStepSeeds, pixelPairStepSeedsB)
208 _pixelPairStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
209 minimumNumberOfHits = 3,
212 pixelPairStepTrajectoryFilterBase = _pixelPairStepTrajectoryFilterBase.clone(
215 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
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,
226 highBetaStar_2018.toModify(pixelPairStepTrajectoryFilterBase, minPt = 0.05)
228 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
229 pixelPairStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
230 pixelPairStepTrajectoryFilter = cms.PSet(
231 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
233 cms.PSet( refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilterBase')),
238 trackingPhase2PU140.toModify(pixelPairStepTrajectoryFilter,
239 filters = pixelPairStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
244 pixelPairStepTrajectoryFilterInOut = pixelPairStepTrajectoryFilterBase.clone(
245 minimumNumberOfHits = 4,
247 strictSeedExtension =
False,
248 pixelSeedExtension =
False,
253 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
254 pixelPairStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
255 ComponentName = cms.string(
'pixelPairStepChi2Est'),
256 nSigma = cms.double(3.0),
257 MaxChi2 = cms.double(9.0),
258 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose')),
259 pTChargeCutThreshold = cms.double(15.)
261 _tracker_apv_vfp30_2016.toModify(pixelPairStepChi2Est,
262 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutTiny")
264 trackingLowPU.toModify(pixelPairStepChi2Est,
265 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny'),
267 highBetaStar_2018.toModify(pixelPairStepChi2Est,MaxChi2 = cms.double(30))
271 pixelPairStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
272 MeasurementTrackerName =
'',
273 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilter')),
275 estimator = cms.string(
'pixelPairStepChi2Est'),
276 maxDPhiForLooperReconstruction = cms.double(2.0),
277 maxPtForLooperReconstruction = cms.double(0.7)
279 trackingLowPU.toModify(pixelPairStepTrajectoryBuilder, maxCand = 2)
281 inOutTrajectoryFilter =
dict(refToPSet_ =
"pixelPairStepTrajectoryFilterInOut"),
282 useSameTrajFilter =
False,
284 trackingPhase1.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
285 trackingPhase2PU140.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
292 pixelPairStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
293 src = cms.InputTag(
'pixelPairStepSeeds'),
294 clustersToSkip = cms.InputTag(
'pixelPairStepClusters'),
295 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryBuilder')),
297 numHitsForSeedCleaner = cms.int32(50),
298 onlyPixelHitsForSeedCleaner = cms.bool(
True),
301 trackingPhase2PU140.toModify(pixelPairStepTrackCandidates,
302 clustersToSkip =
None,
303 phase2clustersToSkip = cms.InputTag(
"pixelPairStepClusters"),
304 TrajectoryCleaner =
"pixelPairStepTrajectoryCleanerBySharedHits" 306 import FastSimulation.Tracking.TrackCandidateProducer_cfi
307 fastSim.toReplaceWith(pixelPairStepTrackCandidates,
308 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
309 src = cms.InputTag(
"pixelPairStepSeeds"),
310 MinNumberOfCrossedLayers = 2,
311 hitMasks = cms.InputTag(
"pixelPairStepMasks")
316 pixelPairStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
317 ComponentName =
'pixelPairStepTrajectoryCleanerBySharedHits',
318 fractionShared = 0.095,
319 allowSharedFirstHit =
True 321 trackingPhase2PU140.toModify(pixelPairStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
325 pixelPairStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
326 AlgorithmName = cms.string(
'pixelPairStep'),
327 src =
'pixelPairStepTrackCandidates',
328 Fitter = cms.string(
'FlexibleKFFittingSmoother')
330 fastSim.toModify(pixelPairStepTracks, TTRHBuilder =
'WithoutRefit')
334 pixelPairStep = TrackMVAClassifierPrompt.clone()
335 pixelPairStep.src =
'pixelPairStepTracks' 336 pixelPairStep.mva.GBRForestLabel =
'MVASelectorIter2_13TeV' 337 pixelPairStep.qualityCuts = [-0.2,0.0,0.3]
339 trackingPhase1.toModify(pixelPairStep, mva=
dict(GBRForestLabel =
'MVASelectorPixelPairStep_Phase1'))
343 trackdnn.toReplaceWith(pixelPairStep, TrackLwtnnClassifier.clone(
344 src=
'pixelPairStepTracks',
345 qualityCuts=[-0.6, -0.1, 0.4]
348 highBetaStar_2018.toModify(pixelPairStep,qualityCuts = [-0.95,0.0,0.3])
349 pp_on_AA_2018.toModify(pixelPairStep, qualityCuts = [-0.2, 0.0, 0.98])
350 fastSim.toModify(pixelPairStep, vertices =
"firstStepPrimaryVerticesBeforeMixing")
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',
363 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
364 name =
'pixelPairStepTight',
365 preFilterName =
'pixelPairStepLoose',
367 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
368 name =
'QualityMasks',
369 preFilterName =
'pixelPairStepTight',
372 vertices = cms.InputTag(
"pixelVertices")
374 trackingPhase2PU140.toModify(pixelPairStepSelector,
376 GBRForestLabel =
None,
377 trackSelectors= cms.VPSet(
378 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
379 name =
'pixelPairStepLoose',
381 res_par = ( 0.003, 0.002 ),
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 )
390 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
391 name =
'pixelPairStepTight',
392 preFilterName =
'pixelPairStepLoose',
394 res_par = ( 0.003, 0.002 ),
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 )
403 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
404 name =
'pixelPairStep',
405 preFilterName =
'pixelPairStepTight',
407 res_par = ( 0.003, 0.001 ),
409 maxNumberLostLayers = 2,
410 minNumber3DLayers = 4,
411 d0_par1 = ( 0.3, 4.0 ),
412 dz_par1 = ( 0.3, 4.0 ),
413 d0_par2 = ( 0.45, 4.0 ),
414 dz_par2 = ( 0.35, 4.0 )
417 vertices =
"firstStepPrimaryVertices" 422 PixelPairStepTask = cms.Task(pixelPairStepClusters,
423 pixelPairStepSeedLayers,
424 pixelPairStepTrackingRegions,
425 pixelPairStepHitDoublets,
427 pixelPairStepTrackCandidates,
430 PixelPairStep = cms.Sequence(PixelPairStepTask)
432 _PixelPairStepTask_LowPU_Phase2PU140 = PixelPairStepTask.copy()
433 _PixelPairStepTask_LowPU_Phase2PU140.replace(pixelPairStep, pixelPairStepSelector)
434 trackingLowPU.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
435 trackingPhase2PU140.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
437 _PixelPairStepTask_Phase1 = PixelPairStepTask.copy()
438 _PixelPairStepTask_pp_on_AA = PixelPairStepTask.copy()
439 _PixelPairStepTask_Phase1.replace(pixelPairStepSeeds,cms.Task(
440 pixelPairStepSeedsA ,
441 pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB,pixelPairStepSeedsB,
443 trackingPhase1.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_Phase1)
445 _PixelPairStepTask_pp_on_AA.replace(pixelPairStepHitDoublets, cms.Task(pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB))
446 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(PixelPairStepTask, _PixelPairStepTask_pp_on_AA)
449 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
450 pixelPairStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(pixelPairStepClusters)
451 fastSim.toReplaceWith(PixelPairStepTask,
452 cms.Task(pixelPairStepMasks
453 ,pixelPairStepTrackingRegions
455 ,pixelPairStepTrackCandidates