CMS 3D CMS Logo

PixelLessStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg
3 
4 from Configuration.Eras.Modifier_fastSim_cff import fastSim
5 
6 #for dnn classifier
7 from Configuration.ProcessModifiers.trackdnn_cff import trackdnn
8 from RecoTracker.IterativeTracking.dnnQualityCuts import qualityCutDictionary
9 
10 # for no-loopers
11 from Configuration.ProcessModifiers.trackingNoLoopers_cff import trackingNoLoopers
12 
13 
16 
17 pixelLessStepClusters = _cfg.clusterRemoverForIter('PixelLessStep')
18 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
19  _era.toReplaceWith(pixelLessStepClusters, _cfg.clusterRemoverForIter('PixelLessStep', _eraName, _postfix))
20 
21 
22 
23 # SEEDING LAYERS
26 
27 pixelLessStepSeedLayers = _mod.seedingLayersEDProducer.clone(
28  layerList = [
29  #TIB
30  'TIB1+TIB2+MTIB3','TIB1+TIB2+MTIB4',
31  #TIB+TID
32  'TIB1+TIB2+MTID1_pos','TIB1+TIB2+MTID1_neg',
33  #TID
34  'TID1_pos+TID2_pos+TID3_pos','TID1_neg+TID2_neg+TID3_neg',#ring 1-2 (matched)
35  'TID1_pos+TID2_pos+MTID3_pos','TID1_neg+TID2_neg+MTID3_neg',#ring 3 (mono)
36  'TID1_pos+TID2_pos+MTEC1_pos','TID1_neg+TID2_neg+MTEC1_neg',
37  #TID+TEC RING 1-3
38  'TID2_pos+TID3_pos+TEC1_pos','TID2_neg+TID3_neg+TEC1_neg',#ring 1-2 (matched)
39  'TID2_pos+TID3_pos+MTEC1_pos','TID2_neg+TID3_neg+MTEC1_neg',#ring 3 (mono)
40  #TEC RING 1-3
41  'TEC1_pos+TEC2_pos+TEC3_pos', 'TEC1_neg+TEC2_neg+TEC3_neg',
42  'TEC1_pos+TEC2_pos+MTEC3_pos','TEC1_neg+TEC2_neg+MTEC3_neg',
43  'TEC1_pos+TEC2_pos+TEC4_pos', 'TEC1_neg+TEC2_neg+TEC4_neg',
44  'TEC1_pos+TEC2_pos+MTEC4_pos','TEC1_neg+TEC2_neg+MTEC4_neg',
45  'TEC2_pos+TEC3_pos+TEC4_pos', 'TEC2_neg+TEC3_neg+TEC4_neg',
46  'TEC2_pos+TEC3_pos+MTEC4_pos','TEC2_neg+TEC3_neg+MTEC4_neg',
47  'TEC2_pos+TEC3_pos+TEC5_pos', 'TEC2_neg+TEC3_neg+TEC5_neg',
48  'TEC2_pos+TEC3_pos+TEC6_pos', 'TEC2_neg+TEC3_neg+TEC6_neg',
49  'TEC3_pos+TEC4_pos+TEC5_pos', 'TEC3_neg+TEC4_neg+TEC5_neg',
50  'TEC3_pos+TEC4_pos+MTEC5_pos','TEC3_neg+TEC4_neg+MTEC5_neg',
51  'TEC3_pos+TEC5_pos+TEC6_pos', 'TEC3_neg+TEC5_neg+TEC6_neg',
52  'TEC4_pos+TEC5_pos+TEC6_pos', 'TEC4_neg+TEC5_neg+TEC6_neg'
53  ],
54  TIB = dict(
55  TTRHBuilder = cms.string('WithTrackAngle'),
56  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
57  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
58  skipClusters = cms.InputTag('pixelLessStepClusters')
59  ),
60  MTIB = dict(
61  TTRHBuilder = cms.string('WithTrackAngle'),
62  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
63  skipClusters = cms.InputTag('pixelLessStepClusters'),
64  rphiRecHits = cms.InputTag('siStripMatchedRecHits','rphiRecHit')
65  ),
66  TID = dict(
67  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
68  skipClusters = cms.InputTag('pixelLessStepClusters'),
69  useRingSlector = cms.bool(True),
70  TTRHBuilder = cms.string('WithTrackAngle'),
71  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
72  minRing = cms.int32(1),
73  maxRing = cms.int32(2)
74  ),
75  MTID = dict(
76  rphiRecHits = cms.InputTag('siStripMatchedRecHits','rphiRecHit'),
77  skipClusters = cms.InputTag('pixelLessStepClusters'),
78  useRingSlector = cms.bool(True),
79  TTRHBuilder = cms.string('WithTrackAngle'),
80  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
81  minRing = cms.int32(3),
82  maxRing = cms.int32(3)
83  ),
84  TEC = dict(
85  matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
86  skipClusters = cms.InputTag('pixelLessStepClusters'),
87  useRingSlector = cms.bool(True),
88  TTRHBuilder = cms.string('WithTrackAngle'),
89  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
90  minRing = cms.int32(1),
91  maxRing = cms.int32(2)
92  ),
93  MTEC = dict(
94  rphiRecHits = cms.InputTag('siStripMatchedRecHits','rphiRecHit'),
95  skipClusters = cms.InputTag('pixelLessStepClusters'),
96  useRingSlector = cms.bool(True),
97  TTRHBuilder = cms.string('WithTrackAngle'),
98  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
99  minRing = cms.int32(3),
100  maxRing = cms.int32(3)
101  )
102 )
103 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
104 trackingLowPU.toModify(pixelLessStepSeedLayers,
105  layerList = [
106  'TIB1+TIB2',
107  'TID1_pos+TID2_pos','TID2_pos+TID3_pos',
108  'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos','TEC4_pos+TEC5_pos',
109  'TID1_neg+TID2_neg','TID2_neg+TID3_neg',
110  'TEC1_neg+TEC2_neg','TEC2_neg+TEC3_neg','TEC3_neg+TEC4_neg','TEC3_neg+TEC5_neg','TEC4_neg+TEC5_neg'
111  ],
112  TIB = dict(clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')),
113  TID = dict(clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')),
114  TEC = dict(clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')),
115  MTIB = None,
116  MTID = None,
117  MTEC = None,
118 )
119 from Configuration.ProcessModifiers.vectorHits_cff import vectorHits
120 vectorHits.toModify(pixelLessStepSeedLayers,
121  layerList = [
122  'TOB1+TOB2', 'TOB2+TOB3',
123 # 'TOB3+TOB4', 'TOB4+TOB5',
124  'TID1_pos+TID2_pos', 'TID1_neg+TID2_neg'
125  ],
126  TOB = dict(
127  TTRHBuilder = cms.string('WithTrackAngle'),
128  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
129  vectorRecHits = cms.InputTag("siPhase2VectorHits", 'vectorHitsAccepted'),
130  skipClusters = cms.InputTag('pixelLessStepClusters')
131  ),
132  TIB = None,
133  TID = dict(
134  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutNone'),
135  vectorRecHits = cms.InputTag("siPhase2VectorHits", 'accepted'),
136  maxRing = 8
137  ),
138  TEC = None,
139  MTIB = None,
140  MTID = None,
141  MTEC = None,
142 )
143 # TrackingRegion
144 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi import globalTrackingRegionFromBeamSpotFixedZ as _globalTrackingRegionFromBeamSpotFixedZ
145 pixelLessStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(
146  RegionPSet = dict(
147  ptMin = 0.4,
148  originHalfLength = 12.0,
149  originRadius = 1.0)
150 )
151 trackingLowPU.toModify(pixelLessStepTrackingRegions, RegionPSet = dict(
152  ptMin = 0.7,
153  originHalfLength = 10.0,
154  originRadius = 2.0,
155 ))
156 
157 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
158 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
159 from RecoTracker.IterativeTracking.MixedTripletStep_cff import _mixedTripletStepTrackingRegionsCommon_pp_on_HI
160 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(pixelLessStepTrackingRegions,
161  _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
162  ptMinScaling4BigEvts = False,
163  fixedError = 3.0,
164  ptMin = 2.0,
165  originRadius = 1.0 )
166  )
167 )
168 
169 
170 # seeding
171 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import ClusterShapeHitFilterESProducer as _ClusterShapeHitFilterESProducer
172 pixelLessStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
173  ComponentName = 'pixelLessStepClusterShapeHitFilter',
174  doStripShapeCut = cms.bool(False),
175  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTight')
176 )
177 
178 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
179 pixelLessStepHitDoublets = _hitPairEDProducer.clone(
180  seedingLayers = 'pixelLessStepSeedLayers',
181  trackingRegions = 'pixelLessStepTrackingRegions',
182  maxElement = 50000000,
183  produceIntermediateHitDoublets = True,
184 )
185 from RecoTracker.TkSeedGenerator.multiHitFromChi2EDProducer_cfi import multiHitFromChi2EDProducer as _multiHitFromChi2EDProducer
186 pixelLessStepHitTriplets = _multiHitFromChi2EDProducer.clone(
187  doublets = 'pixelLessStepHitDoublets',
188 )
189 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
190 from RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi import StripSubClusterShapeSeedFilter as _StripSubClusterShapeSeedFilter
191 pixelLessStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
192  seedingHitSets = 'pixelLessStepHitTriplets',
193  SeedComparitorPSet = dict(
194  ComponentName = 'CombinedSeedComparitor',
195  mode = cms.string('and'),
196  comparitors = cms.VPSet(
197  cms.PSet(# FIXME: is this defined in any cfi that could be imported instead of copy-paste?
198  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
199  FilterAtHelixStage = cms.bool(True),
200  FilterPixelHits = cms.bool(False),
201  FilterStripHits = cms.bool(True),
202  ClusterShapeHitFilterName = cms.string('pixelLessStepClusterShapeHitFilter'),
203  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache') # not really needed here since FilterPixelHits=False
204  )
205  )
206  )
207 )
208 
209 from RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi import StripSubClusterShapeSeedFilter as _StripSubClusterShapeSeedFilter
210 from Configuration.ProcessModifiers.approxSiStripClusters_cff import approxSiStripClusters
211 (~approxSiStripClusters).toModify(pixelLessStepSeeds.SeedComparitorPSet.comparitors, func = lambda list: list.append(_StripSubClusterShapeSeedFilter.clone()) )
212 
213 trackingLowPU.toModify(pixelLessStepHitDoublets, produceSeedingHitSets=True, produceIntermediateHitDoublets=False)
214 trackingLowPU.toModify(pixelLessStepSeeds,
215  seedingHitSets = 'pixelLessStepHitDoublets',
216  SeedComparitorPSet = dict(# FIXME: is this defined in any cfi that could be imported instead of copy-paste?
217  ComponentName = 'PixelClusterShapeSeedComparitor',
218  FilterAtHelixStage = cms.bool(True),
219  FilterPixelHits = cms.bool(False),
220  FilterStripHits = cms.bool(True),
221  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
222  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache') # not really needed here since FilterPixelHits=False
223  )
224 )
225 #fastsim
226 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
227 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
228 _fastSim_pixelLessStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
229  trackingRegions = 'pixelLessStepTrackingRegions',
230  hitMasks = cms.InputTag('pixelLessStepMasks'),
231  seedFinderSelector = dict( MultiHitGeneratorFactory = _hitSetProducerToFactoryPSet(pixelLessStepHitTriplets).clone(
232  refitHits = False),
233  layerList = pixelLessStepSeedLayers.layerList.value()
234 ))
235 fastSim.toReplaceWith(pixelLessStepSeeds,_fastSim_pixelLessStepSeeds)
236 
237 vectorHits.toModify(pixelLessStepHitDoublets, produceSeedingHitSets=True, produceIntermediateHitDoublets=False)
238 vectorHits.toModify(pixelLessStepSeeds,
239  seedingHitSets = "pixelLessStepHitDoublets",
240  SeedComparitorPSet = dict(
241  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
242  FilterAtHelixStage = cms.bool(False),
243  FilterStripHits = cms.bool(False),
244  )
245 )
246 
247 # QUALITY CUTS DURING TRACK BUILDING
249 _pixelLessStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
250  maxLostHits = 0,
251  minimumNumberOfHits = 4,
252  minPt = 0.1
253 )
254 pixelLessStepTrajectoryFilter = _pixelLessStepTrajectoryFilterBase.clone(
255  seedPairPenalty = 1,
256 )
257 trackingLowPU.toReplaceWith(pixelLessStepTrajectoryFilter, _pixelLessStepTrajectoryFilterBase)
258 (pp_on_XeXe_2017 | pp_on_AA).toModify(pixelLessStepTrajectoryFilter, minPt=2.0)
259 
260 vectorHits.toReplaceWith(pixelLessStepTrajectoryFilter, _pixelLessStepTrajectoryFilterBase)
261 vectorHits.toModify(pixelLessStepTrajectoryFilter, minimumNumberOfHits = 4, maxLostHits = 1)
262 
263 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
264 pixelLessStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
265  ComponentName = 'pixelLessStepChi2Est',
266  nSigma = 3.0,
267  MaxChi2 = 16.0,
268  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
269 )
270 trackingLowPU.toModify(pixelLessStepChi2Est,
271  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')
272 )
273 
274 vectorHits.toModify(pixelLessStepChi2Est,
275  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutNone'),
276  MaxChi2 = 30.0
277 )
278 
279 # TRACK BUILDING
281 pixelLessStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
282  trajectoryFilter = dict(refToPSet_ = 'pixelLessStepTrajectoryFilter'),
283  minNrOfHitsForRebuild = 4,
284  maxCand = 2,
285  alwaysUseInvalidHits = False,
286  estimator = 'pixelLessStepChi2Est',
287  maxDPhiForLooperReconstruction = 2.0,
288  maxPtForLooperReconstruction = 0.7,
289 )
290 trackingNoLoopers.toModify(pixelLessStepTrajectoryBuilder,
291  maxPtForLooperReconstruction = 0.0)
292 
293 # MAKING OF TRACK CANDIDATES
295 # Give handle for CKF for HI
296 _pixelLessStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
297  src = 'pixelLessStepSeeds',
298  clustersToSkip = 'pixelLessStepClusters',
299 
300  numHitsForSeedCleaner = 50,
301  #onlyPixelHitsForSeedCleaner = True,
302  TrajectoryBuilderPSet = dict(refToPSet_ = 'pixelLessStepTrajectoryBuilder'),
303  TrajectoryCleaner = 'pixelLessStepTrajectoryCleanerBySharedHits',
304 )
305 pixelLessStepTrackCandidates = _pixelLessStepTrackCandidatesCkf.clone()
306 
307 from Configuration.ProcessModifiers.trackingMkFitPixelLessStep_cff import trackingMkFitPixelLessStep
308 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
309 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
310 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
311 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
312 pixelLessStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
313  seeds = 'pixelLessStepSeeds',
314 )
315 pixelLessStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
316  ComponentName = 'pixelLessStepTrackCandidatesMkFitConfig',
317  config = 'RecoTracker/MkFit/data/mkfit-phase1-pixelLessStep.json',
318 )
319 pixelLessStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
320  seeds = 'pixelLessStepTrackCandidatesMkFitSeeds',
321  config = ('', 'pixelLessStepTrackCandidatesMkFitConfig'),
322  clustersToSkip = 'pixelLessStepClusters',
323 )
324 trackingMkFitPixelLessStep.toReplaceWith(pixelLessStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
325  seeds = 'pixelLessStepSeeds',
326  mkFitSeeds = 'pixelLessStepTrackCandidatesMkFitSeeds',
327  tracks = 'pixelLessStepTrackCandidatesMkFit',
328  candMVASel = False,
329  candWP = -0.7,
330 ))
331 (pp_on_XeXe_2017 | pp_on_AA).toModify(pixelLessStepTrackCandidatesMkFitConfig, minPt=2.0)
332 
333 import FastSimulation.Tracking.TrackCandidateProducer_cfi
334 fastSim.toReplaceWith(pixelLessStepTrackCandidates,
335  FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
336  src = 'pixelLessStepSeeds',
337  MinNumberOfCrossedLayers = 6, # ?
338  hitMasks = cms.InputTag('pixelLessStepMasks')
339  )
340 )
341 
342 vectorHits.toModify(pixelLessStepTrackCandidates,
343  phase2clustersToSkip = 'pixelLessStepClusters',
344  clustersToSkip = ''
345 )
346 
347 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
348 pixelLessStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
349  ComponentName = 'pixelLessStepTrajectoryCleanerBySharedHits',
350  fractionShared = 0.11,
351  allowSharedFirstHit = True
352 )
353 trackingLowPU.toModify(pixelLessStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
354 
355 
356 # TRACK FITTING
357 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
358 pixelLessStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducer.clone(
359  src = 'pixelLessStepTrackCandidates',
360  AlgorithmName = 'pixelLessStep',
361  Fitter = 'FlexibleKFFittingSmoother'
362 )
363 fastSim.toModify(pixelLessStepTracks, TTRHBuilder = 'WithoutRefit')
364 
365 from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
366 phase2_timing_layer.toModify(pixelLessStepTracks, TrajectoryInEvent = True)
367 
368 # TRACK SELECTION AND QUALITY FLAG SETTING.
371 pixelLessStepClassifier1 = TrackMVAClassifierPrompt.clone(
372  src = 'pixelLessStepTracks',
373  mva = dict(GBRForestLabel = 'MVASelectorIter5_13TeV'),
374  qualityCuts = [-0.4,0.0,0.4]
375 )
376 fastSim.toModify(pixelLessStepClassifier1, vertices = 'firstStepPrimaryVerticesBeforeMixing' )
377 
378 pixelLessStepClassifier2 = TrackMVAClassifierPrompt.clone(
379  src = 'pixelLessStepTracks',
380  mva = dict(GBRForestLabel = 'MVASelectorIter0_13TeV'),
381  qualityCuts = [-0.0,0.0,0.0]
382 )
383 fastSim.toModify(pixelLessStepClassifier2, vertices = 'firstStepPrimaryVerticesBeforeMixing' )
384 
386 pixelLessStep = ClassifierMerger.clone(
387  inputClassifiers=['pixelLessStepClassifier1','pixelLessStepClassifier2']
388 )
389 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
390 
391 trackingPhase1.toReplaceWith(pixelLessStep, pixelLessStepClassifier1.clone(
392  mva = dict(GBRForestLabel = 'MVASelectorPixelLessStep_Phase1'),
393  qualityCuts = [-0.4,0.0,0.4]
394 ))
395 
399 trackdnn.toReplaceWith(pixelLessStep, trackTfClassifier.clone(
400  mva = dict(tfDnnLabel = 'trackSelectionTfPLess'),
401  src = 'pixelLessStepTracks',
402  qualityCuts = qualityCutDictionary.PixelLessStep.value()
403 ))
404 (trackdnn & fastSim).toModify(pixelLessStep,vertices = 'firstStepPrimaryVerticesBeforeMixing')
405 
406 ((~trackingMkFitPixelLessStep) & trackdnn).toModify(pixelLessStep, mva = dict(tfDnnLabel = 'trackSelectionTf_CKF'),
407  qualityCuts = [-0.82, -0.61, -0.16])
408 
409 pp_on_AA.toModify(pixelLessStep, qualityCuts = [-0.4,0.0,0.8])
410 
411 # For LowPU
412 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
413 pixelLessStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
414  src='pixelLessStepTracks',
415  useAnyMVA = cms.bool(False),
416  GBRForestLabel = cms.string('MVASelectorIter5'),
417  trackSelectors = cms.VPSet(
418  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
419  name = 'pixelLessStepLoose',
420  chi2n_par = 0.5,
421  res_par = ( 0.003, 0.001 ),
422  minNumberLayers = 4,
423  maxNumberLostLayers = 1,
424  minNumber3DLayers = 3,
425  d0_par1 = ( 1.3, 4.0 ),
426  dz_par1 = ( 1.3, 4.0 ),
427  d0_par2 = ( 1.3, 4.0 ),
428  dz_par2 = ( 1.3, 4.0 )
429  ),
430  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
431  name = 'pixelLessStepTight',
432  preFilterName = 'pixelLessStepLoose',
433  chi2n_par = 0.35,
434  res_par = ( 0.003, 0.001 ),
435  minNumberLayers = 4,
436  maxNumberLostLayers = 0,
437  minNumber3DLayers = 3,
438  d0_par1 = ( 1.1, 4.0 ),
439  dz_par1 = ( 1.1, 4.0 ),
440  d0_par2 = ( 1.1, 4.0 ),
441  dz_par2 = ( 1.1, 4.0 )
442  ),
443  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
444  name = 'QualityMasks',
445  preFilterName = 'pixelLessStepTight',
446  chi2n_par = 0.2,
447  res_par = ( 0.003, 0.001 ),
448  minNumberLayers = 4,
449  maxNumberLostLayers = 0,
450  minNumber3DLayers = 3,
451  d0_par1 = ( 0.9, 4.0 ),
452  dz_par1 = ( 0.9, 4.0 ),
453  d0_par2 = ( 0.9, 4.0 ),
454  dz_par2 = ( 0.9, 4.0 )
455  ),
456  ),
457  vertices = 'pixelVertices'#end of vpset
458 ) #end of clone
459 
460 vectorHits.toModify(pixelLessStepSelector,
461  GBRForestLabel = None,
462  useAnyMVA = None,
463  trackSelectors= cms.VPSet(
464  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
465  name = 'pixelLessStepLoose',
466  chi2n_par = 1.0,
467  res_par = ( 0.003, 0.001 ),
468  minNumberLayers = 0,
469  maxNumberLostLayers = 1,
470  minNumber3DLayers = 0,
471  d0_par1 = ( 0.9, 4.0 ),
472  dz_par1 = ( 0.9, 4.0 ),
473  d0_par2 = ( 1.0, 4.0 ),
474  dz_par2 = ( 1.0, 4.0 )
475  ),
476  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
477  name = 'pixelLessStepTight',
478  preFilterName = 'pixelLessStepLoose',
479  chi2n_par = 0.35,
480  res_par = ( 0.003, 0.001 ),
481  minNumberLayers = 4,
482  maxNumberLostLayers = 0,
483  minNumber3DLayers = 3,
484  d0_par1 = ( 1.1, 4.0 ),
485  dz_par1 = ( 1.1, 4.0 ),
486  d0_par2 = ( 1.1, 4.0 ),
487  dz_par2 = ( 1.1, 4.0 )
488  ),
489  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
490  name = 'QualityMasks',
491  preFilterName = 'pixelLessStepTight',
492  chi2n_par = 0.2,
493  res_par = ( 0.003, 0.001 ),
494  minNumberLayers = 1,
495  maxNumberLostLayers = 2,
496  minNumber3DLayers = 0,
497  d0_par1 = ( 100., 4.0 ),
498  dz_par1 = ( 100., 4.0 ),
499  d0_par2 = ( 100., 4.0 ),
500  dz_par2 = ( 100., 4.0 )
501  ),
502  ),
503  vertices = 'firstStepPrimaryVertices'
504 )
505 
506 vectorHits.toModify(pixelLessStepSelector.trackSelectors[2], name = 'pixelLessStep')
507 
508 
509 PixelLessStepTask = cms.Task(pixelLessStepClusters,
510  pixelLessStepSeedLayers,
511  pixelLessStepTrackingRegions,
512  pixelLessStepHitDoublets,
513  pixelLessStepHitTriplets,
514  pixelLessStepSeeds,
515  pixelLessStepTrackCandidates,
516  pixelLessStepTracks,
517  pixelLessStepClassifier1,pixelLessStepClassifier2,
518  pixelLessStep)
519 PixelLessStep = cms.Sequence(PixelLessStepTask)
520 
521 _PixelLessStepTask_trackingMkFit = PixelLessStepTask.copy()
522 _PixelLessStepTask_trackingMkFit.add(pixelLessStepTrackCandidatesMkFitSeeds, pixelLessStepTrackCandidatesMkFit, pixelLessStepTrackCandidatesMkFit)
523 trackingMkFitPixelLessStep.toReplaceWith(PixelLessStepTask, _PixelLessStepTask_trackingMkFit)
524 
525 _PixelLessStepTask_LowPU = PixelLessStepTask.copyAndExclude([pixelLessStepHitTriplets, pixelLessStepClassifier1, pixelLessStepClassifier2])
526 _PixelLessStepTask_LowPU.replace(pixelLessStep, pixelLessStepSelector)
527 trackingLowPU.toReplaceWith(PixelLessStepTask, _PixelLessStepTask_LowPU)
528 #fastsim
529 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi import maskProducerFromClusterRemover
530 pixelLessStepMasks = maskProducerFromClusterRemover(pixelLessStepClusters)
531 fastSim.toReplaceWith(PixelLessStepTask,
532  cms.Task(pixelLessStepMasks
533  ,pixelLessStepTrackingRegions
534  ,pixelLessStepSeeds
535  ,pixelLessStepTrackCandidates
536  ,pixelLessStepTracks
537  ,pixelLessStepClassifier1,pixelLessStepClassifier2
538  ,pixelLessStep
539  )
540 )
542 from RecoTracker.TkSeedGenerator.SeedingOTEDProducer_cfi import SeedingOTEDProducer as _SeedingOTEDProducer
543 pixelLessStepSeeds_vectorHits = _SeedingOTEDProducer.clone()
544 
545 _PixelLessStepTask_vectorHits = cms.Task(siPhase2VectorHits,
546  pixelLessStepClusters,
547  pixelLessStepSeeds,
548  pixelLessStepTrackCandidates,
549  pixelLessStepTracks,
550  pixelLessStepSelector)
551 _PixelLessStep_vectorHits = cms.Sequence(_PixelLessStepTask_vectorHits)
552 vectorHits.toReplaceWith(pixelLessStepSeeds,pixelLessStepSeeds_vectorHits)
553 vectorHits.toReplaceWith(PixelLessStepTask, _PixelLessStepTask_vectorHits)
554 vectorHits.toReplaceWith(PixelLessStep, _PixelLessStep_vectorHits)
def _hitSetProducerToFactoryPSet(producer)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135