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