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
10 from Configuration.ProcessModifiers.trackingNoLoopers_cff
import trackingNoLoopers
20 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
21 initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
22 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
23 trackingPhase1.toModify(initialStepSeedLayers,
24 layerList = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.layerList.value()
26 trackingPhase2PU140.toModify(initialStepSeedLayers,
27 layerList = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.layerList.value()
31 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
32 initialStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
37 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
38 trackingPhase1.toModify(initialStepTrackingRegions, RegionPSet = dict(ptMin = 0.5))
39 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
40 highBetaStar_2018.toModify(initialStepTrackingRegions,RegionPSet = dict(
44 trackingPhase2PU140.toModify(initialStepTrackingRegions, RegionPSet = dict(ptMin = 0.6,originRadius = 0.03))
47 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
48 initialStepHitDoublets = _hitPairEDProducer.clone(
49 seedingLayers =
'initialStepSeedLayers',
50 trackingRegions =
'initialStepTrackingRegions',
51 maxElement = 50000000,
52 produceIntermediateHitDoublets =
True,
54 from RecoTracker.PixelSeeding.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
56 import RecoTracker.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
57 initialStepHitTriplets = _pixelTripletHLTEDProducer.clone(
58 doublets =
'initialStepHitDoublets',
59 produceSeedingHitSets =
True,
60 SeedComparitorPSet = RecoTracker.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
62 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
63 initialStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
64 seedingHitSets =
'initialStepHitTriplets',
66 from RecoTracker.PixelSeeding.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
67 _initialStepCAHitQuadruplets = _caHitQuadrupletEDProducer.clone(
68 doublets =
'initialStepHitDoublets',
69 extraHitRPhitolerance = initialStepHitTriplets.extraHitRPhitolerance,
70 SeedComparitorPSet = initialStepHitTriplets.SeedComparitorPSet,
73 value1 = 200, value2 = 50,
75 useBendingCorrection =
True,
77 fitFastCircleChi2Cut =
True,
81 highBetaStar_2018.toModify(_initialStepCAHitQuadruplets,
85 initialStepHitQuadruplets = _initialStepCAHitQuadruplets.clone()
87 trackingPhase1.toModify(initialStepHitDoublets, layerPairs = [0,1,2])
89 trackingPhase2PU140.toModify(initialStepHitDoublets, layerPairs = [0,1,2])
90 trackingPhase2PU140.toModify(initialStepHitQuadruplets,
95 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
96 _initialStepSeedsConsecutiveHitsTripletOnly = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
97 seedingHitSets =
'initialStepHitTriplets',
98 SeedComparitorPSet = dict(
99 ComponentName =
'PixelClusterShapeSeedComparitor',
100 FilterAtHelixStage = cms.bool(
False),
101 FilterPixelHits = cms.bool(
True),
102 FilterStripHits = cms.bool(
False),
103 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
104 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
107 trackingPhase1.toReplaceWith(initialStepSeeds, _initialStepSeedsConsecutiveHitsTripletOnly.clone(
108 seedingHitSets =
'initialStepHitQuadruplets' 110 trackingPhase2PU140.toReplaceWith(initialStepSeeds, _initialStepSeedsConsecutiveHitsTripletOnly.clone(
111 seedingHitSets =
'initialStepHitQuadruplets' 113 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
114 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
115 _fastSim_initialStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
116 trackingRegions =
'initialStepTrackingRegions',
118 layerList = initialStepSeedLayers.layerList.value()
122 trackingPhase1.toModify(_fastSim_initialStepSeeds, seedFinderSelector = dict(
123 pixelTripletGeneratorFactory =
None,
127 TTRHBuilder =
'WithoutRefit',
128 HitProducer =
'TrackingRecHitProducer',
131 TTRHBuilder =
'WithoutRefit',
132 HitProducer =
'TrackingRecHitProducer',
134 layerPairs = initialStepHitDoublets.layerPairs.value()
138 fastSim.toReplaceWith(initialStepSeeds,_fastSim_initialStepSeeds)
143 _initialStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
144 minimumNumberOfHits = 3,
147 initialStepTrajectoryFilterBase = _initialStepTrajectoryFilterBase.clone(
149 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
151 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
152 _tracker_apv_vfp30_2016.toModify(initialStepTrajectoryFilterBase, maxCCCLostHits = 2)
154 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
155 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
156 (pp_on_XeXe_2017 | pp_on_AA).toModify(initialStepTrajectoryFilterBase, minPt=0.6)
157 highBetaStar_2018.toModify(initialStepTrajectoryFilterBase, minPt = 0.05)
159 initialStepTrajectoryFilterInOut = initialStepTrajectoryFilterBase.clone(
160 minimumNumberOfHits = 4,
162 strictSeedExtension =
True,
163 pixelSeedExtension =
True,
165 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
166 trackingLowPU.toReplaceWith(initialStepTrajectoryFilterBase, _initialStepTrajectoryFilterBase)
167 trackingPhase2PU140.toReplaceWith(initialStepTrajectoryFilterBase, _initialStepTrajectoryFilterBase)
169 import RecoTracker.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
170 initialStepTrajectoryFilterShape = RecoTracker.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
171 initialStepTrajectoryFilter = cms.PSet(
172 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
174 cms.PSet( refToPSet_ = cms.string(
'initialStepTrajectoryFilterBase')),
179 trackingPhase2PU140.toReplaceWith(initialStepTrajectoryFilter, TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
180 minimumNumberOfHits = 3,
183 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
184 initialStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
185 ComponentName =
'initialStepChi2Est',
188 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose')),
189 pTChargeCutThreshold = 15.
191 _tracker_apv_vfp30_2016.toModify(initialStepChi2Est,
192 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
194 trackingPhase2PU140.toModify(initialStepChi2Est,
195 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutNone'),
200 initialStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilderIterativeDefault.clone(
201 trajectoryFilter = dict(refToPSet_ =
'initialStepTrajectoryFilter'),
202 alwaysUseInvalidHits =
True,
204 estimator =
'initialStepChi2Est',
205 maxDPhiForLooperReconstruction = 2.0,
206 maxPtForLooperReconstruction = 0.7,
208 trackingNoLoopers.toModify(initialStepTrajectoryBuilder,
209 maxPtForLooperReconstruction = 0.0)
210 trackingLowPU.toModify(initialStepTrajectoryBuilder, maxCand = 5)
211 trackingPhase1.toModify(initialStepTrajectoryBuilder,
212 minNrOfHitsForRebuild = 1,
213 keepOriginalIfRebuildFails =
True,
215 trackingPhase2PU140.toModify(initialStepTrajectoryBuilder,
216 minNrOfHitsForRebuild = 1,
217 keepOriginalIfRebuildFails =
True,
222 _initialStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidatesIterativeDefault.clone(
223 src =
'initialStepSeeds',
225 numHitsForSeedCleaner = 50,
226 onlyPixelHitsForSeedCleaner =
True,
227 TrajectoryBuilderPSet = dict(refToPSet_ =
'initialStepTrajectoryBuilder'),
228 doSeedingRegionRebuilding =
True,
229 useHitsSplitting =
True,
231 initialStepTrackCandidates = _initialStepTrackCandidatesCkf.clone()
234 from RecoTracker.MkFit.mkFitGeometryESProducer_cfi
import mkFitGeometryESProducer
235 import RecoTracker.MkFit.mkFitSiPixelHitConverter_cfi
as mkFitSiPixelHitConverter_cfi
236 import RecoTracker.MkFit.mkFitSiStripHitConverter_cfi
as mkFitSiStripHitConverter_cfi
237 import RecoTracker.MkFit.mkFitEventOfHitsProducer_cfi
as mkFitEventOfHitsProducer_cfi
238 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as mkFitSeedConverter_cfi
239 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as mkFitIterationConfigESProducer_cfi
240 import RecoTracker.MkFit.mkFitProducer_cfi
as mkFitProducer_cfi
241 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as mkFitOutputConverter_cfi
242 mkFitSiPixelHits = mkFitSiPixelHitConverter_cfi.mkFitSiPixelHitConverter.clone()
243 mkFitEventOfHits = mkFitEventOfHitsProducer_cfi.mkFitEventOfHitsProducer.clone()
244 initialStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
245 seeds =
'initialStepSeeds',
247 initialStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
248 ComponentName =
'initialStepTrackCandidatesMkFitConfig',
249 config =
'RecoTracker/MkFit/data/mkfit-phase1-initialStep.json',
251 initialStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
252 seeds =
'initialStepTrackCandidatesMkFitSeeds',
253 config = (
'',
'initialStepTrackCandidatesMkFitConfig'),
255 trackingMkFitInitialStep.toReplaceWith(initialStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
256 seeds =
'initialStepSeeds',
257 mkFitSeeds =
'initialStepTrackCandidatesMkFitSeeds',
258 tracks =
'initialStepTrackCandidatesMkFit',
260 (pp_on_XeXe_2017 | pp_on_AA).toModify(initialStepTrackCandidatesMkFitConfig, minPt=0.6)
262 import FastSimulation.Tracking.TrackCandidateProducer_cfi
263 fastSim.toReplaceWith(initialStepTrackCandidates,
264 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
265 src =
'initialStepSeeds',
266 MinNumberOfCrossedLayers = 3
271 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
272 initialStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
273 src =
'initialStepTrackCandidates',
274 AlgorithmName =
'initialStep',
275 Fitter =
'FlexibleKFFittingSmoother' 277 fastSim.toModify(initialStepTracks, TTRHBuilder =
'WithoutRefit')
279 from Configuration.Eras.Modifier_phase2_timing_layer_cff
import phase2_timing_layer
280 phase2_timing_layer.toModify(initialStepTracks, TrajectoryInEvent =
True)
284 firstStepPrimaryVerticesUnsorted = _offlinePrimaryVertices.clone(
285 TrackLabel =
'initialStepTracks',
286 vertexCollections = [_offlinePrimaryVertices.vertexCollections[0].
clone()]
288 (pp_on_XeXe_2017 | pp_on_AA).toModify(firstStepPrimaryVerticesUnsorted,
289 TkFilterParameters = dict(
290 trackQuality =
'any',
291 maxNumTracksThreshold = 2**31-1
299 firstStepPrimaryVerticesBeforeMixing = firstStepPrimaryVerticesUnsorted.clone()
300 fastSim.toModify(firstStepPrimaryVerticesUnsorted, TrackLabel =
'generalTracks')
304 initialStepTrackRefsForJets = trackRefsForJets.clone(
305 src =
'initialStepTracks' 307 fastSim.toModify(initialStepTrackRefsForJets, src =
'generalTracks')
310 firstStepPrimaryVertices = _sortedPrimaryVertices.clone(
311 vertices =
'firstStepPrimaryVerticesUnsorted',
312 particles =
'initialStepTrackRefsForJets',
320 initialStepClassifier1 = TrackMVAClassifierPrompt.clone(
321 src =
'initialStepTracks',
322 mva = dict(GBRForestLabel =
'MVASelectorIter0_13TeV'),
323 qualityCuts = [-0.9,-0.8,-0.7]
325 fastSim.toModify(initialStepClassifier1,vertices =
'firstStepPrimaryVerticesBeforeMixing')
329 initialStepClassifier2 = detachedTripletStepClassifier1.clone(
330 src =
'initialStepTracks' 332 fastSim.toModify(initialStepClassifier2,vertices =
'firstStepPrimaryVerticesBeforeMixing')
333 initialStepClassifier3 = lowPtTripletStep.clone(
334 src =
'initialStepTracks' 336 fastSim.toModify(initialStepClassifier3,vertices =
'firstStepPrimaryVerticesBeforeMixing')
339 initialStep = ClassifierMerger.clone(
340 inputClassifiers=[
'initialStepClassifier1',
'initialStepClassifier2',
'initialStepClassifier3']
342 trackingPhase1.toReplaceWith(initialStep, initialStepClassifier1.clone(
343 mva = dict(GBRForestLabel =
'MVASelectorInitialStep_Phase1'),
344 qualityCuts = [-0.95,-0.85,-0.75]
346 pp_on_AA.toModify(initialStep,
347 mva = dict(GBRForestLabel =
'HIMVASelectorInitialStep_Phase1'),
348 qualityCuts = [-0.9, -0.5, 0.2],
354 trackdnn.toReplaceWith(initialStep, trackTfClassifier.clone(
355 src =
'initialStepTracks',
356 qualityCuts = qualityCutDictionary.InitialStep.value()
359 (trackdnn & fastSim).toModify(initialStep,vertices =
'firstStepPrimaryVerticesBeforeMixing')
361 (pp_on_AA & trackdnn).toModify(initialStep, qualityCuts = [0.35, 0.69, 0.88] )
364 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
365 initialStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
366 src =
'initialStepTracks',
367 useAnyMVA = cms.bool(
False),
368 GBRForestLabel = cms.string(
'MVASelectorIter0'),
370 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
371 name =
'initialStepLoose',
373 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
374 name =
'initialStepTight',
375 preFilterName =
'initialStepLoose',
377 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
378 name =
'QualityMasks',
379 preFilterName =
'initialStepTight',
383 trackingPhase2PU140.toModify(initialStepSelector,
385 GBRForestLabel =
None,
386 trackSelectors= cms.VPSet(
387 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
388 name =
'initialStepLoose',
390 res_par = ( 0.003, 0.002 ),
392 maxNumberLostLayers = 3,
393 minNumber3DLayers = 3,
394 d0_par1 = ( 0.8, 4.0 ),
395 dz_par1 = ( 0.9, 4.0 ),
396 d0_par2 = ( 0.6, 4.0 ),
397 dz_par2 = ( 0.8, 4.0 )
399 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
400 name =
'initialStepTight',
401 preFilterName =
'initialStepLoose',
403 res_par = ( 0.003, 0.002 ),
405 maxNumberLostLayers = 2,
406 minNumber3DLayers = 3,
407 d0_par1 = ( 0.7, 4.0 ),
408 dz_par1 = ( 0.8, 4.0 ),
409 d0_par2 = ( 0.5, 4.0 ),
410 dz_par2 = ( 0.7, 4.0 )
412 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
413 name =
'initialStep',
414 preFilterName =
'initialStepTight',
418 res_par = ( 0.003, 0.001 ),
420 maxNumberLostLayers = 2,
421 minNumber3DLayers = 3,
422 d0_par1 = ( 0.6, 4.0 ),
423 dz_par1 = ( 0.7, 4.0 ),
424 d0_par2 = ( 0.45, 4.0 ),
425 dz_par2 = ( 0.55, 4.0 )
433 InitialStepTask = cms.Task(initialStepSeedLayers,
434 initialStepTrackingRegions,
435 initialStepHitDoublets,
436 initialStepHitTriplets,
438 initialStepTrackCandidates,
440 firstStepPrimaryVerticesUnsorted,
441 initialStepTrackRefsForJets,
442 firstStepPrimaryVertices,
443 initialStepClassifier1,initialStepClassifier2,initialStepClassifier3,
444 initialStep,caloJetsForTrkTask)
445 InitialStep = cms.Sequence(InitialStepTask)
448 _InitialStepTask_trackingMkFitCommon = InitialStepTask.copy()
449 _InitialStepTask_trackingMkFitCommon.add(mkFitSiPixelHits, mkFitEventOfHits, mkFitGeometryESProducer)
450 trackingMkFitCommon.toReplaceWith(InitialStepTask, _InitialStepTask_trackingMkFitCommon)
452 _InitialStepTask_trackingMkFit = InitialStepTask.copy()
453 _InitialStepTask_trackingMkFit.add(initialStepTrackCandidatesMkFitSeeds, initialStepTrackCandidatesMkFit, initialStepTrackCandidatesMkFitConfig)
454 trackingMkFitInitialStep.toReplaceWith(InitialStepTask, _InitialStepTask_trackingMkFit)
456 _InitialStepTask_LowPU = InitialStepTask.copyAndExclude([firstStepPrimaryVerticesUnsorted, initialStepTrackRefsForJets, caloJetsForTrkTask, firstStepPrimaryVertices, initialStepClassifier1, initialStepClassifier2, initialStepClassifier3])
457 _InitialStepTask_LowPU.replace(initialStep, initialStepSelector)
458 trackingLowPU.toReplaceWith(InitialStepTask, _InitialStepTask_LowPU)
460 _InitialStepTask_Phase1 = InitialStepTask.copyAndExclude([initialStepClassifier2, initialStepClassifier3])
461 _InitialStepTask_Phase1.replace(initialStepHitTriplets, initialStepHitQuadruplets)
462 trackingPhase1.toReplaceWith(InitialStepTask, _InitialStepTask_Phase1)
464 _InitialStepTask_trackingPhase2 = InitialStepTask.copyAndExclude([initialStepClassifier1, initialStepClassifier2, initialStepClassifier3])
465 _InitialStepTask_trackingPhase2.replace(initialStepHitTriplets, initialStepHitQuadruplets)
466 _InitialStepTask_trackingPhase2.replace(initialStep, initialStepSelector)
467 trackingPhase2PU140.toReplaceWith(InitialStepTask, _InitialStepTask_trackingPhase2)
469 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
470 _InitialStepTask_fastSim = cms.Task(initialStepTrackingRegions
472 ,initialStepTrackCandidates
474 ,firstStepPrimaryVerticesBeforeMixing
475 ,initialStepClassifier1,initialStepClassifier2,initialStepClassifier3
478 fastSim.toReplaceWith(InitialStepTask, _InitialStepTask_fastSim)
def _hitSetProducerToFactoryPSet(producer)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)