CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PostLS1_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 tobTecStepSeedClusters = cms.EDProducer("TrackClusterRemover",
22  clusterLessSolution = cms.bool(True),
23  oldClusterRemovalInfo = cms.InputTag("pixelLessStepClusters"),
24  trajectories = cms.InputTag("pixelLessStepTracks"),
25  overrideTrkQuals = cms.InputTag('pixelLessStepSelector','pixelLessStep'),
26  TrackQuality = cms.string('highPurity'),
27  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
28  pixelClusters = cms.InputTag("siPixelClusters"),
29  stripClusters = cms.InputTag("siStripClusters"),
30  doStripChargeCheck = cms.bool(True),
31  stripRecHits = cms.string('siStripMatchedRecHits'),
32  Common = cms.PSet(
33  maxChi2 = cms.double(9.0),
34  minGoodStripCharge = cms.double(70.0)
35  )
36 )
37 
38 # SEEDING LAYERS
39 tobTecStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
40  layerList = cms.vstring('TOB1+TOB2',
41  'TOB1+TEC1_pos', 'TOB1+TEC1_neg',
42  'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos',
43  'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos',
44  'TEC5_pos+TEC6_pos', 'TEC6_pos+TEC7_pos',
45  'TEC1_neg+TEC2_neg', 'TEC2_neg+TEC3_neg',
46  'TEC3_neg+TEC4_neg', 'TEC4_neg+TEC5_neg',
47  'TEC5_neg+TEC6_neg', 'TEC6_neg+TEC7_neg'),
48 
49  TOB = cms.PSet(
50  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
51  skipClusters = cms.InputTag('tobTecStepSeedClusters'),
52  TTRHBuilder = cms.string('WithTrackAngle')
53  ),
54 
55  TEC = cms.PSet(
56  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
57  skipClusters = cms.InputTag('tobTecStepSeedClusters'),
58  # untracked bool useSimpleRphiHitsCleaner = false
59  useRingSlector = cms.bool(True),
60  TTRHBuilder = cms.string('WithTrackAngle'),
61  minRing = cms.int32(5),
62  maxRing = cms.int32(5)
63  )
64 )
65 # SEEDS
67 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
68 tobTecStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'tobTecStepSeedLayers'
69 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.8
70 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 20.0
71 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 3.5
72 tobTecStepSeeds.SeedCreatorPSet.OriginTransverseErrorMultiplier = 3.0
73 
74 tobTecStepSeeds.SeedComparitorPSet = cms.PSet(
75  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
76  FilterAtHelixStage = cms.bool(True),
77  FilterPixelHits = cms.bool(False),
78  FilterStripHits = cms.bool(True),
79  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
80  )
81 
82 
83 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
84 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
85 
86 tobTecStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
87  ComponentName = 'tobTecStepTrajectoryFilter',
88  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
89  maxLostHits = 0,
90  minimumNumberOfHits = 6,
91  minPt = 0.1,
92  minHitsMinPt = 3
93  )
94  )
95 
96 tobTecStepInOutTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
97  ComponentName = 'tobTecStepInOutTrajectoryFilter',
98  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
99  maxLostHits = 0,
100  minimumNumberOfHits = 4,
101  minPt = 0.1,
102  minHitsMinPt = 3
103  )
104  )
105 
107 tobTecStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
108  ComponentName = cms.string('tobTecStepChi2Est'),
109  nSigma = cms.double(3.0),
110  MaxChi2 = cms.double(16.0)
111 )
112 
113 # TRACK BUILDING
115 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
116  ComponentName = 'tobTecStepTrajectoryBuilder',
117  MeasurementTrackerName = '',
118  clustersToSkip = cms.InputTag('tobTecStepClusters'),
119  trajectoryFilterName = 'tobTecStepTrajectoryFilter',
120  inOutTrajectoryFilterName = 'tobTecStepInOutTrajectoryFilter',
121  useSameTrajFilter = False,
122  minNrOfHitsForRebuild = 4,
123  alwaysUseInvalidHits = False,
124  maxCand = 2,
125  estimator = cms.string('tobTecStepChi2Est'),
126  #startSeedHitsInRebuild = True
127  maxDPhiForLooperReconstruction = cms.double(2.0),
128  maxPtForLooperReconstruction = cms.double(0.7)
129  )
130 
131 # MAKING OF TRACK CANDIDATES
133 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
134  src = cms.InputTag('tobTecStepSeeds'),
135  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
136  numHitsForSeedCleaner = cms.int32(50),
137  onlyPixelHitsForSeedCleaner = cms.bool(True),
138 
139  TrajectoryBuilder = 'tobTecStepTrajectoryBuilder',
140  doSeedingRegionRebuilding = True,
141  useHitsSplitting = True,
142  cleanTrajectoryAfterInOut = True
143 )
144 
145 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
146 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
147  ComponentName = cms.string('tobTecStepTrajectoryCleanerBySharedHits'),
148  fractionShared = cms.double(0.09),
149  allowSharedFirstHit = cms.bool(True)
150  )
151 tobTecStepTrackCandidates.TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits'
152 
153 # TRACK FITTING AND SMOOTHING OPTIONS
155 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
156  ComponentName = 'tobTecStepFitterSmoother',
157  EstimateCut = 30,
158  MinNumberOfHits = 8,
159  Fitter = cms.string('tobTecStepRKFitter'),
160  Smoother = cms.string('tobTecStepRKSmoother')
161  )
162 
163 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
164  ComponentName = 'tobTecStepFitterSmootherForLoopers',
165  Fitter = cms.string('tobTecStepRKFitterForLoopers'),
166  Smoother = cms.string('tobTecStepRKSmootherForLoopers')
167 )
168 
169 # Also necessary to specify minimum number of hits after final track fit
170 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
171  ComponentName = cms.string('tobTecStepRKFitter'),
172  minHits = 8
173 )
174 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
175  ComponentName = cms.string('tobTecStepRKFitterForLoopers'),
176  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
177 )
178 
179 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
180  ComponentName = cms.string('tobTecStepRKSmoother'),
181  errorRescaling = 10.0,
182  minHits = 8
183 )
184 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
185  ComponentName = cms.string('tobTecStepRKSmootherForLoopers'),
186  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
187 )
188 
190 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
191  ComponentName = cms.string('tobTecFlexibleKFFittingSmoother'),
192  standardFitter = cms.string('tobTecStepFitterSmoother'),
193  looperFitter = cms.string('tobTecStepFitterSmootherForLoopers'),
194 )
195 
196 
197 
198 
199 # TRACK FITTING
201 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
202  src = 'tobTecStepTrackCandidates',
203  AlgorithmName = cms.string('iter6'),
204  #Fitter = 'tobTecStepFitterSmoother',
205  Fitter = 'tobTecFlexibleKFFittingSmoother',
206  )
207 
208 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
209 tobTecStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
210  src='tobTecStepTracks',
211  trackSelectors= cms.VPSet(
212  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
213  name = 'tobTecStepLoose',
214  chi2n_par = 0.4,
215  res_par = ( 0.003, 0.001 ),
216  minNumberLayers = 5,
217  maxNumberLostLayers = 1,
218  minNumber3DLayers = 2,
219  d0_par1 = ( 2.0, 4.0 ),
220  dz_par1 = ( 1.8, 4.0 ),
221  d0_par2 = ( 2.0, 4.0 ),
222  dz_par2 = ( 1.8, 4.0 )
223  ),
224  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
225  name = 'tobTecStepTight',
226  preFilterName = 'tobTecStepLoose',
227  chi2n_par = 0.3,
228  res_par = ( 0.003, 0.001 ),
229  minNumberLayers = 5,
230  maxNumberLostLayers = 0,
231  minNumber3DLayers = 2,
232  d0_par1 = ( 1.5, 4.0 ),
233  dz_par1 = ( 1.4, 4.0 ),
234  d0_par2 = ( 1.5, 4.0 ),
235  dz_par2 = ( 1.4, 4.0 )
236  ),
237  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
238  name = 'tobTecStep',
239  preFilterName = 'tobTecStepTight',
240  chi2n_par = 0.2,
241  res_par = ( 0.003, 0.001 ),
242  minNumberLayers = 5,
243  maxNumberLostLayers = 0,
244  minNumber3DLayers = 2,
245  max_minMissHitOutOrIn = 1,
246  max_lostHitFraction = 1.0,
247  d0_par1 = ( 1.2, 4.0 ),
248  dz_par1 = ( 1.1, 4.0 ),
249  d0_par2 = ( 1.2, 4.0 ),
250  dz_par2 = ( 1.1, 4.0 )
251  ),
252  ) #end of vpset
253  ) #end of clone
254 
255 
256 TobTecStep = cms.Sequence(tobTecStepClusters*
257  tobTecStepSeedClusters*
258  tobTecStepSeedLayers*
259  tobTecStepSeeds*
260  tobTecStepTrackCandidates*
261  tobTecStepTracks*
262  tobTecStepSelector)
263