CMS 3D CMS Logo

LowPtTripletStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 as _tracker_apv_vfp30_2016
3 import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg
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 # NEW CLUSTERS (remove previously used clusters)
14 lowPtTripletStepClusters = _cfg.clusterRemoverForIter('LowPtTripletStep')
15 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
16  _era.toReplaceWith(lowPtTripletStepClusters, _cfg.clusterRemoverForIter('LowPtTripletStep', _eraName, _postfix))
17 
18 # SEEDING LAYERS
20 lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
21  BPix = dict(skipClusters = cms.InputTag('lowPtTripletStepClusters')),
22  FPix = dict(skipClusters = cms.InputTag('lowPtTripletStepClusters'))
23 )
24 _layerListForPhase1 = [
25  'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
26  'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
27  'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg',
28  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
29  'BPix1+BPix3+FPix1_pos', 'BPix1+BPix3+FPix1_neg',
30  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
31  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
32  'BPix1+BPix2+FPix2_pos', 'BPix1+BPix2+FPix2_neg',
33  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
34  'BPix1+FPix2_pos+FPix3_pos', 'BPix1+FPix2_neg+FPix3_neg',
35  'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg'
36 ]
37 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
38 trackingPhase1.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase1)
39 
40 # combination with gap removed as only source of fakes in current geometry (kept for doc,=)
41 _layerListForPhase2 = ['BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
42 # 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
43  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
44  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
45 # 'BPix1+BPix2+FPix2_pos', 'BPix1+BPix2+FPix2_neg',
46  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
47 # 'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg',
48  'FPix2_pos+FPix3_pos+FPix4_pos', 'FPix2_neg+FPix3_neg+FPix4_neg',
49  'FPix3_pos+FPix4_pos+FPix5_pos', 'FPix3_neg+FPix4_neg+FPix5_neg',
50  'FPix4_pos+FPix5_pos+FPix6_pos', 'FPix4_neg+FPix5_neg+FPix6_neg',
51 # removed as redunant and covering effectively only eta>4 (here for documentation, to be optimized after TDR)
52 # 'FPix5_pos+FPix6_pos+FPix7_pos', 'FPix5_neg+FPix6_neg+FPix7_neg',
53 # 'FPix6_pos+FPix7_pos+FPix8_pos', 'FPix6_neg+FPix7_neg+FPix8_neg'
54 ]
55 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
56 trackingPhase2PU140.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase2)
57 
58 # TrackingRegion
59 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi import globalTrackingRegionFromBeamSpot as _globalTrackingRegionFromBeamSpot
60 lowPtTripletStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
61  ptMin = 0.2,
62  originRadius = 0.02,
63  nSigmaZ = 4.0
64 ))
65 trackingPhase1.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.2))
66 trackingPhase2PU140.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.40))
67 
68 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
69 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
70 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
71 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(lowPtTripletStepTrackingRegions,
72  _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
73  useFixedError = False,
74  ptMin = 0.49,
75  originRadius = 0.02 )
76  )
77 )
78 from Configuration.Eras.Modifier_highBetaStar_cff import highBetaStar
79 highBetaStar.toModify(lowPtTripletStepTrackingRegions,RegionPSet = dict(
80  ptMin = 0.05,
81  originRadius = 0.2 )
82 )
83 
84 # seeding
85 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
86 lowPtTripletStepHitDoublets = _hitPairEDProducer.clone(
87  seedingLayers = 'lowPtTripletStepSeedLayers',
88  trackingRegions = 'lowPtTripletStepTrackingRegions',
89  maxElement = 50000000,
90  produceIntermediateHitDoublets = True,
91 )
92 from RecoTracker.PixelSeeding.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
94 import RecoTracker.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
95 lowPtTripletStepHitTriplets = _pixelTripletHLTEDProducer.clone(
96  doublets = 'lowPtTripletStepHitDoublets',
97  produceSeedingHitSets = True,
98  SeedComparitorPSet = RecoTracker.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
99 )
100 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
101 lowPtTripletStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
102  seedingHitSets = 'lowPtTripletStepHitTriplets',
103 )
104 
105 from RecoTracker.PixelSeeding.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
106 trackingPhase1.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1]) # layer pairs (0,1), (1,2)
107 trackingPhase1.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
108  doublets = 'lowPtTripletStepHitDoublets',
109  extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
110  SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
111  maxChi2 = dict(
112  pt1 = 0.8, pt2 = 2,
113  value1 = 70 , value2 = 8,
114  ),
115  useBendingCorrection = True,
116  CAThetaCut = 0.002,
117  CAPhiCut = 0.05 )
118 )
119 
120 trackingPhase2PU140.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1]) # layer pairs (0,1), (1,2)
121 trackingPhase2PU140.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
122  doublets = 'lowPtTripletStepHitDoublets',
123  extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
124  SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
125  maxChi2 = dict(
126  pt1 = 0.8, pt2 = 2,
127  value1 = 70 , value2 = 8,
128  ),
129  useBendingCorrection = True,
130  CAThetaCut = 0.002,
131  CAPhiCut = 0.05 )
132 )
133 (highBetaStar & trackingPhase1).toModify(lowPtTripletStepHitTriplets,CAThetaCut = 0.004,CAPhiCut = 0.1)
134 
135 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
136 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
137 _fastSim_lowPtTripletStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
138  trackingRegions = 'lowPtTripletStepTrackingRegions',
139  hitMasks = cms.InputTag('lowPtTripletStepMasks'),
140  seedFinderSelector = dict(pixelTripletGeneratorFactory = _hitSetProducerToFactoryPSet(lowPtTripletStepHitTriplets).clone(
141  SeedComparitorPSet = dict(ComponentName = 'none')),
142  layerList = lowPtTripletStepSeedLayers.layerList.value()
143  )
144 )
145 #new for phase1
146 trackingPhase1.toModify(_fastSim_lowPtTripletStepSeeds, seedFinderSelector = dict(
147  pixelTripletGeneratorFactory = None,
148  CAHitTripletGeneratorFactory = _hitSetProducerToFactoryPSet(lowPtTripletStepHitTriplets).clone(SeedComparitorPSet = dict(ComponentName = 'none')),
149  #new parameters required for phase1 seeding
150  BPix = dict(
151  TTRHBuilder = 'WithoutRefit',
152  HitProducer = 'TrackingRecHitProducer',
153  ),
154  FPix = dict(
155  TTRHBuilder = 'WithoutRefit',
156  HitProducer = 'TrackingRecHitProducer',
157  ),
158  layerPairs = lowPtTripletStepHitDoublets.layerPairs.value()
159  )
160 )
161 fastSim.toReplaceWith(lowPtTripletStepSeeds,_fastSim_lowPtTripletStepSeeds)
162 
163 # QUALITY CUTS DURING TRACK BUILDING
164 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff
165 _lowPtTripletStepStandardTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
166  minimumNumberOfHits = 3,
167  minPt = 0.075,
168 )
169 lowPtTripletStepStandardTrajectoryFilter = _lowPtTripletStepStandardTrajectoryFilterBase.clone(
170  maxCCCLostHits = 0,
171  minGoodStripCharge = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose'))
172 )
173 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016
174 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepStandardTrajectoryFilter, maxCCCLostHits = 1)
175 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
176 trackingLowPU.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
177 trackingPhase2PU140.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
178 
179 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtTripletStepStandardTrajectoryFilter, minPt=0.49)
180 
182 # Composite filter
183 lowPtTripletStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
184  filters = [cms.PSet(refToPSet_ = cms.string('lowPtTripletStepStandardTrajectoryFilter')),
185  # cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))
186  ]
187  )
188 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryFilter,
189  filters = lowPtTripletStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))]
190 )
191 
192 lowPtTripletStepTrajectoryFilterInOut = lowPtTripletStepStandardTrajectoryFilter.clone(
193  minimumNumberOfHits = 4,
194  seedExtension = 1,
195  strictSeedExtension = False, # allow inactive
196  pixelSeedExtension = False,
197 )
198 
199 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
200 lowPtTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
201  ComponentName = 'lowPtTripletStepChi2Est',
202  nSigma = 3.0,
203  MaxChi2 = 9.0,
204  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
205 )
206 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepChi2Est,
207  clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')
208 )
209 
210 # TRACK BUILDING
212 lowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilderIterativeDefault.clone(
213  trajectoryFilter = dict(refToPSet_ = 'lowPtTripletStepTrajectoryFilter'),
214  maxCand = 4,
215  estimator = 'lowPtTripletStepChi2Est',
216  maxDPhiForLooperReconstruction = 2.0,
217  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
218  # of the outermost Tracker barrel layer (with B=3.8T)
219  maxPtForLooperReconstruction = 0.7,
220 )
221 trackingNoLoopers.toModify(lowPtTripletStepTrajectoryBuilder,
222  maxPtForLooperReconstruction = 0.0)
223 trackingLowPU.toModify(lowPtTripletStepTrajectoryBuilder, maxCand = 3)
224 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryBuilder,
225  inOutTrajectoryFilter = dict(refToPSet_ = 'lowPtTripletStepTrajectoryFilterInOut'),
226  useSameTrajFilter = False,
227  maxCand = 3,
228 )
229 
230 # MAKING OF TRACK CANDIDATES
232 # Give handle for CKF for HI
233 _lowPtTripletStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidatesIterativeDefault.clone(
234  src = 'lowPtTripletStepSeeds',
235 
236  numHitsForSeedCleaner = 50,
237  onlyPixelHitsForSeedCleaner = True,
238  TrajectoryBuilderPSet = dict(refToPSet_ = 'lowPtTripletStepTrajectoryBuilder'),
239  clustersToSkip = 'lowPtTripletStepClusters',
240  doSeedingRegionRebuilding = True,
241  useHitsSplitting = True,
242  TrajectoryCleaner = 'lowPtTripletStepTrajectoryCleanerBySharedHits',
243 )
244 lowPtTripletStepTrackCandidates = _lowPtTripletStepTrackCandidatesCkf.clone()
245 trackingPhase2PU140.toModify(lowPtTripletStepTrackCandidates,
246  clustersToSkip = '',
247  phase2clustersToSkip = 'lowPtTripletStepClusters'
248 )
249 
250 from Configuration.ProcessModifiers.trackingMkFitLowPtTripletStep_cff import trackingMkFitLowPtTripletStep
251 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
252 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
253 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
254 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
255 lowPtTripletStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
256  seeds = 'lowPtTripletStepSeeds',
257 )
258 lowPtTripletStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
259  ComponentName = 'lowPtTripletStepTrackCandidatesMkFitConfig',
260  config = 'RecoTracker/MkFit/data/mkfit-phase1-lowPtTripletStep.json',
261 )
262 lowPtTripletStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
263  seeds = 'lowPtTripletStepTrackCandidatesMkFitSeeds',
264  config = ('', 'lowPtTripletStepTrackCandidatesMkFitConfig'),
265  clustersToSkip = 'lowPtTripletStepClusters',
266 )
267 trackingMkFitLowPtTripletStep.toReplaceWith(lowPtTripletStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
268  seeds = 'lowPtTripletStepSeeds',
269  mkFitSeeds = 'lowPtTripletStepTrackCandidatesMkFitSeeds',
270  tracks = 'lowPtTripletStepTrackCandidatesMkFit',
271 ))
272 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtTripletStepTrackCandidatesMkFitConfig, minPt=0.49)
273 
274 import FastSimulation.Tracking.TrackCandidateProducer_cfi
275 fastSim.toReplaceWith(lowPtTripletStepTrackCandidates,
276  FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
277  src = 'lowPtTripletStepSeeds',
278  MinNumberOfCrossedLayers = 3,
279  hitMasks = cms.InputTag('lowPtTripletStepMasks'))
280 )
281 
282 # TRACK FITTING
283 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
284 lowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
285  src = 'lowPtTripletStepTrackCandidates',
286  AlgorithmName = 'lowPtTripletStep',
287  Fitter = 'FlexibleKFFittingSmoother'
288 )
289 fastSim.toModify(lowPtTripletStepTracks, TTRHBuilder = 'WithoutRefit')
290 
291 from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
292 phase2_timing_layer.toModify(lowPtTripletStepTracks, TrajectoryInEvent = True)
293 
294 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
295 lowPtTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
296  ComponentName = 'lowPtTripletStepTrajectoryCleanerBySharedHits',
297  fractionShared = 0.16,
298  allowSharedFirstHit = True
299 )
300 trackingLowPU.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
301 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
302 
303 # Final selection
305 lowPtTripletStep = TrackMVAClassifierPrompt.clone(
306  src = 'lowPtTripletStepTracks',
307  mva = dict(GBRForestLabel = 'MVASelectorIter1_13TeV'),
308  qualityCuts = [-0.6,-0.3,-0.1]
309 )
310 trackingPhase1.toReplaceWith(lowPtTripletStep, lowPtTripletStep.clone(
311  mva = dict(GBRForestLabel = 'MVASelectorLowPtTripletStep_Phase1'),
312  qualityCuts = [-0.4,0.0,0.3],
313 ))
314 pp_on_AA.toModify(lowPtTripletStep,
315  mva = dict(GBRForestLabel = 'HIMVASelectorLowPtTripletStep_Phase1'),
316  qualityCuts = [-0.8, -0.4, 0.5],
317 )
318 
322 trackdnn.toReplaceWith(lowPtTripletStep, trackTfClassifier.clone(
323  src = 'lowPtTripletStepTracks',
324  qualityCuts = qualityCutDictionary.LowPtTripletStep.value()
325 ))
326 highBetaStar.toModify(lowPtTripletStep,qualityCuts = [-0.7,-0.3,-0.1])
327 
328 fastSim.toModify(lowPtTripletStep, vertices = 'firstStepPrimaryVerticesBeforeMixing')
329 
330 ((~trackingMkFitLowPtTripletStep) & trackdnn).toModify(lowPtTripletStep, mva = dict(tfDnnLabel = 'trackSelectionTf_CKF'),
331  qualityCuts = [-0.23, 0.15, 0.41])
332 
333 (pp_on_AA & trackdnn).toModify(lowPtTripletStep, qualityCuts = [-0.29, 0.65, 0.98] )
334 
335 # For LowPU and Phase2PU140
336 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
337 lowPtTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
338  src = 'lowPtTripletStepTracks',
339  useAnyMVA = cms.bool(False),
340  GBRForestLabel = cms.string('MVASelectorIter1'),
341  trackSelectors= [
342  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
343  name = 'lowPtTripletStepLoose',
344  ), #end of pset
345  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
346  name = 'lowPtTripletStepTight',
347  preFilterName = 'lowPtTripletStepLoose',
348  ),
349  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
350  name = 'QualityMasks',
351  preFilterName = 'lowPtTripletStepTight',
352  ),
353  ] #end of vpset
354 ) #end of clone
355 trackingPhase2PU140.toModify(lowPtTripletStepSelector,
356  useAnyMVA = None,
357  GBRForestLabel = None,
358  trackSelectors= cms.VPSet(
359  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
360  name = 'lowPtTripletStepLoose',
361  chi2n_par = 1.2,
362  res_par = ( 0.003, 0.002 ),
363  minNumberLayers = 3,
364  maxNumberLostLayers = 2,
365  minNumber3DLayers = 3,
366  d0_par1 = ( 0.7, 4.0 ),
367  dz_par1 = ( 0.7, 4.0 ),
368  d0_par2 = ( 0.6, 4.0 ),
369  dz_par2 = ( 0.6, 4.0 )
370  ), #end of pset
371  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
372  name = 'lowPtTripletStepTight',
373  preFilterName = 'lowPtTripletStepLoose',
374  chi2n_par = 0.7,
375  res_par = ( 0.003, 0.002 ),
376  minNumberLayers = 3,
377  maxNumberLostLayers = 2,
378  minNumber3DLayers = 3,
379  d0_par1 = ( 0.6, 4.0 ),
380  dz_par1 = ( 0.6, 4.0 ),
381  d0_par2 = ( 0.5, 4.0 ),
382  dz_par2 = ( 0.5, 4.0 )
383  ),
384  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
385  name = 'lowPtTripletStep',
386  preFilterName = 'lowPtTripletStepTight',
387  min_eta = -4.0,
388  max_eta = 4.0,
389  chi2n_par = 0.4,
390  res_par = ( 0.003, 0.001 ),
391  min_nhits = 3,
392  minNumberLayers = 4,
393  maxNumberLostLayers = 2,
394  minNumber3DLayers = 4,
395  d0_par1 = ( 0.5, 4.0 ),
396  dz_par1 = ( 0.5, 4.0 ),
397  d0_par2 = ( 0.45, 4.0 ),
398  dz_par2 = ( 0.45, 4.0 )
399  ),
400  ), #end of vpset
401 ) #end of clone
402 
403 
404 from Configuration.ProcessModifiers.vectorHits_cff import vectorHits
405 vectorHits.toModify(lowPtTripletStepSelector.trackSelectors[2], minNumberLayers = 3, minNumber3DLayers = 3)
406 
407 
408 # Final sequence
409 LowPtTripletStepTask = cms.Task(lowPtTripletStepClusters,
410  lowPtTripletStepSeedLayers,
411  lowPtTripletStepTrackingRegions,
412  lowPtTripletStepHitDoublets,
413  lowPtTripletStepHitTriplets,
414  lowPtTripletStepSeeds,
415  lowPtTripletStepTrackCandidates,
416  lowPtTripletStepTracks,
417  lowPtTripletStep)
418 LowPtTripletStep = cms.Sequence(LowPtTripletStepTask)
419 
420 _LowPtTripletStepTask_trackingMkFit = LowPtTripletStepTask.copy()
421 _LowPtTripletStepTask_trackingMkFit.add(lowPtTripletStepTrackCandidatesMkFitSeeds, lowPtTripletStepTrackCandidatesMkFit)
422 trackingMkFitLowPtTripletStep.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_trackingMkFit)
423 
424 _LowPtTripletStepTask_LowPU_Phase2PU140 = LowPtTripletStepTask.copy()
425 _LowPtTripletStepTask_LowPU_Phase2PU140.replace(lowPtTripletStep, lowPtTripletStepSelector)
426 trackingLowPU.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
427 
428 trackingPhase2PU140.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
429 #fastsim
430 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi import maskProducerFromClusterRemover
431 lowPtTripletStepMasks = maskProducerFromClusterRemover(lowPtTripletStepClusters)
432 fastSim.toReplaceWith(LowPtTripletStepTask,
433  cms.Task(lowPtTripletStepMasks
434  ,lowPtTripletStepTrackingRegions
435  ,lowPtTripletStepSeeds
436  ,lowPtTripletStepTrackCandidates
437  ,lowPtTripletStepTracks
438  ,lowPtTripletStep
439  ))
TRIGGER SELECTION #####.
def _hitSetProducerToFactoryPSet(producer)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135