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.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
56 (pp_on_XeXe_2017 | pp_on_AA_2018).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 _fastSim_tobTecStepSeedsTripl = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
109 trackingRegions =
"tobTecStepTrackingRegionsTripl",
110 hitMasks = cms.InputTag(
"tobTecStepMasks"),
112 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
114 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory.SeedComparitorPSet=cms.PSet( ComponentName = cms.string(
"none" ) )
115 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory.refitHits =
False 116 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.layerList = tobTecStepSeedLayersTripl.layerList.value()
117 fastSim.toReplaceWith(tobTecStepSeedsTripl,_fastSim_tobTecStepSeedsTripl)
120 tobTecStepSeedLayersPair = cms.EDProducer(
"SeedingLayersEDProducer",
121 layerList = cms.vstring(
'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
122 'TEC1_pos+TEC2_pos',
'TEC1_neg+TEC2_neg',
123 'TEC2_pos+TEC3_pos',
'TEC2_neg+TEC3_neg',
124 'TEC3_pos+TEC4_pos',
'TEC3_neg+TEC4_neg',
125 'TEC4_pos+TEC5_pos',
'TEC4_neg+TEC5_neg',
126 'TEC5_pos+TEC6_pos',
'TEC5_neg+TEC6_neg',
127 'TEC6_pos+TEC7_pos',
'TEC6_neg+TEC7_neg'),
129 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
130 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
131 skipClusters = cms.InputTag(
'tobTecStepClusters')
134 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
135 skipClusters = cms.InputTag(
'tobTecStepClusters'),
136 useRingSlector = cms.bool(
True),
137 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
138 minRing = cms.int32(5),
139 maxRing = cms.int32(5)
143 tobTecStepTrackingRegionsPair = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet =
dict(
145 originHalfLength = 30.0,
149 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(tobTecStepTrackingRegionsPair,
150 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=
dict(
151 ptMinScaling4BigEvts=
False,
160 tobTecStepHitDoubletsPair = _hitPairEDProducer.clone(
161 seedingLayers =
"tobTecStepSeedLayersPair",
162 trackingRegions =
"tobTecStepTrackingRegionsPair",
163 produceSeedingHitSets =
True,
164 maxElementTotal = 12000000,
166 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
167 tobTecStepSeedsPair = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
168 seedingHitSets =
"tobTecStepHitDoubletsPair",
169 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
172 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
173 fastSim.toReplaceWith(tobTecStepSeedsPair,
174 FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
175 trackingRegions =
"tobTecStepTrackingRegionsPair",
176 hitMasks = cms.InputTag(
"tobTecStepMasks"),
177 seedFinderSelector =
dict(layerList = tobTecStepSeedLayersPair.layerList.value())
184 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
185 tobTecStepSeeds.seedCollections = cms.VInputTag(cms.InputTag(
'tobTecStepSeedsTripl'),cms.InputTag(
'tobTecStepSeedsPair'))
188 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
189 trackingLowPU.toModify(tobTecStepHitDoubletsPair, seedingLayers =
'tobTecStepSeedLayers')
190 trackingLowPU.toReplaceWith(tobTecStepSeeds, _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
191 seedingHitSets =
"tobTecStepHitDoubletsPair",
197 _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
199 minimumNumberOfHits = 5,
203 tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone(
206 trackingLowPU.toReplaceWith(tobTecStepTrajectoryFilter, _tobTecStepTrajectoryFilterBase.clone(
207 minimumNumberOfHits = 6,
209 for e
in [pp_on_XeXe_2017, pp_on_AA_2018]:
210 e.toModify(tobTecStepTrajectoryFilter, minPt=2.0)
212 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
213 minimumNumberOfHits = 4,
217 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
218 tobTecStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
219 ComponentName = cms.string(
'tobTecStepChi2Est'),
220 nSigma = cms.double(3.0),
221 MaxChi2 = cms.double(16.0),
222 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight'))
224 trackingLowPU.toModify(tobTecStepChi2Est,
225 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
230 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
231 MeasurementTrackerName =
'',
232 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryFilter')),
233 inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepInOutTrajectoryFilter')),
234 useSameTrajFilter =
False,
235 minNrOfHitsForRebuild = 4,
236 alwaysUseInvalidHits =
False,
238 estimator = cms.string(
'tobTecStepChi2Est'),
240 maxDPhiForLooperReconstruction = cms.double(2.0),
241 maxPtForLooperReconstruction = cms.double(0.7)
256 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
257 src = cms.InputTag(
'tobTecStepSeeds'),
258 clustersToSkip = cms.InputTag(
'tobTecStepClusters'),
260 numHitsForSeedCleaner = cms.int32(50),
261 onlyPixelHitsForSeedCleaner = cms.bool(
True),
263 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryBuilder')),
264 doSeedingRegionRebuilding =
True,
265 useHitsSplitting =
True,
266 cleanTrajectoryAfterInOut =
True,
267 TrajectoryCleaner =
'tobTecStepTrajectoryCleanerBySharedHits' 269 import FastSimulation.Tracking.TrackCandidateProducer_cfi
270 fastSim.toReplaceWith(tobTecStepTrackCandidates,
271 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
272 MinNumberOfCrossedLayers = 3,
273 src = cms.InputTag(
"tobTecStepSeeds"),
274 hitMasks = cms.InputTag(
"tobTecStepMasks")
280 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
281 ComponentName = cms.string(
'tobTecStepTrajectoryCleanerBySharedHits'),
282 fractionShared = cms.double(0.09),
283 allowSharedFirstHit = cms.bool(
True)
285 trackingLowPU.toModify(tobTecStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
289 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
290 ComponentName =
'tobTecStepFitterSmoother',
293 Fitter = cms.string(
'tobTecStepRKFitter'),
294 Smoother = cms.string(
'tobTecStepRKSmoother')
296 trackingLowPU.toModify(tobTecStepFitterSmoother, MinNumberOfHits = 8)
298 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
299 ComponentName =
'tobTecStepFitterSmootherForLoopers',
300 Fitter = cms.string(
'tobTecStepRKFitterForLoopers'),
301 Smoother = cms.string(
'tobTecStepRKSmootherForLoopers')
305 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
306 ComponentName = cms.string(
'tobTecStepRKFitter'),
309 trackingLowPU.toModify(tobTecStepRKTrajectoryFitter, minHits = 8)
311 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
312 ComponentName = cms.string(
'tobTecStepRKFitterForLoopers'),
313 Propagator = cms.string(
'PropagatorWithMaterialForLoopers'),
316 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
317 ComponentName = cms.string(
'tobTecStepRKSmoother'),
318 errorRescaling = 10.0,
321 trackingLowPU.toModify(tobTecStepRKTrajectorySmoother, minHits = 8)
323 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
324 ComponentName = cms.string(
'tobTecStepRKSmootherForLoopers'),
325 Propagator = cms.string(
'PropagatorWithMaterialForLoopers'),
329 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
330 ComponentName = cms.string(
'tobTecFlexibleKFFittingSmoother'),
331 standardFitter = cms.string(
'tobTecStepFitterSmoother'),
332 looperFitter = cms.string(
'tobTecStepFitterSmootherForLoopers'),
338 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
339 src =
'tobTecStepTrackCandidates',
340 AlgorithmName = cms.string(
'tobTecStep'),
342 Fitter =
'tobTecFlexibleKFFittingSmoother',
344 fastSim.toModify(tobTecStepTracks, TTRHBuilder =
'WithoutRefit')
350 tobTecStepClassifier1 = TrackMVAClassifierDetached.clone()
351 tobTecStepClassifier1.src =
'tobTecStepTracks' 352 tobTecStepClassifier1.mva.GBRForestLabel =
'MVASelectorIter6_13TeV' 353 tobTecStepClassifier1.qualityCuts = [-0.6,-0.45,-0.3]
354 fastSim.toModify(tobTecStepClassifier1, vertices =
"firstStepPrimaryVerticesBeforeMixing")
356 tobTecStepClassifier2 = TrackMVAClassifierPrompt.clone()
357 tobTecStepClassifier2.src =
'tobTecStepTracks' 358 tobTecStepClassifier2.mva.GBRForestLabel =
'MVASelectorIter0_13TeV' 359 tobTecStepClassifier2.qualityCuts = [0.0,0.0,0.0]
360 fastSim.toModify(tobTecStepClassifier2,vertices =
"firstStepPrimaryVerticesBeforeMixing")
363 tobTecStep = ClassifierMerger.clone()
364 tobTecStep.inputClassifiers=[
'tobTecStepClassifier1',
'tobTecStepClassifier2']
366 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
367 trackingPhase1.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
368 mva =
dict(GBRForestLabel =
'MVASelectorTobTecStep_Phase1'),
369 qualityCuts = [-0.6,-0.45,-0.3]
374 trackdnn.toReplaceWith(tobTecStep, TrackLwtnnClassifier.clone(
375 src =
'tobTecStepTracks',
376 qualityCuts = [-0.4, -0.25, -0.1]
378 (trackdnn & fastSim).toModify(tobTecStep,vertices =
"firstStepPrimaryVerticesBeforeMixing")
380 pp_on_AA_2018.toModify(tobTecStep, qualityCuts = [-0.6,-0.3,0.7])
382 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
383 trackingLowPU.toReplaceWith(tobTecStep, RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
384 src =
'tobTecStepTracks',
385 useAnyMVA = cms.bool(
False),
386 GBRForestLabel = cms.string(
'MVASelectorIter6'),
388 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
389 name =
'tobTecStepLoose',
391 res_par = ( 0.003, 0.001 ),
393 maxNumberLostLayers = 1,
394 minNumber3DLayers = 2,
395 d0_par1 = ( 2.0, 4.0 ),
396 dz_par1 = ( 1.8, 4.0 ),
397 d0_par2 = ( 2.0, 4.0 ),
398 dz_par2 = ( 1.8, 4.0 )
400 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
401 name =
'tobTecStepTight',
402 preFilterName =
'tobTecStepLoose',
404 res_par = ( 0.003, 0.001 ),
406 maxNumberLostLayers = 0,
407 minNumber3DLayers = 2,
408 d0_par1 = ( 1.5, 4.0 ),
409 dz_par1 = ( 1.4, 4.0 ),
410 d0_par2 = ( 1.5, 4.0 ),
411 dz_par2 = ( 1.4, 4.0 )
413 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
414 name =
'QualityMasks',
415 preFilterName =
'tobTecStepTight',
417 res_par = ( 0.003, 0.001 ),
419 maxNumberLostLayers = 0,
420 minNumber3DLayers = 2,
421 d0_par1 = ( 1.4, 4.0 ),
422 dz_par1 = ( 1.3, 4.0 ),
423 d0_par2 = ( 1.4, 4.0 ),
424 dz_par2 = ( 1.3, 4.0 )
431 TobTecStepTask = cms.Task(tobTecStepClusters,
432 tobTecStepSeedLayersTripl,
433 tobTecStepTrackingRegionsTripl,
434 tobTecStepHitDoubletsTripl,
435 tobTecStepHitTripletsTripl,
436 tobTecStepSeedsTripl,
437 tobTecStepSeedLayersPair,
438 tobTecStepTrackingRegionsPair,
439 tobTecStepHitDoubletsPair,
442 tobTecStepTrackCandidates,
444 tobTecStepClassifier1,tobTecStepClassifier2,
446 TobTecStep = cms.Sequence(TobTecStepTask)
452 tobTecStepSeedLayers = cms.EDProducer(
"SeedingLayersEDProducer",
453 layerList = cms.vstring(
'TOB1+TOB2',
454 'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
455 'TEC1_pos+TEC2_pos',
'TEC2_pos+TEC3_pos',
456 'TEC3_pos+TEC4_pos',
'TEC4_pos+TEC5_pos',
457 'TEC5_pos+TEC6_pos',
'TEC6_pos+TEC7_pos',
458 'TEC1_neg+TEC2_neg',
'TEC2_neg+TEC3_neg',
459 'TEC3_neg+TEC4_neg',
'TEC4_neg+TEC5_neg',
460 'TEC5_neg+TEC6_neg',
'TEC6_neg+TEC7_neg'),
462 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
463 skipClusters = cms.InputTag(
'tobTecStepClusters'),
464 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny'))
467 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
468 skipClusters = cms.InputTag(
'tobTecStepClusters'),
470 useRingSlector = cms.bool(
True),
471 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny')),
472 minRing = cms.int32(5),
473 maxRing = cms.int32(5)
477 trackingLowPU.toReplaceWith(TobTecStepTask,
480 tobTecStepSeedLayers,
481 tobTecStepTrackingRegionsPair,
482 tobTecStepHitDoubletsPair,
484 tobTecStepTrackCandidates,
491 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
492 tobTecStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(tobTecStepClusters)
493 fastSim.toReplaceWith(TobTecStepTask,
494 cms.Task(tobTecStepMasks
495 ,tobTecStepTrackingRegionsTripl
496 ,tobTecStepSeedsTripl
497 ,tobTecStepTrackingRegionsPair
500 ,tobTecStepTrackCandidates
502 ,tobTecStepClassifier1,tobTecStepClassifier2
def _hitSetProducerToFactoryPSet(producer)