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 from Configuration.ProcessModifiers.trackingNoLoopers_cff
import trackingNoLoopers
14 lowPtTripletStepClusters = _cfg.clusterRemoverForIter(
'LowPtTripletStep')
15 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
16 _era.toReplaceWith(lowPtTripletStepClusters, _cfg.clusterRemoverForIter(
'LowPtTripletStep', _eraName, _postfix))
20 lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
21 BPix = dict(skipClusters = cms.InputTag(
'lowPtTripletStepClusters')),
22 FPix = dict(skipClusters = cms.InputTag(
'lowPtTripletStepClusters'))
24 _layerListForPhase1 = [
25 'BPix1+BPix2+BPix3',
'BPix2+BPix3+BPix4',
26 'BPix1+BPix3+BPix4',
'BPix1+BPix2+BPix4',
27 'BPix2+BPix3+FPix1_pos',
'BPix2+BPix3+FPix1_neg',
28 'BPix1+BPix2+FPix1_pos',
'BPix1+BPix2+FPix1_neg',
29 'BPix1+BPix3+FPix1_pos',
'BPix1+BPix3+FPix1_neg',
30 'BPix2+FPix1_pos+FPix2_pos',
'BPix2+FPix1_neg+FPix2_neg',
31 'BPix1+FPix1_pos+FPix2_pos',
'BPix1+FPix1_neg+FPix2_neg',
32 'BPix1+BPix2+FPix2_pos',
'BPix1+BPix2+FPix2_neg',
33 'FPix1_pos+FPix2_pos+FPix3_pos',
'FPix1_neg+FPix2_neg+FPix3_neg',
34 'BPix1+FPix2_pos+FPix3_pos',
'BPix1+FPix2_neg+FPix3_neg',
35 'BPix1+FPix1_pos+FPix3_pos',
'BPix1+FPix1_neg+FPix3_neg' 37 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
38 trackingPhase1.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase1)
41 _layerListForPhase2 = [
'BPix1+BPix2+BPix3',
'BPix2+BPix3+BPix4',
43 'BPix1+BPix2+FPix1_pos',
'BPix1+BPix2+FPix1_neg',
44 'BPix1+FPix1_pos+FPix2_pos',
'BPix1+FPix1_neg+FPix2_neg',
46 'FPix1_pos+FPix2_pos+FPix3_pos',
'FPix1_neg+FPix2_neg+FPix3_neg',
48 'FPix2_pos+FPix3_pos+FPix4_pos',
'FPix2_neg+FPix3_neg+FPix4_neg',
49 'FPix3_pos+FPix4_pos+FPix5_pos',
'FPix3_neg+FPix4_neg+FPix5_neg',
50 'FPix4_pos+FPix5_pos+FPix6_pos',
'FPix4_neg+FPix5_neg+FPix6_neg',
55 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
56 trackingPhase2PU140.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase2)
59 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
60 lowPtTripletStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
65 trackingPhase1.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.2))
66 trackingPhase2PU140.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.40))
68 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
69 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
71 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(lowPtTripletStepTrackingRegions,
72 _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
73 useFixedError =
False,
78 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
79 highBetaStar_2018.toModify(lowPtTripletStepTrackingRegions,RegionPSet = dict(
85 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
86 lowPtTripletStepHitDoublets = _hitPairEDProducer.clone(
87 seedingLayers =
'lowPtTripletStepSeedLayers',
88 trackingRegions =
'lowPtTripletStepTrackingRegions',
89 maxElement = 50000000,
90 produceIntermediateHitDoublets =
True,
92 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
94 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
95 lowPtTripletStepHitTriplets = _pixelTripletHLTEDProducer.clone(
96 doublets =
'lowPtTripletStepHitDoublets',
97 produceSeedingHitSets =
True,
98 SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
100 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
101 lowPtTripletStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
102 seedingHitSets =
'lowPtTripletStepHitTriplets',
105 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi
import caHitTripletEDProducer
as _caHitTripletEDProducer
106 trackingPhase1.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1])
107 trackingPhase1.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
108 doublets =
'lowPtTripletStepHitDoublets',
109 extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
110 SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
113 value1 = 70 , value2 = 8,
115 useBendingCorrection =
True,
120 trackingPhase2PU140.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1])
121 trackingPhase2PU140.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
122 doublets =
'lowPtTripletStepHitDoublets',
123 extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
124 SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
127 value1 = 70 , value2 = 8,
129 useBendingCorrection =
True,
133 highBetaStar_2018.toModify(lowPtTripletStepHitTriplets,CAThetaCut = 0.004,CAPhiCut = 0.1)
135 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
136 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
137 _fastSim_lowPtTripletStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
138 trackingRegions =
'lowPtTripletStepTrackingRegions',
139 hitMasks = cms.InputTag(
'lowPtTripletStepMasks'),
141 SeedComparitorPSet = dict(ComponentName =
'none')),
142 layerList = lowPtTripletStepSeedLayers.layerList.value()
146 trackingPhase1.toModify(_fastSim_lowPtTripletStepSeeds, seedFinderSelector = dict(
147 pixelTripletGeneratorFactory =
None,
151 TTRHBuilder =
'WithoutRefit',
152 HitProducer =
'TrackingRecHitProducer',
155 TTRHBuilder =
'WithoutRefit',
156 HitProducer =
'TrackingRecHitProducer',
158 layerPairs = lowPtTripletStepHitDoublets.layerPairs.value()
161 fastSim.toReplaceWith(lowPtTripletStepSeeds,_fastSim_lowPtTripletStepSeeds)
165 _lowPtTripletStepStandardTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
166 minimumNumberOfHits = 3,
169 lowPtTripletStepStandardTrajectoryFilter = _lowPtTripletStepStandardTrajectoryFilterBase.clone(
171 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
173 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
174 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepStandardTrajectoryFilter, maxCCCLostHits = 1)
175 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
176 trackingLowPU.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
177 trackingPhase2PU140.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
179 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtTripletStepStandardTrajectoryFilter, minPt=0.49)
183 lowPtTripletStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
184 filters = [cms.PSet(refToPSet_ = cms.string(
'lowPtTripletStepStandardTrajectoryFilter')),
188 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryFilter,
189 filters = lowPtTripletStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
192 lowPtTripletStepTrajectoryFilterInOut = lowPtTripletStepStandardTrajectoryFilter.clone(
193 minimumNumberOfHits = 4,
195 strictSeedExtension =
False,
196 pixelSeedExtension =
False,
199 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
200 lowPtTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
201 ComponentName =
'lowPtTripletStepChi2Est',
204 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
206 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepChi2Est,
207 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
212 lowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
213 trajectoryFilter = dict(refToPSet_ =
'lowPtTripletStepTrajectoryFilter'),
215 estimator =
'lowPtTripletStepChi2Est',
216 maxDPhiForLooperReconstruction = 2.0,
219 maxPtForLooperReconstruction = 0.7,
221 trackingNoLoopers.toModify(lowPtTripletStepTrajectoryBuilder,
222 maxPtForLooperReconstruction = 0.0)
223 trackingLowPU.toModify(lowPtTripletStepTrajectoryBuilder, maxCand = 3)
224 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryBuilder,
225 inOutTrajectoryFilter = dict(refToPSet_ =
'lowPtTripletStepTrajectoryFilterInOut'),
226 useSameTrajFilter =
False,
233 _lowPtTripletStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
234 src =
'lowPtTripletStepSeeds',
236 numHitsForSeedCleaner = 50,
237 onlyPixelHitsForSeedCleaner =
True,
238 TrajectoryBuilderPSet = dict(refToPSet_ =
'lowPtTripletStepTrajectoryBuilder'),
239 clustersToSkip =
'lowPtTripletStepClusters',
240 doSeedingRegionRebuilding =
True,
241 useHitsSplitting =
True,
242 TrajectoryCleaner =
'lowPtTripletStepTrajectoryCleanerBySharedHits',
244 lowPtTripletStepTrackCandidates = _lowPtTripletStepTrackCandidatesCkf.clone()
246 trackingPhase2PU140.toModify(lowPtTripletStepTrackCandidates,
248 phase2clustersToSkip =
'lowPtTripletStepClusters' 252 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as mkFitSeedConverter_cfi
253 import RecoTracker.MkFit.mkFitProducer_cfi
as mkFitProducer_cfi
254 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as mkFitIterationConfigESProducer_cfi
255 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as mkFitOutputConverter_cfi
256 lowPtTripletStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
257 seeds =
'lowPtTripletStepSeeds',
259 lowPtTripletStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
260 ComponentName =
'lowPtTripletStepTrackCandidatesMkFitConfig',
261 config =
'RecoTracker/MkFit/data/mkfit-phase1-lowPtTripletStep.json',
263 lowPtTripletStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
264 seeds =
'lowPtTripletStepTrackCandidatesMkFitSeeds',
265 config = (
'',
'lowPtTripletStepTrackCandidatesMkFitConfig'),
266 clustersToSkip =
'lowPtTripletStepClusters',
268 trackingMkFitLowPtTripletStep.toReplaceWith(lowPtTripletStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
269 seeds =
'lowPtTripletStepSeeds',
270 mkFitSeeds =
'lowPtTripletStepTrackCandidatesMkFitSeeds',
271 tracks =
'lowPtTripletStepTrackCandidatesMkFit',
273 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtTripletStepTrackCandidatesMkFitConfig, minPt=0.49)
275 import FastSimulation.Tracking.TrackCandidateProducer_cfi
276 fastSim.toReplaceWith(lowPtTripletStepTrackCandidates,
277 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
278 src =
'lowPtTripletStepSeeds',
279 MinNumberOfCrossedLayers = 3,
280 hitMasks = cms.InputTag(
'lowPtTripletStepMasks'))
284 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
285 lowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducer.clone(
286 src =
'lowPtTripletStepTrackCandidates',
287 AlgorithmName =
'lowPtTripletStep',
288 Fitter =
'FlexibleKFFittingSmoother' 290 fastSim.toModify(lowPtTripletStepTracks, TTRHBuilder =
'WithoutRefit')
292 from Configuration.Eras.Modifier_phase2_timing_layer_cff
import phase2_timing_layer
293 phase2_timing_layer.toModify(lowPtTripletStepTracks, TrajectoryInEvent =
True)
296 lowPtTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
297 ComponentName =
'lowPtTripletStepTrajectoryCleanerBySharedHits',
298 fractionShared = 0.16,
299 allowSharedFirstHit =
True 301 trackingLowPU.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
302 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
306 lowPtTripletStep = TrackMVAClassifierPrompt.clone(
307 src =
'lowPtTripletStepTracks',
308 mva = dict(GBRForestLabel =
'MVASelectorIter1_13TeV'),
309 qualityCuts = [-0.6,-0.3,-0.1]
311 trackingPhase1.toReplaceWith(lowPtTripletStep, lowPtTripletStep.clone(
312 mva = dict(GBRForestLabel =
'MVASelectorLowPtTripletStep_Phase1'),
313 qualityCuts = [-0.4,0.0,0.3],
319 trackdnn.toReplaceWith(lowPtTripletStep, trackTfClassifier.clone(
320 src =
'lowPtTripletStepTracks',
321 qualityCuts = qualityCutDictionary.LowPtTripletStep.value()
323 highBetaStar_2018.toModify(lowPtTripletStep,qualityCuts = [-0.7,-0.3,-0.1])
324 pp_on_AA.toModify(lowPtTripletStep,
325 mva = dict(GBRForestLabel =
'HIMVASelectorLowPtTripletStep_Phase1'),
326 qualityCuts = [-0.8, -0.4, 0.5],
328 fastSim.toModify(lowPtTripletStep, vertices =
'firstStepPrimaryVerticesBeforeMixing')
330 ((~trackingMkFitLowPtTripletStep) & trackdnn).toModify(lowPtTripletStep, mva = dict(tfDnnLabel =
'trackSelectionTf_CKF'),
331 qualityCuts = [-0.23, 0.15, 0.41])
334 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
335 lowPtTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
336 src =
'lowPtTripletStepTracks',
337 useAnyMVA = cms.bool(
False),
338 GBRForestLabel = cms.string(
'MVASelectorIter1'),
340 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
341 name =
'lowPtTripletStepLoose',
343 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
344 name =
'lowPtTripletStepTight',
345 preFilterName =
'lowPtTripletStepLoose',
347 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
348 name =
'QualityMasks',
349 preFilterName =
'lowPtTripletStepTight',
353 trackingPhase2PU140.toModify(lowPtTripletStepSelector,
355 GBRForestLabel =
None,
356 trackSelectors= cms.VPSet(
357 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
358 name =
'lowPtTripletStepLoose',
360 res_par = ( 0.003, 0.002 ),
362 maxNumberLostLayers = 2,
363 minNumber3DLayers = 3,
364 d0_par1 = ( 0.7, 4.0 ),
365 dz_par1 = ( 0.7, 4.0 ),
366 d0_par2 = ( 0.6, 4.0 ),
367 dz_par2 = ( 0.6, 4.0 )
369 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
370 name =
'lowPtTripletStepTight',
371 preFilterName =
'lowPtTripletStepLoose',
373 res_par = ( 0.003, 0.002 ),
375 maxNumberLostLayers = 2,
376 minNumber3DLayers = 3,
377 d0_par1 = ( 0.6, 4.0 ),
378 dz_par1 = ( 0.6, 4.0 ),
379 d0_par2 = ( 0.5, 4.0 ),
380 dz_par2 = ( 0.5, 4.0 )
382 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
383 name =
'lowPtTripletStep',
384 preFilterName =
'lowPtTripletStepTight',
388 res_par = ( 0.003, 0.001 ),
391 maxNumberLostLayers = 2,
392 minNumber3DLayers = 4,
393 d0_par1 = ( 0.5, 4.0 ),
394 dz_par1 = ( 0.5, 4.0 ),
395 d0_par2 = ( 0.45, 4.0 ),
396 dz_par2 = ( 0.45, 4.0 )
402 from Configuration.ProcessModifiers.vectorHits_cff
import vectorHits
403 vectorHits.toModify(lowPtTripletStepSelector.trackSelectors[2], minNumberLayers = 3, minNumber3DLayers = 3)
407 LowPtTripletStepTask = cms.Task(lowPtTripletStepClusters,
408 lowPtTripletStepSeedLayers,
409 lowPtTripletStepTrackingRegions,
410 lowPtTripletStepHitDoublets,
411 lowPtTripletStepHitTriplets,
412 lowPtTripletStepSeeds,
413 lowPtTripletStepTrackCandidates,
414 lowPtTripletStepTracks,
416 LowPtTripletStep = cms.Sequence(LowPtTripletStepTask)
418 _LowPtTripletStepTask_trackingMkFit = LowPtTripletStepTask.copy()
419 _LowPtTripletStepTask_trackingMkFit.add(lowPtTripletStepTrackCandidatesMkFitSeeds, lowPtTripletStepTrackCandidatesMkFit)
420 trackingMkFitLowPtTripletStep.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_trackingMkFit)
422 _LowPtTripletStepTask_LowPU_Phase2PU140 = LowPtTripletStepTask.copy()
423 _LowPtTripletStepTask_LowPU_Phase2PU140.replace(lowPtTripletStep, lowPtTripletStepSelector)
424 trackingLowPU.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
426 trackingPhase2PU140.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
428 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
430 fastSim.toReplaceWith(LowPtTripletStepTask,
431 cms.Task(lowPtTripletStepMasks
432 ,lowPtTripletStepTrackingRegions
433 ,lowPtTripletStepSeeds
434 ,lowPtTripletStepTrackCandidates
435 ,lowPtTripletStepTracks
def _hitSetProducerToFactoryPSet(producer)
def maskProducerFromClusterRemover(clusterRemover)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)