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 
164 
165 # SEEDING LAYERS
166 mixedTripletStepSeedLayersB = _mod.seedingLayersEDProducer.clone(
167  layerList = ['BPix2+BPix3+TIB1'],
168  BPix = cms.PSet(
169  TTRHBuilder = cms.string('WithTrackAngle'),
170  HitProducer = cms.string('siPixelRecHits'),
171  skipClusters = cms.InputTag('mixedTripletStepClusters')
172  ),
173  TIB = cms.PSet(
174  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
175  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
176  skipClusters = cms.InputTag('mixedTripletStepClusters')
177  )
178 )
179 trackingLowPU.toModify(mixedTripletStepSeedLayersB,
180  layerList = ['BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'],
181  TIB = dict(clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')),
182 )
183 trackingPhase1.toModify(mixedTripletStepSeedLayersB, layerList = ['BPix3+BPix4+TIB1'])
184 
185 # TrackingRegion
186 mixedTripletStepTrackingRegionsB = _mixedTripletStepTrackingRegionsCommon.clone(RegionPSet = dict(ptMin=0.6, originHalfLength=10.0))
187 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(mixedTripletStepTrackingRegionsB,
188  _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
189  fixedError = 2.5,
190  ptMin = 0.6,)
191  )
192 )
193 highBetaStar_2018.toReplaceWith(mixedTripletStepTrackingRegionsB, _mixedTripletStepTrackingRegionsCommon.clone())
194 
195 # seeding
196 mixedTripletStepHitDoubletsB = mixedTripletStepHitDoubletsA.clone(
197  seedingLayers = 'mixedTripletStepSeedLayersB',
198  trackingRegions = 'mixedTripletStepTrackingRegionsB',
199 )
200 mixedTripletStepHitTripletsB = mixedTripletStepHitTripletsA.clone(doublets = 'mixedTripletStepHitDoubletsB')
201 mixedTripletStepSeedsB = _mixedTripletStepSeedsACommon.clone(seedingHitSets = 'mixedTripletStepHitTripletsB')
202 #fastsim
203 _fastSim_mixedTripletStepSeedsB = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
204  trackingRegions = 'mixedTripletStepTrackingRegionsB',
205  hitMasks = cms.InputTag('mixedTripletStepMasks'),
206  seedFinderSelector = dict(pixelTripletGeneratorFactory = _hitSetProducerToFactoryPSet(mixedTripletStepHitTripletsB),
207  layerList = mixedTripletStepSeedLayersB.layerList.value())
208 )
209 fastSim.toReplaceWith(mixedTripletStepSeedsB,_fastSim_mixedTripletStepSeedsB)
210 
211 
213 mixedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone(
214  seedCollections = ['mixedTripletStepSeedsA',
215  'mixedTripletStepSeedsB']
216 )
217 # QUALITY CUTS DURING TRACK BUILDING
219 _mixedTripletStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
220 # maxLostHits = 0,
221  minimumNumberOfHits = 3,
222  minPt = 0.1
223 )
224 highBetaStar_2018.toModify(_mixedTripletStepTrajectoryFilterBase,minPt = 0.05)
225 
226 mixedTripletStepTrajectoryFilter = _mixedTripletStepTrajectoryFilterBase.clone(
227  constantValueForLostHitsFractionFilter = 1.4,
228 )
229 trackingLowPU.toReplaceWith(mixedTripletStepTrajectoryFilter, _mixedTripletStepTrajectoryFilterBase.clone(
230  maxLostHits = 0,
231 ))
232 
233 (pp_on_XeXe_2017 | pp_on_AA).toModify(mixedTripletStepTrajectoryFilter, minPt=0.4)
234 
235 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
238 mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
239 #mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.MaterialPropagatorParabolicMF.clone(
240  ComponentName = 'mixedTripletStepPropagator',
241  ptMin = 0.1
242 )
243 for e in [pp_on_XeXe_2017, pp_on_AA]:
244  e.toModify(mixedTripletStepPropagator, ptMin=0.4)
245 highBetaStar_2018.toModify(mixedTripletStepPropagator,ptMin = 0.05)
246 
248 mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
249 #mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.OppositeMaterialPropagatorParabolicMF.clone(
250  ComponentName = 'mixedTripletStepPropagatorOpposite',
251  ptMin = 0.1
252 )
253 for e in [pp_on_XeXe_2017, pp_on_AA]:
254  e.toModify(mixedTripletStepPropagatorOpposite, ptMin=0.4)
255 highBetaStar_2018.toModify(mixedTripletStepPropagatorOpposite,ptMin = 0.05)
256 
257 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
258 mixedTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
259  ComponentName = 'mixedTripletStepChi2Est',
260  nSigma = 3.0,
261  MaxChi2 = 16.0,
262  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
263 )
264 trackingLowPU.toModify(mixedTripletStepChi2Est,
265  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')
266 )
267 
268 # TRACK BUILDING
270 mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
271  MeasurementTrackerName = '',
272  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryFilter')),
273  propagatorAlong = 'mixedTripletStepPropagator',
274  propagatorOpposite = 'mixedTripletStepPropagatorOpposite',
275  maxCand = 2,
276  estimator = 'mixedTripletStepChi2Est',
277  maxDPhiForLooperReconstruction = cms.double(2.0),
278  maxPtForLooperReconstruction = cms.double(0.7)
279 )
280 
281 # MAKING OF TRACK CANDIDATES
283 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
284  src = 'mixedTripletStepSeeds',
285  clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
286 
287  numHitsForSeedCleaner = cms.int32(50),
288  #onlyPixelHitsForSeedCleaner = cms.bool(True),
289 
290  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryBuilder')),
291  doSeedingRegionRebuilding = True,
292  useHitsSplitting = True,
293  TrajectoryCleaner = 'mixedTripletStepTrajectoryCleanerBySharedHits'
294 )
295 
296 from Configuration.ProcessModifiers.trackingMkFitMixedTripletStep_cff import trackingMkFitMixedTripletStep
297 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
298 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
299 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
300 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
301 mixedTripletStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
302  seeds = 'mixedTripletStepSeeds',
303 )
304 mixedTripletStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
305  ComponentName = 'mixedTripletStepTrackCandidatesMkFitConfig',
306  config = 'RecoTracker/MkFit/data/mkfit-phase1-mixedTripletStep.json',
307 )
308 mixedTripletStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
309  seeds = 'mixedTripletStepTrackCandidatesMkFitSeeds',
310  config = ('', 'mixedTripletStepTrackCandidatesMkFitConfig'),
311  clustersToSkip = 'mixedTripletStepClusters',
312 )
313 trackingMkFitMixedTripletStep.toReplaceWith(mixedTripletStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
314  seeds = 'mixedTripletStepSeeds',
315  mkFitSeeds = 'mixedTripletStepTrackCandidatesMkFitSeeds',
316  tracks = 'mixedTripletStepTrackCandidatesMkFit',
317 ))
318 
319 import FastSimulation.Tracking.TrackCandidateProducer_cfi
320 fastSim.toReplaceWith(mixedTripletStepTrackCandidates,
321  FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
322  src = 'mixedTripletStepSeeds',
323  MinNumberOfCrossedLayers = 3,
324  hitMasks = cms.InputTag('mixedTripletStepMasks'),
325  )
326 )
327 
328 
329 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
330 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
331  ComponentName = 'mixedTripletStepTrajectoryCleanerBySharedHits',
332  fractionShared = 0.11,
333  allowSharedFirstHit = True
334 )
335 trackingLowPU.toModify(mixedTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
336 
337 
338 # TRACK FITTING
340 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
341  AlgorithmName = 'mixedTripletStep',
342  src = 'mixedTripletStepTrackCandidates',
343  Fitter = 'FlexibleKFFittingSmoother'
344 )
345 fastSim.toModify(mixedTripletStepTracks, TTRHBuilder = 'WithoutRefit')
346 
347 # TRACK SELECTION AND QUALITY FLAG SETTING.
350 mixedTripletStepClassifier1 = TrackMVAClassifierDetached.clone(
351  src = 'mixedTripletStepTracks',
352  mva = dict(GBRForestLabel = 'MVASelectorIter4_13TeV'),
353  qualityCuts = [-0.5,0.0,0.5]
354 )
355 fastSim.toModify(mixedTripletStepClassifier1, vertices = 'firstStepPrimaryVerticesBeforeMixing')
356 
357 mixedTripletStepClassifier2 = TrackMVAClassifierPrompt.clone(
358  src = 'mixedTripletStepTracks',
359  mva = dict(GBRForestLabel = 'MVASelectorIter0_13TeV'),
360  qualityCuts = [-0.2,-0.2,-0.2]
361 )
362 fastSim.toModify(mixedTripletStepClassifier2,vertices = 'firstStepPrimaryVerticesBeforeMixing')
363 
365 mixedTripletStep = ClassifierMerger.clone(
366  inputClassifiers=['mixedTripletStepClassifier1','mixedTripletStepClassifier2']
367 )
368 trackingPhase1.toReplaceWith(mixedTripletStep, mixedTripletStepClassifier1.clone(
369  mva = dict(GBRForestLabel = 'MVASelectorMixedTripletStep_Phase1'),
370  qualityCuts = [-0.5,0.0,0.5]
371 ))
372 
375 trackdnn.toReplaceWith(mixedTripletStep, TrackTfClassifier.clone(
376  src = 'mixedTripletStepTracks',
377  qualityCuts = qualityCutDictionary['MixedTripletStep']
378 ))
379 (trackdnn & fastSim).toModify(mixedTripletStep,vertices = 'firstStepPrimaryVerticesBeforeMixing')
380 
381 highBetaStar_2018.toModify(mixedTripletStep,qualityCuts = [-0.7,0.0,0.5])
382 pp_on_AA.toModify(mixedTripletStep, qualityCuts = [-0.5,0.0,0.9])
383 
384 # For LowPU
385 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
386 mixedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
387  src = 'mixedTripletStepTracks',
388  useAnyMVA = cms.bool(False),
389  GBRForestLabel = cms.string('MVASelectorIter4'),
390  trackSelectors = [
391  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
392  name = 'mixedTripletStepVtxLoose',
393  chi2n_par = 1.2,
394  res_par = ( 0.003, 0.001 ),
395  minNumberLayers = 3,
396  maxNumberLostLayers = 1,
397  minNumber3DLayers = 2,
398  d0_par1 = ( 1.2, 3.0 ),
399  dz_par1 = ( 1.2, 3.0 ),
400  d0_par2 = ( 1.3, 3.0 ),
401  dz_par2 = ( 1.3, 3.0 )
402  ),
403  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
404  name = 'mixedTripletStepTrkLoose',
405  chi2n_par = 0.6,
406  res_par = ( 0.003, 0.001 ),
407  minNumberLayers = 4,
408  maxNumberLostLayers = 1,
409  minNumber3DLayers = 3,
410  d0_par1 = ( 1.2, 4.0 ),
411  dz_par1 = ( 1.2, 4.0 ),
412  d0_par2 = ( 1.2, 4.0 ),
413  dz_par2 = ( 1.2, 4.0 )
414  ),
415  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
416  name = 'mixedTripletStepVtxTight',
417  preFilterName = 'mixedTripletStepVtxLoose',
418  chi2n_par = 0.6,
419  res_par = ( 0.003, 0.001 ),
420  minNumberLayers = 3,
421  maxNumberLostLayers = 1,
422  minNumber3DLayers = 3,
423  d0_par1 = ( 1.1, 3.0 ),
424  dz_par1 = ( 1.1, 3.0 ),
425  d0_par2 = ( 1.2, 3.0 ),
426  dz_par2 = ( 1.2, 3.0 )
427  ),
428  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
429  name = 'mixedTripletStepTrkTight',
430  preFilterName = 'mixedTripletStepTrkLoose',
431  chi2n_par = 0.4,
432  res_par = ( 0.003, 0.001 ),
433  minNumberLayers = 5,
434  maxNumberLostLayers = 1,
435  minNumber3DLayers = 4,
436  d0_par1 = ( 1.1, 4.0 ),
437  dz_par1 = ( 1.1, 4.0 ),
438  d0_par2 = ( 1.1, 4.0 ),
439  dz_par2 = ( 1.1, 4.0 )
440  ),
441  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
442  name = 'mixedTripletStepVtx',
443  preFilterName = 'mixedTripletStepVtxTight',
444  chi2n_par = 0.4,
445  res_par = ( 0.003, 0.001 ),
446  minNumberLayers = 3,
447  maxNumberLostLayers = 1,
448  minNumber3DLayers = 3,
449  d0_par1 = ( 1.1, 3.0 ),
450  dz_par1 = ( 1.1, 3.0 ),
451  d0_par2 = ( 1.2, 3.0 ),
452  dz_par2 = ( 1.2, 3.0 )
453  ),
454  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
455  name = 'mixedTripletStepTrk',
456  preFilterName = 'mixedTripletStepTrkTight',
457  chi2n_par = 0.3,
458  res_par = ( 0.003, 0.001 ),
459  minNumberLayers = 5,
460  maxNumberLostLayers = 0,
461  minNumber3DLayers = 4,
462  d0_par1 = ( 0.9, 4.0 ),
463  dz_par1 = ( 0.9, 4.0 ),
464  d0_par2 = ( 0.9, 4.0 ),
465  dz_par2 = ( 0.9, 4.0 )
466  )
467  ] #end of vpset
468 ) #end of clone
469 
470 
471 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi import trackAlgoPriorityOrder
473 _trackListMergerBase = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
474  TrackProducers = ['mixedTripletStepTracks',
475  'mixedTripletStepTracks'],
476  hasSelector = [1,1],
477  selectedTrackQuals = ['mixedTripletStepSelector:mixedTripletStepVtx',
478  'mixedTripletStepSelector:mixedTripletStepTrk'],
479  setsToMerge = [cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )],
480  writeOnlyTrkQuals = True
481 )
482 trackingLowPU.toReplaceWith(mixedTripletStep, _trackListMergerBase)
483 
484 
485 
486 MixedTripletStepTask = cms.Task(chargeCut2069Clusters,mixedTripletStepClusters,
487  mixedTripletStepSeedLayersA,
488  mixedTripletStepTrackingRegionsA,
489  mixedTripletStepHitDoubletsA,
490  mixedTripletStepHitTripletsA,
491  mixedTripletStepSeedsA,
492  mixedTripletStepSeedLayersB,
493  mixedTripletStepTrackingRegionsB,
494  mixedTripletStepHitDoubletsB,
495  mixedTripletStepHitTripletsB,
496  mixedTripletStepSeedsB,
497  mixedTripletStepSeeds,
498  mixedTripletStepTrackCandidates,
499  mixedTripletStepTracks,
500  mixedTripletStepClassifier1,mixedTripletStepClassifier2,
501  mixedTripletStep)
502 MixedTripletStep = cms.Sequence(MixedTripletStepTask)
503 
504 _MixedTripletStepTask_trackingMkFit = MixedTripletStepTask.copy()
505 _MixedTripletStepTask_trackingMkFit.add(mixedTripletStepTrackCandidatesMkFitSeeds, mixedTripletStepTrackCandidatesMkFit, mixedTripletStepTrackCandidatesMkFitConfig)
506 trackingMkFitMixedTripletStep.toReplaceWith(MixedTripletStepTask, _MixedTripletStepTask_trackingMkFit)
507 
508 _MixedTripletStepTask_LowPU = MixedTripletStepTask.copyAndExclude([chargeCut2069Clusters, mixedTripletStepClassifier1])
509 _MixedTripletStepTask_LowPU.replace(mixedTripletStepClassifier2, mixedTripletStepSelector)
510 trackingLowPU.toReplaceWith(MixedTripletStepTask, _MixedTripletStepTask_LowPU)
511 
512 #fastsim
513 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
514 mixedTripletStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(mixedTripletStepClusters)
515 mixedTripletStepMasks.oldHitRemovalInfo = cms.InputTag('pixelPairStepMasks')
516 
517 fastSim.toReplaceWith(MixedTripletStepTask,
518  cms.Task(mixedTripletStepMasks
519  ,mixedTripletStepTrackingRegionsA
520  ,mixedTripletStepSeedsA
521  ,mixedTripletStepTrackingRegionsB
522  ,mixedTripletStepSeedsB
523  ,mixedTripletStepSeeds
524  ,mixedTripletStepTrackCandidates
525  ,mixedTripletStepTracks
526  ,mixedTripletStepClassifier1,mixedTripletStepClassifier2
527  ,mixedTripletStep
528  )
529 )
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
trackingMkFitMixedTripletStep_cff
TrajectoryCleanerBySharedHits_cfi
CkfTrackCandidates_cfi
trackSelectionTf_cfi
seedingLayersEDProducer_cfi