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
7 from RecoTracker.IterativeTracking.dnnQualityCuts
import qualityCutDictionary
13 tobTecStepClusters = _cfg.clusterRemoverForIter(
'TobTecStep')
14 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
15 _era.toReplaceWith(tobTecStepClusters, _cfg.clusterRemoverForIter(
'TobTecStep', _eraName, _postfix))
19 tobTecStepSeedLayersTripl = cms.EDProducer(
'SeedingLayersEDProducer',
20 layerList = cms.vstring(
22 'TOB1+TOB2+MTOB3',
'TOB1+TOB2+MTOB4',
24 'TOB1+TOB2+MTEC1_pos',
'TOB1+TOB2+MTEC1_neg',
27 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
28 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
29 skipClusters = cms.InputTag(
'tobTecStepClusters')
32 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
33 skipClusters = cms.InputTag(
'tobTecStepClusters'),
34 rphiRecHits = cms.InputTag(
'siStripMatchedRecHits',
'rphiRecHit')
37 rphiRecHits = cms.InputTag(
'siStripMatchedRecHits',
'rphiRecHit'),
38 skipClusters = cms.InputTag(
'tobTecStepClusters'),
39 useRingSlector = cms.bool(
True),
40 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
41 minRing = cms.int32(6),
42 maxRing = cms.int32(7)
47 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
48 tobTecStepTrackingRegionsTripl = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
50 originHalfLength = 20.0,
54 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
55 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
57 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(tobTecStepTrackingRegionsTripl,
58 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
59 ptMinScaling4BigEvts =
False,
68 tobTecStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
69 ComponentName =
'tobTecStepClusterShapeHitFilter',
70 doStripShapeCut = cms.bool(
False),
71 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTight')
74 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
75 tobTecStepHitDoubletsTripl = _hitPairEDProducer.clone(
76 seedingLayers =
'tobTecStepSeedLayersTripl',
77 trackingRegions =
'tobTecStepTrackingRegionsTripl',
78 maxElement = 50000000,
79 produceIntermediateHitDoublets =
True,
81 from RecoTracker.TkSeedGenerator.multiHitFromChi2EDProducer_cfi
import multiHitFromChi2EDProducer
as _multiHitFromChi2EDProducer
82 tobTecStepHitTripletsTripl = _multiHitFromChi2EDProducer.clone(
83 doublets =
'tobTecStepHitDoubletsTripl',
86 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
87 from RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi
import StripSubClusterShapeSeedFilter
as _StripSubClusterShapeSeedFilter
88 _tobTecStepSeedComparitorPSet = dict(
89 ComponentName =
'CombinedSeedComparitor',
90 mode = cms.string(
'and'),
91 comparitors = cms.VPSet(
93 ComponentName = cms.string(
'PixelClusterShapeSeedComparitor'),
94 FilterAtHelixStage = cms.bool(
True),
95 FilterPixelHits = cms.bool(
False),
96 FilterStripHits = cms.bool(
True),
97 ClusterShapeHitFilterName = cms.string(
'tobTecStepClusterShapeHitFilter'),
98 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
100 _StripSubClusterShapeSeedFilter.clone()
103 tobTecStepSeedsTripl = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
104 seedingHitSets =
'tobTecStepHitTripletsTripl',
105 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
108 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
109 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
110 _fastSim_tobTecStepSeedsTripl = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
111 trackingRegions =
'tobTecStepTrackingRegionsTripl',
112 hitMasks = cms.InputTag(
'tobTecStepMasks'),
114 SeedComparitorPSet = cms.PSet(ComponentName = cms.string(
'none')),
116 layerList = tobTecStepSeedLayersTripl.layerList.value()
119 fastSim.toReplaceWith(tobTecStepSeedsTripl,_fastSim_tobTecStepSeedsTripl)
122 tobTecStepSeedLayersPair = cms.EDProducer(
'SeedingLayersEDProducer',
123 layerList = cms.vstring(
'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
124 'TEC1_pos+TEC2_pos',
'TEC1_neg+TEC2_neg',
125 'TEC2_pos+TEC3_pos',
'TEC2_neg+TEC3_neg',
126 'TEC3_pos+TEC4_pos',
'TEC3_neg+TEC4_neg',
127 'TEC4_pos+TEC5_pos',
'TEC4_neg+TEC5_neg',
128 'TEC5_pos+TEC6_pos',
'TEC5_neg+TEC6_neg',
129 'TEC6_pos+TEC7_pos',
'TEC6_neg+TEC7_neg'),
131 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
132 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
133 skipClusters = cms.InputTag(
'tobTecStepClusters')
136 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
137 skipClusters = cms.InputTag(
'tobTecStepClusters'),
138 useRingSlector = cms.bool(
True),
139 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
140 minRing = cms.int32(5),
141 maxRing = cms.int32(5)
145 tobTecStepTrackingRegionsPair = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
147 originHalfLength = 30.0,
151 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(tobTecStepTrackingRegionsPair,
152 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet = dict(
153 ptMinScaling4BigEvts =
False,
162 tobTecStepHitDoubletsPair = _hitPairEDProducer.clone(
163 seedingLayers =
'tobTecStepSeedLayersPair',
164 trackingRegions =
'tobTecStepTrackingRegionsPair',
165 produceSeedingHitSets =
True,
166 maxElementTotal = 12000000,
168 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
169 tobTecStepSeedsPair = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
170 seedingHitSets =
'tobTecStepHitDoubletsPair',
171 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
174 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
175 fastSim.toReplaceWith(tobTecStepSeedsPair,
176 FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
177 trackingRegions =
'tobTecStepTrackingRegionsPair',
178 hitMasks = cms.InputTag(
'tobTecStepMasks'),
179 seedFinderSelector = dict(layerList = tobTecStepSeedLayersPair.layerList.value())
186 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone(
187 seedCollections = [
'tobTecStepSeedsTripl',
'tobTecStepSeedsPair']
190 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
191 trackingLowPU.toModify(tobTecStepHitDoubletsPair, seedingLayers =
'tobTecStepSeedLayers')
192 trackingLowPU.toReplaceWith(tobTecStepSeeds, _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
193 seedingHitSets =
'tobTecStepHitDoubletsPair',
199 _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
201 minimumNumberOfHits = 5,
205 tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone(
208 trackingLowPU.toReplaceWith(tobTecStepTrajectoryFilter, _tobTecStepTrajectoryFilterBase.clone(
209 minimumNumberOfHits = 6,
212 (pp_on_XeXe_2017 | pp_on_AA).toModify(tobTecStepTrajectoryFilter, minPt=2.0)
214 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
215 minimumNumberOfHits = 4,
219 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
220 tobTecStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
221 ComponentName =
'tobTecStepChi2Est',
224 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight'))
226 trackingLowPU.toModify(tobTecStepChi2Est,
227 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
232 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
233 MeasurementTrackerName =
'',
234 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryFilter')),
235 inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepInOutTrajectoryFilter')),
236 useSameTrajFilter =
False,
237 minNrOfHitsForRebuild = 4,
238 alwaysUseInvalidHits =
False,
240 estimator =
'tobTecStepChi2Est',
242 maxDPhiForLooperReconstruction = cms.double(2.0),
243 maxPtForLooperReconstruction = cms.double(0.7)
258 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
259 src =
'tobTecStepSeeds',
260 clustersToSkip = cms.InputTag(
'tobTecStepClusters'),
262 numHitsForSeedCleaner = cms.int32(50),
263 onlyPixelHitsForSeedCleaner = cms.bool(
False),
265 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryBuilder')),
266 doSeedingRegionRebuilding =
True,
267 useHitsSplitting =
True,
268 cleanTrajectoryAfterInOut =
True,
269 TrajectoryCleaner =
'tobTecStepTrajectoryCleanerBySharedHits'
271 import FastSimulation.Tracking.TrackCandidateProducer_cfi
272 fastSim.toReplaceWith(tobTecStepTrackCandidates,
273 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
274 MinNumberOfCrossedLayers = 3,
275 src =
'tobTecStepSeeds',
276 hitMasks = cms.InputTag(
'tobTecStepMasks')
282 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
283 ComponentName =
'tobTecStepTrajectoryCleanerBySharedHits',
284 fractionShared = 0.09,
285 allowSharedFirstHit =
True
287 trackingLowPU.toModify(tobTecStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
291 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
292 ComponentName =
'tobTecStepFitterSmoother',
295 Fitter =
'tobTecStepRKFitter',
296 Smoother =
'tobTecStepRKSmoother'
298 trackingLowPU.toModify(tobTecStepFitterSmoother, MinNumberOfHits = 8)
300 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
301 ComponentName =
'tobTecStepFitterSmootherForLoopers',
302 Fitter =
'tobTecStepRKFitterForLoopers',
303 Smoother =
'tobTecStepRKSmootherForLoopers'
307 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
308 ComponentName =
'tobTecStepRKFitter',
311 trackingLowPU.toModify(tobTecStepRKTrajectoryFitter, minHits = 8)
313 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
314 ComponentName =
'tobTecStepRKFitterForLoopers',
315 Propagator =
'PropagatorWithMaterialForLoopers',
318 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
319 ComponentName =
'tobTecStepRKSmoother',
320 errorRescaling = 10.0,
323 trackingLowPU.toModify(tobTecStepRKTrajectorySmoother, minHits = 8)
325 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
326 ComponentName =
'tobTecStepRKSmootherForLoopers',
327 Propagator =
'PropagatorWithMaterialForLoopers',
331 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
332 ComponentName =
'tobTecFlexibleKFFittingSmoother',
333 standardFitter =
'tobTecStepFitterSmoother',
334 looperFitter =
'tobTecStepFitterSmootherForLoopers',
340 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
341 src =
'tobTecStepTrackCandidates',
342 AlgorithmName =
'tobTecStep',
344 Fitter =
'tobTecFlexibleKFFittingSmoother',
346 fastSim.toModify(tobTecStepTracks, TTRHBuilder =
'WithoutRefit')
352 tobTecStepClassifier1 = TrackMVAClassifierDetached.clone(
353 src =
'tobTecStepTracks',
354 mva = dict(GBRForestLabel =
'MVASelectorIter6_13TeV'),
355 qualityCuts = [-0.6,-0.45,-0.3]
357 fastSim.toModify(tobTecStepClassifier1, vertices =
'firstStepPrimaryVerticesBeforeMixing')
359 tobTecStepClassifier2 = TrackMVAClassifierPrompt.clone(
360 src =
'tobTecStepTracks',
361 mva = dict(GBRForestLabel =
'MVASelectorIter0_13TeV'),
362 qualityCuts = [0.0,0.0,0.0]
364 fastSim.toModify(tobTecStepClassifier2,vertices =
'firstStepPrimaryVerticesBeforeMixing')
367 tobTecStep = ClassifierMerger.clone(
368 inputClassifiers = [
'tobTecStepClassifier1',
'tobTecStepClassifier2']
370 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
371 trackingPhase1.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
372 mva = dict(GBRForestLabel =
'MVASelectorTobTecStep_Phase1'),
373 qualityCuts = [-0.6,-0.45,-0.3]
378 trackdnn.toReplaceWith(tobTecStep, TrackTfClassifier.clone(
379 src =
'tobTecStepTracks',
380 qualityCuts = qualityCutDictionary[
"TobTecStep"]
382 (trackdnn & fastSim).toModify(tobTecStep,vertices =
'firstStepPrimaryVerticesBeforeMixing')
384 pp_on_AA.toModify(tobTecStep, qualityCuts = [-0.6,-0.3,0.7])
386 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
387 trackingLowPU.toReplaceWith(tobTecStep, RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
388 src =
'tobTecStepTracks',
389 useAnyMVA = cms.bool(
False),
390 GBRForestLabel = cms.string(
'MVASelectorIter6'),
392 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
393 name =
'tobTecStepLoose',
395 res_par = ( 0.003, 0.001 ),
397 maxNumberLostLayers = 1,
398 minNumber3DLayers = 2,
399 d0_par1 = ( 2.0, 4.0 ),
400 dz_par1 = ( 1.8, 4.0 ),
401 d0_par2 = ( 2.0, 4.0 ),
402 dz_par2 = ( 1.8, 4.0 )
404 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
405 name =
'tobTecStepTight',
406 preFilterName =
'tobTecStepLoose',
408 res_par = ( 0.003, 0.001 ),
410 maxNumberLostLayers = 0,
411 minNumber3DLayers = 2,
412 d0_par1 = ( 1.5, 4.0 ),
413 dz_par1 = ( 1.4, 4.0 ),
414 d0_par2 = ( 1.5, 4.0 ),
415 dz_par2 = ( 1.4, 4.0 )
417 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
418 name =
'QualityMasks',
419 preFilterName =
'tobTecStepTight',
421 res_par = ( 0.003, 0.001 ),
423 maxNumberLostLayers = 0,
424 minNumber3DLayers = 2,
425 d0_par1 = ( 1.4, 4.0 ),
426 dz_par1 = ( 1.3, 4.0 ),
427 d0_par2 = ( 1.4, 4.0 ),
428 dz_par2 = ( 1.3, 4.0 )
435 TobTecStepTask = cms.Task(tobTecStepClusters,
436 tobTecStepSeedLayersTripl,
437 tobTecStepTrackingRegionsTripl,
438 tobTecStepHitDoubletsTripl,
439 tobTecStepHitTripletsTripl,
440 tobTecStepSeedsTripl,
441 tobTecStepSeedLayersPair,
442 tobTecStepTrackingRegionsPair,
443 tobTecStepHitDoubletsPair,
446 tobTecStepTrackCandidates,
448 tobTecStepClassifier1,tobTecStepClassifier2,
450 TobTecStep = cms.Sequence(TobTecStepTask)
456 tobTecStepSeedLayers = cms.EDProducer(
'SeedingLayersEDProducer',
457 layerList = cms.vstring(
'TOB1+TOB2',
458 'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
459 'TEC1_pos+TEC2_pos',
'TEC2_pos+TEC3_pos',
460 'TEC3_pos+TEC4_pos',
'TEC4_pos+TEC5_pos',
461 'TEC5_pos+TEC6_pos',
'TEC6_pos+TEC7_pos',
462 'TEC1_neg+TEC2_neg',
'TEC2_neg+TEC3_neg',
463 'TEC3_neg+TEC4_neg',
'TEC4_neg+TEC5_neg',
464 'TEC5_neg+TEC6_neg',
'TEC6_neg+TEC7_neg'),
466 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
467 skipClusters = cms.InputTag(
'tobTecStepClusters'),
468 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny'))
471 matchedRecHits = cms.InputTag(
'siStripMatchedRecHits',
'matchedRecHit'),
472 skipClusters = cms.InputTag(
'tobTecStepClusters'),
474 useRingSlector = cms.bool(
True),
475 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny')),
476 minRing = cms.int32(5),
477 maxRing = cms.int32(5)
481 trackingLowPU.toReplaceWith(TobTecStepTask,
484 tobTecStepSeedLayers,
485 tobTecStepTrackingRegionsPair,
486 tobTecStepHitDoubletsPair,
488 tobTecStepTrackCandidates,
495 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
496 tobTecStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(tobTecStepClusters)
497 fastSim.toReplaceWith(TobTecStepTask,
498 cms.Task(tobTecStepMasks
499 ,tobTecStepTrackingRegionsTripl
500 ,tobTecStepSeedsTripl
501 ,tobTecStepTrackingRegionsPair
504 ,tobTecStepTrackCandidates
506 ,tobTecStepClassifier1,tobTecStepClassifier2