1 import FWCore.ParameterSet.Config
as cms
2 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
as _tracker_apv_vfp30_2016
3 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
6 from Configuration.ProcessModifiers.trackdnn_cff
import trackdnn
7 from RecoTracker.IterativeTracking.dnnQualityCuts
import qualityCutDictionary
17 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
18 initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
19 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
20 trackingPhase1.toModify(initialStepSeedLayers,
21 layerList = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.layerList.value()
23 trackingPhase2PU140.toModify(initialStepSeedLayers,
24 layerList = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.layerList.value()
28 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
29 initialStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
34 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
35 trackingPhase1.toModify(initialStepTrackingRegions, RegionPSet = dict(ptMin = 0.5))
36 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
37 highBetaStar_2018.toModify(initialStepTrackingRegions,RegionPSet = dict(
41 trackingPhase2PU140.toModify(initialStepTrackingRegions, RegionPSet = dict(ptMin = 0.6,originRadius = 0.03))
44 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
45 initialStepHitDoublets = _hitPairEDProducer.clone(
46 seedingLayers =
'initialStepSeedLayers',
47 trackingRegions =
'initialStepTrackingRegions',
48 maxElement = 50000000,
49 produceIntermediateHitDoublets =
True,
51 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
53 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
54 initialStepHitTriplets = _pixelTripletHLTEDProducer.clone(
55 doublets =
'initialStepHitDoublets',
56 produceSeedingHitSets =
True,
57 SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
59 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
60 initialStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
61 seedingHitSets =
'initialStepHitTriplets',
63 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
64 _initialStepCAHitQuadruplets = _caHitQuadrupletEDProducer.clone(
65 doublets =
'initialStepHitDoublets',
66 extraHitRPhitolerance = initialStepHitTriplets.extraHitRPhitolerance,
67 SeedComparitorPSet = initialStepHitTriplets.SeedComparitorPSet,
70 value1 = 200, value2 = 50,
72 useBendingCorrection =
True,
74 fitFastCircleChi2Cut =
True,
78 highBetaStar_2018.toModify(_initialStepCAHitQuadruplets,
82 initialStepHitQuadruplets = _initialStepCAHitQuadruplets.clone()
84 trackingPhase1.toModify(initialStepHitDoublets, layerPairs = [0,1,2])
86 trackingPhase2PU140.toModify(initialStepHitDoublets, layerPairs = [0,1,2])
87 trackingPhase2PU140.toModify(initialStepHitQuadruplets,
92 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
93 _initialStepSeedsConsecutiveHitsTripletOnly = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
94 seedingHitSets =
'initialStepHitTriplets',
95 SeedComparitorPSet = dict(
96 ComponentName =
'PixelClusterShapeSeedComparitor',
97 FilterAtHelixStage = cms.bool(
False),
98 FilterPixelHits = cms.bool(
True),
99 FilterStripHits = cms.bool(
False),
100 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
101 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
104 trackingPhase1.toReplaceWith(initialStepSeeds, _initialStepSeedsConsecutiveHitsTripletOnly.clone(
105 seedingHitSets =
'initialStepHitQuadruplets'
107 trackingPhase2PU140.toReplaceWith(initialStepSeeds, _initialStepSeedsConsecutiveHitsTripletOnly.clone(
108 seedingHitSets =
'initialStepHitQuadruplets'
110 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
111 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
112 _fastSim_initialStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
113 trackingRegions =
'initialStepTrackingRegions',
115 layerList = initialStepSeedLayers.layerList.value()
119 trackingPhase1.toModify(_fastSim_initialStepSeeds, seedFinderSelector = dict(
120 pixelTripletGeneratorFactory =
None,
124 TTRHBuilder =
'WithoutRefit',
125 HitProducer =
'TrackingRecHitProducer',
128 TTRHBuilder =
'WithoutRefit',
129 HitProducer =
'TrackingRecHitProducer',
131 layerPairs = initialStepHitDoublets.layerPairs.value()
135 fastSim.toReplaceWith(initialStepSeeds,_fastSim_initialStepSeeds)
140 _initialStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
141 minimumNumberOfHits = 3,
144 initialStepTrajectoryFilterBase = _initialStepTrajectoryFilterBase.clone(
146 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
148 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
149 _tracker_apv_vfp30_2016.toModify(initialStepTrajectoryFilterBase, maxCCCLostHits = 2)
151 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
152 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
153 (pp_on_XeXe_2017 | pp_on_AA).toModify(initialStepTrajectoryFilterBase, minPt=0.6)
154 highBetaStar_2018.toModify(initialStepTrajectoryFilterBase, minPt = 0.05)
156 initialStepTrajectoryFilterInOut = initialStepTrajectoryFilterBase.clone(
157 minimumNumberOfHits = 4,
159 strictSeedExtension =
True,
160 pixelSeedExtension =
True,
162 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
163 trackingLowPU.toReplaceWith(initialStepTrajectoryFilterBase, _initialStepTrajectoryFilterBase)
164 trackingPhase2PU140.toReplaceWith(initialStepTrajectoryFilterBase, _initialStepTrajectoryFilterBase)
166 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
167 initialStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
168 initialStepTrajectoryFilter = cms.PSet(
169 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
171 cms.PSet( refToPSet_ = cms.string(
'initialStepTrajectoryFilterBase')),
176 trackingPhase2PU140.toReplaceWith(initialStepTrajectoryFilter, TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
177 minimumNumberOfHits = 3,
180 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
181 initialStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
182 ComponentName =
'initialStepChi2Est',
185 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose')),
186 pTChargeCutThreshold = 15.
188 _tracker_apv_vfp30_2016.toModify(initialStepChi2Est,
189 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
191 trackingPhase2PU140.toModify(initialStepChi2Est,
192 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutNone'),
197 initialStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
198 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'initialStepTrajectoryFilter')),
199 alwaysUseInvalidHits =
True,
201 estimator =
'initialStepChi2Est',
202 maxDPhiForLooperReconstruction = cms.double(2.0),
203 maxPtForLooperReconstruction = cms.double(0.7)
205 trackingLowPU.toModify(initialStepTrajectoryBuilder, maxCand = 5)
206 trackingPhase1.toModify(initialStepTrajectoryBuilder,
207 minNrOfHitsForRebuild = 1,
208 keepOriginalIfRebuildFails =
True,
210 trackingPhase2PU140.toModify(initialStepTrajectoryBuilder,
211 minNrOfHitsForRebuild = 1,
212 keepOriginalIfRebuildFails =
True,
216 initialStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
217 src =
'initialStepSeeds',
219 numHitsForSeedCleaner = cms.int32(50),
220 onlyPixelHitsForSeedCleaner = cms.bool(
True),
221 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'initialStepTrajectoryBuilder')),
222 doSeedingRegionRebuilding =
True,
223 useHitsSplitting =
True
227 from RecoTracker.MkFit.mkFitGeometryESProducer_cfi
import mkFitGeometryESProducer
228 import RecoTracker.MkFit.mkFitSiPixelHitConverter_cfi
as mkFitSiPixelHitConverter_cfi
229 import RecoTracker.MkFit.mkFitSiStripHitConverter_cfi
as mkFitSiStripHitConverter_cfi
230 import RecoTracker.MkFit.mkFitEventOfHitsProducer_cfi
as mkFitEventOfHitsProducer_cfi
231 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as mkFitSeedConverter_cfi
232 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as mkFitIterationConfigESProducer_cfi
233 import RecoTracker.MkFit.mkFitProducer_cfi
as mkFitProducer_cfi
234 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as mkFitOutputConverter_cfi
235 mkFitSiPixelHits = mkFitSiPixelHitConverter_cfi.mkFitSiPixelHitConverter.clone()
236 mkFitEventOfHits = mkFitEventOfHitsProducer_cfi.mkFitEventOfHitsProducer.clone()
237 initialStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
238 seeds =
'initialStepSeeds',
240 initialStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
241 ComponentName =
'initialStepTrackCandidatesMkFitConfig',
242 config =
'RecoTracker/MkFit/data/mkfit-phase1-initialStep.json',
244 initialStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
245 seeds =
'initialStepTrackCandidatesMkFitSeeds',
246 config = (
'',
'initialStepTrackCandidatesMkFitConfig'),
248 trackingMkFitInitialStep.toReplaceWith(initialStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
249 seeds =
'initialStepSeeds',
250 mkFitSeeds =
'initialStepTrackCandidatesMkFitSeeds',
251 tracks =
'initialStepTrackCandidatesMkFit',
254 import FastSimulation.Tracking.TrackCandidateProducer_cfi
255 fastSim.toReplaceWith(initialStepTrackCandidates,
256 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
257 src =
'initialStepSeeds',
258 MinNumberOfCrossedLayers = 3
264 initialStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
265 src =
'initialStepTrackCandidates',
266 AlgorithmName =
'initialStep',
267 Fitter =
'FlexibleKFFittingSmoother'
269 fastSim.toModify(initialStepTracks, TTRHBuilder =
'WithoutRefit')
273 firstStepPrimaryVerticesUnsorted = _offlinePrimaryVertices.clone(
274 TrackLabel =
'initialStepTracks',
275 vertexCollections = [_offlinePrimaryVertices.vertexCollections[0].
clone()]
277 (pp_on_XeXe_2017 | pp_on_AA).toModify(firstStepPrimaryVerticesUnsorted, TkFilterParameters = dict(trackQuality =
'any'))
283 firstStepPrimaryVerticesBeforeMixing = firstStepPrimaryVerticesUnsorted.clone()
284 fastSim.toModify(firstStepPrimaryVerticesUnsorted, TrackLabel =
'generalTracks')
288 initialStepTrackRefsForJets = trackRefsForJets.clone(
289 src =
'initialStepTracks'
291 fastSim.toModify(initialStepTrackRefsForJets, src =
'generalTracks')
294 firstStepPrimaryVertices = _sortedPrimaryVertices.clone(
295 vertices =
'firstStepPrimaryVerticesUnsorted',
296 particles =
'initialStepTrackRefsForJets',
304 initialStepClassifier1 = TrackMVAClassifierPrompt.clone(
305 src =
'initialStepTracks',
306 mva = dict(GBRForestLabel =
'MVASelectorIter0_13TeV'),
307 qualityCuts = [-0.9,-0.8,-0.7]
309 fastSim.toModify(initialStepClassifier1,vertices =
'firstStepPrimaryVerticesBeforeMixing')
313 initialStepClassifier2 = detachedTripletStepClassifier1.clone(
314 src =
'initialStepTracks'
316 fastSim.toModify(initialStepClassifier2,vertices =
'firstStepPrimaryVerticesBeforeMixing')
317 initialStepClassifier3 = lowPtTripletStep.clone(
318 src =
'initialStepTracks'
320 fastSim.toModify(initialStepClassifier3,vertices =
'firstStepPrimaryVerticesBeforeMixing')
323 initialStep = ClassifierMerger.clone(
324 inputClassifiers=[
'initialStepClassifier1',
'initialStepClassifier2',
'initialStepClassifier3']
326 trackingPhase1.toReplaceWith(initialStep, initialStepClassifier1.clone(
327 mva = dict(GBRForestLabel =
'MVASelectorInitialStep_Phase1'),
328 qualityCuts = [-0.95,-0.85,-0.75]
333 trackdnn.toReplaceWith(initialStep, TrackTfClassifier.clone(
334 src =
'initialStepTracks',
335 qualityCuts = qualityCutDictionary[
"InitialStep"]
337 (trackdnn & fastSim).toModify(initialStep,vertices =
'firstStepPrimaryVerticesBeforeMixing')
339 pp_on_AA.toModify(initialStep,
340 mva = dict(GBRForestLabel =
'HIMVASelectorInitialStep_Phase1'),
341 qualityCuts = [-0.9, -0.5, 0.2],
345 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
346 initialStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
347 src =
'initialStepTracks',
348 useAnyMVA = cms.bool(
False),
349 GBRForestLabel = cms.string(
'MVASelectorIter0'),
351 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
352 name =
'initialStepLoose',
354 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
355 name =
'initialStepTight',
356 preFilterName =
'initialStepLoose',
358 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
359 name =
'QualityMasks',
360 preFilterName =
'initialStepTight',
364 trackingPhase2PU140.toModify(initialStepSelector,
366 GBRForestLabel =
None,
367 trackSelectors= cms.VPSet(
368 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
369 name =
'initialStepLoose',
371 res_par = ( 0.003, 0.002 ),
373 maxNumberLostLayers = 3,
374 minNumber3DLayers = 3,
375 d0_par1 = ( 0.8, 4.0 ),
376 dz_par1 = ( 0.9, 4.0 ),
377 d0_par2 = ( 0.6, 4.0 ),
378 dz_par2 = ( 0.8, 4.0 )
380 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
381 name =
'initialStepTight',
382 preFilterName =
'initialStepLoose',
384 res_par = ( 0.003, 0.002 ),
386 maxNumberLostLayers = 2,
387 minNumber3DLayers = 3,
388 d0_par1 = ( 0.7, 4.0 ),
389 dz_par1 = ( 0.8, 4.0 ),
390 d0_par2 = ( 0.5, 4.0 ),
391 dz_par2 = ( 0.7, 4.0 )
393 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
394 name =
'initialStep',
395 preFilterName =
'initialStepTight',
399 res_par = ( 0.003, 0.001 ),
401 maxNumberLostLayers = 2,
402 minNumber3DLayers = 3,
403 d0_par1 = ( 0.6, 4.0 ),
404 dz_par1 = ( 0.7, 4.0 ),
405 d0_par2 = ( 0.45, 4.0 ),
406 dz_par2 = ( 0.55, 4.0 )
414 InitialStepTask = cms.Task(initialStepSeedLayers,
415 initialStepTrackingRegions,
416 initialStepHitDoublets,
417 initialStepHitTriplets,
419 initialStepTrackCandidates,
421 firstStepPrimaryVerticesUnsorted,
422 initialStepTrackRefsForJets,
423 firstStepPrimaryVertices,
424 initialStepClassifier1,initialStepClassifier2,initialStepClassifier3,
425 initialStep,caloJetsForTrkTask)
426 InitialStep = cms.Sequence(InitialStepTask)
429 _InitialStepTask_trackingMkFitCommon = InitialStepTask.copy()
430 _InitialStepTask_trackingMkFitCommon.add(mkFitSiPixelHits, mkFitEventOfHits, mkFitGeometryESProducer)
431 trackingMkFitCommon.toReplaceWith(InitialStepTask, _InitialStepTask_trackingMkFitCommon)
433 _InitialStepTask_trackingMkFit = InitialStepTask.copy()
434 _InitialStepTask_trackingMkFit.add(initialStepTrackCandidatesMkFitSeeds, initialStepTrackCandidatesMkFit, initialStepTrackCandidatesMkFitConfig)
435 trackingMkFitInitialStep.toReplaceWith(InitialStepTask, _InitialStepTask_trackingMkFit)
437 _InitialStepTask_LowPU = InitialStepTask.copyAndExclude([firstStepPrimaryVerticesUnsorted, initialStepTrackRefsForJets, caloJetsForTrkTask, firstStepPrimaryVertices, initialStepClassifier1, initialStepClassifier2, initialStepClassifier3])
438 _InitialStepTask_LowPU.replace(initialStep, initialStepSelector)
439 trackingLowPU.toReplaceWith(InitialStepTask, _InitialStepTask_LowPU)
441 _InitialStepTask_Phase1 = InitialStepTask.copyAndExclude([initialStepClassifier2, initialStepClassifier3])
442 _InitialStepTask_Phase1.replace(initialStepHitTriplets, initialStepHitQuadruplets)
443 trackingPhase1.toReplaceWith(InitialStepTask, _InitialStepTask_Phase1)
445 _InitialStepTask_trackingPhase2 = InitialStepTask.copyAndExclude([initialStepClassifier1, initialStepClassifier2, initialStepClassifier3])
446 _InitialStepTask_trackingPhase2.replace(initialStepHitTriplets, initialStepHitQuadruplets)
447 _InitialStepTask_trackingPhase2.replace(initialStep, initialStepSelector)
448 trackingPhase2PU140.toReplaceWith(InitialStepTask, _InitialStepTask_trackingPhase2)
450 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
451 _InitialStepTask_fastSim = cms.Task(initialStepTrackingRegions
453 ,initialStepTrackCandidates
455 ,firstStepPrimaryVerticesBeforeMixing
456 ,initialStepClassifier1,initialStepClassifier2,initialStepClassifier3
459 fastSim.toReplaceWith(InitialStepTask, _InitialStepTask_fastSim)