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