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 pixelPairStepClusters = _cfg.clusterRemoverForIter(
"PixelPairStep")
8 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
9 _era.toReplaceWith(pixelPairStepClusters, _cfg.clusterRemoverForIter(
"PixelPairStep", _eraName, _postfix))
13 pixelPairStepSeedLayers = cms.EDProducer(
"SeedingLayersEDProducer",
14 layerList = cms.vstring(
'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
15 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
16 'BPix2+FPix1_pos',
'BPix2+FPix1_neg',
17 'FPix1_pos+FPix2_pos',
'FPix1_neg+FPix2_neg'),
19 TTRHBuilder = cms.string(
'WithTrackAngle'),
20 HitProducer = cms.string(
'siPixelRecHits'),
21 skipClusters = cms.InputTag(
'pixelPairStepClusters')
24 TTRHBuilder = cms.string(
'WithTrackAngle'),
25 HitProducer = cms.string(
'siPixelRecHits'),
26 skipClusters = cms.InputTag(
'pixelPairStepClusters')
31 _layerListForPhase1 = [
32 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
33 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
34 'BPix2+FPix1_pos',
'BPix2+FPix1_neg',
36 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
37 trackingPhase1.toModify(pixelPairStepSeedLayers, layerList = _layerListForPhase1)
41 _layerListForPhase2 = [
42 'BPix1+BPix2',
'BPix1+BPix3',
'BPix2+BPix3',
43 'BPix1+FPix1_pos',
'BPix1+FPix1_neg',
44 'BPix2+FPix1_pos',
'BPix2+FPix1_neg' 47 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
48 trackingPhase2PU140.toModify(pixelPairStepSeedLayers,
49 layerList = _layerListForPhase2,
51 useErrorsFromParam = cms.bool(
True),
52 hitErrorRPhi = cms.double(0.0016),
53 hitErrorRZ = cms.double(0.0035),
54 TTRHBuilder = cms.string(
'TTRHBuilderWithoutAngle4PixelPairs'),
57 useErrorsFromParam = cms.bool(
True),
58 hitErrorRPhi = cms.double(0.0030),
59 hitErrorRZ = cms.double(0.0020),
60 TTRHBuilder = cms.string(
'TTRHBuilderWithoutAngle4PixelPairs'),
66 pixelPairStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet =
dict(
70 useMultipleScattering =
True,
72 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
73 trackingLowPU.toModify(pixelPairStepTrackingRegions, RegionPSet=
dict(useMultipleScattering=
False))
75 useMultipleScattering =
False,
78 trackingPhase1.toModify(pixelPairStepTrackingRegions, RegionPSet=_region_Phase1)
79 trackingPhase2PU140.toModify(pixelPairStepTrackingRegions, RegionPSet=_region_Phase1)
80 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
81 highBetaStar_2018.toModify(pixelPairStepTrackingRegions,RegionPSet =
dict(
86 fastSim.toModify(pixelPairStepTrackingRegions, RegionPSet=
dict(VertexCollection =
"firstStepPrimaryVerticesBeforeMixing"))
89 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
90 pixelPairStepHitDoublets = _hitPairEDProducer.clone(
91 seedingLayers =
"pixelPairStepSeedLayers",
92 trackingRegions =
"pixelPairStepTrackingRegions",
93 produceSeedingHitSets =
True,
95 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
96 pixelPairStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
97 seedingHitSets =
"pixelPairStepHitDoublets",
99 ComponentName =
'PixelClusterShapeSeedComparitor',
100 FilterAtHelixStage = cms.bool(
True),
101 FilterPixelHits = cms.bool(
True),
102 FilterStripHits = cms.bool(
False),
103 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
104 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache'),
109 pixelPairStepSeedsA = pixelPairStepSeeds.clone()
113 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
114 fastSim.toReplaceWith(pixelPairStepSeeds,
115 FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
116 trackingRegions =
"pixelPairStepTrackingRegions",
117 hitMasks = cms.InputTag(
"pixelPairStepMasks"),
118 seedFinderSelector =
dict(layerList = pixelPairStepSeedLayers.layerList.value())
123 from RecoTracker.TkTrackingRegions.pixelInactiveAreaTrackingRegionsAndSeedingLayers_cfi
import pixelInactiveAreaTrackingRegionsAndSeedingLayers
as _pixelInactiveAreaTrackingRegionsAndSeedingLayers
124 pixelPairStepTrackingRegionsSeedLayersB = _pixelInactiveAreaTrackingRegionsAndSeedingLayers.clone(
136 "BPix1+FPix2_pos" ,
"BPix1+FPix2_neg",
137 "BPix1+FPix3_pos" ,
"BPix1+FPix3_neg",
139 "BPix2+FPix2_pos" ,
"BPix2+FPix2_neg",
140 "BPix3+FPix1_pos" ,
"BPix3+FPix1_neg",
141 "FPix1_pos+FPix2_pos",
"FPix1_neg+FPix2_neg",
142 "FPix1_pos+FPix3_pos",
"FPix1_neg+FPix3_neg",
143 "FPix2_pos+FPix3_pos",
"FPix2_neg+FPix3_neg",
146 TTRHBuilder = cms.string(
'WithTrackAngle'),
147 HitProducer = cms.string(
'siPixelRecHits'),
148 skipClusters = cms.InputTag(
'pixelPairStepClusters')
151 TTRHBuilder = cms.string(
'WithTrackAngle'),
152 HitProducer = cms.string(
'siPixelRecHits'),
153 skipClusters = cms.InputTag(
'pixelPairStepClusters')
157 originRadius = 0.015,
158 operationMode =
"VerticesFixed",
162 ignoreSingleFPixPanelModules =
True,
164 highBetaStar_2018.toModify(pixelPairStepTrackingRegionsSeedLayersB,RegionPSet =
dict(
169 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
170 from Configuration.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
171 (pp_on_XeXe_2017 | pp_on_AA_2018).toModify(pixelPairStepTrackingRegionsSeedLayersB, layerList = [
172 "BPix1+BPix2",
"BPix1+BPix3",
"BPix1+BPix4",
"BPix2+BPix3",
"BPix2+BPix4",
"BPix3+BPix4",
173 "BPix1+FPix1_pos" ,
"BPix1+FPix1_neg",
174 "BPix1+FPix2_pos" ,
"BPix1+FPix2_neg",
175 "BPix1+FPix3_pos" ,
"BPix1+FPix3_neg",
176 "BPix2+FPix1_pos" ,
"BPix2+FPix1_neg",
177 "BPix2+FPix2_pos" ,
"BPix2+FPix2_neg",
178 "BPix3+FPix1_pos" ,
"BPix3+FPix1_neg",
179 "FPix1_pos+FPix2_pos",
"FPix1_neg+FPix2_neg",
180 "FPix1_pos+FPix3_pos",
"FPix1_neg+FPix3_neg",
181 "FPix2_pos+FPix3_pos",
"FPix2_neg+FPix3_neg" 184 pixelPairStepHitDoubletsB = pixelPairStepHitDoublets.clone(
186 trackingRegions =
"",
187 trackingRegionsSeedingLayers =
"pixelPairStepTrackingRegionsSeedLayersB",
189 pixelPairStepSeedsB = pixelPairStepSeedsA.clone(seedingHitSets =
"pixelPairStepHitDoubletsB")
194 _pixelPairStepSeedsMerged = _globalCombinedSeeds.clone(
195 seedCollections = [
"pixelPairStepSeedsA",
"pixelPairStepSeedsB"],
197 (trackingPhase1 & ~fastSim).toReplaceWith(pixelPairStepSeeds, _pixelPairStepSeedsMerged)
200 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(pixelPairStepSeeds, pixelPairStepSeedsB)
204 _pixelPairStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
205 minimumNumberOfHits = 3,
208 pixelPairStepTrajectoryFilterBase = _pixelPairStepTrajectoryFilterBase.clone(
211 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
213 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
214 _tracker_apv_vfp30_2016.toModify(pixelPairStepTrajectoryFilterBase, maxCCCLostHits = 2)
215 trackingLowPU.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase)
216 trackingPhase1.toModify(pixelPairStepTrajectoryFilterBase, minimumNumberOfHits = 4)
217 trackingPhase2PU140.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase.clone(
218 minimumNumberOfHits = 4,
219 maxLostHitsFraction = 1./10.,
220 constantValueForLostHitsFractionFilter = 0.701,
222 highBetaStar_2018.toModify(pixelPairStepTrajectoryFilterBase, minPt = 0.05)
224 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
225 pixelPairStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
226 pixelPairStepTrajectoryFilter = cms.PSet(
227 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
229 cms.PSet( refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilterBase')),
234 trackingPhase2PU140.toModify(pixelPairStepTrajectoryFilter,
235 filters = pixelPairStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
240 pixelPairStepTrajectoryFilterInOut = pixelPairStepTrajectoryFilterBase.clone(
241 minimumNumberOfHits = 4,
243 strictSeedExtension =
False,
244 pixelSeedExtension =
False,
249 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
250 pixelPairStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
251 ComponentName = cms.string(
'pixelPairStepChi2Est'),
252 nSigma = cms.double(3.0),
253 MaxChi2 = cms.double(9.0),
254 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose')),
255 pTChargeCutThreshold = cms.double(15.)
257 _tracker_apv_vfp30_2016.toModify(pixelPairStepChi2Est,
258 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutTiny")
260 trackingLowPU.toModify(pixelPairStepChi2Est,
261 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny'),
263 highBetaStar_2018.toModify(pixelPairStepChi2Est,MaxChi2 = cms.double(30))
267 pixelPairStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
268 MeasurementTrackerName =
'',
269 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilter')),
271 estimator = cms.string(
'pixelPairStepChi2Est'),
272 maxDPhiForLooperReconstruction = cms.double(2.0),
273 maxPtForLooperReconstruction = cms.double(0.7)
275 trackingLowPU.toModify(pixelPairStepTrajectoryBuilder, maxCand = 2)
277 inOutTrajectoryFilter =
dict(refToPSet_ =
"pixelPairStepTrajectoryFilterInOut"),
278 useSameTrajFilter =
False,
280 trackingPhase1.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
281 trackingPhase2PU140.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
288 pixelPairStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
289 src = cms.InputTag(
'pixelPairStepSeeds'),
290 clustersToSkip = cms.InputTag(
'pixelPairStepClusters'),
291 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryBuilder')),
293 numHitsForSeedCleaner = cms.int32(50),
294 onlyPixelHitsForSeedCleaner = cms.bool(
True),
297 trackingPhase2PU140.toModify(pixelPairStepTrackCandidates,
298 clustersToSkip =
None,
299 phase2clustersToSkip = cms.InputTag(
"pixelPairStepClusters"),
300 TrajectoryCleaner =
"pixelPairStepTrajectoryCleanerBySharedHits" 302 import FastSimulation.Tracking.TrackCandidateProducer_cfi
303 fastSim.toReplaceWith(pixelPairStepTrackCandidates,
304 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
305 src = cms.InputTag(
"pixelPairStepSeeds"),
306 MinNumberOfCrossedLayers = 2,
307 hitMasks = cms.InputTag(
"pixelPairStepMasks")
312 pixelPairStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
313 ComponentName =
'pixelPairStepTrajectoryCleanerBySharedHits',
314 fractionShared = 0.095,
315 allowSharedFirstHit =
True 317 trackingPhase2PU140.toModify(pixelPairStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
321 pixelPairStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
322 AlgorithmName = cms.string(
'pixelPairStep'),
323 src =
'pixelPairStepTrackCandidates',
324 Fitter = cms.string(
'FlexibleKFFittingSmoother')
326 fastSim.toModify(pixelPairStepTracks, TTRHBuilder =
'WithoutRefit')
330 pixelPairStep = TrackMVAClassifierPrompt.clone()
331 pixelPairStep.src =
'pixelPairStepTracks' 332 pixelPairStep.mva.GBRForestLabel =
'MVASelectorIter2_13TeV' 333 pixelPairStep.qualityCuts = [-0.2,0.0,0.3]
334 highBetaStar_2018.toModify(pixelPairStep,qualityCuts = [-0.95,0.0,0.3])
336 trackingPhase1.toModify(pixelPairStep, mva=
dict(GBRForestLabel =
'MVASelectorPixelPairStep_Phase1'))
337 fastSim.toModify(pixelPairStep, vertices =
"firstStepPrimaryVerticesBeforeMixing")
341 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
342 pixelPairStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
343 src=
'pixelPairStepTracks',
344 useAnyMVA = cms.bool(
True),
345 GBRForestLabel = cms.string(
'MVASelectorIter2'),
346 trackSelectors= cms.VPSet(
347 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
348 name =
'pixelPairStepLoose',
350 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
351 name =
'pixelPairStepTight',
352 preFilterName =
'pixelPairStepLoose',
354 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
355 name =
'QualityMasks',
356 preFilterName =
'pixelPairStepTight',
359 vertices = cms.InputTag(
"pixelVertices")
361 trackingPhase2PU140.toModify(pixelPairStepSelector,
363 GBRForestLabel =
None,
364 trackSelectors= cms.VPSet(
365 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
366 name =
'pixelPairStepLoose',
368 res_par = ( 0.003, 0.002 ),
370 maxNumberLostLayers = 2,
371 minNumber3DLayers = 3,
372 d0_par1 = ( 0.4, 4.0 ),
373 dz_par1 = ( 0.4, 4.0 ),
374 d0_par2 = ( 0.6, 4.0 ),
375 dz_par2 = ( 0.45, 4.0 )
377 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
378 name =
'pixelPairStepTight',
379 preFilterName =
'pixelPairStepLoose',
381 res_par = ( 0.003, 0.002 ),
383 maxNumberLostLayers = 2,
384 minNumber3DLayers = 3,
385 d0_par1 = ( 0.35, 4.0 ),
386 dz_par1 = ( 0.35, 4.0 ),
387 d0_par2 = ( 0.5, 4.0 ),
388 dz_par2 = ( 0.4, 4.0 )
390 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
391 name =
'pixelPairStep',
392 preFilterName =
'pixelPairStepTight',
394 res_par = ( 0.003, 0.001 ),
396 maxNumberLostLayers = 2,
397 minNumber3DLayers = 4,
398 d0_par1 = ( 0.3, 4.0 ),
399 dz_par1 = ( 0.3, 4.0 ),
400 d0_par2 = ( 0.45, 4.0 ),
401 dz_par2 = ( 0.35, 4.0 )
404 vertices =
"firstStepPrimaryVertices" 409 PixelPairStepTask = cms.Task(pixelPairStepClusters,
410 pixelPairStepSeedLayers,
411 pixelPairStepTrackingRegions,
412 pixelPairStepHitDoublets,
414 pixelPairStepTrackCandidates,
417 PixelPairStep = cms.Sequence(PixelPairStepTask)
419 _PixelPairStepTask_LowPU_Phase2PU140 = PixelPairStepTask.copy()
420 _PixelPairStepTask_LowPU_Phase2PU140.replace(pixelPairStep, pixelPairStepSelector)
421 trackingLowPU.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
422 trackingPhase2PU140.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
424 _PixelPairStepTask_Phase1 = PixelPairStepTask.copy()
425 _PixelPairStepTask_pp_on_AA = PixelPairStepTask.copy()
426 _PixelPairStepTask_Phase1.replace(pixelPairStepSeeds,cms.Task(
427 pixelPairStepSeedsA ,
428 pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB,pixelPairStepSeedsB,
430 trackingPhase1.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_Phase1)
432 _PixelPairStepTask_pp_on_AA.replace(pixelPairStepHitDoublets, cms.Task(pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB))
433 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(PixelPairStepTask, _PixelPairStepTask_pp_on_AA)
436 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
437 pixelPairStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(pixelPairStepClusters)
438 fastSim.toReplaceWith(PixelPairStepTask,
439 cms.Task(pixelPairStepMasks
440 ,pixelPairStepTrackingRegions
442 ,pixelPairStepTrackCandidates