1 import FWCore.ParameterSet.Config
as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
4 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
10 chargeCut2069Clusters = cms.EDProducer(
"ClusterChargeMasker",
11 oldClusterRemovalInfo = cms.InputTag(
""),
12 pixelClusters = cms.InputTag(
"siPixelClusters"),
13 stripClusters = cms.InputTag(
"siStripClusters"),
14 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight'))
17 mixedTripletStepClusters = _cfg.clusterRemoverForIter(
"MixedTripletStep")
18 chargeCut2069Clusters.oldClusterRemovalInfo = mixedTripletStepClusters.oldClusterRemovalInfo.value()
19 mixedTripletStepClusters.oldClusterRemovalInfo =
"chargeCut2069Clusters" 20 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
21 _era.toReplaceWith(mixedTripletStepClusters, _cfg.clusterRemoverForIter(
"MixedTripletStep", _eraName, _postfix))
22 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
23 trackingPhase1.toModify(chargeCut2069Clusters, oldClusterRemovalInfo = mixedTripletStepClusters.oldClusterRemovalInfo.value())
24 trackingPhase1.toModify(mixedTripletStepClusters, oldClusterRemovalInfo=
"chargeCut2069Clusters")
25 from Configuration.Eras.Modifier_trackingPhase1QuadProp_cff
import trackingPhase1QuadProp
26 trackingPhase1QuadProp.toModify(chargeCut2069Clusters, oldClusterRemovalInfo = mixedTripletStepClusters.oldClusterRemovalInfo.value())
27 trackingPhase1QuadProp.toModify(mixedTripletStepClusters, oldClusterRemovalInfo=
"chargeCut2069Clusters")
32 mixedTripletStepSeedLayersA = cms.EDProducer(
"SeedingLayersEDProducer",
33 layerList = cms.vstring(
'BPix2+FPix1_pos+FPix2_pos',
'BPix2+FPix1_neg+FPix2_neg'),
39 TTRHBuilder = cms.string(
'WithTrackAngle'),
40 HitProducer = cms.string(
'siPixelRecHits'),
41 skipClusters = cms.InputTag(
'mixedTripletStepClusters')
44 TTRHBuilder = cms.string(
'WithTrackAngle'),
45 HitProducer = cms.string(
'siPixelRecHits'),
46 skipClusters = cms.InputTag(
'mixedTripletStepClusters')
49 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
50 useRingSlector = cms.bool(
True),
51 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
52 minRing = cms.int32(1),
53 maxRing = cms.int32(1),
54 skipClusters = cms.InputTag(
'mixedTripletStepClusters')
57 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
58 trackingLowPU.toModify(mixedTripletStepSeedLayersA,
61 'BPix1+BPix2+FPix1_pos',
'BPix1+BPix2+FPix1_neg',
62 'BPix1+FPix1_pos+FPix2_pos',
'BPix1+FPix1_neg+FPix2_neg',
63 'BPix2+FPix1_pos+FPix2_pos',
'BPix2+FPix1_neg+FPix2_neg',
64 'FPix1_pos+FPix2_pos+TEC1_pos',
'FPix1_neg+FPix2_neg+TEC1_neg',
65 'FPix2_pos+TEC2_pos+TEC3_pos',
'FPix2_neg+TEC2_neg+TEC3_neg' 67 TEC =
dict(clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny')),
71 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
72 _mixedTripletStepTrackingRegionsCommon = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet =
dict(
74 originHalfLength = 15.0,
77 trackingLowPU.toModify(_mixedTripletStepTrackingRegionsCommon, RegionPSet =
dict(originHalfLength = 10.0))
78 mixedTripletStepTrackingRegionsA = _mixedTripletStepTrackingRegionsCommon.clone()
80 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
81 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff
import globalTrackingRegionWithVertices
as _globalTrackingRegionWithVertices
82 pp_on_XeXe_2017.toReplaceWith(mixedTripletStepTrackingRegionsA,
83 _globalTrackingRegionWithVertices.clone(RegionPSet=
dict(
93 mixedTripletStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
94 ComponentName =
'mixedTripletStepClusterShapeHitFilter',
95 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTight')
97 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
98 mixedTripletStepHitDoubletsA = _hitPairEDProducer.clone(
99 seedingLayers =
"mixedTripletStepSeedLayersA",
100 trackingRegions =
"mixedTripletStepTrackingRegionsA",
102 produceIntermediateHitDoublets =
True,
104 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi
import pixelTripletLargeTipEDProducer
as _pixelTripletLargeTipEDProducer
106 mixedTripletStepHitTripletsA = _pixelTripletLargeTipEDProducer.clone(
107 doublets =
"mixedTripletStepHitDoubletsA",
108 produceSeedingHitSets =
True,
110 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
111 _mixedTripletStepSeedsACommon = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
112 seedingHitSets =
"mixedTripletStepHitTripletsA",
114 ComponentName =
'PixelClusterShapeSeedComparitor',
115 FilterAtHelixStage = cms.bool(
False),
116 FilterPixelHits = cms.bool(
True),
117 FilterStripHits = cms.bool(
True),
118 ClusterShapeHitFilterName = cms.string(
'mixedTripletStepClusterShapeHitFilter'),
119 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
122 trackingLowPU.toModify(_mixedTripletStepSeedsACommon,
123 SeedComparitorPSet =
dict(ClusterShapeHitFilterName =
'ClusterShapeHitFilter')
125 mixedTripletStepSeedsA = _mixedTripletStepSeedsACommon.clone()
127 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
128 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
129 _fastSim_mixedTripletStepSeedsA = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
130 trackingRegions =
"mixedTripletStepTrackingRegionsA",
131 hitMasks = cms.InputTag(
"mixedTripletStepMasks"),
133 layerList = mixedTripletStepSeedLayersA.layerList.value())
135 fastSim.toReplaceWith(mixedTripletStepSeedsA,_fastSim_mixedTripletStepSeedsA)
139 mixedTripletStepSeedLayersB = cms.EDProducer(
"SeedingLayersEDProducer",
140 layerList = cms.vstring(
'BPix2+BPix3+TIB1'),
142 TTRHBuilder = cms.string(
'WithTrackAngle'),
143 HitProducer = cms.string(
'siPixelRecHits'),
144 skipClusters = cms.InputTag(
'mixedTripletStepClusters')
147 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
148 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
149 skipClusters = cms.InputTag(
'mixedTripletStepClusters')
152 trackingLowPU.toModify(mixedTripletStepSeedLayersB,
153 layerList = [
'BPix2+BPix3+TIB1',
'BPix2+BPix3+TIB2'],
154 TIB =
dict(clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny')),
156 trackingPhase1.toModify(mixedTripletStepSeedLayersB, layerList = [
'BPix3+BPix4+TIB1'])
157 trackingPhase1QuadProp.toModify(mixedTripletStepSeedLayersB, layerList = [
'BPix3+BPix4+TIB1'])
160 mixedTripletStepTrackingRegionsB = _mixedTripletStepTrackingRegionsCommon.clone(RegionPSet =
dict(ptMin=0.6, originHalfLength=10.0))
161 pp_on_XeXe_2017.toReplaceWith(mixedTripletStepTrackingRegionsB,
162 _globalTrackingRegionWithVertices.clone(RegionPSet=
dict(
171 mixedTripletStepHitDoubletsB = mixedTripletStepHitDoubletsA.clone(
172 seedingLayers =
"mixedTripletStepSeedLayersB",
173 trackingRegions =
"mixedTripletStepTrackingRegionsB",
175 mixedTripletStepHitTripletsB = mixedTripletStepHitTripletsA.clone(doublets =
"mixedTripletStepHitDoubletsB")
176 mixedTripletStepSeedsB = _mixedTripletStepSeedsACommon.clone(seedingHitSets =
"mixedTripletStepHitTripletsB")
178 _fastSim_mixedTripletStepSeedsB = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
179 trackingRegions =
"mixedTripletStepTrackingRegionsB",
180 hitMasks = cms.InputTag(
"mixedTripletStepMasks"),
182 layerList = mixedTripletStepSeedLayersB.layerList.value())
184 fastSim.toReplaceWith(mixedTripletStepSeedsB,_fastSim_mixedTripletStepSeedsB)
188 mixedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
189 mixedTripletStepSeeds.seedCollections = cms.VInputTag(
190 cms.InputTag(
'mixedTripletStepSeedsA'),
191 cms.InputTag(
'mixedTripletStepSeedsB'),
196 _mixedTripletStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
198 minimumNumberOfHits = 3,
202 mixedTripletStepTrajectoryFilter = _mixedTripletStepTrajectoryFilterBase.clone(
203 constantValueForLostHitsFractionFilter = 1.4,
205 trackingLowPU.toReplaceWith(mixedTripletStepTrajectoryFilter, _mixedTripletStepTrajectoryFilterBase.clone(
209 pp_on_XeXe_2017.toModify(mixedTripletStepTrajectoryFilter, minPt=0.4)
214 mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
216 ComponentName =
'mixedTripletStepPropagator',
219 pp_on_XeXe_2017.toModify(mixedTripletStepPropagator, ptMin=0.4)
222 mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
224 ComponentName =
'mixedTripletStepPropagatorOpposite',
227 pp_on_XeXe_2017.toModify(mixedTripletStepPropagatorOpposite, ptMin=0.4)
229 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
230 mixedTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
231 ComponentName = cms.string(
'mixedTripletStepChi2Est'),
232 nSigma = cms.double(3.0),
233 MaxChi2 = cms.double(16.0),
234 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight'))
236 trackingLowPU.toModify(mixedTripletStepChi2Est,
237 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
242 mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
243 MeasurementTrackerName =
'',
244 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'mixedTripletStepTrajectoryFilter')),
245 propagatorAlong = cms.string(
'mixedTripletStepPropagator'),
246 propagatorOpposite = cms.string(
'mixedTripletStepPropagatorOpposite'),
248 estimator = cms.string(
'mixedTripletStepChi2Est'),
249 maxDPhiForLooperReconstruction = cms.double(2.0),
250 maxPtForLooperReconstruction = cms.double(0.7)
255 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
256 src = cms.InputTag(
'mixedTripletStepSeeds'),
257 clustersToSkip = cms.InputTag(
'mixedTripletStepClusters'),
259 numHitsForSeedCleaner = cms.int32(50),
262 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'mixedTripletStepTrajectoryBuilder')),
263 doSeedingRegionRebuilding =
True,
264 useHitsSplitting =
True,
265 TrajectoryCleaner =
'mixedTripletStepTrajectoryCleanerBySharedHits' 267 import FastSimulation.Tracking.TrackCandidateProducer_cfi
268 fastSim.toReplaceWith(mixedTripletStepTrackCandidates,
269 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
270 src = cms.InputTag(
"mixedTripletStepSeeds"),
271 MinNumberOfCrossedLayers = 3,
272 hitMasks = cms.InputTag(
"mixedTripletStepMasks"),
278 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
279 ComponentName = cms.string(
'mixedTripletStepTrajectoryCleanerBySharedHits'),
280 fractionShared = cms.double(0.11),
281 allowSharedFirstHit = cms.bool(
True)
283 trackingLowPU.toModify(mixedTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
288 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
289 AlgorithmName = cms.string(
'mixedTripletStep'),
290 src =
'mixedTripletStepTrackCandidates',
291 Fitter = cms.string(
'FlexibleKFFittingSmoother')
293 fastSim.toModify(mixedTripletStepTracks, TTRHBuilder =
'WithoutRefit')
298 mixedTripletStepClassifier1 = TrackMVAClassifierDetached.clone()
299 mixedTripletStepClassifier1.src =
'mixedTripletStepTracks' 300 mixedTripletStepClassifier1.mva.GBRForestLabel =
'MVASelectorIter4_13TeV' 301 mixedTripletStepClassifier1.qualityCuts = [-0.5,0.0,0.5]
302 fastSim.toModify(mixedTripletStepClassifier1, vertices =
"firstStepPrimaryVerticesBeforeMixing")
304 mixedTripletStepClassifier2 = TrackMVAClassifierPrompt.clone()
305 mixedTripletStepClassifier2.src =
'mixedTripletStepTracks' 306 mixedTripletStepClassifier2.mva.GBRForestLabel =
'MVASelectorIter0_13TeV' 307 mixedTripletStepClassifier2.qualityCuts = [-0.2,-0.2,-0.2]
308 fastSim.toModify(mixedTripletStepClassifier2,vertices =
"firstStepPrimaryVerticesBeforeMixing")
311 mixedTripletStep = ClassifierMerger.clone()
312 mixedTripletStep.inputClassifiers=[
'mixedTripletStepClassifier1',
'mixedTripletStepClassifier2']
314 trackingPhase1.toReplaceWith(mixedTripletStep, mixedTripletStepClassifier1.clone(
315 mva =
dict(GBRForestLabel =
'MVASelectorMixedTripletStep_Phase1'),
316 qualityCuts = [-0.5,0.0,0.5],
318 trackingPhase1QuadProp.toReplaceWith(mixedTripletStep, mixedTripletStepClassifier1.clone(
319 mva =
dict(GBRForestLabel =
'MVASelectorMixedTripletStep_Phase1'),
320 qualityCuts = [-0.5,0.0,0.5],
324 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
325 mixedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
326 src =
'mixedTripletStepTracks',
327 useAnyMVA = cms.bool(
False),
328 GBRForestLabel = cms.string(
'MVASelectorIter4'),
330 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
331 name =
'mixedTripletStepVtxLoose',
333 res_par = ( 0.003, 0.001 ),
335 maxNumberLostLayers = 1,
336 minNumber3DLayers = 2,
337 d0_par1 = ( 1.2, 3.0 ),
338 dz_par1 = ( 1.2, 3.0 ),
339 d0_par2 = ( 1.3, 3.0 ),
340 dz_par2 = ( 1.3, 3.0 )
342 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
343 name =
'mixedTripletStepTrkLoose',
345 res_par = ( 0.003, 0.001 ),
347 maxNumberLostLayers = 1,
348 minNumber3DLayers = 3,
349 d0_par1 = ( 1.2, 4.0 ),
350 dz_par1 = ( 1.2, 4.0 ),
351 d0_par2 = ( 1.2, 4.0 ),
352 dz_par2 = ( 1.2, 4.0 )
354 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
355 name =
'mixedTripletStepVtxTight',
356 preFilterName =
'mixedTripletStepVtxLoose',
358 res_par = ( 0.003, 0.001 ),
360 maxNumberLostLayers = 1,
361 minNumber3DLayers = 3,
362 d0_par1 = ( 1.1, 3.0 ),
363 dz_par1 = ( 1.1, 3.0 ),
364 d0_par2 = ( 1.2, 3.0 ),
365 dz_par2 = ( 1.2, 3.0 )
367 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
368 name =
'mixedTripletStepTrkTight',
369 preFilterName =
'mixedTripletStepTrkLoose',
371 res_par = ( 0.003, 0.001 ),
373 maxNumberLostLayers = 1,
374 minNumber3DLayers = 4,
375 d0_par1 = ( 1.1, 4.0 ),
376 dz_par1 = ( 1.1, 4.0 ),
377 d0_par2 = ( 1.1, 4.0 ),
378 dz_par2 = ( 1.1, 4.0 )
380 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
381 name =
'mixedTripletStepVtx',
382 preFilterName =
'mixedTripletStepVtxTight',
384 res_par = ( 0.003, 0.001 ),
386 maxNumberLostLayers = 1,
387 minNumber3DLayers = 3,
388 d0_par1 = ( 1.1, 3.0 ),
389 dz_par1 = ( 1.1, 3.0 ),
390 d0_par2 = ( 1.2, 3.0 ),
391 dz_par2 = ( 1.2, 3.0 )
393 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
394 name =
'mixedTripletStepTrk',
395 preFilterName =
'mixedTripletStepTrkTight',
397 res_par = ( 0.003, 0.001 ),
399 maxNumberLostLayers = 0,
400 minNumber3DLayers = 4,
401 d0_par1 = ( 0.9, 4.0 ),
402 dz_par1 = ( 0.9, 4.0 ),
403 d0_par2 = ( 0.9, 4.0 ),
404 dz_par2 = ( 0.9, 4.0 )
410 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi
import trackAlgoPriorityOrder
412 _trackListMergerBase = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
413 TrackProducers = [
'mixedTripletStepTracks',
414 'mixedTripletStepTracks'],
416 selectedTrackQuals = [cms.InputTag(
"mixedTripletStepSelector",
"mixedTripletStepVtx"),
417 cms.InputTag(
"mixedTripletStepSelector",
"mixedTripletStepTrk")],
418 setsToMerge = [cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(
True) )],
419 writeOnlyTrkQuals =
True 421 trackingLowPU.toReplaceWith(mixedTripletStep, _trackListMergerBase)
425 MixedTripletStep = cms.Sequence(chargeCut2069Clusters*mixedTripletStepClusters*
426 mixedTripletStepSeedLayersA*
427 mixedTripletStepTrackingRegionsA*
428 mixedTripletStepHitDoubletsA*
429 mixedTripletStepHitTripletsA*
430 mixedTripletStepSeedsA*
431 mixedTripletStepSeedLayersB*
432 mixedTripletStepTrackingRegionsB*
433 mixedTripletStepHitDoubletsB*
434 mixedTripletStepHitTripletsB*
435 mixedTripletStepSeedsB*
436 mixedTripletStepSeeds*
437 mixedTripletStepTrackCandidates*
438 mixedTripletStepTracks*
439 mixedTripletStepClassifier1*mixedTripletStepClassifier2*
441 _MixedTripletStep_LowPU = MixedTripletStep.copyAndExclude([chargeCut2069Clusters, mixedTripletStepClassifier1])
442 _MixedTripletStep_LowPU.replace(mixedTripletStepClassifier2, mixedTripletStepSelector)
443 trackingLowPU.toReplaceWith(MixedTripletStep, _MixedTripletStep_LowPU)
446 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
447 mixedTripletStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(mixedTripletStepClusters)
448 mixedTripletStepMasks.oldHitRemovalInfo = cms.InputTag(
"pixelPairStepMasks")
450 fastSim.toReplaceWith(MixedTripletStep,
451 cms.Sequence(mixedTripletStepMasks
452 +mixedTripletStepTrackingRegionsA
453 +mixedTripletStepSeedsA
454 +mixedTripletStepTrackingRegionsB
455 +mixedTripletStepSeedsB
456 +mixedTripletStepSeeds
457 +mixedTripletStepTrackCandidates
458 +mixedTripletStepTracks
459 +mixedTripletStepClassifier1*mixedTripletStepClassifier2
def _hitSetProducerToFactoryPSet(producer)