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