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)
139 
140 tobTecStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
141  maxLostHits = 0,
142  minimumNumberOfHits = 6,
143  minPt = 0.1,
144  minHitsMinPt = 3
145  )
146 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
147  maxLostHits = 0,
148  minimumNumberOfHits = 4,
149  minPt = 0.1,
150  minHitsMinPt = 3
151  )
152 
154 tobTecStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
155  ComponentName = cms.string('tobTecStepChi2Est'),
156  nSigma = cms.double(3.0),
157  MaxChi2 = cms.double(16.0)
158 )
159 
160 # TRACK BUILDING
162 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
163  MeasurementTrackerName = '',
164  clustersToSkip = cms.InputTag('tobTecStepClusters'),
165  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryFilter')),
166  inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepInOutTrajectoryFilter')),
167  useSameTrajFilter = False,
168  minNrOfHitsForRebuild = 4,
169  alwaysUseInvalidHits = False,
170  maxCand = 2,
171  estimator = cms.string('tobTecStepChi2Est'),
172  #startSeedHitsInRebuild = True
173  maxDPhiForLooperReconstruction = cms.double(2.0),
174  maxPtForLooperReconstruction = cms.double(0.7)
175  )
176 
177 # MAKING OF TRACK CANDIDATES
179 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
180  src = cms.InputTag('tobTecStepSeeds'),
181  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
182  numHitsForSeedCleaner = cms.int32(50),
183  onlyPixelHitsForSeedCleaner = cms.bool(True),
184  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryBuilder')),
185  doSeedingRegionRebuilding = True,
186  useHitsSplitting = True,
187  cleanTrajectoryAfterInOut = True
188 )
189 
190 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
191 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
192  ComponentName = cms.string('tobTecStepTrajectoryCleanerBySharedHits'),
193  fractionShared = cms.double(0.09),
194  allowSharedFirstHit = cms.bool(True)
195  )
196 tobTecStepTrackCandidates.TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits'
197 
198 # TRACK FITTING AND SMOOTHING OPTIONS
200 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
201  ComponentName = 'tobTecStepFitterSmoother',
202  EstimateCut = 30,
203  MinNumberOfHits = 8,
204  Fitter = cms.string('tobTecStepRKFitter'),
205  Smoother = cms.string('tobTecStepRKSmoother')
206  )
207 
208 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
209  ComponentName = 'tobTecStepFitterSmootherForLoopers',
210  Fitter = cms.string('tobTecStepRKFitterForLoopers'),
211  Smoother = cms.string('tobTecStepRKSmootherForLoopers')
212 )
213 
214 # Also necessary to specify minimum number of hits after final track fit
215 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
216  ComponentName = cms.string('tobTecStepRKFitter'),
217  minHits = 8
218 )
219 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
220  ComponentName = cms.string('tobTecStepRKFitterForLoopers'),
221  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
222 )
223 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
224  ComponentName = cms.string('tobTecStepRKSmoother'),
225  errorRescaling = 10.0,
226  minHits = 8
227 )
228 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
229  ComponentName = cms.string('tobTecStepRKSmootherForLoopers'),
230  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
231 )
232 
234 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
235  ComponentName = cms.string('tobTecFlexibleKFFittingSmoother'),
236  standardFitter = cms.string('tobTecStepFitterSmoother'),
237  looperFitter = cms.string('tobTecStepFitterSmootherForLoopers'),
238 )
239 
240 # TRACK FITTING
242 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
243  src = 'tobTecStepTrackCandidates',
244  AlgorithmName = cms.string('iter6'),
245  #Fitter = 'tobTecStepFitterSmoother',
246  Fitter = 'tobTecFlexibleKFFittingSmoother',
247  )
248 
249 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
250 tobTecStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
251  src='tobTecStepTracks',
252  trackSelectors= cms.VPSet(
253  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
254  name = 'tobTecStepLoose',
255  chi2n_par = 0.35,
256  res_par = ( 0.003, 0.001 ),
257  minNumberLayers = 5,
258  maxNumberLostLayers = 1,
259  minNumber3DLayers = 2,
260  d0_par1 = ( 2.0, 4.0 ),
261  dz_par1 = ( 1.7, 4.0 ),
262  d0_par2 = ( 2.2, 4.0 ),
263  dz_par2 = ( 1.3, 4.0 )
264  ),
265  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
266  name = 'tobTecStepTight',
267  preFilterName = 'tobTecStepLoose',
268  chi2n_par = 0.3,
269  res_par = ( 0.003, 0.001 ),
270  minNumberLayers = 5,
271  maxNumberLostLayers = 0,
272  minNumber3DLayers = 2,
273  d0_par1 = ( 1.5, 4.0 ),
274  dz_par1 = ( 1.2, 4.0 ),
275  d0_par2 = ( 1.7, 4.0 ),
276  dz_par2 = ( 1.2, 4.0 )
277  ),
278  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
279  name = 'tobTecStep',
280  preFilterName = 'tobTecStepTight',
281  chi2n_par = 0.2,
282  res_par = ( 0.003, 0.001 ),
283  minNumberLayers = 6,
284  maxNumberLostLayers = 0,
285  minNumber3DLayers = 2,
286  max_minMissHitOutOrIn = 1,
287  d0_par1 = ( 1.2, 4.0 ),
288  dz_par1 = ( 0.9, 4.0 ),
289  d0_par2 = ( 1.4, 4.0 ),
290  dz_par2 = ( 1.1, 4.0 )
291  ),
292  ) #end of vpset
293  ) #end of clone
294 
295 TobTecStep = cms.Sequence(tobTecStepClusters*
296  tobTecStepSeedLayersA*
297  tobTecStepSeedsA*
298  tobTecStepSeedLayersB*
299  tobTecStepSeedsB*
300  tobTecStepSeeds*
301  tobTecStepTrackCandidates*
302  tobTecStepTracks*
303  tobTecStepSelector)