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 RecoTracker.PixelSeeding.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
94 import RecoTracker.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
95 lowPtTripletStepHitTriplets = _pixelTripletHLTEDProducer.clone(
96 doublets =
'lowPtTripletStepHitDoublets',
97 produceSeedingHitSets =
True,
98 SeedComparitorPSet = RecoTracker.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
100 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
101 lowPtTripletStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
102 seedingHitSets =
'lowPtTripletStepHitTriplets',
105 from RecoTracker.PixelSeeding.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.GroupedCkfTrajectoryBuilderIterativeDefault.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.ckfTrackCandidatesIterativeDefault.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()
245 trackingPhase2PU140.toModify(lowPtTripletStepTrackCandidates,
247 phase2clustersToSkip =
'lowPtTripletStepClusters' 251 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as mkFitSeedConverter_cfi
252 import RecoTracker.MkFit.mkFitProducer_cfi
as mkFitProducer_cfi
253 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as mkFitIterationConfigESProducer_cfi
254 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as mkFitOutputConverter_cfi
255 lowPtTripletStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
256 seeds =
'lowPtTripletStepSeeds',
258 lowPtTripletStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
259 ComponentName =
'lowPtTripletStepTrackCandidatesMkFitConfig',
260 config =
'RecoTracker/MkFit/data/mkfit-phase1-lowPtTripletStep.json',
262 lowPtTripletStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
263 seeds =
'lowPtTripletStepTrackCandidatesMkFitSeeds',
264 config = (
'',
'lowPtTripletStepTrackCandidatesMkFitConfig'),
265 clustersToSkip =
'lowPtTripletStepClusters',
267 trackingMkFitLowPtTripletStep.toReplaceWith(lowPtTripletStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
268 seeds =
'lowPtTripletStepSeeds',
269 mkFitSeeds =
'lowPtTripletStepTrackCandidatesMkFitSeeds',
270 tracks =
'lowPtTripletStepTrackCandidatesMkFit',
272 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtTripletStepTrackCandidatesMkFitConfig, minPt=0.49)
274 import FastSimulation.Tracking.TrackCandidateProducer_cfi
275 fastSim.toReplaceWith(lowPtTripletStepTrackCandidates,
276 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
277 src =
'lowPtTripletStepSeeds',
278 MinNumberOfCrossedLayers = 3,
279 hitMasks = cms.InputTag(
'lowPtTripletStepMasks'))
283 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
284 lowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
285 src =
'lowPtTripletStepTrackCandidates',
286 AlgorithmName =
'lowPtTripletStep',
287 Fitter =
'FlexibleKFFittingSmoother' 289 fastSim.toModify(lowPtTripletStepTracks, TTRHBuilder =
'WithoutRefit')
291 from Configuration.Eras.Modifier_phase2_timing_layer_cff
import phase2_timing_layer
292 phase2_timing_layer.toModify(lowPtTripletStepTracks, TrajectoryInEvent =
True)
295 lowPtTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
296 ComponentName =
'lowPtTripletStepTrajectoryCleanerBySharedHits',
297 fractionShared = 0.16,
298 allowSharedFirstHit =
True 300 trackingLowPU.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
301 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
305 lowPtTripletStep = TrackMVAClassifierPrompt.clone(
306 src =
'lowPtTripletStepTracks',
307 mva = dict(GBRForestLabel =
'MVASelectorIter1_13TeV'),
308 qualityCuts = [-0.6,-0.3,-0.1]
310 trackingPhase1.toReplaceWith(lowPtTripletStep, lowPtTripletStep.clone(
311 mva = dict(GBRForestLabel =
'MVASelectorLowPtTripletStep_Phase1'),
312 qualityCuts = [-0.4,0.0,0.3],
314 pp_on_AA.toModify(lowPtTripletStep,
315 mva = dict(GBRForestLabel =
'HIMVASelectorLowPtTripletStep_Phase1'),
316 qualityCuts = [-0.8, -0.4, 0.5],
322 trackdnn.toReplaceWith(lowPtTripletStep, trackTfClassifier.clone(
323 src =
'lowPtTripletStepTracks',
324 qualityCuts = qualityCutDictionary.LowPtTripletStep.value()
326 highBetaStar_2018.toModify(lowPtTripletStep,qualityCuts = [-0.7,-0.3,-0.1])
328 fastSim.toModify(lowPtTripletStep, vertices =
'firstStepPrimaryVerticesBeforeMixing')
330 ((~trackingMkFitLowPtTripletStep) & trackdnn).toModify(lowPtTripletStep, mva = dict(tfDnnLabel =
'trackSelectionTf_CKF'),
331 qualityCuts = [-0.23, 0.15, 0.41])
333 (pp_on_AA & trackdnn).toModify(lowPtTripletStep, qualityCuts = [-0.29, 0.65, 0.98] )
336 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
337 lowPtTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
338 src =
'lowPtTripletStepTracks',
339 useAnyMVA = cms.bool(
False),
340 GBRForestLabel = cms.string(
'MVASelectorIter1'),
342 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
343 name =
'lowPtTripletStepLoose',
345 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
346 name =
'lowPtTripletStepTight',
347 preFilterName =
'lowPtTripletStepLoose',
349 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
350 name =
'QualityMasks',
351 preFilterName =
'lowPtTripletStepTight',
355 trackingPhase2PU140.toModify(lowPtTripletStepSelector,
357 GBRForestLabel =
None,
358 trackSelectors= cms.VPSet(
359 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
360 name =
'lowPtTripletStepLoose',
362 res_par = ( 0.003, 0.002 ),
364 maxNumberLostLayers = 2,
365 minNumber3DLayers = 3,
366 d0_par1 = ( 0.7, 4.0 ),
367 dz_par1 = ( 0.7, 4.0 ),
368 d0_par2 = ( 0.6, 4.0 ),
369 dz_par2 = ( 0.6, 4.0 )
371 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
372 name =
'lowPtTripletStepTight',
373 preFilterName =
'lowPtTripletStepLoose',
375 res_par = ( 0.003, 0.002 ),
377 maxNumberLostLayers = 2,
378 minNumber3DLayers = 3,
379 d0_par1 = ( 0.6, 4.0 ),
380 dz_par1 = ( 0.6, 4.0 ),
381 d0_par2 = ( 0.5, 4.0 ),
382 dz_par2 = ( 0.5, 4.0 )
384 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
385 name =
'lowPtTripletStep',
386 preFilterName =
'lowPtTripletStepTight',
390 res_par = ( 0.003, 0.001 ),
393 maxNumberLostLayers = 2,
394 minNumber3DLayers = 4,
395 d0_par1 = ( 0.5, 4.0 ),
396 dz_par1 = ( 0.5, 4.0 ),
397 d0_par2 = ( 0.45, 4.0 ),
398 dz_par2 = ( 0.45, 4.0 )
404 from Configuration.ProcessModifiers.vectorHits_cff
import vectorHits
405 vectorHits.toModify(lowPtTripletStepSelector.trackSelectors[2], minNumberLayers = 3, minNumber3DLayers = 3)
409 LowPtTripletStepTask = cms.Task(lowPtTripletStepClusters,
410 lowPtTripletStepSeedLayers,
411 lowPtTripletStepTrackingRegions,
412 lowPtTripletStepHitDoublets,
413 lowPtTripletStepHitTriplets,
414 lowPtTripletStepSeeds,
415 lowPtTripletStepTrackCandidates,
416 lowPtTripletStepTracks,
418 LowPtTripletStep = cms.Sequence(LowPtTripletStepTask)
420 _LowPtTripletStepTask_trackingMkFit = LowPtTripletStepTask.copy()
421 _LowPtTripletStepTask_trackingMkFit.add(lowPtTripletStepTrackCandidatesMkFitSeeds, lowPtTripletStepTrackCandidatesMkFit)
422 trackingMkFitLowPtTripletStep.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_trackingMkFit)
424 _LowPtTripletStepTask_LowPU_Phase2PU140 = LowPtTripletStepTask.copy()
425 _LowPtTripletStepTask_LowPU_Phase2PU140.replace(lowPtTripletStep, lowPtTripletStepSelector)
426 trackingLowPU.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
428 trackingPhase2PU140.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
430 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
432 fastSim.toReplaceWith(LowPtTripletStepTask,
433 cms.Task(lowPtTripletStepMasks
434 ,lowPtTripletStepTrackingRegions
435 ,lowPtTripletStepSeeds
436 ,lowPtTripletStepTrackCandidates
437 ,lowPtTripletStepTracks
def _hitSetProducerToFactoryPSet(producer)
def maskProducerFromClusterRemover(clusterRemover)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)