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