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 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
4 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
7 from Configuration.ProcessModifiers.trackdnn_cff
import trackdnn
8 from RecoTracker.IterativeTracking.dnnQualityCuts
import qualityCutDictionary
11 lowPtTripletStepClusters = _cfg.clusterRemoverForIter(
'LowPtTripletStep')
12 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
13 _era.toReplaceWith(lowPtTripletStepClusters, _cfg.clusterRemoverForIter(
'LowPtTripletStep', _eraName, _postfix))
17 lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
18 BPix = dict(skipClusters = cms.InputTag(
'lowPtTripletStepClusters')),
19 FPix = dict(skipClusters = cms.InputTag(
'lowPtTripletStepClusters'))
21 _layerListForPhase1 = [
22 'BPix1+BPix2+BPix3',
'BPix2+BPix3+BPix4',
23 'BPix1+BPix3+BPix4',
'BPix1+BPix2+BPix4',
24 'BPix2+BPix3+FPix1_pos',
'BPix2+BPix3+FPix1_neg',
25 'BPix1+BPix2+FPix1_pos',
'BPix1+BPix2+FPix1_neg',
26 'BPix1+BPix3+FPix1_pos',
'BPix1+BPix3+FPix1_neg',
27 'BPix2+FPix1_pos+FPix2_pos',
'BPix2+FPix1_neg+FPix2_neg',
28 'BPix1+FPix1_pos+FPix2_pos',
'BPix1+FPix1_neg+FPix2_neg',
29 'BPix1+BPix2+FPix2_pos',
'BPix1+BPix2+FPix2_neg',
30 'FPix1_pos+FPix2_pos+FPix3_pos',
'FPix1_neg+FPix2_neg+FPix3_neg',
31 'BPix1+FPix2_pos+FPix3_pos',
'BPix1+FPix2_neg+FPix3_neg',
32 'BPix1+FPix1_pos+FPix3_pos',
'BPix1+FPix1_neg+FPix3_neg'
34 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
35 trackingPhase1.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase1)
38 _layerListForPhase2 = [
'BPix1+BPix2+BPix3',
'BPix2+BPix3+BPix4',
40 'BPix1+BPix2+FPix1_pos',
'BPix1+BPix2+FPix1_neg',
41 'BPix1+FPix1_pos+FPix2_pos',
'BPix1+FPix1_neg+FPix2_neg',
43 'FPix1_pos+FPix2_pos+FPix3_pos',
'FPix1_neg+FPix2_neg+FPix3_neg',
45 'FPix2_pos+FPix3_pos+FPix4_pos',
'FPix2_neg+FPix3_neg+FPix4_neg',
46 'FPix3_pos+FPix4_pos+FPix5_pos',
'FPix3_neg+FPix4_neg+FPix5_neg',
47 'FPix4_pos+FPix5_pos+FPix6_pos',
'FPix4_neg+FPix5_neg+FPix6_neg',
52 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
53 trackingPhase2PU140.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase2)
56 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
57 lowPtTripletStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
62 trackingPhase1.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.2))
63 trackingPhase2PU140.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.40))
65 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
66 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
68 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(lowPtTripletStepTrackingRegions,
69 _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
70 useFixedError =
False,
75 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
76 highBetaStar_2018.toModify(lowPtTripletStepTrackingRegions,RegionPSet = dict(
82 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
83 lowPtTripletStepHitDoublets = _hitPairEDProducer.clone(
84 seedingLayers =
'lowPtTripletStepSeedLayers',
85 trackingRegions =
'lowPtTripletStepTrackingRegions',
86 maxElement = 50000000,
87 produceIntermediateHitDoublets =
True,
89 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
91 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
92 lowPtTripletStepHitTriplets = _pixelTripletHLTEDProducer.clone(
93 doublets =
'lowPtTripletStepHitDoublets',
94 produceSeedingHitSets =
True,
95 SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
97 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
98 lowPtTripletStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
99 seedingHitSets =
'lowPtTripletStepHitTriplets',
102 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi
import caHitTripletEDProducer
as _caHitTripletEDProducer
103 trackingPhase1.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1])
104 trackingPhase1.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
105 doublets =
'lowPtTripletStepHitDoublets',
106 extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
107 SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
110 value1 = 70 , value2 = 8,
112 useBendingCorrection =
True,
117 trackingPhase2PU140.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1])
118 trackingPhase2PU140.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
119 doublets =
'lowPtTripletStepHitDoublets',
120 extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
121 SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
124 value1 = 70 , value2 = 8,
126 useBendingCorrection =
True,
130 highBetaStar_2018.toModify(lowPtTripletStepHitTriplets,CAThetaCut = 0.004,CAPhiCut = 0.1)
132 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
133 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
134 _fastSim_lowPtTripletStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
135 trackingRegions =
'lowPtTripletStepTrackingRegions',
136 hitMasks = cms.InputTag(
'lowPtTripletStepMasks'),
138 SeedComparitorPSet = dict(ComponentName =
'none')),
139 layerList = lowPtTripletStepSeedLayers.layerList.value()
143 trackingPhase1.toModify(_fastSim_lowPtTripletStepSeeds, seedFinderSelector = dict(
144 pixelTripletGeneratorFactory =
None,
148 TTRHBuilder =
'WithoutRefit',
149 HitProducer =
'TrackingRecHitProducer',
152 TTRHBuilder =
'WithoutRefit',
153 HitProducer =
'TrackingRecHitProducer',
155 layerPairs = lowPtTripletStepHitDoublets.layerPairs.value()
158 fastSim.toReplaceWith(lowPtTripletStepSeeds,_fastSim_lowPtTripletStepSeeds)
162 _lowPtTripletStepStandardTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
163 minimumNumberOfHits = 3,
166 lowPtTripletStepStandardTrajectoryFilter = _lowPtTripletStepStandardTrajectoryFilterBase.clone(
168 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
170 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
171 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepStandardTrajectoryFilter, maxCCCLostHits = 1)
172 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
173 trackingLowPU.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
174 trackingPhase2PU140.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
176 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtTripletStepStandardTrajectoryFilter, minPt=0.49)
180 lowPtTripletStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
181 filters = [cms.PSet(refToPSet_ = cms.string(
'lowPtTripletStepStandardTrajectoryFilter')),
185 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryFilter,
186 filters = lowPtTripletStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
189 lowPtTripletStepTrajectoryFilterInOut = lowPtTripletStepStandardTrajectoryFilter.clone(
190 minimumNumberOfHits = 4,
192 strictSeedExtension =
False,
193 pixelSeedExtension =
False,
196 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
197 lowPtTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
198 ComponentName =
'lowPtTripletStepChi2Est',
201 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
203 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepChi2Est,
204 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
209 lowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
210 MeasurementTrackerName =
'',
211 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'lowPtTripletStepTrajectoryFilter')),
213 estimator =
'lowPtTripletStepChi2Est',
214 maxDPhiForLooperReconstruction = cms.double(2.0),
217 maxPtForLooperReconstruction = cms.double(0.7)
219 trackingLowPU.toModify(lowPtTripletStepTrajectoryBuilder, maxCand = 3)
220 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryBuilder,
221 inOutTrajectoryFilter = dict(refToPSet_ =
'lowPtTripletStepTrajectoryFilterInOut'),
222 useSameTrajFilter =
False,
228 lowPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
229 src =
'lowPtTripletStepSeeds',
231 numHitsForSeedCleaner = cms.int32(50),
232 onlyPixelHitsForSeedCleaner = cms.bool(
True),
233 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'lowPtTripletStepTrajectoryBuilder')),
234 clustersToSkip = cms.InputTag(
'lowPtTripletStepClusters'),
235 doSeedingRegionRebuilding =
True,
236 useHitsSplitting =
True,
237 TrajectoryCleaner =
'lowPtTripletStepTrajectoryCleanerBySharedHits'
240 trackingPhase2PU140.toModify(lowPtTripletStepTrackCandidates,
241 clustersToSkip =
None,
242 phase2clustersToSkip = cms.InputTag(
'lowPtTripletStepClusters')
246 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as mkFitSeedConverter_cfi
247 import RecoTracker.MkFit.mkFitProducer_cfi
as mkFitProducer_cfi
248 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as mkFitIterationConfigESProducer_cfi
249 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as mkFitOutputConverter_cfi
250 lowPtTripletStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
251 seeds =
'lowPtTripletStepSeeds',
253 lowPtTripletStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
254 ComponentName =
'lowPtTripletStepTrackCandidatesMkFitConfig',
255 config =
'RecoTracker/MkFit/data/mkfit-phase1-lowPtTripletStep.json',
257 lowPtTripletStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
258 seeds =
'lowPtTripletStepTrackCandidatesMkFitSeeds',
259 config = (
'',
'lowPtTripletStepTrackCandidatesMkFitConfig'),
260 clustersToSkip =
'lowPtTripletStepClusters',
262 trackingMkFitLowPtTripletStep.toReplaceWith(lowPtTripletStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
263 seeds =
'lowPtTripletStepSeeds',
264 mkFitSeeds =
'lowPtTripletStepTrackCandidatesMkFitSeeds',
265 tracks =
'lowPtTripletStepTrackCandidatesMkFit',
268 import FastSimulation.Tracking.TrackCandidateProducer_cfi
269 fastSim.toReplaceWith(lowPtTripletStepTrackCandidates,
270 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
271 src =
'lowPtTripletStepSeeds',
272 MinNumberOfCrossedLayers = 3,
273 hitMasks = cms.InputTag(
'lowPtTripletStepMasks'))
278 lowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
279 src =
'lowPtTripletStepTrackCandidates',
280 AlgorithmName =
'lowPtTripletStep',
281 Fitter =
'FlexibleKFFittingSmoother'
283 fastSim.toModify(lowPtTripletStepTracks, TTRHBuilder =
'WithoutRefit')
286 lowPtTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
287 ComponentName =
'lowPtTripletStepTrajectoryCleanerBySharedHits',
288 fractionShared = 0.16,
289 allowSharedFirstHit =
True
291 trackingLowPU.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
292 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
296 lowPtTripletStep = TrackMVAClassifierPrompt.clone(
297 src =
'lowPtTripletStepTracks',
298 mva = dict(GBRForestLabel =
'MVASelectorIter1_13TeV'),
299 qualityCuts = [-0.6,-0.3,-0.1]
301 trackingPhase1.toReplaceWith(lowPtTripletStep, lowPtTripletStep.clone(
302 mva = dict(GBRForestLabel =
'MVASelectorLowPtTripletStep_Phase1'),
303 qualityCuts = [-0.4,0.0,0.3],
308 trackdnn.toReplaceWith(lowPtTripletStep, TrackTfClassifier.clone(
309 src =
'lowPtTripletStepTracks',
310 qualityCuts = qualityCutDictionary[
'LowPtTripletStep']
313 highBetaStar_2018.toModify(lowPtTripletStep,qualityCuts = [-0.7,-0.3,-0.1])
314 pp_on_AA.toModify(lowPtTripletStep,
315 mva = dict(GBRForestLabel =
'HIMVASelectorLowPtTripletStep_Phase1'),
316 qualityCuts = [-0.8, -0.4, 0.5],
318 fastSim.toModify(lowPtTripletStep, vertices =
'firstStepPrimaryVerticesBeforeMixing')
321 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
322 lowPtTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
323 src =
'lowPtTripletStepTracks',
324 useAnyMVA = cms.bool(
False),
325 GBRForestLabel = cms.string(
'MVASelectorIter1'),
327 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
328 name =
'lowPtTripletStepLoose',
330 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
331 name =
'lowPtTripletStepTight',
332 preFilterName =
'lowPtTripletStepLoose',
334 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
335 name =
'QualityMasks',
336 preFilterName =
'lowPtTripletStepTight',
340 trackingPhase2PU140.toModify(lowPtTripletStepSelector,
342 GBRForestLabel =
None,
343 trackSelectors= cms.VPSet(
344 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
345 name =
'lowPtTripletStepLoose',
347 res_par = ( 0.003, 0.002 ),
349 maxNumberLostLayers = 2,
350 minNumber3DLayers = 3,
351 d0_par1 = ( 0.7, 4.0 ),
352 dz_par1 = ( 0.7, 4.0 ),
353 d0_par2 = ( 0.6, 4.0 ),
354 dz_par2 = ( 0.6, 4.0 )
356 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
357 name =
'lowPtTripletStepTight',
358 preFilterName =
'lowPtTripletStepLoose',
360 res_par = ( 0.003, 0.002 ),
362 maxNumberLostLayers = 2,
363 minNumber3DLayers = 3,
364 d0_par1 = ( 0.6, 4.0 ),
365 dz_par1 = ( 0.6, 4.0 ),
366 d0_par2 = ( 0.5, 4.0 ),
367 dz_par2 = ( 0.5, 4.0 )
369 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
370 name =
'lowPtTripletStep',
371 preFilterName =
'lowPtTripletStepTight',
375 res_par = ( 0.003, 0.001 ),
378 maxNumberLostLayers = 2,
379 minNumber3DLayers = 4,
380 d0_par1 = ( 0.5, 4.0 ),
381 dz_par1 = ( 0.5, 4.0 ),
382 d0_par2 = ( 0.45, 4.0 ),
383 dz_par2 = ( 0.45, 4.0 )
389 from Configuration.ProcessModifiers.vectorHits_cff
import vectorHits
390 vectorHits.toModify(lowPtTripletStepSelector.trackSelectors[2], minNumberLayers = 3, minNumber3DLayers = 3)
394 LowPtTripletStepTask = cms.Task(lowPtTripletStepClusters,
395 lowPtTripletStepSeedLayers,
396 lowPtTripletStepTrackingRegions,
397 lowPtTripletStepHitDoublets,
398 lowPtTripletStepHitTriplets,
399 lowPtTripletStepSeeds,
400 lowPtTripletStepTrackCandidates,
401 lowPtTripletStepTracks,
403 LowPtTripletStep = cms.Sequence(LowPtTripletStepTask)
405 _LowPtTripletStepTask_trackingMkFit = LowPtTripletStepTask.copy()
406 _LowPtTripletStepTask_trackingMkFit.add(lowPtTripletStepTrackCandidatesMkFitSeeds, lowPtTripletStepTrackCandidatesMkFit)
407 trackingMkFitLowPtTripletStep.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_trackingMkFit)
409 _LowPtTripletStepTask_LowPU_Phase2PU140 = LowPtTripletStepTask.copy()
410 _LowPtTripletStepTask_LowPU_Phase2PU140.replace(lowPtTripletStep, lowPtTripletStepSelector)
411 trackingLowPU.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
413 trackingPhase2PU140.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
415 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
417 fastSim.toReplaceWith(LowPtTripletStepTask,
418 cms.Task(lowPtTripletStepMasks
419 ,lowPtTripletStepTrackingRegions
420 ,lowPtTripletStepSeeds
421 ,lowPtTripletStepTrackCandidates
422 ,lowPtTripletStepTracks