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,
94 maxElementTotal = 12000000,
96 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
97 pixelPairStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
98 seedingHitSets =
"pixelPairStepHitDoublets",
100 ComponentName =
'PixelClusterShapeSeedComparitor',
101 FilterAtHelixStage = cms.bool(
True),
102 FilterPixelHits = cms.bool(
True),
103 FilterStripHits = cms.bool(
False),
104 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
105 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache'),
110 pixelPairStepSeedsA = pixelPairStepSeeds.clone()
114 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
115 fastSim.toReplaceWith(pixelPairStepSeeds,
116 FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
117 trackingRegions =
"pixelPairStepTrackingRegions",
118 hitMasks = cms.InputTag(
"pixelPairStepMasks"),
119 seedFinderSelector =
dict(layerList = pixelPairStepSeedLayers.layerList.value())
124 from RecoTracker.TkTrackingRegions.pixelInactiveAreaTrackingRegionsAndSeedingLayers_cfi
import pixelInactiveAreaTrackingRegionsAndSeedingLayers
as _pixelInactiveAreaTrackingRegionsAndSeedingLayers
125 pixelPairStepTrackingRegionsSeedLayersB = _pixelInactiveAreaTrackingRegionsAndSeedingLayers.clone(
137 "BPix1+FPix2_pos" ,
"BPix1+FPix2_neg",
138 "BPix1+FPix3_pos" ,
"BPix1+FPix3_neg",
140 "BPix2+FPix2_pos" ,
"BPix2+FPix2_neg",
141 "BPix3+FPix1_pos" ,
"BPix3+FPix1_neg",
142 "FPix1_pos+FPix2_pos",
"FPix1_neg+FPix2_neg",
143 "FPix1_pos+FPix3_pos",
"FPix1_neg+FPix3_neg",
144 "FPix2_pos+FPix3_pos",
"FPix2_neg+FPix3_neg",
147 TTRHBuilder = cms.string(
'WithTrackAngle'),
148 HitProducer = cms.string(
'siPixelRecHits'),
149 skipClusters = cms.InputTag(
'pixelPairStepClusters')
152 TTRHBuilder = cms.string(
'WithTrackAngle'),
153 HitProducer = cms.string(
'siPixelRecHits'),
154 skipClusters = cms.InputTag(
'pixelPairStepClusters')
158 originRadius = 0.015,
159 operationMode =
"VerticesFixed",
163 ignoreSingleFPixPanelModules =
True,
165 highBetaStar_2018.toModify(pixelPairStepTrackingRegionsSeedLayersB,RegionPSet =
dict(
170 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
171 from Configuration.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
172 (pp_on_XeXe_2017 | pp_on_AA_2018).toModify(pixelPairStepTrackingRegionsSeedLayersB, layerList = [
173 "BPix1+BPix2",
"BPix1+BPix3",
"BPix1+BPix4",
"BPix2+BPix3",
"BPix2+BPix4",
"BPix3+BPix4",
174 "BPix1+FPix1_pos" ,
"BPix1+FPix1_neg",
175 "BPix1+FPix2_pos" ,
"BPix1+FPix2_neg",
176 "BPix1+FPix3_pos" ,
"BPix1+FPix3_neg",
177 "BPix2+FPix1_pos" ,
"BPix2+FPix1_neg",
178 "BPix2+FPix2_pos" ,
"BPix2+FPix2_neg",
179 "BPix3+FPix1_pos" ,
"BPix3+FPix1_neg",
180 "FPix1_pos+FPix2_pos",
"FPix1_neg+FPix2_neg",
181 "FPix1_pos+FPix3_pos",
"FPix1_neg+FPix3_neg",
182 "FPix2_pos+FPix3_pos",
"FPix2_neg+FPix3_neg" 185 pixelPairStepHitDoubletsB = pixelPairStepHitDoublets.clone(
187 trackingRegions =
"",
188 trackingRegionsSeedingLayers =
"pixelPairStepTrackingRegionsSeedLayersB",
190 pixelPairStepSeedsB = pixelPairStepSeedsA.clone(seedingHitSets =
"pixelPairStepHitDoubletsB")
195 _pixelPairStepSeedsMerged = _globalCombinedSeeds.clone(
196 seedCollections = [
"pixelPairStepSeedsA",
"pixelPairStepSeedsB"],
198 (trackingPhase1 & ~fastSim).toReplaceWith(pixelPairStepSeeds, _pixelPairStepSeedsMerged)
201 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(pixelPairStepSeeds, pixelPairStepSeedsB)
205 _pixelPairStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
206 minimumNumberOfHits = 3,
209 pixelPairStepTrajectoryFilterBase = _pixelPairStepTrajectoryFilterBase.clone(
212 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
214 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
215 _tracker_apv_vfp30_2016.toModify(pixelPairStepTrajectoryFilterBase, maxCCCLostHits = 2)
216 trackingLowPU.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase)
217 trackingPhase1.toModify(pixelPairStepTrajectoryFilterBase, minimumNumberOfHits = 4)
218 trackingPhase2PU140.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase.clone(
219 minimumNumberOfHits = 4,
220 maxLostHitsFraction = 1./10.,
221 constantValueForLostHitsFractionFilter = 0.701,
223 highBetaStar_2018.toModify(pixelPairStepTrajectoryFilterBase, minPt = 0.05)
225 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
226 pixelPairStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
227 pixelPairStepTrajectoryFilter = cms.PSet(
228 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
230 cms.PSet( refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilterBase')),
235 trackingPhase2PU140.toModify(pixelPairStepTrajectoryFilter,
236 filters = pixelPairStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
241 pixelPairStepTrajectoryFilterInOut = pixelPairStepTrajectoryFilterBase.clone(
242 minimumNumberOfHits = 4,
244 strictSeedExtension =
False,
245 pixelSeedExtension =
False,
250 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
251 pixelPairStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
252 ComponentName = cms.string(
'pixelPairStepChi2Est'),
253 nSigma = cms.double(3.0),
254 MaxChi2 = cms.double(9.0),
255 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose')),
256 pTChargeCutThreshold = cms.double(15.)
258 _tracker_apv_vfp30_2016.toModify(pixelPairStepChi2Est,
259 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutTiny")
261 trackingLowPU.toModify(pixelPairStepChi2Est,
262 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny'),
264 highBetaStar_2018.toModify(pixelPairStepChi2Est,MaxChi2 = cms.double(30))
268 pixelPairStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
269 MeasurementTrackerName =
'',
270 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryFilter')),
272 estimator = cms.string(
'pixelPairStepChi2Est'),
273 maxDPhiForLooperReconstruction = cms.double(2.0),
274 maxPtForLooperReconstruction = cms.double(0.7)
276 trackingLowPU.toModify(pixelPairStepTrajectoryBuilder, maxCand = 2)
278 inOutTrajectoryFilter =
dict(refToPSet_ =
"pixelPairStepTrajectoryFilterInOut"),
279 useSameTrajFilter =
False,
281 trackingPhase1.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
282 trackingPhase2PU140.toModify(pixelPairStepTrajectoryBuilder, **_seedExtension)
289 pixelPairStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
290 src = cms.InputTag(
'pixelPairStepSeeds'),
291 clustersToSkip = cms.InputTag(
'pixelPairStepClusters'),
292 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'pixelPairStepTrajectoryBuilder')),
294 numHitsForSeedCleaner = cms.int32(50),
295 onlyPixelHitsForSeedCleaner = cms.bool(
True),
298 trackingPhase2PU140.toModify(pixelPairStepTrackCandidates,
299 clustersToSkip =
None,
300 phase2clustersToSkip = cms.InputTag(
"pixelPairStepClusters"),
301 TrajectoryCleaner =
"pixelPairStepTrajectoryCleanerBySharedHits" 303 import FastSimulation.Tracking.TrackCandidateProducer_cfi
304 fastSim.toReplaceWith(pixelPairStepTrackCandidates,
305 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
306 src = cms.InputTag(
"pixelPairStepSeeds"),
307 MinNumberOfCrossedLayers = 2,
308 hitMasks = cms.InputTag(
"pixelPairStepMasks")
313 pixelPairStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
314 ComponentName =
'pixelPairStepTrajectoryCleanerBySharedHits',
315 fractionShared = 0.095,
316 allowSharedFirstHit =
True 318 trackingPhase2PU140.toModify(pixelPairStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
322 pixelPairStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
323 AlgorithmName = cms.string(
'pixelPairStep'),
324 src =
'pixelPairStepTrackCandidates',
325 Fitter = cms.string(
'FlexibleKFFittingSmoother')
327 fastSim.toModify(pixelPairStepTracks, TTRHBuilder =
'WithoutRefit')
331 pixelPairStep = TrackMVAClassifierPrompt.clone()
332 pixelPairStep.src =
'pixelPairStepTracks' 333 pixelPairStep.mva.GBRForestLabel =
'MVASelectorIter2_13TeV' 334 pixelPairStep.qualityCuts = [-0.2,0.0,0.3]
335 highBetaStar_2018.toModify(pixelPairStep,qualityCuts = [-0.95,0.0,0.3])
337 trackingPhase1.toModify(pixelPairStep, mva=
dict(GBRForestLabel =
'MVASelectorPixelPairStep_Phase1'))
338 fastSim.toModify(pixelPairStep, vertices =
"firstStepPrimaryVerticesBeforeMixing")
339 pp_on_AA_2018.toModify(pixelPairStep, qualityCuts = [-0.2, 0.0, 0.9])
343 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
344 pixelPairStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
345 src=
'pixelPairStepTracks',
346 useAnyMVA = cms.bool(
True),
347 GBRForestLabel = cms.string(
'MVASelectorIter2'),
348 trackSelectors= cms.VPSet(
349 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
350 name =
'pixelPairStepLoose',
352 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
353 name =
'pixelPairStepTight',
354 preFilterName =
'pixelPairStepLoose',
356 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
357 name =
'QualityMasks',
358 preFilterName =
'pixelPairStepTight',
361 vertices = cms.InputTag(
"pixelVertices")
363 trackingPhase2PU140.toModify(pixelPairStepSelector,
365 GBRForestLabel =
None,
366 trackSelectors= cms.VPSet(
367 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
368 name =
'pixelPairStepLoose',
370 res_par = ( 0.003, 0.002 ),
372 maxNumberLostLayers = 2,
373 minNumber3DLayers = 3,
374 d0_par1 = ( 0.4, 4.0 ),
375 dz_par1 = ( 0.4, 4.0 ),
376 d0_par2 = ( 0.6, 4.0 ),
377 dz_par2 = ( 0.45, 4.0 )
379 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
380 name =
'pixelPairStepTight',
381 preFilterName =
'pixelPairStepLoose',
383 res_par = ( 0.003, 0.002 ),
385 maxNumberLostLayers = 2,
386 minNumber3DLayers = 3,
387 d0_par1 = ( 0.35, 4.0 ),
388 dz_par1 = ( 0.35, 4.0 ),
389 d0_par2 = ( 0.5, 4.0 ),
390 dz_par2 = ( 0.4, 4.0 )
392 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
393 name =
'pixelPairStep',
394 preFilterName =
'pixelPairStepTight',
396 res_par = ( 0.003, 0.001 ),
398 maxNumberLostLayers = 2,
399 minNumber3DLayers = 4,
400 d0_par1 = ( 0.3, 4.0 ),
401 dz_par1 = ( 0.3, 4.0 ),
402 d0_par2 = ( 0.45, 4.0 ),
403 dz_par2 = ( 0.35, 4.0 )
406 vertices =
"firstStepPrimaryVertices" 411 PixelPairStepTask = cms.Task(pixelPairStepClusters,
412 pixelPairStepSeedLayers,
413 pixelPairStepTrackingRegions,
414 pixelPairStepHitDoublets,
416 pixelPairStepTrackCandidates,
419 PixelPairStep = cms.Sequence(PixelPairStepTask)
421 _PixelPairStepTask_LowPU_Phase2PU140 = PixelPairStepTask.copy()
422 _PixelPairStepTask_LowPU_Phase2PU140.replace(pixelPairStep, pixelPairStepSelector)
423 trackingLowPU.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
424 trackingPhase2PU140.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_LowPU_Phase2PU140)
426 _PixelPairStepTask_Phase1 = PixelPairStepTask.copy()
427 _PixelPairStepTask_pp_on_AA = PixelPairStepTask.copy()
428 _PixelPairStepTask_Phase1.replace(pixelPairStepSeeds,cms.Task(
429 pixelPairStepSeedsA ,
430 pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB,pixelPairStepSeedsB,
432 trackingPhase1.toReplaceWith(PixelPairStepTask, _PixelPairStepTask_Phase1)
434 _PixelPairStepTask_pp_on_AA.replace(pixelPairStepHitDoublets, cms.Task(pixelPairStepTrackingRegionsSeedLayersB,pixelPairStepHitDoubletsB))
435 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(PixelPairStepTask, _PixelPairStepTask_pp_on_AA)
438 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
439 pixelPairStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(pixelPairStepClusters)
440 fastSim.toReplaceWith(PixelPairStepTask,
441 cms.Task(pixelPairStepMasks
442 ,pixelPairStepTrackingRegions
444 ,pixelPairStepTrackCandidates