CMS 3D CMS Logo

MixedTripletStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg
3 
4 from Configuration.Eras.Modifier_fastSim_cff import fastSim
5 
6 #for dnn classifier
7 from Configuration.ProcessModifiers.trackdnn_cff import trackdnn
8 from RecoTracker.IterativeTracking.dnnQualityCuts import qualityCutDictionary
9 
10 
13 
14 #here just for backward compatibility
15 chargeCut2069Clusters = cms.EDProducer('ClusterChargeMasker',
16  oldClusterRemovalInfo = cms.InputTag(''), # to be set below
17  pixelClusters = cms.InputTag('siPixelClusters'),
18  stripClusters = cms.InputTag('siStripClusters'),
19  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
20 )
21 
22 mixedTripletStepClusters = _cfg.clusterRemoverForIter('MixedTripletStep')
23 chargeCut2069Clusters.oldClusterRemovalInfo = mixedTripletStepClusters.oldClusterRemovalInfo.value()
24 mixedTripletStepClusters.oldClusterRemovalInfo = 'chargeCut2069Clusters'
25 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
26  _era.toReplaceWith(mixedTripletStepClusters, _cfg.clusterRemoverForIter('MixedTripletStep', _eraName, _postfix))
27 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
28 trackingPhase1.toModify(chargeCut2069Clusters, oldClusterRemovalInfo = mixedTripletStepClusters.oldClusterRemovalInfo.value())
29 trackingPhase1.toModify(mixedTripletStepClusters, oldClusterRemovalInfo='chargeCut2069Clusters')
30 
31 # SEEDING LAYERS
33 from RecoTracker.IterativeTracking.DetachedTripletStep_cff import detachedTripletStepSeedLayers
34 mixedTripletStepSeedLayersA = cms.EDProducer('SeedingLayersEDProducer',
35  layerList = cms.vstring('BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg'),
36 # layerList = cms.vstring('BPix1+BPix2+BPix3',
37 # 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
38 # 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
39 # 'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg'),
40  BPix = cms.PSet(
41  TTRHBuilder = cms.string('WithTrackAngle'),
42  HitProducer = cms.string('siPixelRecHits'),
43  skipClusters = cms.InputTag('mixedTripletStepClusters')
44  ),
45  FPix = cms.PSet(
46  TTRHBuilder = cms.string('WithTrackAngle'),
47  HitProducer = cms.string('siPixelRecHits'),
48  skipClusters = cms.InputTag('mixedTripletStepClusters')
49  ),
50  TEC = cms.PSet(
51  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
52  useRingSlector = cms.bool(True),
53  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
54  minRing = cms.int32(1),
55  maxRing = cms.int32(1),
56  skipClusters = cms.InputTag('mixedTripletStepClusters')
57  )
58 )
59 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
60 trackingLowPU.toModify(mixedTripletStepSeedLayersA,
61  layerList = [
62  'BPix1+BPix2+BPix3',
63  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
64  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
65  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
66  'FPix1_pos+FPix2_pos+TEC1_pos', 'FPix1_neg+FPix2_neg+TEC1_neg',
67  'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'
68  ],
69  TEC = dict(clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')),
70 )
71 from Configuration.Eras.Modifier_highBetaStar_2018_cff import highBetaStar_2018
72 highBetaStar_2018.toModify(mixedTripletStepSeedLayersA,
73  layerList = [
74  'BPix1+BPix2+BPix3',
75  'BPix1+FPix1_pos+FPix2_pos','BPix1+FPix1_neg+FPix2_neg',
76  'BPix2+FPix1_pos+FPix2_pos','BPix2+FPix1_neg+FPix2_neg',
77  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
78  'BPix1+BPix2+FPix2_pos', 'BPix1+BPix2+FPix2_neg'
79  ]
80 )
81 
82 
83 # TrackingRegion
84 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi import globalTrackingRegionFromBeamSpotFixedZ as _globalTrackingRegionFromBeamSpotFixedZ
85 _mixedTripletStepTrackingRegionsCommon = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
86  ptMin = 0.4,
87  originHalfLength = 15.0,
88  originRadius = 1.5
89 ))
90 trackingLowPU.toModify(_mixedTripletStepTrackingRegionsCommon, RegionPSet = dict(originHalfLength = 10.0))
91 highBetaStar_2018.toModify(_mixedTripletStepTrackingRegionsCommon,RegionPSet = dict(
92  ptMin = 0.05,
93  originRadius = 0.2
94 ))
95 
96 mixedTripletStepTrackingRegionsA = _mixedTripletStepTrackingRegionsCommon.clone()
97 
98 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
99 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
100 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
101 _mixedTripletStepTrackingRegionsCommon_pp_on_HI = _globalTrackingRegionWithVertices.clone(
102  RegionPSet=dict(
103  fixedError = 3.75,
104  ptMin = 0.4,
105  originRadius = 1.5,
106  originRScaling4BigEvts = True,
107  ptMinScaling4BigEvts = True,
108  minOriginR = 0.,
109  maxPtMin = 0.7,
110  scalingStartNPix = 20000,
111  scalingEndNPix = 35000
112  )
113 )
114 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(mixedTripletStepTrackingRegionsA,_mixedTripletStepTrackingRegionsCommon_pp_on_HI)
115 
116 
117 # seeding
118 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import ClusterShapeHitFilterESProducer as _ClusterShapeHitFilterESProducer
119 mixedTripletStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
120  ComponentName = 'mixedTripletStepClusterShapeHitFilter',
121  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTight')
122 )
123 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
124 mixedTripletStepHitDoubletsA = _hitPairEDProducer.clone(
125  seedingLayers = 'mixedTripletStepSeedLayersA',
126  trackingRegions = 'mixedTripletStepTrackingRegionsA',
127  maxElement = 50000000,
128  produceIntermediateHitDoublets = True,
129 )
130 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi import pixelTripletLargeTipEDProducer as _pixelTripletLargeTipEDProducer
132 mixedTripletStepHitTripletsA = _pixelTripletLargeTipEDProducer.clone(
133  doublets = 'mixedTripletStepHitDoubletsA',
134  produceSeedingHitSets = True,
135 )
136 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
137 _mixedTripletStepSeedsACommon = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
138  seedingHitSets = 'mixedTripletStepHitTripletsA',
139  SeedComparitorPSet = dict(# FIXME: is this defined in any cfi that could be imported instead of copy-paste?
140  ComponentName = 'PixelClusterShapeSeedComparitor',
141  FilterAtHelixStage = cms.bool(False),
142  FilterPixelHits = cms.bool(True),
143  FilterStripHits = cms.bool(True),
144  ClusterShapeHitFilterName = cms.string('mixedTripletStepClusterShapeHitFilter'),
145  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
146  ),
147 )
148 trackingLowPU.toModify(_mixedTripletStepSeedsACommon,
149  SeedComparitorPSet = dict(ClusterShapeHitFilterName = 'ClusterShapeHitFilter')
150 )
151 mixedTripletStepSeedsA = _mixedTripletStepSeedsACommon.clone()
152 
153 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
154 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
155 _fastSim_mixedTripletStepSeedsA = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
156  trackingRegions = 'mixedTripletStepTrackingRegionsA',
157  hitMasks = cms.InputTag('mixedTripletStepMasks'),
158  seedFinderSelector = dict(pixelTripletGeneratorFactory = _hitSetProducerToFactoryPSet(mixedTripletStepHitTripletsA),
159  layerList = mixedTripletStepSeedLayersA.layerList.value())
160 )
161 fastSim.toReplaceWith(mixedTripletStepSeedsA,_fastSim_mixedTripletStepSeedsA)
162 
163 
164 # SEEDING LAYERS
165 mixedTripletStepSeedLayersB = cms.EDProducer('SeedingLayersEDProducer',
166  layerList = cms.vstring('BPix2+BPix3+TIB1'),
167  BPix = cms.PSet(
168  TTRHBuilder = cms.string('WithTrackAngle'),
169  HitProducer = cms.string('siPixelRecHits'),
170  skipClusters = cms.InputTag('mixedTripletStepClusters')
171  ),
172  TIB = cms.PSet(
173  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
174  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
175  skipClusters = cms.InputTag('mixedTripletStepClusters')
176  )
177 )
178 trackingLowPU.toModify(mixedTripletStepSeedLayersB,
179  layerList = ['BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'],
180  TIB = dict(clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')),
181 )
182 trackingPhase1.toModify(mixedTripletStepSeedLayersB, layerList = ['BPix3+BPix4+TIB1'])
183 
184 # TrackingRegion
185 mixedTripletStepTrackingRegionsB = _mixedTripletStepTrackingRegionsCommon.clone(RegionPSet = dict(ptMin=0.6, originHalfLength=10.0))
186 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(mixedTripletStepTrackingRegionsB,
187  _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
188  fixedError = 2.5,
189  ptMin = 0.6,)
190  )
191 )
192 highBetaStar_2018.toReplaceWith(mixedTripletStepTrackingRegionsB, _mixedTripletStepTrackingRegionsCommon.clone())
193 
194 # seeding
195 mixedTripletStepHitDoubletsB = mixedTripletStepHitDoubletsA.clone(
196  seedingLayers = 'mixedTripletStepSeedLayersB',
197  trackingRegions = 'mixedTripletStepTrackingRegionsB',
198 )
199 mixedTripletStepHitTripletsB = mixedTripletStepHitTripletsA.clone(doublets = 'mixedTripletStepHitDoubletsB')
200 mixedTripletStepSeedsB = _mixedTripletStepSeedsACommon.clone(seedingHitSets = 'mixedTripletStepHitTripletsB')
201 #fastsim
202 _fastSim_mixedTripletStepSeedsB = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
203  trackingRegions = 'mixedTripletStepTrackingRegionsB',
204  hitMasks = cms.InputTag('mixedTripletStepMasks'),
205  seedFinderSelector = dict(pixelTripletGeneratorFactory = _hitSetProducerToFactoryPSet(mixedTripletStepHitTripletsB),
206  layerList = mixedTripletStepSeedLayersB.layerList.value())
207 )
208 fastSim.toReplaceWith(mixedTripletStepSeedsB,_fastSim_mixedTripletStepSeedsB)
209 
210 
212 mixedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone(
213  seedCollections = ['mixedTripletStepSeedsA',
214  'mixedTripletStepSeedsB']
215 )
216 # QUALITY CUTS DURING TRACK BUILDING
218 _mixedTripletStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
219 # maxLostHits = 0,
220  minimumNumberOfHits = 3,
221  minPt = 0.1
222 )
223 highBetaStar_2018.toModify(_mixedTripletStepTrajectoryFilterBase,minPt = 0.05)
224 
225 mixedTripletStepTrajectoryFilter = _mixedTripletStepTrajectoryFilterBase.clone(
226  constantValueForLostHitsFractionFilter = 1.4,
227 )
228 trackingLowPU.toReplaceWith(mixedTripletStepTrajectoryFilter, _mixedTripletStepTrajectoryFilterBase.clone(
229  maxLostHits = 0,
230 ))
231 
232 (pp_on_XeXe_2017 | pp_on_AA).toModify(mixedTripletStepTrajectoryFilter, minPt=0.4)
233 
234 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
237 mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
238 #mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.MaterialPropagatorParabolicMF.clone(
239  ComponentName = 'mixedTripletStepPropagator',
240  ptMin = 0.1
241 )
242 for e in [pp_on_XeXe_2017, pp_on_AA]:
243  e.toModify(mixedTripletStepPropagator, ptMin=0.4)
244 highBetaStar_2018.toModify(mixedTripletStepPropagator,ptMin = 0.05)
245 
247 mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
248 #mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.OppositeMaterialPropagatorParabolicMF.clone(
249  ComponentName = 'mixedTripletStepPropagatorOpposite',
250  ptMin = 0.1
251 )
252 for e in [pp_on_XeXe_2017, pp_on_AA]:
253  e.toModify(mixedTripletStepPropagatorOpposite, ptMin=0.4)
254 highBetaStar_2018.toModify(mixedTripletStepPropagatorOpposite,ptMin = 0.05)
255 
256 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
257 mixedTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
258  ComponentName = 'mixedTripletStepChi2Est',
259  nSigma = 3.0,
260  MaxChi2 = 16.0,
261  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
262 )
263 trackingLowPU.toModify(mixedTripletStepChi2Est,
264  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')
265 )
266 
267 # TRACK BUILDING
269 mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
270  MeasurementTrackerName = '',
271  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryFilter')),
272  propagatorAlong = 'mixedTripletStepPropagator',
273  propagatorOpposite = 'mixedTripletStepPropagatorOpposite',
274  maxCand = 2,
275  estimator = 'mixedTripletStepChi2Est',
276  maxDPhiForLooperReconstruction = cms.double(2.0),
277  maxPtForLooperReconstruction = cms.double(0.7)
278 )
279 
280 # MAKING OF TRACK CANDIDATES
282 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
283  src = 'mixedTripletStepSeeds',
284  clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
285 
286  numHitsForSeedCleaner = cms.int32(50),
287  #onlyPixelHitsForSeedCleaner = cms.bool(True),
288 
289  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryBuilder')),
290  doSeedingRegionRebuilding = True,
291  useHitsSplitting = True,
292  TrajectoryCleaner = 'mixedTripletStepTrajectoryCleanerBySharedHits'
293 )
294 import FastSimulation.Tracking.TrackCandidateProducer_cfi
295 fastSim.toReplaceWith(mixedTripletStepTrackCandidates,
296  FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
297  src = 'mixedTripletStepSeeds',
298  MinNumberOfCrossedLayers = 3,
299  hitMasks = cms.InputTag('mixedTripletStepMasks'),
300  )
301 )
302 
303 
304 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
305 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
306  ComponentName = 'mixedTripletStepTrajectoryCleanerBySharedHits',
307  fractionShared = 0.11,
308  allowSharedFirstHit = True
309 )
310 trackingLowPU.toModify(mixedTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
311 
312 
313 # TRACK FITTING
315 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
316  AlgorithmName = 'mixedTripletStep',
317  src = 'mixedTripletStepTrackCandidates',
318  Fitter = 'FlexibleKFFittingSmoother'
319 )
320 fastSim.toModify(mixedTripletStepTracks, TTRHBuilder = 'WithoutRefit')
321 
322 # TRACK SELECTION AND QUALITY FLAG SETTING.
325 mixedTripletStepClassifier1 = TrackMVAClassifierDetached.clone(
326  src = 'mixedTripletStepTracks',
327  mva = dict(GBRForestLabel = 'MVASelectorIter4_13TeV'),
328  qualityCuts = [-0.5,0.0,0.5]
329 )
330 fastSim.toModify(mixedTripletStepClassifier1, vertices = 'firstStepPrimaryVerticesBeforeMixing')
331 
332 mixedTripletStepClassifier2 = TrackMVAClassifierPrompt.clone(
333  src = 'mixedTripletStepTracks',
334  mva = dict(GBRForestLabel = 'MVASelectorIter0_13TeV'),
335  qualityCuts = [-0.2,-0.2,-0.2]
336 )
337 fastSim.toModify(mixedTripletStepClassifier2,vertices = 'firstStepPrimaryVerticesBeforeMixing')
338 
340 mixedTripletStep = ClassifierMerger.clone(
341  inputClassifiers=['mixedTripletStepClassifier1','mixedTripletStepClassifier2']
342 )
343 trackingPhase1.toReplaceWith(mixedTripletStep, mixedTripletStepClassifier1.clone(
344  mva = dict(GBRForestLabel = 'MVASelectorMixedTripletStep_Phase1'),
345  qualityCuts = [-0.5,0.0,0.5]
346 ))
347 
350 trackdnn.toReplaceWith(mixedTripletStep, TrackTfClassifier.clone(
351  src = 'mixedTripletStepTracks',
352  qualityCuts = qualityCutDictionary['MixedTripletStep']
353 ))
354 (trackdnn & fastSim).toModify(mixedTripletStep,vertices = 'firstStepPrimaryVerticesBeforeMixing')
355 
356 highBetaStar_2018.toModify(mixedTripletStep,qualityCuts = [-0.7,0.0,0.5])
357 pp_on_AA.toModify(mixedTripletStep, qualityCuts = [-0.5,0.0,0.9])
358 
359 # For LowPU
360 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
361 mixedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
362  src = 'mixedTripletStepTracks',
363  useAnyMVA = cms.bool(False),
364  GBRForestLabel = cms.string('MVASelectorIter4'),
365  trackSelectors = [
366  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
367  name = 'mixedTripletStepVtxLoose',
368  chi2n_par = 1.2,
369  res_par = ( 0.003, 0.001 ),
370  minNumberLayers = 3,
371  maxNumberLostLayers = 1,
372  minNumber3DLayers = 2,
373  d0_par1 = ( 1.2, 3.0 ),
374  dz_par1 = ( 1.2, 3.0 ),
375  d0_par2 = ( 1.3, 3.0 ),
376  dz_par2 = ( 1.3, 3.0 )
377  ),
378  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
379  name = 'mixedTripletStepTrkLoose',
380  chi2n_par = 0.6,
381  res_par = ( 0.003, 0.001 ),
382  minNumberLayers = 4,
383  maxNumberLostLayers = 1,
384  minNumber3DLayers = 3,
385  d0_par1 = ( 1.2, 4.0 ),
386  dz_par1 = ( 1.2, 4.0 ),
387  d0_par2 = ( 1.2, 4.0 ),
388  dz_par2 = ( 1.2, 4.0 )
389  ),
390  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
391  name = 'mixedTripletStepVtxTight',
392  preFilterName = 'mixedTripletStepVtxLoose',
393  chi2n_par = 0.6,
394  res_par = ( 0.003, 0.001 ),
395  minNumberLayers = 3,
396  maxNumberLostLayers = 1,
397  minNumber3DLayers = 3,
398  d0_par1 = ( 1.1, 3.0 ),
399  dz_par1 = ( 1.1, 3.0 ),
400  d0_par2 = ( 1.2, 3.0 ),
401  dz_par2 = ( 1.2, 3.0 )
402  ),
403  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
404  name = 'mixedTripletStepTrkTight',
405  preFilterName = 'mixedTripletStepTrkLoose',
406  chi2n_par = 0.4,
407  res_par = ( 0.003, 0.001 ),
408  minNumberLayers = 5,
409  maxNumberLostLayers = 1,
410  minNumber3DLayers = 4,
411  d0_par1 = ( 1.1, 4.0 ),
412  dz_par1 = ( 1.1, 4.0 ),
413  d0_par2 = ( 1.1, 4.0 ),
414  dz_par2 = ( 1.1, 4.0 )
415  ),
416  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
417  name = 'mixedTripletStepVtx',
418  preFilterName = 'mixedTripletStepVtxTight',
419  chi2n_par = 0.4,
420  res_par = ( 0.003, 0.001 ),
421  minNumberLayers = 3,
422  maxNumberLostLayers = 1,
423  minNumber3DLayers = 3,
424  d0_par1 = ( 1.1, 3.0 ),
425  dz_par1 = ( 1.1, 3.0 ),
426  d0_par2 = ( 1.2, 3.0 ),
427  dz_par2 = ( 1.2, 3.0 )
428  ),
429  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
430  name = 'mixedTripletStepTrk',
431  preFilterName = 'mixedTripletStepTrkTight',
432  chi2n_par = 0.3,
433  res_par = ( 0.003, 0.001 ),
434  minNumberLayers = 5,
435  maxNumberLostLayers = 0,
436  minNumber3DLayers = 4,
437  d0_par1 = ( 0.9, 4.0 ),
438  dz_par1 = ( 0.9, 4.0 ),
439  d0_par2 = ( 0.9, 4.0 ),
440  dz_par2 = ( 0.9, 4.0 )
441  )
442  ] #end of vpset
443 ) #end of clone
444 
445 
446 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi import trackAlgoPriorityOrder
448 _trackListMergerBase = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
449  TrackProducers = ['mixedTripletStepTracks',
450  'mixedTripletStepTracks'],
451  hasSelector = [1,1],
452  selectedTrackQuals = ['mixedTripletStepSelector:mixedTripletStepVtx',
453  'mixedTripletStepSelector:mixedTripletStepTrk'],
454  setsToMerge = [cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )],
455  writeOnlyTrkQuals = True
456 )
457 trackingLowPU.toReplaceWith(mixedTripletStep, _trackListMergerBase)
458 
459 
460 
461 MixedTripletStepTask = cms.Task(chargeCut2069Clusters,mixedTripletStepClusters,
462  mixedTripletStepSeedLayersA,
463  mixedTripletStepTrackingRegionsA,
464  mixedTripletStepHitDoubletsA,
465  mixedTripletStepHitTripletsA,
466  mixedTripletStepSeedsA,
467  mixedTripletStepSeedLayersB,
468  mixedTripletStepTrackingRegionsB,
469  mixedTripletStepHitDoubletsB,
470  mixedTripletStepHitTripletsB,
471  mixedTripletStepSeedsB,
472  mixedTripletStepSeeds,
473  mixedTripletStepTrackCandidates,
474  mixedTripletStepTracks,
475  mixedTripletStepClassifier1,mixedTripletStepClassifier2,
476  mixedTripletStep)
477 MixedTripletStep = cms.Sequence(MixedTripletStepTask)
478 _MixedTripletStepTask_LowPU = MixedTripletStepTask.copyAndExclude([chargeCut2069Clusters, mixedTripletStepClassifier1])
479 _MixedTripletStepTask_LowPU.replace(mixedTripletStepClassifier2, mixedTripletStepSelector)
480 trackingLowPU.toReplaceWith(MixedTripletStepTask, _MixedTripletStepTask_LowPU)
481 
482 #fastsim
483 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
484 mixedTripletStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(mixedTripletStepClusters)
485 mixedTripletStepMasks.oldHitRemovalInfo = cms.InputTag('pixelPairStepMasks')
486 
487 fastSim.toReplaceWith(MixedTripletStepTask,
488  cms.Task(mixedTripletStepMasks
489  ,mixedTripletStepTrackingRegionsA
490  ,mixedTripletStepSeedsA
491  ,mixedTripletStepTrackingRegionsB
492  ,mixedTripletStepSeedsB
493  ,mixedTripletStepSeeds
494  ,mixedTripletStepTrackCandidates
495  ,mixedTripletStepTracks
496  ,mixedTripletStepClassifier1,mixedTripletStepClassifier2
497  ,mixedTripletStep
498  )
499 )
DetachedTripletStep_cff
TrajectoryFilter_cff
GroupedCkfTrajectoryBuilder_cfi
OppositeMaterialPropagator_cfi
ClusterShapeHitFilterESProducer_cfi
SeedingMigration._hitSetProducerToFactoryPSet
def _hitSetProducerToFactoryPSet(producer)
Definition: SeedingMigration.py:10
GlobalCombinedSeeds_cfi
MaterialPropagator_cfi
globalTrackingRegionWithVertices_cff
SiStripClusterChargeCut_cfi
TrackMVAClassifierDetached_cfi
trackListMerger_cfi
ClassifierMerger_cfi
TrackTfClassifier_cfi
TrackProducer_cfi
TrackMVAClassifierPrompt_cfi
MaterialPropagatorParabolicMf_cff
TrajectoryCleanerBySharedHits_cfi
CkfTrackCandidates_cfi
trackSelectionTf_cfi