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
6 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
7 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
10 from Configuration.ProcessModifiers.trackdnn_cff
import trackdnn
17 detachedTripletStepClusters = _cfg.clusterRemoverForIter(
'DetachedTripletStep')
18 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
19 _era.toReplaceWith(detachedTripletStepClusters, _cfg.clusterRemoverForIter(
'DetachedTripletStep', _eraName, _postfix))
23 detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
24 BPix = dict(skipClusters = cms.InputTag(
'detachedTripletStepClusters')),
25 FPix = dict(skipClusters = cms.InputTag(
'detachedTripletStepClusters'))
32 'BPix2+BPix3+FPix1_pos',
'BPix2+BPix3+FPix1_neg',
35 'BPix2+FPix1_pos+FPix2_pos',
'BPix2+FPix1_neg+FPix2_neg',
38 'FPix1_pos+FPix2_pos+FPix3_pos',
'FPix1_neg+FPix2_neg+FPix3_neg',
42 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
43 trackingPhase1.toModify(detachedTripletStepSeedLayers, layerList=_phase1LayerList)
46 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
47 detachedTripletStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
49 originHalfLength = 15.0,
52 trackingPhase1.toModify(detachedTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.25))
54 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
55 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
57 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(detachedTripletStepTrackingRegions,
58 _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
64 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
65 highBetaStar_2018.toModify(detachedTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.05))
68 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
69 detachedTripletStepHitDoublets = _hitPairEDProducer.clone(
70 seedingLayers =
'detachedTripletStepSeedLayers',
71 trackingRegions =
'detachedTripletStepTrackingRegions',
72 maxElement = 50000000,
73 produceIntermediateHitDoublets =
True,
75 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi
import pixelTripletLargeTipEDProducer
as _pixelTripletLargeTipEDProducer
77 detachedTripletStepHitTriplets = _pixelTripletLargeTipEDProducer.clone(
78 doublets =
'detachedTripletStepHitDoublets',
79 produceSeedingHitSets =
True,
81 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
82 detachedTripletStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
83 seedingHitSets =
'detachedTripletStepHitTriplets',
84 SeedComparitorPSet = dict(
85 ComponentName =
'PixelClusterShapeSeedComparitor',
86 FilterAtHelixStage = cms.bool(
False),
87 FilterPixelHits = cms.bool(
True),
88 FilterStripHits = cms.bool(
False),
89 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
90 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
94 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi
import caHitTripletEDProducer
as _caHitTripletEDProducer
95 trackingPhase1.toModify(detachedTripletStepHitDoublets, layerPairs = [0,1])
96 trackingPhase1.toReplaceWith(detachedTripletStepHitTriplets, _caHitTripletEDProducer.clone(
97 doublets =
'detachedTripletStepHitDoublets',
98 extraHitRPhitolerance = detachedTripletStepHitTriplets.extraHitRPhitolerance,
101 value1 = 300, value2 = 10,
103 useBendingCorrection =
True,
108 highBetaStar_2018.toModify(detachedTripletStepHitTriplets,CAThetaCut = 0.002,CAPhiCut = 0.1,CAHardPtCut = 0)
110 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
111 _fastSim_detachedTripletStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
112 trackingRegions =
'detachedTripletStepTrackingRegions',
113 hitMasks = cms.InputTag(
'detachedTripletStepMasks'),
115 layerList = detachedTripletStepSeedLayers.layerList.value())
117 trackingPhase1.toModify(_fastSim_detachedTripletStepSeeds, seedFinderSelector = dict(
118 pixelTripletGeneratorFactory =
None,
122 TTRHBuilder =
'WithoutRefit',
123 HitProducer =
'TrackingRecHitProducer',
126 TTRHBuilder =
'WithoutRefit',
127 HitProducer =
'TrackingRecHitProducer',
129 layerPairs = detachedTripletStepHitDoublets.layerPairs.value()
132 fastSim.toReplaceWith(detachedTripletStepSeeds,_fastSim_detachedTripletStepSeeds)
136 _detachedTripletStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
139 minimumNumberOfHits = 3,
142 detachedTripletStepTrajectoryFilterBase = _detachedTripletStepTrajectoryFilterBase.clone(
144 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
146 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
147 _tracker_apv_vfp30_2016.toModify(detachedTripletStepTrajectoryFilterBase, maxCCCLostHits = 2)
148 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
149 trackingLowPU.toReplaceWith(detachedTripletStepTrajectoryFilterBase, _detachedTripletStepTrajectoryFilterBase.clone(
150 maxLostHitsFraction = 1./10.,
151 constantValueForLostHitsFractionFilter = 0.701,
154 (pp_on_XeXe_2017 | pp_on_AA).toModify(detachedTripletStepTrajectoryFilterBase, minPt=0.9)
156 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
157 detachedTripletStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
158 detachedTripletStepTrajectoryFilter = cms.PSet(
159 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
161 cms.PSet( refToPSet_ = cms.string(
'detachedTripletStepTrajectoryFilterBase')),
167 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
168 detachedTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
169 ComponentName =
'detachedTripletStepChi2Est',
172 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
174 _tracker_apv_vfp30_2016.toModify(detachedTripletStepChi2Est,
175 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTiny')
180 detachedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
181 MeasurementTrackerName =
'',
182 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'detachedTripletStepTrajectoryFilter')),
184 alwaysUseInvalidHits =
True,
185 estimator =
'detachedTripletStepChi2Est',
186 maxDPhiForLooperReconstruction = cms.double(2.0),
187 maxPtForLooperReconstruction = cms.double(0.7)
189 trackingLowPU.toModify(detachedTripletStepTrajectoryBuilder,
191 alwaysUseInvalidHits =
False,
196 detachedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
197 src =
'detachedTripletStepSeeds',
198 clustersToSkip = cms.InputTag(
'detachedTripletStepClusters'),
200 numHitsForSeedCleaner = cms.int32(50),
201 onlyPixelHitsForSeedCleaner = cms.bool(
True),
202 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'detachedTripletStepTrajectoryBuilder')),
203 doSeedingRegionRebuilding =
True,
204 useHitsSplitting =
True
208 detachedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
209 ComponentName =
'detachedTripletStepTrajectoryCleanerBySharedHits',
210 fractionShared = 0.13,
211 allowSharedFirstHit =
True
213 detachedTripletStepTrackCandidates.TrajectoryCleaner =
'detachedTripletStepTrajectoryCleanerBySharedHits'
214 trackingLowPU.toModify(detachedTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
216 import FastSimulation.Tracking.TrackCandidateProducer_cfi
217 _fastSim_detachedTripletStepTrackCandidates = FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
218 src =
'detachedTripletStepSeeds',
219 MinNumberOfCrossedLayers = 3,
220 hitMasks = cms.InputTag(
'detachedTripletStepMasks')
222 fastSim.toReplaceWith(detachedTripletStepTrackCandidates,_fastSim_detachedTripletStepTrackCandidates)
227 detachedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
228 AlgorithmName =
'detachedTripletStep',
229 src =
'detachedTripletStepTrackCandidates',
230 Fitter =
'FlexibleKFFittingSmoother'
232 fastSim.toModify(detachedTripletStepTracks,TTRHBuilder =
'WithoutRefit')
239 detachedTripletStepClassifier1 = TrackMVAClassifierDetached.clone(
240 src =
'detachedTripletStepTracks',
241 mva = dict(GBRForestLabel =
'MVASelectorIter3_13TeV'),
242 qualityCuts = [-0.5,0.0,0.5]
244 fastSim.toModify(detachedTripletStepClassifier1,vertices =
'firstStepPrimaryVerticesBeforeMixing')
246 detachedTripletStepClassifier2 = TrackMVAClassifierPrompt.clone(
247 src =
'detachedTripletStepTracks',
248 mva = dict(GBRForestLabel =
'MVASelectorIter0_13TeV'),
249 qualityCuts = [-0.2,0.0,0.4]
251 fastSim.toModify(detachedTripletStepClassifier2,vertices =
'firstStepPrimaryVerticesBeforeMixing')
254 detachedTripletStep = ClassifierMerger.clone(
255 inputClassifiers=[
'detachedTripletStepClassifier1',
'detachedTripletStepClassifier2']
257 trackingPhase1.toReplaceWith(detachedTripletStep, detachedTripletStepClassifier1.clone(
258 mva = dict(GBRForestLabel =
'MVASelectorDetachedTripletStep_Phase1'),
259 qualityCuts = [-0.2,0.3,0.8]
264 trackdnn.toReplaceWith(detachedTripletStep, TrackLwtnnClassifier.clone(
265 src =
'detachedTripletStepTracks',
266 qualityCuts = [0.0, 0.4, 0.8],
268 (trackdnn & fastSim).toModify(detachedTripletStep,vertices =
'firstStepPrimaryVerticesBeforeMixing')
270 highBetaStar_2018.toModify(detachedTripletStep,qualityCuts = [-0.5,0.0,0.5])
271 pp_on_AA.toModify(detachedTripletStep,
272 mva = dict(GBRForestLabel =
'HIMVASelectorDetachedTripletStep_Phase1'),
273 qualityCuts = [-0.2, 0.4, 0.85],
277 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
278 detachedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
279 src =
'detachedTripletStepTracks',
280 useAnyMVA = cms.bool(
False),
281 GBRForestLabel = cms.string(
'MVASelectorIter3'),
283 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
284 name =
'detachedTripletStepVtxLoose',
286 res_par = ( 0.003, 0.001 ),
288 d0_par1 = ( 1.2, 3.0 ),
289 dz_par1 = ( 1.2, 3.0 ),
290 d0_par2 = ( 1.3, 3.0 ),
291 dz_par2 = ( 1.3, 3.0 )
293 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
294 name =
'detachedTripletStepTrkLoose',
296 res_par = ( 0.003, 0.001 ),
298 d0_par1 = ( 1.6, 4.0 ),
299 dz_par1 = ( 1.6, 4.0 ),
300 d0_par2 = ( 1.6, 4.0 ),
301 dz_par2 = ( 1.6, 4.0 )
303 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
304 name =
'detachedTripletStepVtxTight',
305 preFilterName =
'detachedTripletStepVtxLoose',
307 res_par = ( 0.003, 0.001 ),
309 maxNumberLostLayers = 1,
310 minNumber3DLayers = 3,
311 d0_par1 = ( 0.95, 3.0 ),
312 dz_par1 = ( 0.9, 3.0 ),
313 d0_par2 = ( 1.0, 3.0 ),
314 dz_par2 = ( 1.0, 3.0 )
316 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
317 name =
'detachedTripletStepTrkTight',
318 preFilterName =
'detachedTripletStepTrkLoose',
320 res_par = ( 0.003, 0.001 ),
322 maxNumberLostLayers = 1,
323 minNumber3DLayers = 3,
324 d0_par1 = ( 1.1, 4.0 ),
325 dz_par1 = ( 1.1, 4.0 ),
326 d0_par2 = ( 1.1, 4.0 ),
327 dz_par2 = ( 1.1, 4.0 )
329 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
330 name =
'detachedTripletStepVtx',
331 preFilterName =
'detachedTripletStepVtxTight',
333 res_par = ( 0.003, 0.001 ),
335 maxNumberLostLayers = 1,
336 minNumber3DLayers = 3,
337 d0_par1 = ( 0.85, 3.0 ),
338 dz_par1 = ( 0.8, 3.0 ),
339 d0_par2 = ( 0.9, 3.0 ),
340 dz_par2 = ( 0.9, 3.0 )
342 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
343 name =
'detachedTripletStepTrk',
344 preFilterName =
'detachedTripletStepTrkTight',
346 res_par = ( 0.003, 0.001 ),
348 maxNumberLostLayers = 1,
349 minNumber3DLayers = 4,
350 d0_par1 = ( 1.0, 4.0 ),
351 dz_par1 = ( 1.0, 4.0 ),
352 d0_par2 = ( 1.0, 4.0 ),
353 dz_par2 = ( 1.0, 4.0 )
358 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi
import trackAlgoPriorityOrder
360 trackingLowPU.toReplaceWith(detachedTripletStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
361 TrackProducers = [
'detachedTripletStepTracks',
362 'detachedTripletStepTracks'],
364 selectedTrackQuals = [
'detachedTripletStepSelector:detachedTripletStepVtx',
365 'detachedTripletStepSelector:detachedTripletStepTrk'],
366 setsToMerge = [cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(
True) )],
367 writeOnlyTrkQuals =
True
370 DetachedTripletStepTask = cms.Task(detachedTripletStepClusters,
371 detachedTripletStepSeedLayers,
372 detachedTripletStepTrackingRegions,
373 detachedTripletStepHitDoublets,
374 detachedTripletStepHitTriplets,
375 detachedTripletStepSeeds,
376 detachedTripletStepTrackCandidates,
377 detachedTripletStepTracks,
378 detachedTripletStepClassifier1,detachedTripletStepClassifier2,
380 DetachedTripletStep = cms.Sequence(DetachedTripletStepTask)
381 _DetachedTripletStepTask_LowPU = DetachedTripletStepTask.copyAndExclude([detachedTripletStepClassifier2])
382 _DetachedTripletStepTask_LowPU.replace(detachedTripletStepClassifier1, detachedTripletStepSelector)
383 trackingLowPU.toReplaceWith(DetachedTripletStepTask, _DetachedTripletStepTask_LowPU)
386 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
388 fastSim.toReplaceWith(DetachedTripletStepTask,
389 cms.Task(detachedTripletStepMasks
390 ,detachedTripletStepTrackingRegions
391 ,detachedTripletStepSeeds
392 ,detachedTripletStepTrackCandidates
393 ,detachedTripletStepTracks
394 ,detachedTripletStepClassifier1,detachedTripletStepClassifier2