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 RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff
import globalTrackingRegionWithVertices
as _globalTrackingRegionWithVertices
52 pp_on_XeXe_2017.toReplaceWith(tobTecStepTrackingRegionsTripl,
53 _globalTrackingRegionWithVertices.clone(RegionPSet=
dict(
62 tobTecStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
63 ComponentName =
'tobTecStepClusterShapeHitFilter',
64 doStripShapeCut = cms.bool(
False),
65 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTight')
68 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
69 tobTecStepHitDoubletsTripl = _hitPairEDProducer.clone(
70 seedingLayers =
"tobTecStepSeedLayersTripl",
71 trackingRegions =
"tobTecStepTrackingRegionsTripl",
73 produceIntermediateHitDoublets =
True,
75 from RecoTracker.TkSeedGenerator.multiHitFromChi2EDProducer_cfi
import multiHitFromChi2EDProducer
as _multiHitFromChi2EDProducer
76 tobTecStepHitTripletsTripl = _multiHitFromChi2EDProducer.clone(
77 doublets =
"tobTecStepHitDoubletsTripl",
80 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
81 from RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi
import StripSubClusterShapeSeedFilter
as _StripSubClusterShapeSeedFilter
82 _tobTecStepSeedComparitorPSet =
dict(
83 ComponentName =
'CombinedSeedComparitor',
84 mode = cms.string(
"and"),
85 comparitors = cms.VPSet(
87 ComponentName = cms.string(
'PixelClusterShapeSeedComparitor'),
88 FilterAtHelixStage = cms.bool(
True),
89 FilterPixelHits = cms.bool(
False),
90 FilterStripHits = cms.bool(
True),
91 ClusterShapeHitFilterName = cms.string(
'tobTecStepClusterShapeHitFilter'),
92 ClusterShapeCacheSrc = cms.InputTag(
"siPixelClusterShapeCache")
94 _StripSubClusterShapeSeedFilter.clone()
97 tobTecStepSeedsTripl = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
98 seedingHitSets =
"tobTecStepHitTripletsTripl",
99 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
102 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
103 _fastSim_tobTecStepSeedsTripl = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
104 trackingRegions =
"tobTecStepTrackingRegionsTripl",
105 hitMasks = cms.InputTag(
"tobTecStepMasks"),
107 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
109 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory.SeedComparitorPSet=cms.PSet( ComponentName = cms.string(
"none" ) )
110 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory.refitHits =
False 111 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.layerList = tobTecStepSeedLayersTripl.layerList.value()
112 fastSim.toReplaceWith(tobTecStepSeedsTripl,_fastSim_tobTecStepSeedsTripl)
115 tobTecStepSeedLayersPair = cms.EDProducer(
"SeedingLayersEDProducer",
116 layerList = cms.vstring(
'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
117 'TEC1_pos+TEC2_pos',
'TEC1_neg+TEC2_neg',
118 'TEC2_pos+TEC3_pos',
'TEC2_neg+TEC3_neg',
119 'TEC3_pos+TEC4_pos',
'TEC3_neg+TEC4_neg',
120 'TEC4_pos+TEC5_pos',
'TEC4_neg+TEC5_neg',
121 'TEC5_pos+TEC6_pos',
'TEC5_neg+TEC6_neg',
122 'TEC6_pos+TEC7_pos',
'TEC6_neg+TEC7_neg'),
124 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
125 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
126 skipClusters = cms.InputTag(
'tobTecStepClusters')
129 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
130 skipClusters = cms.InputTag(
'tobTecStepClusters'),
131 useRingSlector = cms.bool(
True),
132 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
133 minRing = cms.int32(5),
134 maxRing = cms.int32(5)
138 tobTecStepTrackingRegionsPair = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet =
dict(
140 originHalfLength = 30.0,
144 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff
import globalTrackingRegionWithVertices
as _globalTrackingRegionWithVertices
145 pp_on_XeXe_2017.toReplaceWith(tobTecStepTrackingRegionsPair,
146 _globalTrackingRegionWithVertices.clone(RegionPSet=
dict(
154 tobTecStepHitDoubletsPair = _hitPairEDProducer.clone(
155 seedingLayers =
"tobTecStepSeedLayersPair",
156 trackingRegions =
"tobTecStepTrackingRegionsPair",
157 produceSeedingHitSets =
True,
159 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
160 tobTecStepSeedsPair = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
161 seedingHitSets =
"tobTecStepHitDoubletsPair",
162 SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
165 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
166 fastSim.toReplaceWith(tobTecStepSeedsPair,
167 FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
168 trackingRegions =
"tobTecStepTrackingRegionsPair",
169 hitMasks = cms.InputTag(
"tobTecStepMasks"),
170 seedFinderSelector =
dict(layerList = tobTecStepSeedLayersPair.layerList.value())
177 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
178 tobTecStepSeeds.seedCollections = cms.VInputTag(cms.InputTag(
'tobTecStepSeedsTripl'),cms.InputTag(
'tobTecStepSeedsPair'))
181 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
182 trackingLowPU.toModify(tobTecStepHitDoubletsPair, seedingLayers =
'tobTecStepSeedLayers')
183 trackingLowPU.toReplaceWith(tobTecStepSeeds, _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
184 seedingHitSets =
"tobTecStepHitDoubletsPair",
190 _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
192 minimumNumberOfHits = 5,
196 tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone(
199 trackingLowPU.toReplaceWith(tobTecStepTrajectoryFilter, _tobTecStepTrajectoryFilterBase.clone(
200 minimumNumberOfHits = 6,
202 pp_on_XeXe_2017.toModify(tobTecStepTrajectoryFilter, minPt=2.0)
204 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
205 minimumNumberOfHits = 4,
209 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
210 tobTecStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
211 ComponentName = cms.string(
'tobTecStepChi2Est'),
212 nSigma = cms.double(3.0),
213 MaxChi2 = cms.double(16.0),
214 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight'))
216 trackingLowPU.toModify(tobTecStepChi2Est,
217 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
222 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
223 MeasurementTrackerName =
'',
224 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryFilter')),
225 inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'tobTecStepInOutTrajectoryFilter')),
226 useSameTrajFilter =
False,
227 minNrOfHitsForRebuild = 4,
228 alwaysUseInvalidHits =
False,
230 estimator = cms.string(
'tobTecStepChi2Est'),
232 maxDPhiForLooperReconstruction = cms.double(2.0),
233 maxPtForLooperReconstruction = cms.double(0.7)
248 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
249 src = cms.InputTag(
'tobTecStepSeeds'),
250 clustersToSkip = cms.InputTag(
'tobTecStepClusters'),
252 numHitsForSeedCleaner = cms.int32(50),
253 onlyPixelHitsForSeedCleaner = cms.bool(
True),
255 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'tobTecStepTrajectoryBuilder')),
256 doSeedingRegionRebuilding =
True,
257 useHitsSplitting =
True,
258 cleanTrajectoryAfterInOut =
True,
259 TrajectoryCleaner =
'tobTecStepTrajectoryCleanerBySharedHits' 261 import FastSimulation.Tracking.TrackCandidateProducer_cfi
262 fastSim.toReplaceWith(tobTecStepTrackCandidates,
263 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
264 MinNumberOfCrossedLayers = 3,
265 src = cms.InputTag(
"tobTecStepSeeds"),
266 hitMasks = cms.InputTag(
"tobTecStepMasks")
272 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
273 ComponentName = cms.string(
'tobTecStepTrajectoryCleanerBySharedHits'),
274 fractionShared = cms.double(0.09),
275 allowSharedFirstHit = cms.bool(
True)
277 trackingLowPU.toModify(tobTecStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
281 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
282 ComponentName =
'tobTecStepFitterSmoother',
285 Fitter = cms.string(
'tobTecStepRKFitter'),
286 Smoother = cms.string(
'tobTecStepRKSmoother')
288 trackingLowPU.toModify(tobTecStepFitterSmoother, MinNumberOfHits = 8)
290 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
291 ComponentName =
'tobTecStepFitterSmootherForLoopers',
292 Fitter = cms.string(
'tobTecStepRKFitterForLoopers'),
293 Smoother = cms.string(
'tobTecStepRKSmootherForLoopers')
297 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
298 ComponentName = cms.string(
'tobTecStepRKFitter'),
301 trackingLowPU.toModify(tobTecStepRKTrajectoryFitter, minHits = 8)
303 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
304 ComponentName = cms.string(
'tobTecStepRKFitterForLoopers'),
305 Propagator = cms.string(
'PropagatorWithMaterialForLoopers'),
308 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
309 ComponentName = cms.string(
'tobTecStepRKSmoother'),
310 errorRescaling = 10.0,
313 trackingLowPU.toModify(tobTecStepRKTrajectorySmoother, minHits = 8)
315 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
316 ComponentName = cms.string(
'tobTecStepRKSmootherForLoopers'),
317 Propagator = cms.string(
'PropagatorWithMaterialForLoopers'),
321 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
322 ComponentName = cms.string(
'tobTecFlexibleKFFittingSmoother'),
323 standardFitter = cms.string(
'tobTecStepFitterSmoother'),
324 looperFitter = cms.string(
'tobTecStepFitterSmootherForLoopers'),
330 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
331 src =
'tobTecStepTrackCandidates',
332 AlgorithmName = cms.string(
'tobTecStep'),
334 Fitter =
'tobTecFlexibleKFFittingSmoother',
336 fastSim.toModify(tobTecStepTracks, TTRHBuilder =
'WithoutRefit')
342 tobTecStepClassifier1 = TrackMVAClassifierDetached.clone()
343 tobTecStepClassifier1.src =
'tobTecStepTracks' 344 tobTecStepClassifier1.mva.GBRForestLabel =
'MVASelectorIter6_13TeV' 345 tobTecStepClassifier1.qualityCuts = [-0.6,-0.45,-0.3]
346 fastSim.toModify(tobTecStepClassifier1, vertices =
"firstStepPrimaryVerticesBeforeMixing")
348 tobTecStepClassifier2 = TrackMVAClassifierPrompt.clone()
349 tobTecStepClassifier2.src =
'tobTecStepTracks' 350 tobTecStepClassifier2.mva.GBRForestLabel =
'MVASelectorIter0_13TeV' 351 tobTecStepClassifier2.qualityCuts = [0.0,0.0,0.0]
352 fastSim.toModify(tobTecStepClassifier2,vertices =
"firstStepPrimaryVerticesBeforeMixing")
355 tobTecStep = ClassifierMerger.clone()
356 tobTecStep.inputClassifiers=[
'tobTecStepClassifier1',
'tobTecStepClassifier2']
358 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
359 from Configuration.Eras.Modifier_trackingPhase1QuadProp_cff
import trackingPhase1QuadProp
360 trackingPhase1.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
361 mva =
dict(GBRForestLabel =
'MVASelectorTobTecStep_Phase1'),
362 qualityCuts = [-0.6,-0.45,-0.3],
364 trackingPhase1QuadProp.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
365 mva =
dict(GBRForestLabel =
'MVASelectorTobTecStep_Phase1'),
366 qualityCuts = [-0.6,-0.45,-0.3],
369 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
370 trackingLowPU.toReplaceWith(tobTecStep, RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
371 src =
'tobTecStepTracks',
372 useAnyMVA = cms.bool(
False),
373 GBRForestLabel = cms.string(
'MVASelectorIter6'),
375 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
376 name =
'tobTecStepLoose',
378 res_par = ( 0.003, 0.001 ),
380 maxNumberLostLayers = 1,
381 minNumber3DLayers = 2,
382 d0_par1 = ( 2.0, 4.0 ),
383 dz_par1 = ( 1.8, 4.0 ),
384 d0_par2 = ( 2.0, 4.0 ),
385 dz_par2 = ( 1.8, 4.0 )
387 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
388 name =
'tobTecStepTight',
389 preFilterName =
'tobTecStepLoose',
391 res_par = ( 0.003, 0.001 ),
393 maxNumberLostLayers = 0,
394 minNumber3DLayers = 2,
395 d0_par1 = ( 1.5, 4.0 ),
396 dz_par1 = ( 1.4, 4.0 ),
397 d0_par2 = ( 1.5, 4.0 ),
398 dz_par2 = ( 1.4, 4.0 )
400 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
401 name =
'QualityMasks',
402 preFilterName =
'tobTecStepTight',
404 res_par = ( 0.003, 0.001 ),
406 maxNumberLostLayers = 0,
407 minNumber3DLayers = 2,
408 d0_par1 = ( 1.4, 4.0 ),
409 dz_par1 = ( 1.3, 4.0 ),
410 d0_par2 = ( 1.4, 4.0 ),
411 dz_par2 = ( 1.3, 4.0 )
418 TobTecStep = cms.Sequence(tobTecStepClusters*
419 tobTecStepSeedLayersTripl*
420 tobTecStepTrackingRegionsTripl*
421 tobTecStepHitDoubletsTripl*
422 tobTecStepHitTripletsTripl*
423 tobTecStepSeedsTripl*
424 tobTecStepSeedLayersPair*
425 tobTecStepTrackingRegionsPair*
426 tobTecStepHitDoubletsPair*
429 tobTecStepTrackCandidates*
431 tobTecStepClassifier1*tobTecStepClassifier2*
439 tobTecStepSeedLayers = cms.EDProducer(
"SeedingLayersEDProducer",
440 layerList = cms.vstring(
'TOB1+TOB2',
441 'TOB1+TEC1_pos',
'TOB1+TEC1_neg',
442 'TEC1_pos+TEC2_pos',
'TEC2_pos+TEC3_pos',
443 'TEC3_pos+TEC4_pos',
'TEC4_pos+TEC5_pos',
444 'TEC5_pos+TEC6_pos',
'TEC6_pos+TEC7_pos',
445 'TEC1_neg+TEC2_neg',
'TEC2_neg+TEC3_neg',
446 'TEC3_neg+TEC4_neg',
'TEC4_neg+TEC5_neg',
447 'TEC5_neg+TEC6_neg',
'TEC6_neg+TEC7_neg'),
449 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
450 skipClusters = cms.InputTag(
'tobTecStepClusters'),
451 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny'))
454 matchedRecHits = cms.InputTag(
"siStripMatchedRecHits",
"matchedRecHit"),
455 skipClusters = cms.InputTag(
'tobTecStepClusters'),
457 useRingSlector = cms.bool(
True),
458 TTRHBuilder = cms.string(
'WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTiny')),
459 minRing = cms.int32(5),
460 maxRing = cms.int32(5)
464 trackingLowPU.toReplaceWith(TobTecStep, cms.Sequence(
466 tobTecStepSeedLayers*
467 tobTecStepTrackingRegionsPair*
468 tobTecStepHitDoubletsPair*
470 tobTecStepTrackCandidates*
476 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
477 tobTecStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(tobTecStepClusters)
478 fastSim.toReplaceWith(TobTecStep,
479 cms.Sequence(tobTecStepMasks
480 +tobTecStepTrackingRegionsTripl
481 +tobTecStepSeedsTripl
482 +tobTecStepTrackingRegionsPair
485 +tobTecStepTrackCandidates
487 +tobTecStepClassifier1*tobTecStepClassifier2 +tobTecStep
def _hitSetProducerToFactoryPSet(producer)