CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LowPU_TobTecStep_cff.py
Go to the documentation of this file.
2 
3 #######################################################################
4 # Very large impact parameter tracking using TOB + TEC ring 5 seeding #
5 #######################################################################
7 tobTecStepClusters = trackClusterRemover.clone(
8  maxChi2 = cms.double(9.0),
9  trajectories = cms.InputTag("pixelLessStepTracks"),
10  pixelClusters = cms.InputTag("siPixelClusters"),
11  stripClusters = cms.InputTag("siStripClusters"),
12  oldClusterRemovalInfo = cms.InputTag("pixelLessStepClusters"),
13  overrideTrkQuals = cms.InputTag('pixelLessStepSelector','pixelLessStep'),
14  TrackQuality = cms.string('highPurity'),
15  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
16 )
17 
18 # SEEDING LAYERS
19 tobTecStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer",
20  layerList = cms.vstring('TOB1+TOB2',
21  'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos',
22  'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos',
23  'TEC5_pos+TEC6_pos', 'TEC6_pos+TEC7_pos',
24  'TEC1_neg+TEC2_neg', 'TEC2_neg+TEC3_neg',
25  'TEC3_neg+TEC4_neg', 'TEC4_neg+TEC5_neg',
26  'TEC5_neg+TEC6_neg', 'TEC6_neg+TEC7_neg'),
27  TOB = cms.PSet(
28  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
29  skipClusters = cms.InputTag('tobTecStepClusters'),
30  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
31  ),
32  TEC = cms.PSet(
33  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
34  skipClusters = cms.InputTag('tobTecStepClusters'),
35  useRingSlector = cms.bool(True),
36  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
37  minRing = cms.int32(5),
38  maxRing = cms.int32(5)
39  )
40 )
41 # SEEDS
43 tobTecStepSeedsA = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
44 tobTecStepSeedsA.OrderedHitsFactoryPSet.SeedingLayers = 'tobTecStepSeedLayersA'
45 tobTecStepSeedsA.RegionFactoryPSet.RegionPSet.ptMin = 0.6
46 tobTecStepSeedsA.RegionFactoryPSet.RegionPSet.originHalfLength = 30.0
47 tobTecStepSeedsA.RegionFactoryPSet.RegionPSet.originRadius = 6.0
48 tobTecStepSeedsA.SeedCreatorPSet.OriginTransverseErrorMultiplier = 2.0
49 
50 
51 # SEEDING LAYERS
52 tobTecStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer",
53  layerList = cms.vstring('TIB4+TOB1', 'TOB2+TOB3',
54  'TOB1+TEC1_pos', 'TOB1+TEC1_neg',
55  'TEC2_pos+TEC3_pos', 'TEC2_neg+TEC3_neg',
56  'TEC4_pos+TEC5_pos', 'TEC4_neg+TEC5_neg'),
57  TIB4 = cms.PSet(
58  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
59  skipClusters = cms.InputTag('tobTecStepClusters'),
60  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
61  ),
62  TOB1 = cms.PSet(
63  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
64  skipClusters = cms.InputTag('tobTecStepClusters'),
65  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
66  ),
67  TOB2 = cms.PSet(
68  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
69  skipClusters = cms.InputTag('tobTecStepClusters'),
70  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
71  ),
72  TOB3 = cms.PSet(
73  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
74  skipClusters = cms.InputTag('tobTecStepClusters'),
75  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
76  ),
77  TEC1 = cms.PSet(
78  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
79  skipClusters = cms.InputTag('tobTecStepClusters'),
80  useRingSlector = cms.bool(True),
81  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
82  minRing = cms.int32(5),
83  maxRing = cms.int32(5)
84  ),
85  TEC2 = cms.PSet(
86  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
87  skipClusters = cms.InputTag('tobTecStepClusters'),
88  useRingSlector = cms.bool(True),
89  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
90  minRing = cms.int32(5),
91  maxRing = cms.int32(5)
92  ),
93  TEC3 = cms.PSet(
94  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
95  skipClusters = cms.InputTag('tobTecStepClusters'),
96  useRingSlector = cms.bool(True),
97  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
98  minRing = cms.int32(6),
99  maxRing = cms.int32(6)
100  ),
101  TEC4 = cms.PSet(
102  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
103  skipClusters = cms.InputTag('tobTecStepClusters'),
104  useRingSlector = cms.bool(True),
105  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
106  minRing = cms.int32(5),
107  maxRing = cms.int32(5)
108  ),
109  TEC5 = cms.PSet(
110  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
111  skipClusters = cms.InputTag('tobTecStepClusters'),
112  useRingSlector = cms.bool(True),
113  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
114  minRing = cms.int32(6),
115  maxRing = cms.int32(6)
116  )
117 )
118 # SEEDS
120 tobTecStepSeedsB = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
121 tobTecStepSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'tobTecStepSeedLayersB'
122 tobTecStepSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 0.8
123 tobTecStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 30.0
124 tobTecStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 3.0
125 tobTecStepSeedsB.SeedCreatorPSet.OriginTransverseErrorMultiplier = 3.0
126 
128 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
129 tobTecStepSeeds.seedCollections = cms.VInputTag(
130  cms.InputTag('tobTecStepSeedsA'),
131  cms.InputTag('tobTecStepSeedsB'),
132  )
133 
134 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
136 
137 tobTecStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
138  maxLostHits = 0,
139  minimumNumberOfHits = 6,
140  minPt = 0.1,
141  minHitsMinPt = 3
142  )
143 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
144  maxLostHits = 0,
145  minimumNumberOfHits = 4,
146  minPt = 0.1,
147  minHitsMinPt = 3
148  )
149 
151 tobTecStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
152  ComponentName = cms.string('tobTecStepChi2Est'),
153  nSigma = cms.double(3.0),
154  MaxChi2 = cms.double(16.0)
155 )
156 
157 # TRACK BUILDING
159 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
160  MeasurementTrackerName = '',
161  clustersToSkip = cms.InputTag('tobTecStepClusters'),
162  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryFilter')),
163  inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepInOutTrajectoryFilter')),
164  useSameTrajFilter = False,
165  minNrOfHitsForRebuild = 4,
166  alwaysUseInvalidHits = False,
167  maxCand = 2,
168  estimator = cms.string('tobTecStepChi2Est'),
169  #startSeedHitsInRebuild = True
170  maxDPhiForLooperReconstruction = cms.double(2.0),
171  maxPtForLooperReconstruction = cms.double(0.7)
172  )
173 
174 # MAKING OF TRACK CANDIDATES
176 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
177  src = cms.InputTag('tobTecStepSeeds'),
178  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
179  numHitsForSeedCleaner = cms.int32(50),
180  onlyPixelHitsForSeedCleaner = cms.bool(True),
181  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryBuilder')),
182  doSeedingRegionRebuilding = True,
183  useHitsSplitting = True,
184  cleanTrajectoryAfterInOut = True
185 )
186 
187 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
188 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
189  ComponentName = cms.string('tobTecStepTrajectoryCleanerBySharedHits'),
190  fractionShared = cms.double(0.09),
191  allowSharedFirstHit = cms.bool(True)
192  )
193 tobTecStepTrackCandidates.TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits'
194 
195 # TRACK FITTING AND SMOOTHING OPTIONS
197 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
198  ComponentName = 'tobTecStepFitterSmoother',
199  EstimateCut = 30,
200  MinNumberOfHits = 8,
201  Fitter = cms.string('tobTecStepRKFitter'),
202  Smoother = cms.string('tobTecStepRKSmoother')
203  )
204 
205 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
206  ComponentName = 'tobTecStepFitterSmootherForLoopers',
207  Fitter = cms.string('tobTecStepRKFitterForLoopers'),
208  Smoother = cms.string('tobTecStepRKSmootherForLoopers')
209 )
210 
211 # Also necessary to specify minimum number of hits after final track fit
212 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
213  ComponentName = cms.string('tobTecStepRKFitter'),
214  minHits = 8
215 )
216 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
217  ComponentName = cms.string('tobTecStepRKFitterForLoopers'),
218  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
219 )
220 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
221  ComponentName = cms.string('tobTecStepRKSmoother'),
222  errorRescaling = 10.0,
223  minHits = 8
224 )
225 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
226  ComponentName = cms.string('tobTecStepRKSmootherForLoopers'),
227  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
228 )
229 
231 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
232  ComponentName = cms.string('tobTecFlexibleKFFittingSmoother'),
233  standardFitter = cms.string('tobTecStepFitterSmoother'),
234  looperFitter = cms.string('tobTecStepFitterSmootherForLoopers'),
235 )
236 
237 # TRACK FITTING
239 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
240  src = 'tobTecStepTrackCandidates',
241  AlgorithmName = cms.string('tobTecStep'),
242  #Fitter = 'tobTecStepFitterSmoother',
243  Fitter = 'tobTecFlexibleKFFittingSmoother',
244  )
245 
246 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
247 tobTecStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
248  src='tobTecStepTracks',
249  trackSelectors= cms.VPSet(
250  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
251  name = 'tobTecStepLoose',
252  chi2n_par = 0.35,
253  res_par = ( 0.003, 0.001 ),
254  minNumberLayers = 5,
255  maxNumberLostLayers = 1,
256  minNumber3DLayers = 2,
257  d0_par1 = ( 2.0, 4.0 ),
258  dz_par1 = ( 1.7, 4.0 ),
259  d0_par2 = ( 2.2, 4.0 ),
260  dz_par2 = ( 1.3, 4.0 )
261  ),
262  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
263  name = 'tobTecStepTight',
264  preFilterName = 'tobTecStepLoose',
265  chi2n_par = 0.3,
266  res_par = ( 0.003, 0.001 ),
267  minNumberLayers = 5,
268  maxNumberLostLayers = 0,
269  minNumber3DLayers = 2,
270  d0_par1 = ( 1.5, 4.0 ),
271  dz_par1 = ( 1.2, 4.0 ),
272  d0_par2 = ( 1.7, 4.0 ),
273  dz_par2 = ( 1.2, 4.0 )
274  ),
275  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
276  name = 'tobTecStep',
277  preFilterName = 'tobTecStepTight',
278  chi2n_par = 0.2,
279  res_par = ( 0.003, 0.001 ),
280  minNumberLayers = 6,
281  maxNumberLostLayers = 0,
282  minNumber3DLayers = 2,
283  max_minMissHitOutOrIn = 1,
284  d0_par1 = ( 1.2, 4.0 ),
285  dz_par1 = ( 0.9, 4.0 ),
286  d0_par2 = ( 1.4, 4.0 ),
287  dz_par2 = ( 1.1, 4.0 )
288  ),
289  ) #end of vpset
290  ) #end of clone
291 
292 TobTecStep = cms.Sequence(tobTecStepClusters*
293  tobTecStepSeedLayersA*
294  tobTecStepSeedsA*
295  tobTecStepSeedLayersB*
296  tobTecStepSeedsB*
297  tobTecStepSeeds*
298  tobTecStepTrackCandidates*
299  tobTecStepTracks*
300  tobTecStepSelector)