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 # 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 
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 RecoTracker.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 RecoTracker.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 
113 tobTecStepSeedsTripl = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(#empirically better than 'SeedFromConsecutiveHitsTripletOnlyCreator'
114  seedingHitSets = 'tobTecStepHitTripletsTripl',
115  SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
116 )
117 
118 #fastsim
119 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
120 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
121 _fastSim_tobTecStepSeedsTripl = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
122  trackingRegions = 'tobTecStepTrackingRegionsTripl',
123  hitMasks = cms.InputTag('tobTecStepMasks'),
124  seedFinderSelector = dict(MultiHitGeneratorFactory = _hitSetProducerToFactoryPSet(tobTecStepHitTripletsTripl).clone(
125  SeedComparitorPSet = cms.PSet(ComponentName = cms.string('none')),
126  refitHits = False),
127  layerList = tobTecStepSeedLayersTripl.layerList.value()
128  )
129 )
130 fastSim.toReplaceWith(tobTecStepSeedsTripl,_fastSim_tobTecStepSeedsTripl)
131 
132 # PAIR SEEDING LAYERS
133 tobTecStepSeedLayersPair = _mod.seedingLayersEDProducer.clone(
134  layerList = ['TOB1+TEC1_pos','TOB1+TEC1_neg',
135  'TEC1_pos+TEC2_pos','TEC1_neg+TEC2_neg',
136  'TEC2_pos+TEC3_pos','TEC2_neg+TEC3_neg',
137  'TEC3_pos+TEC4_pos','TEC3_neg+TEC4_neg',
138  'TEC4_pos+TEC5_pos','TEC4_neg+TEC5_neg',
139  'TEC5_pos+TEC6_pos','TEC5_neg+TEC6_neg',
140  'TEC6_pos+TEC7_pos','TEC6_neg+TEC7_neg'],
141  TOB = dict(
142  TTRHBuilder = cms.string('WithTrackAngle'),
143  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
144  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
145  skipClusters = cms.InputTag('tobTecStepClusters')
146  ),
147  TEC = dict(
148  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
149  skipClusters = cms.InputTag('tobTecStepClusters'),
150  useRingSlector = cms.bool(True),
151  TTRHBuilder = cms.string('WithTrackAngle'),
152  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
153  minRing = cms.int32(5),
154  maxRing = cms.int32(5)
155  )
156 )
157 # Pair TrackingRegion
158 tobTecStepTrackingRegionsPair = _globalTrackingRegionFromBeamSpotFixedZ.clone(
159  RegionPSet = dict(
160  ptMin = 0.6,
161  originHalfLength = 30.0,
162  originRadius = 6.0)
163 )
164 
165 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(tobTecStepTrackingRegionsPair,
166  _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet = dict(
167  ptMinScaling4BigEvts = False,
168  fixedError = 7.5,
169  ptMin = 2.0,
170  originRadius = 6.0
171  ) )
172 )
173 
174 
175 # Pair seeds
176 tobTecStepHitDoubletsPair = _hitPairEDProducer.clone(
177  seedingLayers = 'tobTecStepSeedLayersPair',
178  trackingRegions = 'tobTecStepTrackingRegionsPair',
179  produceSeedingHitSets = True,
180  maxElementTotal = 12000000,
181 )
182 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
183 tobTecStepSeedsPair = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
184  seedingHitSets = 'tobTecStepHitDoubletsPair',
185  SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
186 )
187 #fastsim
188 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
189 fastSim.toReplaceWith(tobTecStepSeedsPair,
190  FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
191  trackingRegions = 'tobTecStepTrackingRegionsPair',
192  hitMasks = cms.InputTag('tobTecStepMasks'),
193  seedFinderSelector = dict(layerList = tobTecStepSeedLayersPair.layerList.value())
194  )
195 )
196 
197 
198 # Combined seeds
200 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone(
201  seedCollections = ['tobTecStepSeedsTripl', 'tobTecStepSeedsPair']
202 )
203 # LowPU
204 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
205 trackingLowPU.toModify(tobTecStepHitDoubletsPair, seedingLayers = 'tobTecStepSeedLayers')
206 trackingLowPU.toReplaceWith(tobTecStepSeeds, _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
207  seedingHitSets = 'tobTecStepHitDoubletsPair',
208 ))
209 
210 
211 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
213 _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
214  maxLostHits = 0,
215  minimumNumberOfHits = 5,
216  minPt = 0.1,
217  minHitsMinPt = 3
218 )
219 tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone(
220  seedPairPenalty = 1,
221 )
222 trackingLowPU.toReplaceWith(tobTecStepTrajectoryFilter, _tobTecStepTrajectoryFilterBase.clone(
223  minimumNumberOfHits = 6,
224 ))
225 
226 (pp_on_XeXe_2017 | pp_on_AA).toModify(tobTecStepTrajectoryFilter, minPt=2.0)
227 
228 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
229  minimumNumberOfHits = 4,
230 )
231 
232 
233 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
234 tobTecStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
235  ComponentName = 'tobTecStepChi2Est',
236  nSigma = 3.0,
237  MaxChi2 = 16.0,
238  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
239 )
240 trackingLowPU.toModify(tobTecStepChi2Est,
241  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')
242 )
243 
244 # TRACK BUILDING
246 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilderIterativeDefault.clone(
247  trajectoryFilter = dict(refToPSet_ = 'tobTecStepTrajectoryFilter'),
248  inOutTrajectoryFilter = dict(refToPSet_ = 'tobTecStepInOutTrajectoryFilter'),
249  useSameTrajFilter = False,
250  minNrOfHitsForRebuild = 4,
251  alwaysUseInvalidHits = False,
252  maxCand = 2,
253  estimator = 'tobTecStepChi2Est',
254  #startSeedHitsInRebuild = True,
255  maxDPhiForLooperReconstruction = 2.0,
256  maxPtForLooperReconstruction = 0.7,
257 )
258 trackingNoLoopers.toModify(tobTecStepTrajectoryBuilder,
259  maxPtForLooperReconstruction = 0.0)
260 # Important note for LowPU: in RunI_TobTecStep the
261 # inOutTrajectoryFilter parameter is spelled as
262 # inOutTrajectoryFilterName, and I suspect it has no effect there. I
263 # chose to 'fix' the behaviour here, so the era is not fully
264 # equivalent to the customize. To restore the customize behaviour,
265 # uncomment the following lines
266 #trackingLowPU.toModify(tobTecStepTrajectoryBuilder,
267 # inOutTrajectoryFilter = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.inOutTrajectoryFilter.clone(),
268 # inOutTrajectoryFilterName = cms.PSet(refToPSet_ = cms.string('tobTecStepInOutTrajectoryFilter'))
269 #)
270 
271 # MAKING OF TRACK CANDIDATES
273 # Give handle for CKF for HI
274 _tobTecStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidatesIterativeDefault.clone(
275  src = 'tobTecStepSeeds',
276  clustersToSkip = 'tobTecStepClusters',
277 
278  numHitsForSeedCleaner = 50,
279  onlyPixelHitsForSeedCleaner = False,
280  TrajectoryBuilderPSet = dict(refToPSet_ = 'tobTecStepTrajectoryBuilder'),
281  doSeedingRegionRebuilding = True,
282  useHitsSplitting = True,
283  cleanTrajectoryAfterInOut = True,
284  TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits',
285 )
286 tobTecStepTrackCandidates = _tobTecStepTrackCandidatesCkf.clone()
287 
288 from Configuration.ProcessModifiers.trackingMkFitTobTecStep_cff import trackingMkFitTobTecStep
289 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
290 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
291 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
292 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
293 tobTecStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
294  seeds = 'tobTecStepSeeds',
295 )
296 tobTecStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
297  ComponentName = 'tobTecStepTrackCandidatesMkFitConfig',
298  config = 'RecoTracker/MkFit/data/mkfit-phase1-tobTecStep.json',
299 )
300 tobTecStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
301  seeds = 'tobTecStepTrackCandidatesMkFitSeeds',
302  config = ('', 'tobTecStepTrackCandidatesMkFitConfig'),
303  clustersToSkip = 'tobTecStepClusters',
304 )
305 trackingMkFitTobTecStep.toReplaceWith(tobTecStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
306  seeds = 'tobTecStepSeeds',
307  mkFitSeeds = 'tobTecStepTrackCandidatesMkFitSeeds',
308  tracks = 'tobTecStepTrackCandidatesMkFit',
309 ))
310 (pp_on_XeXe_2017 | pp_on_AA).toModify(tobTecStepTrackCandidatesMkFitConfig, minPt=2.0)
311 
312 import FastSimulation.Tracking.TrackCandidateProducer_cfi
313 fastSim.toReplaceWith(tobTecStepTrackCandidates,
314  FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
315  MinNumberOfCrossedLayers = 3,
316  src = 'tobTecStepSeeds',
317  hitMasks = cms.InputTag('tobTecStepMasks')
318  )
319 )
320 
321 
322 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
323 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
324  ComponentName = 'tobTecStepTrajectoryCleanerBySharedHits',
325  fractionShared = 0.09,
326  allowSharedFirstHit = True
327 )
328 trackingLowPU.toModify(tobTecStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
329 
330 # TRACK FITTING AND SMOOTHING OPTIONS
332 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
333  ComponentName = 'tobTecStepFitterSmoother',
334  EstimateCut = 30,
335  MinNumberOfHits = 7,
336  Fitter = 'tobTecStepRKFitter',
337  Smoother = 'tobTecStepRKSmoother'
338 )
339 trackingLowPU.toModify(tobTecStepFitterSmoother, MinNumberOfHits = 8)
340 
341 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
342  ComponentName = 'tobTecStepFitterSmootherForLoopers',
343  Fitter = 'tobTecStepRKFitterForLoopers',
344  Smoother = 'tobTecStepRKSmootherForLoopers'
345 )
346 
347 # Also necessary to specify minimum number of hits after final track fit
348 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
349  ComponentName = 'tobTecStepRKFitter',
350  minHits = 7
351 )
352 trackingLowPU.toModify(tobTecStepRKTrajectoryFitter, minHits = 8)
353 
354 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
355  ComponentName = 'tobTecStepRKFitterForLoopers',
356  Propagator = 'PropagatorWithMaterialForLoopers',
357 )
358 
359 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
360  ComponentName = 'tobTecStepRKSmoother',
361  errorRescaling = 10.0,
362  minHits = 7
363 )
364 trackingLowPU.toModify(tobTecStepRKTrajectorySmoother, minHits = 8)
365 
366 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
367  ComponentName = 'tobTecStepRKSmootherForLoopers',
368  Propagator = 'PropagatorWithMaterialForLoopers',
369 )
370 
372 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
373  ComponentName = 'tobTecFlexibleKFFittingSmoother',
374  standardFitter = 'tobTecStepFitterSmoother',
375  looperFitter = 'tobTecStepFitterSmootherForLoopers',
376 )
377 
378 
379 # TRACK FITTING
380 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
381 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
382  src = 'tobTecStepTrackCandidates',
383  AlgorithmName = 'tobTecStep',
384  #Fitter = 'tobTecStepFitterSmoother',
385  Fitter = 'tobTecFlexibleKFFittingSmoother',
386 )
387 fastSim.toModify(tobTecStepTracks, TTRHBuilder = 'WithoutRefit')
388 
389 
390 # TRACK SELECTION AND QUALITY FLAG SETTING.
393 tobTecStepClassifier1 = TrackMVAClassifierDetached.clone(
394  src = 'tobTecStepTracks',
395  mva = dict(GBRForestLabel = 'MVASelectorIter6_13TeV'),
396  qualityCuts = [-0.6,-0.45,-0.3]
397 )
398 fastSim.toModify(tobTecStepClassifier1, vertices = 'firstStepPrimaryVerticesBeforeMixing')
399 
400 tobTecStepClassifier2 = TrackMVAClassifierPrompt.clone(
401  src = 'tobTecStepTracks',
402  mva = dict(GBRForestLabel = 'MVASelectorIter0_13TeV'),
403  qualityCuts = [0.0,0.0,0.0]
404 )
405 fastSim.toModify(tobTecStepClassifier2,vertices = 'firstStepPrimaryVerticesBeforeMixing')
406 
408 tobTecStep = ClassifierMerger.clone(
409  inputClassifiers = ['tobTecStepClassifier1','tobTecStepClassifier2']
410 )
411 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
412 trackingPhase1.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
413  mva = dict(GBRForestLabel = 'MVASelectorTobTecStep_Phase1'),
414  qualityCuts = [-0.6,-0.45,-0.3]
415 ))
416 
420 trackdnn.toReplaceWith(tobTecStep, trackTfClassifier.clone(
421  src = 'tobTecStepTracks',
422  qualityCuts = qualityCutDictionary.TobTecStep.value()
423 ))
424 (trackdnn & fastSim).toModify(tobTecStep,vertices = 'firstStepPrimaryVerticesBeforeMixing')
425 
426 pp_on_AA.toModify(tobTecStep, qualityCuts = [-0.6,-0.3,0.7])
427 
428 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
429 trackingLowPU.toReplaceWith(tobTecStep, RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
430  src = 'tobTecStepTracks',
431  useAnyMVA = cms.bool(False),
432  GBRForestLabel = cms.string('MVASelectorIter6'),
433  trackSelectors = [
434  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
435  name = 'tobTecStepLoose',
436  chi2n_par = 0.4,
437  res_par = ( 0.003, 0.001 ),
438  minNumberLayers = 5,
439  maxNumberLostLayers = 1,
440  minNumber3DLayers = 2,
441  d0_par1 = ( 2.0, 4.0 ),
442  dz_par1 = ( 1.8, 4.0 ),
443  d0_par2 = ( 2.0, 4.0 ),
444  dz_par2 = ( 1.8, 4.0 )
445  ),
446  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
447  name = 'tobTecStepTight',
448  preFilterName = 'tobTecStepLoose',
449  chi2n_par = 0.3,
450  res_par = ( 0.003, 0.001 ),
451  minNumberLayers = 5,
452  maxNumberLostLayers = 0,
453  minNumber3DLayers = 2,
454  d0_par1 = ( 1.5, 4.0 ),
455  dz_par1 = ( 1.4, 4.0 ),
456  d0_par2 = ( 1.5, 4.0 ),
457  dz_par2 = ( 1.4, 4.0 )
458  ),
459  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
460  name = 'QualityMasks',
461  preFilterName = 'tobTecStepTight',
462  chi2n_par = 0.2,
463  res_par = ( 0.003, 0.001 ),
464  minNumberLayers = 5,
465  maxNumberLostLayers = 0,
466  minNumber3DLayers = 2,
467  d0_par1 = ( 1.4, 4.0 ),
468  dz_par1 = ( 1.3, 4.0 ),
469  d0_par2 = ( 1.4, 4.0 ),
470  dz_par2 = ( 1.3, 4.0 )
471  ),
472  ] #end of vpset
473 )) #end of clone
474 
475 
476 
477 TobTecStepTask = cms.Task(tobTecStepClusters,
478  tobTecStepSeedLayersTripl,
479  tobTecStepTrackingRegionsTripl,
480  tobTecStepHitDoubletsTripl,
481  tobTecStepHitTripletsTripl,
482  tobTecStepSeedsTripl,
483  tobTecStepSeedLayersPair,
484  tobTecStepTrackingRegionsPair,
485  tobTecStepHitDoubletsPair,
486  tobTecStepSeedsPair,
487  tobTecStepSeeds,
488  tobTecStepTrackCandidates,
489  tobTecStepTracks,
490  tobTecStepClassifier1,tobTecStepClassifier2,
491  tobTecStep)
492 TobTecStep = cms.Sequence(TobTecStepTask)
493 
494 _TobTecStepTask_trackingMkFit = TobTecStepTask.copy()
495 _TobTecStepTask_trackingMkFit.add(tobTecStepTrackCandidatesMkFitSeeds, tobTecStepTrackCandidatesMkFit, tobTecStepTrackCandidatesMkFitConfig)
496 trackingMkFitTobTecStep.toReplaceWith(TobTecStepTask, _TobTecStepTask_trackingMkFit)
497 
498 
501 tobTecStepSeedLayers = _mod.seedingLayersEDProducer.clone(
502  layerList = ['TOB1+TOB2',
503  'TOB1+TEC1_pos', 'TOB1+TEC1_neg',
504  'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos',
505  'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos',
506  'TEC5_pos+TEC6_pos', 'TEC6_pos+TEC7_pos',
507  'TEC1_neg+TEC2_neg', 'TEC2_neg+TEC3_neg',
508  'TEC3_neg+TEC4_neg', 'TEC4_neg+TEC5_neg',
509  'TEC5_neg+TEC6_neg', 'TEC6_neg+TEC7_neg'],
510  TOB = dict(
511  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
512  skipClusters = cms.InputTag('tobTecStepClusters'),
513  TTRHBuilder = cms.string('WithTrackAngle'),
514  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTiny'))
515  ),
516  TEC = dict(
517  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
518  skipClusters = cms.InputTag('tobTecStepClusters'),
519  # untracked bool useSimpleRphiHitsCleaner = false
520  useRingSlector = cms.bool(True),
521  TTRHBuilder = cms.string('WithTrackAngle'),
522  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTiny')),
523  minRing = cms.int32(5),
524  maxRing = cms.int32(5)
525  )
526 )
527 
528 trackingLowPU.toReplaceWith(TobTecStepTask,
529  cms.Task(
530  tobTecStepClusters,
531  tobTecStepSeedLayers,
532  tobTecStepTrackingRegionsPair,
533  tobTecStepHitDoubletsPair,
534  tobTecStepSeeds,
535  tobTecStepTrackCandidates,
536  tobTecStepTracks,
537  tobTecStep
538  )
539 )
540 
541 #fastsim
542 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
543 tobTecStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(tobTecStepClusters)
544 fastSim.toReplaceWith(TobTecStepTask,
545  cms.Task(tobTecStepMasks
546  ,tobTecStepTrackingRegionsTripl
547  ,tobTecStepSeedsTripl
548  ,tobTecStepTrackingRegionsPair
549  ,tobTecStepSeedsPair
550  ,tobTecStepSeeds
551  ,tobTecStepTrackCandidates
552  ,tobTecStepTracks
553  ,tobTecStepClassifier1,tobTecStepClassifier2
554  ,tobTecStep
555  )
556 )
def _hitSetProducerToFactoryPSet(producer)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135