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