1 import FWCore.ParameterSet.Config
as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
3 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
6 from Configuration.ProcessModifiers.trackdnn_cff
import trackdnn
12 tobTecStepClusters = _cfg.clusterRemoverForIter(
'TobTecStep')
13 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
14 _era.toReplaceWith(tobTecStepClusters, _cfg.clusterRemoverForIter(
'TobTecStep', _eraName, _postfix))
18 tobTecStepSeedLayersTripl = cms.EDProducer(
'SeedingLayersEDProducer',
19 layerList = cms.vstring(
21 'TOB1+TOB2+MTOB3',
'TOB1+TOB2+MTOB4',
23 'TOB1+TOB2+MTEC1_pos',
'TOB1+TOB2+MTEC1_neg',
26 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
27 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
28 skipClusters = cms.InputTag(
'tobTecStepClusters')
31 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
32 skipClusters = cms.InputTag(
'tobTecStepClusters'),
33 rphiRecHits = cms.InputTag(
'siStripMatchedRecHits',
'rphiRecHit')
36 rphiRecHits = cms.InputTag(
'siStripMatchedRecHits',
'rphiRecHit'),
37 skipClusters = cms.InputTag(
'tobTecStepClusters'),
38 useRingSlector = cms.bool(
True),
39 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
40 minRing = cms.int32(6),
41 maxRing = cms.int32(7)
46 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
47 tobTecStepTrackingRegionsTripl = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
49 originHalfLength = 20.0,
53 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
54 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
56 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(tobTecStepTrackingRegionsTripl,
57 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
58 ptMinScaling4BigEvts =
False,
67 tobTecStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
68 ComponentName =
'tobTecStepClusterShapeHitFilter',
69 doStripShapeCut = cms.bool(
False),
70 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTight')
73 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
74 tobTecStepHitDoubletsTripl = _hitPairEDProducer.clone(
75 seedingLayers =
'tobTecStepSeedLayersTripl',
76 trackingRegions =
'tobTecStepTrackingRegionsTripl',
77 maxElement = 50000000,
78 produceIntermediateHitDoublets =
True,
80 from RecoTracker.TkSeedGenerator.multiHitFromChi2EDProducer_cfi
import multiHitFromChi2EDProducer
as _multiHitFromChi2EDProducer
81 tobTecStepHitTripletsTripl = _multiHitFromChi2EDProducer.clone(
82 doublets =
'tobTecStepHitDoubletsTripl',
85 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
86 from RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi
import StripSubClusterShapeSeedFilter
as _StripSubClusterShapeSeedFilter
87 _tobTecStepSeedComparitorPSet = dict(
88 ComponentName =
'CombinedSeedComparitor',
89 mode = cms.string(
'and'),
90 comparitors = cms.VPSet(
92 ComponentName = cms.string(
'PixelClusterShapeSeedComparitor'),
93 FilterAtHelixStage = cms.bool(
True),
94 FilterPixelHits = cms.bool(
False),
95 FilterStripHits = cms.bool(
True),
96 ClusterShapeHitFilterName = cms.string(
'tobTecStepClusterShapeHitFilter'),
97 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
99 _StripSubClusterShapeSeedFilter.clone()
102 tobTecStepSeedsTripl = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
103 seedingHitSets =
'tobTecStepHitTripletsTripl',
104 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
107 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
108 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
109 _fastSim_tobTecStepSeedsTripl = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
110 trackingRegions =
'tobTecStepTrackingRegionsTripl',
111 hitMasks = cms.InputTag(
'tobTecStepMasks'),
113 SeedComparitorPSet = cms.PSet(ComponentName = cms.string(
'none')),
115 layerList = tobTecStepSeedLayersTripl.layerList.value()
118 fastSim.toReplaceWith(tobTecStepSeedsTripl,_fastSim_tobTecStepSeedsTripl)
121 tobTecStepSeedLayersPair = cms.EDProducer(
'SeedingLayersEDProducer',
122 layerList = cms.vstring(
'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
123 'TEC1_pos+TEC2_pos',
'TEC1_neg+TEC2_neg',
124 'TEC2_pos+TEC3_pos',
'TEC2_neg+TEC3_neg',
125 'TEC3_pos+TEC4_pos',
'TEC3_neg+TEC4_neg',
126 'TEC4_pos+TEC5_pos',
'TEC4_neg+TEC5_neg',
127 'TEC5_pos+TEC6_pos',
'TEC5_neg+TEC6_neg',
128 'TEC6_pos+TEC7_pos',
'TEC6_neg+TEC7_neg'),
130 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
131 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
132 skipClusters = cms.InputTag(
'tobTecStepClusters')
135 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
136 skipClusters = cms.InputTag(
'tobTecStepClusters'),
137 useRingSlector = cms.bool(
True),
138 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
139 minRing = cms.int32(5),
140 maxRing = cms.int32(5)
144 tobTecStepTrackingRegionsPair = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
146 originHalfLength = 30.0,
150 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(tobTecStepTrackingRegionsPair,
151 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet = dict(
152 ptMinScaling4BigEvts =
False,
161 tobTecStepHitDoubletsPair = _hitPairEDProducer.clone(
162 seedingLayers =
'tobTecStepSeedLayersPair',
163 trackingRegions =
'tobTecStepTrackingRegionsPair',
164 produceSeedingHitSets =
True,
165 maxElementTotal = 12000000,
167 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
168 tobTecStepSeedsPair = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
169 seedingHitSets =
'tobTecStepHitDoubletsPair',
170 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
173 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
174 fastSim.toReplaceWith(tobTecStepSeedsPair,
175 FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
176 trackingRegions =
'tobTecStepTrackingRegionsPair',
177 hitMasks = cms.InputTag(
'tobTecStepMasks'),
178 seedFinderSelector = dict(layerList = tobTecStepSeedLayersPair.layerList.value())
185 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone(
186 seedCollections = [
'tobTecStepSeedsTripl',
'tobTecStepSeedsPair']
189 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
190 trackingLowPU.toModify(tobTecStepHitDoubletsPair, seedingLayers =
'tobTecStepSeedLayers')
191 trackingLowPU.toReplaceWith(tobTecStepSeeds, _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
192 seedingHitSets =
'tobTecStepHitDoubletsPair',
198 _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
200 minimumNumberOfHits = 5,
204 tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone(
207 trackingLowPU.toReplaceWith(tobTecStepTrajectoryFilter, _tobTecStepTrajectoryFilterBase.clone(
208 minimumNumberOfHits = 6,
211 (pp_on_XeXe_2017 | pp_on_AA).toModify(tobTecStepTrajectoryFilter, minPt=2.0)
213 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
214 minimumNumberOfHits = 4,
218 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
219 tobTecStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
220 ComponentName =
'tobTecStepChi2Est',
223 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight'))
225 trackingLowPU.toModify(tobTecStepChi2Est,
226 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
231 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
232 MeasurementTrackerName =
'',
233 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryFilter')),
234 inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepInOutTrajectoryFilter')),
235 useSameTrajFilter =
False,
236 minNrOfHitsForRebuild = 4,
237 alwaysUseInvalidHits =
False,
239 estimator =
'tobTecStepChi2Est',
241 maxDPhiForLooperReconstruction = cms.double(2.0),
242 maxPtForLooperReconstruction = cms.double(0.7)
257 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
258 src =
'tobTecStepSeeds',
259 clustersToSkip = cms.InputTag(
'tobTecStepClusters'),
261 numHitsForSeedCleaner = cms.int32(50),
262 onlyPixelHitsForSeedCleaner = cms.bool(
True),
264 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryBuilder')),
265 doSeedingRegionRebuilding =
True,
266 useHitsSplitting =
True,
267 cleanTrajectoryAfterInOut =
True,
268 TrajectoryCleaner =
'tobTecStepTrajectoryCleanerBySharedHits'
270 import FastSimulation.Tracking.TrackCandidateProducer_cfi
271 fastSim.toReplaceWith(tobTecStepTrackCandidates,
272 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
273 MinNumberOfCrossedLayers = 3,
274 src =
'tobTecStepSeeds',
275 hitMasks = cms.InputTag(
'tobTecStepMasks')
281 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
282 ComponentName =
'tobTecStepTrajectoryCleanerBySharedHits',
283 fractionShared = 0.09,
284 allowSharedFirstHit =
True
286 trackingLowPU.toModify(tobTecStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
290 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
291 ComponentName =
'tobTecStepFitterSmoother',
294 Fitter =
'tobTecStepRKFitter',
295 Smoother =
'tobTecStepRKSmoother'
297 trackingLowPU.toModify(tobTecStepFitterSmoother, MinNumberOfHits = 8)
299 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
300 ComponentName =
'tobTecStepFitterSmootherForLoopers',
301 Fitter =
'tobTecStepRKFitterForLoopers',
302 Smoother =
'tobTecStepRKSmootherForLoopers'
306 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
307 ComponentName =
'tobTecStepRKFitter',
310 trackingLowPU.toModify(tobTecStepRKTrajectoryFitter, minHits = 8)
312 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
313 ComponentName =
'tobTecStepRKFitterForLoopers',
314 Propagator =
'PropagatorWithMaterialForLoopers',
317 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
318 ComponentName =
'tobTecStepRKSmoother',
319 errorRescaling = 10.0,
322 trackingLowPU.toModify(tobTecStepRKTrajectorySmoother, minHits = 8)
324 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
325 ComponentName =
'tobTecStepRKSmootherForLoopers',
326 Propagator =
'PropagatorWithMaterialForLoopers',
330 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
331 ComponentName =
'tobTecFlexibleKFFittingSmoother',
332 standardFitter =
'tobTecStepFitterSmoother',
333 looperFitter =
'tobTecStepFitterSmootherForLoopers',
339 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
340 src =
'tobTecStepTrackCandidates',
341 AlgorithmName =
'tobTecStep',
343 Fitter =
'tobTecFlexibleKFFittingSmoother',
345 fastSim.toModify(tobTecStepTracks, TTRHBuilder =
'WithoutRefit')
351 tobTecStepClassifier1 = TrackMVAClassifierDetached.clone(
352 src =
'tobTecStepTracks',
353 mva = dict(GBRForestLabel =
'MVASelectorIter6_13TeV'),
354 qualityCuts = [-0.6,-0.45,-0.3]
356 fastSim.toModify(tobTecStepClassifier1, vertices =
'firstStepPrimaryVerticesBeforeMixing')
358 tobTecStepClassifier2 = TrackMVAClassifierPrompt.clone(
359 src =
'tobTecStepTracks',
360 mva = dict(GBRForestLabel =
'MVASelectorIter0_13TeV'),
361 qualityCuts = [0.0,0.0,0.0]
363 fastSim.toModify(tobTecStepClassifier2,vertices =
'firstStepPrimaryVerticesBeforeMixing')
366 tobTecStep = ClassifierMerger.clone(
367 inputClassifiers = [
'tobTecStepClassifier1',
'tobTecStepClassifier2']
369 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
370 trackingPhase1.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
371 mva = dict(GBRForestLabel =
'MVASelectorTobTecStep_Phase1'),
372 qualityCuts = [-0.6,-0.45,-0.3]
377 trackdnn.toReplaceWith(tobTecStep, TrackLwtnnClassifier.clone(
378 src =
'tobTecStepTracks',
379 qualityCuts = [-0.4, -0.25, -0.1]
381 (trackdnn & fastSim).toModify(tobTecStep,vertices =
'firstStepPrimaryVerticesBeforeMixing')
383 pp_on_AA.toModify(tobTecStep, qualityCuts = [-0.6,-0.3,0.7])
385 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
386 trackingLowPU.toReplaceWith(tobTecStep, RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
387 src =
'tobTecStepTracks',
388 useAnyMVA = cms.bool(
False),
389 GBRForestLabel = cms.string(
'MVASelectorIter6'),
391 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
392 name =
'tobTecStepLoose',
394 res_par = ( 0.003, 0.001 ),
396 maxNumberLostLayers = 1,
397 minNumber3DLayers = 2,
398 d0_par1 = ( 2.0, 4.0 ),
399 dz_par1 = ( 1.8, 4.0 ),
400 d0_par2 = ( 2.0, 4.0 ),
401 dz_par2 = ( 1.8, 4.0 )
403 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
404 name =
'tobTecStepTight',
405 preFilterName =
'tobTecStepLoose',
407 res_par = ( 0.003, 0.001 ),
409 maxNumberLostLayers = 0,
410 minNumber3DLayers = 2,
411 d0_par1 = ( 1.5, 4.0 ),
412 dz_par1 = ( 1.4, 4.0 ),
413 d0_par2 = ( 1.5, 4.0 ),
414 dz_par2 = ( 1.4, 4.0 )
416 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
417 name =
'QualityMasks',
418 preFilterName =
'tobTecStepTight',
420 res_par = ( 0.003, 0.001 ),
422 maxNumberLostLayers = 0,
423 minNumber3DLayers = 2,
424 d0_par1 = ( 1.4, 4.0 ),
425 dz_par1 = ( 1.3, 4.0 ),
426 d0_par2 = ( 1.4, 4.0 ),
427 dz_par2 = ( 1.3, 4.0 )
434 TobTecStepTask = cms.Task(tobTecStepClusters,
435 tobTecStepSeedLayersTripl,
436 tobTecStepTrackingRegionsTripl,
437 tobTecStepHitDoubletsTripl,
438 tobTecStepHitTripletsTripl,
439 tobTecStepSeedsTripl,
440 tobTecStepSeedLayersPair,
441 tobTecStepTrackingRegionsPair,
442 tobTecStepHitDoubletsPair,
445 tobTecStepTrackCandidates,
447 tobTecStepClassifier1,tobTecStepClassifier2,
449 TobTecStep = cms.Sequence(TobTecStepTask)
455 tobTecStepSeedLayers = cms.EDProducer(
'SeedingLayersEDProducer',
456 layerList = cms.vstring(
'TOB1+TOB2',
457 'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
458 'TEC1_pos+TEC2_pos',
'TEC2_pos+TEC3_pos',
459 'TEC3_pos+TEC4_pos',
'TEC4_pos+TEC5_pos',
460 'TEC5_pos+TEC6_pos',
'TEC6_pos+TEC7_pos',
461 'TEC1_neg+TEC2_neg',
'TEC2_neg+TEC3_neg',
462 'TEC3_neg+TEC4_neg',
'TEC4_neg+TEC5_neg',
463 'TEC5_neg+TEC6_neg',
'TEC6_neg+TEC7_neg'),
465 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
466 skipClusters = cms.InputTag(
'tobTecStepClusters'),
467 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny'))
470 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
471 skipClusters = cms.InputTag(
'tobTecStepClusters'),
473 useRingSlector = cms.bool(
True),
474 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny')),
475 minRing = cms.int32(5),
476 maxRing = cms.int32(5)
480 trackingLowPU.toReplaceWith(TobTecStepTask,
483 tobTecStepSeedLayers,
484 tobTecStepTrackingRegionsPair,
485 tobTecStepHitDoubletsPair,
487 tobTecStepTrackCandidates,
494 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
495 tobTecStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(tobTecStepClusters)
496 fastSim.toReplaceWith(TobTecStepTask,
497 cms.Task(tobTecStepMasks
498 ,tobTecStepTrackingRegionsTripl
499 ,tobTecStepSeedsTripl
500 ,tobTecStepTrackingRegionsPair
503 ,tobTecStepTrackCandidates
505 ,tobTecStepClassifier1,tobTecStepClassifier2