1 import FWCore.ParameterSet.Config
as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
3 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
9 tobTecStepClusters = _cfg.clusterRemoverForIter(
"TobTecStep")
10 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
11 _era.toReplaceWith(tobTecStepClusters, _cfg.clusterRemoverForIter(
"TobTecStep", _eraName, _postfix))
15 tobTecStepSeedLayersTripl = cms.EDProducer(
"SeedingLayersEDProducer",
16 layerList = cms.vstring(
18 'TOB1+TOB2+MTOB3',
'TOB1+TOB2+MTOB4',
20 'TOB1+TOB2+MTEC1_pos',
'TOB1+TOB2+MTEC1_neg',
23 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
24 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
25 skipClusters = cms.InputTag(
'tobTecStepClusters')
28 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
29 skipClusters = cms.InputTag(
'tobTecStepClusters'),
30 rphiRecHits = cms.InputTag(
"siStripMatchedRecHits",
"rphiRecHit")
33 rphiRecHits = cms.InputTag(
"siStripMatchedRecHits",
"rphiRecHit"),
34 skipClusters = cms.InputTag(
'tobTecStepClusters'),
35 useRingSlector = cms.bool(
True),
36 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
37 minRing = cms.int32(6),
38 maxRing = cms.int32(7)
43 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
44 tobTecStepTrackingRegionsTripl = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet =
dict(
46 originHalfLength = 20.0,
50 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
51 from Configuration.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
53 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(tobTecStepTrackingRegionsTripl,
54 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=
dict(
55 ptMinScaling4BigEvts=
False,
64 tobTecStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
65 ComponentName =
'tobTecStepClusterShapeHitFilter',
66 doStripShapeCut = cms.bool(
False),
67 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTight')
70 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
71 tobTecStepHitDoubletsTripl = _hitPairEDProducer.clone(
72 seedingLayers =
"tobTecStepSeedLayersTripl",
73 trackingRegions =
"tobTecStepTrackingRegionsTripl",
74 maxElement = 50000000,
75 produceIntermediateHitDoublets =
True,
77 from RecoTracker.TkSeedGenerator.multiHitFromChi2EDProducer_cfi
import multiHitFromChi2EDProducer
as _multiHitFromChi2EDProducer
78 tobTecStepHitTripletsTripl = _multiHitFromChi2EDProducer.clone(
79 doublets =
"tobTecStepHitDoubletsTripl",
82 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
83 from RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi
import StripSubClusterShapeSeedFilter
as _StripSubClusterShapeSeedFilter
84 _tobTecStepSeedComparitorPSet =
dict(
85 ComponentName =
'CombinedSeedComparitor',
86 mode = cms.string(
"and"),
87 comparitors = cms.VPSet(
89 ComponentName = cms.string(
'PixelClusterShapeSeedComparitor'),
90 FilterAtHelixStage = cms.bool(
True),
91 FilterPixelHits = cms.bool(
False),
92 FilterStripHits = cms.bool(
True),
93 ClusterShapeHitFilterName = cms.string(
'tobTecStepClusterShapeHitFilter'),
94 ClusterShapeCacheSrc = cms.InputTag(
"siPixelClusterShapeCache")
96 _StripSubClusterShapeSeedFilter.clone()
99 tobTecStepSeedsTripl = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
100 seedingHitSets =
"tobTecStepHitTripletsTripl",
101 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
104 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
105 _fastSim_tobTecStepSeedsTripl = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
106 trackingRegions =
"tobTecStepTrackingRegionsTripl",
107 hitMasks = cms.InputTag(
"tobTecStepMasks"),
109 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
111 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory.SeedComparitorPSet=cms.PSet( ComponentName = cms.string(
"none" ) )
112 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory.refitHits =
False 113 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.layerList = tobTecStepSeedLayersTripl.layerList.value()
114 fastSim.toReplaceWith(tobTecStepSeedsTripl,_fastSim_tobTecStepSeedsTripl)
117 tobTecStepSeedLayersPair = cms.EDProducer(
"SeedingLayersEDProducer",
118 layerList = cms.vstring(
'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
119 'TEC1_pos+TEC2_pos',
'TEC1_neg+TEC2_neg',
120 'TEC2_pos+TEC3_pos',
'TEC2_neg+TEC3_neg',
121 'TEC3_pos+TEC4_pos',
'TEC3_neg+TEC4_neg',
122 'TEC4_pos+TEC5_pos',
'TEC4_neg+TEC5_neg',
123 'TEC5_pos+TEC6_pos',
'TEC5_neg+TEC6_neg',
124 'TEC6_pos+TEC7_pos',
'TEC6_neg+TEC7_neg'),
126 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
127 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
128 skipClusters = cms.InputTag(
'tobTecStepClusters')
131 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
132 skipClusters = cms.InputTag(
'tobTecStepClusters'),
133 useRingSlector = cms.bool(
True),
134 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
135 minRing = cms.int32(5),
136 maxRing = cms.int32(5)
140 tobTecStepTrackingRegionsPair = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet =
dict(
142 originHalfLength = 30.0,
146 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(tobTecStepTrackingRegionsPair,
147 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=
dict(
148 ptMinScaling4BigEvts=
False,
157 tobTecStepHitDoubletsPair = _hitPairEDProducer.clone(
158 seedingLayers =
"tobTecStepSeedLayersPair",
159 trackingRegions =
"tobTecStepTrackingRegionsPair",
160 produceSeedingHitSets =
True,
161 maxElementTotal = 12000000,
163 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
164 tobTecStepSeedsPair = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
165 seedingHitSets =
"tobTecStepHitDoubletsPair",
166 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
169 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
170 fastSim.toReplaceWith(tobTecStepSeedsPair,
171 FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
172 trackingRegions =
"tobTecStepTrackingRegionsPair",
173 hitMasks = cms.InputTag(
"tobTecStepMasks"),
174 seedFinderSelector =
dict(layerList = tobTecStepSeedLayersPair.layerList.value())
181 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
182 tobTecStepSeeds.seedCollections = cms.VInputTag(cms.InputTag(
'tobTecStepSeedsTripl'),cms.InputTag(
'tobTecStepSeedsPair'))
185 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
186 trackingLowPU.toModify(tobTecStepHitDoubletsPair, seedingLayers =
'tobTecStepSeedLayers')
187 trackingLowPU.toReplaceWith(tobTecStepSeeds, _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
188 seedingHitSets =
"tobTecStepHitDoubletsPair",
194 _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
196 minimumNumberOfHits = 5,
200 tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone(
203 trackingLowPU.toReplaceWith(tobTecStepTrajectoryFilter, _tobTecStepTrajectoryFilterBase.clone(
204 minimumNumberOfHits = 6,
206 for e
in [pp_on_XeXe_2017, pp_on_AA_2018]:
207 e.toModify(tobTecStepTrajectoryFilter, minPt=2.0)
209 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
210 minimumNumberOfHits = 4,
214 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
215 tobTecStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
216 ComponentName = cms.string(
'tobTecStepChi2Est'),
217 nSigma = cms.double(3.0),
218 MaxChi2 = cms.double(16.0),
219 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight'))
221 trackingLowPU.toModify(tobTecStepChi2Est,
222 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
227 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
228 MeasurementTrackerName =
'',
229 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryFilter')),
230 inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepInOutTrajectoryFilter')),
231 useSameTrajFilter =
False,
232 minNrOfHitsForRebuild = 4,
233 alwaysUseInvalidHits =
False,
235 estimator = cms.string(
'tobTecStepChi2Est'),
237 maxDPhiForLooperReconstruction = cms.double(2.0),
238 maxPtForLooperReconstruction = cms.double(0.7)
253 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
254 src = cms.InputTag(
'tobTecStepSeeds'),
255 clustersToSkip = cms.InputTag(
'tobTecStepClusters'),
257 numHitsForSeedCleaner = cms.int32(50),
258 onlyPixelHitsForSeedCleaner = cms.bool(
True),
260 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryBuilder')),
261 doSeedingRegionRebuilding =
True,
262 useHitsSplitting =
True,
263 cleanTrajectoryAfterInOut =
True,
264 TrajectoryCleaner =
'tobTecStepTrajectoryCleanerBySharedHits' 266 import FastSimulation.Tracking.TrackCandidateProducer_cfi
267 fastSim.toReplaceWith(tobTecStepTrackCandidates,
268 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
269 MinNumberOfCrossedLayers = 3,
270 src = cms.InputTag(
"tobTecStepSeeds"),
271 hitMasks = cms.InputTag(
"tobTecStepMasks")
277 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
278 ComponentName = cms.string(
'tobTecStepTrajectoryCleanerBySharedHits'),
279 fractionShared = cms.double(0.09),
280 allowSharedFirstHit = cms.bool(
True)
282 trackingLowPU.toModify(tobTecStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
286 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
287 ComponentName =
'tobTecStepFitterSmoother',
290 Fitter = cms.string(
'tobTecStepRKFitter'),
291 Smoother = cms.string(
'tobTecStepRKSmoother')
293 trackingLowPU.toModify(tobTecStepFitterSmoother, MinNumberOfHits = 8)
295 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
296 ComponentName =
'tobTecStepFitterSmootherForLoopers',
297 Fitter = cms.string(
'tobTecStepRKFitterForLoopers'),
298 Smoother = cms.string(
'tobTecStepRKSmootherForLoopers')
302 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
303 ComponentName = cms.string(
'tobTecStepRKFitter'),
306 trackingLowPU.toModify(tobTecStepRKTrajectoryFitter, minHits = 8)
308 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
309 ComponentName = cms.string(
'tobTecStepRKFitterForLoopers'),
310 Propagator = cms.string(
'PropagatorWithMaterialForLoopers'),
313 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
314 ComponentName = cms.string(
'tobTecStepRKSmoother'),
315 errorRescaling = 10.0,
318 trackingLowPU.toModify(tobTecStepRKTrajectorySmoother, minHits = 8)
320 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
321 ComponentName = cms.string(
'tobTecStepRKSmootherForLoopers'),
322 Propagator = cms.string(
'PropagatorWithMaterialForLoopers'),
326 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
327 ComponentName = cms.string(
'tobTecFlexibleKFFittingSmoother'),
328 standardFitter = cms.string(
'tobTecStepFitterSmoother'),
329 looperFitter = cms.string(
'tobTecStepFitterSmootherForLoopers'),
335 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
336 src =
'tobTecStepTrackCandidates',
337 AlgorithmName = cms.string(
'tobTecStep'),
339 Fitter =
'tobTecFlexibleKFFittingSmoother',
341 fastSim.toModify(tobTecStepTracks, TTRHBuilder =
'WithoutRefit')
347 tobTecStepClassifier1 = TrackMVAClassifierDetached.clone()
348 tobTecStepClassifier1.src =
'tobTecStepTracks' 349 tobTecStepClassifier1.mva.GBRForestLabel =
'MVASelectorIter6_13TeV' 350 tobTecStepClassifier1.qualityCuts = [-0.6,-0.45,-0.3]
351 fastSim.toModify(tobTecStepClassifier1, vertices =
"firstStepPrimaryVerticesBeforeMixing")
353 tobTecStepClassifier2 = TrackMVAClassifierPrompt.clone()
354 tobTecStepClassifier2.src =
'tobTecStepTracks' 355 tobTecStepClassifier2.mva.GBRForestLabel =
'MVASelectorIter0_13TeV' 356 tobTecStepClassifier2.qualityCuts = [0.0,0.0,0.0]
357 fastSim.toModify(tobTecStepClassifier2,vertices =
"firstStepPrimaryVerticesBeforeMixing")
360 tobTecStep = ClassifierMerger.clone()
361 tobTecStep.inputClassifiers=[
'tobTecStepClassifier1',
'tobTecStepClassifier2']
363 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
364 trackingPhase1.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
365 mva =
dict(GBRForestLabel =
'MVASelectorTobTecStep_Phase1'),
366 qualityCuts = [-0.6,-0.45,-0.3],
368 pp_on_AA_2018.toModify(tobTecStep, qualityCuts = [-0.6,-0.3,0.7])
370 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
371 trackingLowPU.toReplaceWith(tobTecStep, RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
372 src =
'tobTecStepTracks',
373 useAnyMVA = cms.bool(
False),
374 GBRForestLabel = cms.string(
'MVASelectorIter6'),
376 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
377 name =
'tobTecStepLoose',
379 res_par = ( 0.003, 0.001 ),
381 maxNumberLostLayers = 1,
382 minNumber3DLayers = 2,
383 d0_par1 = ( 2.0, 4.0 ),
384 dz_par1 = ( 1.8, 4.0 ),
385 d0_par2 = ( 2.0, 4.0 ),
386 dz_par2 = ( 1.8, 4.0 )
388 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
389 name =
'tobTecStepTight',
390 preFilterName =
'tobTecStepLoose',
392 res_par = ( 0.003, 0.001 ),
394 maxNumberLostLayers = 0,
395 minNumber3DLayers = 2,
396 d0_par1 = ( 1.5, 4.0 ),
397 dz_par1 = ( 1.4, 4.0 ),
398 d0_par2 = ( 1.5, 4.0 ),
399 dz_par2 = ( 1.4, 4.0 )
401 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
402 name =
'QualityMasks',
403 preFilterName =
'tobTecStepTight',
405 res_par = ( 0.003, 0.001 ),
407 maxNumberLostLayers = 0,
408 minNumber3DLayers = 2,
409 d0_par1 = ( 1.4, 4.0 ),
410 dz_par1 = ( 1.3, 4.0 ),
411 d0_par2 = ( 1.4, 4.0 ),
412 dz_par2 = ( 1.3, 4.0 )
419 TobTecStepTask = cms.Task(tobTecStepClusters,
420 tobTecStepSeedLayersTripl,
421 tobTecStepTrackingRegionsTripl,
422 tobTecStepHitDoubletsTripl,
423 tobTecStepHitTripletsTripl,
424 tobTecStepSeedsTripl,
425 tobTecStepSeedLayersPair,
426 tobTecStepTrackingRegionsPair,
427 tobTecStepHitDoubletsPair,
430 tobTecStepTrackCandidates,
432 tobTecStepClassifier1,tobTecStepClassifier2,
434 TobTecStep = cms.Sequence(TobTecStepTask)
440 tobTecStepSeedLayers = cms.EDProducer(
"SeedingLayersEDProducer",
441 layerList = cms.vstring(
'TOB1+TOB2',
442 'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
443 'TEC1_pos+TEC2_pos',
'TEC2_pos+TEC3_pos',
444 'TEC3_pos+TEC4_pos',
'TEC4_pos+TEC5_pos',
445 'TEC5_pos+TEC6_pos',
'TEC6_pos+TEC7_pos',
446 'TEC1_neg+TEC2_neg',
'TEC2_neg+TEC3_neg',
447 'TEC3_neg+TEC4_neg',
'TEC4_neg+TEC5_neg',
448 'TEC5_neg+TEC6_neg',
'TEC6_neg+TEC7_neg'),
450 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
451 skipClusters = cms.InputTag(
'tobTecStepClusters'),
452 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny'))
455 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
456 skipClusters = cms.InputTag(
'tobTecStepClusters'),
458 useRingSlector = cms.bool(
True),
459 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny')),
460 minRing = cms.int32(5),
461 maxRing = cms.int32(5)
465 trackingLowPU.toReplaceWith(TobTecStepTask,
468 tobTecStepSeedLayers,
469 tobTecStepTrackingRegionsPair,
470 tobTecStepHitDoubletsPair,
472 tobTecStepTrackCandidates,
479 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
480 tobTecStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(tobTecStepClusters)
481 fastSim.toReplaceWith(TobTecStepTask,
482 cms.Task(tobTecStepMasks
483 ,tobTecStepTrackingRegionsTripl
484 ,tobTecStepSeedsTripl
485 ,tobTecStepTrackingRegionsPair
488 ,tobTecStepTrackCandidates
490 ,tobTecStepClassifier1,tobTecStepClassifier2
def _hitSetProducerToFactoryPSet(producer)