CMS 3D CMS Logo

TobTecStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg
3 from Configuration.Eras.Modifier_fastSim_cff import fastSim
4 
5 #######################################################################
6 # Very large impact parameter tracking using TOB + TEC ring 5 seeding #
7 #######################################################################
8 
9 tobTecStepClusters = _cfg.clusterRemoverForIter("TobTecStep")
10 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
11  _era.toReplaceWith(tobTecStepClusters, _cfg.clusterRemoverForIter("TobTecStep", _eraName, _postfix))
12 
13 # TRIPLET SEEDING LAYERS
15 tobTecStepSeedLayersTripl = cms.EDProducer("SeedingLayersEDProducer",
16  layerList = cms.vstring(
17  #TOB
18  'TOB1+TOB2+MTOB3','TOB1+TOB2+MTOB4',
19  #TOB+MTEC
20  'TOB1+TOB2+MTEC1_pos','TOB1+TOB2+MTEC1_neg',
21  ),
22  TOB = cms.PSet(
23  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
24  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
25  skipClusters = cms.InputTag('tobTecStepClusters')
26  ),
27  MTOB = cms.PSet(
28  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
29  skipClusters = cms.InputTag('tobTecStepClusters'),
30  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit")
31  ),
32  MTEC = cms.PSet(
33  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
34  skipClusters = cms.InputTag('tobTecStepClusters'),
35  useRingSlector = cms.bool(True),
36  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
37  minRing = cms.int32(6),
38  maxRing = cms.int32(7)
39  )
40 )
41 
42 # Triplet TrackingRegion
43 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi import globalTrackingRegionFromBeamSpotFixedZ as _globalTrackingRegionFromBeamSpotFixedZ
44 tobTecStepTrackingRegionsTripl = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
45  ptMin = 0.55,
46  originHalfLength = 20.0,
47  originRadius = 3.5
48 ))
49 
50 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
51 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018
52 from RecoTracker.IterativeTracking.MixedTripletStep_cff import _mixedTripletStepTrackingRegionsCommon_pp_on_HI
53 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(tobTecStepTrackingRegionsTripl,
54  _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
55  ptMinScaling4BigEvts= False,
56  fixedError = 5.0,
57  ptMin = 2.0,
58  originRadius = 3.5
59  ) )
60 )
61 
62 # Triplet seeding
63 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import ClusterShapeHitFilterESProducer as _ClusterShapeHitFilterESProducer
64 tobTecStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
65  ComponentName = 'tobTecStepClusterShapeHitFilter',
66  doStripShapeCut = cms.bool(False),
67  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTight')
68 )
69 
70 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
71 tobTecStepHitDoubletsTripl = _hitPairEDProducer.clone(
72  seedingLayers = "tobTecStepSeedLayersTripl",
73  trackingRegions = "tobTecStepTrackingRegionsTripl",
74  maxElement = 50000000,
75  produceIntermediateHitDoublets = True,
76 )
77 from RecoTracker.TkSeedGenerator.multiHitFromChi2EDProducer_cfi import multiHitFromChi2EDProducer as _multiHitFromChi2EDProducer
78 tobTecStepHitTripletsTripl = _multiHitFromChi2EDProducer.clone(
79  doublets = "tobTecStepHitDoubletsTripl",
80  extraPhiKDBox = 0.01,
81 )
82 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
83 from RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi import StripSubClusterShapeSeedFilter as _StripSubClusterShapeSeedFilter
84 _tobTecStepSeedComparitorPSet = dict(
85  ComponentName = 'CombinedSeedComparitor',
86  mode = cms.string("and"),
87  comparitors = cms.VPSet(
88  cms.PSet(# FIXME: is this defined in any cfi that could be imported instead of copy-paste?
89  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
90  FilterAtHelixStage = cms.bool(True),
91  FilterPixelHits = cms.bool(False),
92  FilterStripHits = cms.bool(True),
93  ClusterShapeHitFilterName = cms.string('tobTecStepClusterShapeHitFilter'),
94  ClusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCache") # not really needed here since FilterPixelHits=False
95  ),
96  _StripSubClusterShapeSeedFilter.clone()
97  )
98 )
99 tobTecStepSeedsTripl = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(#empirically better than 'SeedFromConsecutiveHitsTripletOnlyCreator'
100  seedingHitSets = "tobTecStepHitTripletsTripl",
101  SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
102 )
103 #fastsim
104 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
105 _fastSim_tobTecStepSeedsTripl = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
106  trackingRegions = "tobTecStepTrackingRegionsTripl",
107  hitMasks = cms.InputTag("tobTecStepMasks"),
108 )
109 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
110 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory = _hitSetProducerToFactoryPSet(tobTecStepHitTripletsTripl)
111 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory.SeedComparitorPSet=cms.PSet( ComponentName = cms.string( "none" ) )
112 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.MultiHitGeneratorFactory.refitHits = False
113 _fastSim_tobTecStepSeedsTripl.seedFinderSelector.layerList = tobTecStepSeedLayersTripl.layerList.value()
114 fastSim.toReplaceWith(tobTecStepSeedsTripl,_fastSim_tobTecStepSeedsTripl)
115 
116 # PAIR SEEDING LAYERS
117 tobTecStepSeedLayersPair = cms.EDProducer("SeedingLayersEDProducer",
118  layerList = cms.vstring('TOB1+TEC1_pos','TOB1+TEC1_neg',
119  'TEC1_pos+TEC2_pos','TEC1_neg+TEC2_neg',
120  'TEC2_pos+TEC3_pos','TEC2_neg+TEC3_neg',
121  'TEC3_pos+TEC4_pos','TEC3_neg+TEC4_neg',
122  'TEC4_pos+TEC5_pos','TEC4_neg+TEC5_neg',
123  'TEC5_pos+TEC6_pos','TEC5_neg+TEC6_neg',
124  'TEC6_pos+TEC7_pos','TEC6_neg+TEC7_neg'),
125  TOB = cms.PSet(
126  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
127  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
128  skipClusters = cms.InputTag('tobTecStepClusters')
129  ),
130  TEC = cms.PSet(
131  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
132  skipClusters = cms.InputTag('tobTecStepClusters'),
133  useRingSlector = cms.bool(True),
134  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
135  minRing = cms.int32(5),
136  maxRing = cms.int32(5)
137  )
138 )
139 # Pair TrackingRegion
140 tobTecStepTrackingRegionsPair = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
141  ptMin = 0.6,
142  originHalfLength = 30.0,
143  originRadius = 6.0,
144 ))
145 
146 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(tobTecStepTrackingRegionsPair,
147  _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
148  ptMinScaling4BigEvts= False,
149  fixedError = 7.5,
150  ptMin = 2.0,
151  originRadius = 6.0
152  ) )
153 )
154 
155 
156 # Pair seeds
157 tobTecStepHitDoubletsPair = _hitPairEDProducer.clone(
158  seedingLayers = "tobTecStepSeedLayersPair",
159  trackingRegions = "tobTecStepTrackingRegionsPair",
160  produceSeedingHitSets = True,
161  maxElementTotal = 12000000,
162 )
163 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
164 tobTecStepSeedsPair = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
165  seedingHitSets = "tobTecStepHitDoubletsPair",
166  SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
167 )
168 #fastsim
169 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
170 fastSim.toReplaceWith(tobTecStepSeedsPair,
171  FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
172  trackingRegions = "tobTecStepTrackingRegionsPair",
173  hitMasks = cms.InputTag("tobTecStepMasks"),
174  seedFinderSelector = dict(layerList = tobTecStepSeedLayersPair.layerList.value())
175  )
176 )
177 
178 
179 # Combined seeds
181 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
182 tobTecStepSeeds.seedCollections = cms.VInputTag(cms.InputTag('tobTecStepSeedsTripl'),cms.InputTag('tobTecStepSeedsPair'))
183 
184 # LowPU
185 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
186 trackingLowPU.toModify(tobTecStepHitDoubletsPair, seedingLayers = 'tobTecStepSeedLayers')
187 trackingLowPU.toReplaceWith(tobTecStepSeeds, _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
188  seedingHitSets = "tobTecStepHitDoubletsPair",
189 ))
190 
191 
192 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
194 _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
195  maxLostHits = 0,
196  minimumNumberOfHits = 5,
197  minPt = 0.1,
198  minHitsMinPt = 3
199  )
200 tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone(
201  seedPairPenalty = 1,
202 )
203 trackingLowPU.toReplaceWith(tobTecStepTrajectoryFilter, _tobTecStepTrajectoryFilterBase.clone(
204  minimumNumberOfHits = 6,
205 ))
206 for e in [pp_on_XeXe_2017, pp_on_AA_2018]:
207  e.toModify(tobTecStepTrajectoryFilter, minPt=2.0)
208 
209 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
210  minimumNumberOfHits = 4,
211 )
212 
213 
214 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
215 tobTecStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
216  ComponentName = cms.string('tobTecStepChi2Est'),
217  nSigma = cms.double(3.0),
218  MaxChi2 = cms.double(16.0),
219  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
220 )
221 trackingLowPU.toModify(tobTecStepChi2Est,
222  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')
223 )
224 
225 # TRACK BUILDING
227 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
228  MeasurementTrackerName = '',
229  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryFilter')),
230  inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepInOutTrajectoryFilter')),
231  useSameTrajFilter = False,
232  minNrOfHitsForRebuild = 4,
233  alwaysUseInvalidHits = False,
234  maxCand = 2,
235  estimator = cms.string('tobTecStepChi2Est'),
236  #startSeedHitsInRebuild = True
237  maxDPhiForLooperReconstruction = cms.double(2.0),
238  maxPtForLooperReconstruction = cms.double(0.7)
239  )
240 # Important note for LowPU: in RunI_TobTecStep the
241 # inOutTrajectoryFilter parameter is spelled as
242 # inOutTrajectoryFilterName, and I suspect it has no effect there. I
243 # chose to "fix" the behaviour here, so the era is not fully
244 # equivalent to the customize. To restore the customize behaviour,
245 # uncomment the following lines
246 #trackingLowPU.toModify(tobTecStepTrajectoryBuilder,
247 # inOutTrajectoryFilter = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.inOutTrajectoryFilter.clone(),
248 # inOutTrajectoryFilterName = cms.PSet(refToPSet_ = cms.string('tobTecStepInOutTrajectoryFilter'))
249 #)
250 
251 # MAKING OF TRACK CANDIDATES
253 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
254  src = cms.InputTag('tobTecStepSeeds'),
255  clustersToSkip = cms.InputTag('tobTecStepClusters'),
256  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
257  numHitsForSeedCleaner = cms.int32(50),
258  onlyPixelHitsForSeedCleaner = cms.bool(True),
259 
260  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryBuilder')),
261  doSeedingRegionRebuilding = True,
262  useHitsSplitting = True,
263  cleanTrajectoryAfterInOut = True,
264  TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits'
265 )
266 import FastSimulation.Tracking.TrackCandidateProducer_cfi
267 fastSim.toReplaceWith(tobTecStepTrackCandidates,
268  FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
269  MinNumberOfCrossedLayers = 3,
270  src = cms.InputTag("tobTecStepSeeds"),
271  hitMasks = cms.InputTag("tobTecStepMasks")
272  )
273  )
274 
275 
276 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
277 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
278  ComponentName = cms.string('tobTecStepTrajectoryCleanerBySharedHits'),
279  fractionShared = cms.double(0.09),
280  allowSharedFirstHit = cms.bool(True)
281  )
282 trackingLowPU.toModify(tobTecStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
283 
284 # TRACK FITTING AND SMOOTHING OPTIONS
286 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
287  ComponentName = 'tobTecStepFitterSmoother',
288  EstimateCut = 30,
289  MinNumberOfHits = 7,
290  Fitter = cms.string('tobTecStepRKFitter'),
291  Smoother = cms.string('tobTecStepRKSmoother')
292  )
293 trackingLowPU.toModify(tobTecStepFitterSmoother, MinNumberOfHits = 8)
294 
295 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
296  ComponentName = 'tobTecStepFitterSmootherForLoopers',
297  Fitter = cms.string('tobTecStepRKFitterForLoopers'),
298  Smoother = cms.string('tobTecStepRKSmootherForLoopers')
299 )
300 
301 # Also necessary to specify minimum number of hits after final track fit
302 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
303  ComponentName = cms.string('tobTecStepRKFitter'),
304  minHits = 7
305 )
306 trackingLowPU.toModify(tobTecStepRKTrajectoryFitter, minHits = 8)
307 
308 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
309  ComponentName = cms.string('tobTecStepRKFitterForLoopers'),
310  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
311 )
312 
313 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
314  ComponentName = cms.string('tobTecStepRKSmoother'),
315  errorRescaling = 10.0,
316  minHits = 7
317 )
318 trackingLowPU.toModify(tobTecStepRKTrajectorySmoother, minHits = 8)
319 
320 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
321  ComponentName = cms.string('tobTecStepRKSmootherForLoopers'),
322  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
323 )
324 
326 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
327  ComponentName = cms.string('tobTecFlexibleKFFittingSmoother'),
328  standardFitter = cms.string('tobTecStepFitterSmoother'),
329  looperFitter = cms.string('tobTecStepFitterSmootherForLoopers'),
330 )
331 
332 
333 # TRACK FITTING
335 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
336  src = 'tobTecStepTrackCandidates',
337  AlgorithmName = cms.string('tobTecStep'),
338  #Fitter = 'tobTecStepFitterSmoother',
339  Fitter = 'tobTecFlexibleKFFittingSmoother',
340  )
341 fastSim.toModify(tobTecStepTracks, TTRHBuilder = 'WithoutRefit')
342 
343 
344 # TRACK SELECTION AND QUALITY FLAG SETTING.
347 tobTecStepClassifier1 = TrackMVAClassifierDetached.clone()
348 tobTecStepClassifier1.src = 'tobTecStepTracks'
349 tobTecStepClassifier1.mva.GBRForestLabel = 'MVASelectorIter6_13TeV'
350 tobTecStepClassifier1.qualityCuts = [-0.6,-0.45,-0.3]
351 fastSim.toModify(tobTecStepClassifier1, vertices = "firstStepPrimaryVerticesBeforeMixing")
352 
353 tobTecStepClassifier2 = TrackMVAClassifierPrompt.clone()
354 tobTecStepClassifier2.src = 'tobTecStepTracks'
355 tobTecStepClassifier2.mva.GBRForestLabel = 'MVASelectorIter0_13TeV'
356 tobTecStepClassifier2.qualityCuts = [0.0,0.0,0.0]
357 fastSim.toModify(tobTecStepClassifier2,vertices = "firstStepPrimaryVerticesBeforeMixing")
358 
360 tobTecStep = ClassifierMerger.clone()
361 tobTecStep.inputClassifiers=['tobTecStepClassifier1','tobTecStepClassifier2']
362 
363 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
364 trackingPhase1.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
365  mva = dict(GBRForestLabel = 'MVASelectorTobTecStep_Phase1'),
366  qualityCuts = [-0.6,-0.45,-0.3],
367 ))
368 pp_on_AA_2018.toModify(tobTecStep, qualityCuts = [-0.6,-0.3,0.7])
369 
370 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
371 trackingLowPU.toReplaceWith(tobTecStep, RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
372  src = 'tobTecStepTracks',
373  useAnyMVA = cms.bool(False),
374  GBRForestLabel = cms.string('MVASelectorIter6'),
375  trackSelectors = [
376  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
377  name = 'tobTecStepLoose',
378  chi2n_par = 0.4,
379  res_par = ( 0.003, 0.001 ),
380  minNumberLayers = 5,
381  maxNumberLostLayers = 1,
382  minNumber3DLayers = 2,
383  d0_par1 = ( 2.0, 4.0 ),
384  dz_par1 = ( 1.8, 4.0 ),
385  d0_par2 = ( 2.0, 4.0 ),
386  dz_par2 = ( 1.8, 4.0 )
387  ),
388  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
389  name = 'tobTecStepTight',
390  preFilterName = 'tobTecStepLoose',
391  chi2n_par = 0.3,
392  res_par = ( 0.003, 0.001 ),
393  minNumberLayers = 5,
394  maxNumberLostLayers = 0,
395  minNumber3DLayers = 2,
396  d0_par1 = ( 1.5, 4.0 ),
397  dz_par1 = ( 1.4, 4.0 ),
398  d0_par2 = ( 1.5, 4.0 ),
399  dz_par2 = ( 1.4, 4.0 )
400  ),
401  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
402  name = 'QualityMasks',
403  preFilterName = 'tobTecStepTight',
404  chi2n_par = 0.2,
405  res_par = ( 0.003, 0.001 ),
406  minNumberLayers = 5,
407  maxNumberLostLayers = 0,
408  minNumber3DLayers = 2,
409  d0_par1 = ( 1.4, 4.0 ),
410  dz_par1 = ( 1.3, 4.0 ),
411  d0_par2 = ( 1.4, 4.0 ),
412  dz_par2 = ( 1.3, 4.0 )
413  ),
414  ] #end of vpset
415 )) #end of clone
416 
417 
418 
419 TobTecStepTask = cms.Task(tobTecStepClusters,
420  tobTecStepSeedLayersTripl,
421  tobTecStepTrackingRegionsTripl,
422  tobTecStepHitDoubletsTripl,
423  tobTecStepHitTripletsTripl,
424  tobTecStepSeedsTripl,
425  tobTecStepSeedLayersPair,
426  tobTecStepTrackingRegionsPair,
427  tobTecStepHitDoubletsPair,
428  tobTecStepSeedsPair,
429  tobTecStepSeeds,
430  tobTecStepTrackCandidates,
431  tobTecStepTracks,
432  tobTecStepClassifier1,tobTecStepClassifier2,
433  tobTecStep)
434 TobTecStep = cms.Sequence(TobTecStepTask)
435 
436 
437 ### Following are specific for LowPU, they're collected here to
438 ### not to interfere too much with the default configuration
439 # SEEDING LAYERS
440 tobTecStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
441  layerList = cms.vstring('TOB1+TOB2',
442  'TOB1+TEC1_pos', 'TOB1+TEC1_neg',
443  'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos',
444  'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos',
445  'TEC5_pos+TEC6_pos', 'TEC6_pos+TEC7_pos',
446  'TEC1_neg+TEC2_neg', 'TEC2_neg+TEC3_neg',
447  'TEC3_neg+TEC4_neg', 'TEC4_neg+TEC5_neg',
448  'TEC5_neg+TEC6_neg', 'TEC6_neg+TEC7_neg'),
449  TOB = cms.PSet(
450  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
451  skipClusters = cms.InputTag('tobTecStepClusters'),
452  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTiny'))
453  ),
454  TEC = cms.PSet(
455  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
456  skipClusters = cms.InputTag('tobTecStepClusters'),
457  # untracked bool useSimpleRphiHitsCleaner = false
458  useRingSlector = cms.bool(True),
459  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTiny')),
460  minRing = cms.int32(5),
461  maxRing = cms.int32(5)
462  )
463 )
464 
465 trackingLowPU.toReplaceWith(TobTecStepTask,
466  cms.Task(
467  tobTecStepClusters,
468  tobTecStepSeedLayers,
469  tobTecStepTrackingRegionsPair,
470  tobTecStepHitDoubletsPair,
471  tobTecStepSeeds,
472  tobTecStepTrackCandidates,
473  tobTecStepTracks,
474  tobTecStep
475  )
476 )
477 
478 #fastsim
479 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
480 tobTecStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(tobTecStepClusters)
481 fastSim.toReplaceWith(TobTecStepTask,
482  cms.Task(tobTecStepMasks
483  ,tobTecStepTrackingRegionsTripl
484  ,tobTecStepSeedsTripl
485  ,tobTecStepTrackingRegionsPair
486  ,tobTecStepSeedsPair
487  ,tobTecStepSeeds
488  ,tobTecStepTrackCandidates
489  ,tobTecStepTracks
490  ,tobTecStepClassifier1,tobTecStepClassifier2
491  ,tobTecStep
492  )
493 )
def _hitSetProducerToFactoryPSet(producer)