CMS 3D CMS Logo

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