CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Phase1PU70_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("pixelPairStepClusters"),
10  trajectories = cms.InputTag("pixelPairStepTracks"),
11  overrideTrkQuals = cms.InputTag('pixelPairStepSelector','pixelPairStep'),
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("mixedTripletStepClusters"),
24  trajectories = cms.InputTag("mixedTripletStepTracks"),
25  overrideTrkQuals = cms.InputTag('mixedTripletStep'),
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(80.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  TOB = cms.PSet(
49  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
50  skipClusters = cms.InputTag('tobTecStepSeedClusters'),
51  TTRHBuilder = cms.string('WithTrackAngle')
52  ),
53  TEC = cms.PSet(
54  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
55  skipClusters = cms.InputTag('tobTecStepSeedClusters'),
56  # untracked bool useSimpleRphiHitsCleaner = false
57  useRingSlector = cms.bool(True),
58  TTRHBuilder = cms.string('WithTrackAngle'),
59  minRing = cms.int32(5),
60  maxRing = cms.int32(5)
61  )
62 )
63 # SEEDS
65 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
66 tobTecStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'tobTecStepSeedLayers'
67 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 1.0
68 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
69 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 2.0
70 tobTecStepSeeds.SeedCreatorPSet.OriginTransverseErrorMultiplier = 3.0
71 
72 tobTecStepSeeds.SeedComparitorPSet = cms.PSet(
73  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
74  FilterAtHelixStage = cms.bool(True),
75  FilterPixelHits = cms.bool(False),
76  FilterStripHits = cms.bool(True),
77  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
78  )
79 tobTecStepSeeds.ClusterCheckPSet.doClusterCheck = cms.bool(False)
80 tobTecStepSeeds.OrderedHitsFactoryPSet.maxElement = cms.uint32(0)
81 
82 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
83 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
84 
85 tobTecStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
86  ComponentName = 'tobTecStepTrajectoryFilter',
87  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
88  maxLostHits = 0,
89  minimumNumberOfHits = 6,
90  minPt = 0.1,
91  minHitsMinPt = 3
92  )
93  )
94 
95 tobTecStepInOutTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
96  ComponentName = 'tobTecStepInOutTrajectoryFilter',
97  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
98  maxLostHits = 0,
99  minimumNumberOfHits = 4,
100  minPt = 0.1,
101  minHitsMinPt = 3
102  )
103  )
104 
106 tobTecStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
107  ComponentName = cms.string('tobTecStepChi2Est'),
108  nSigma = cms.double(3.0),
109  MaxChi2 = cms.double(9.0)
110 )
111 
112 # TRACK BUILDING
114 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
115  ComponentName = 'tobTecStepTrajectoryBuilder',
116  MeasurementTrackerName = '',
117  clustersToSkip = cms.InputTag('tobTecStepClusters'),
118  trajectoryFilterName = 'tobTecStepTrajectoryFilter',
119  inOutTrajectoryFilterName = 'tobTecStepInOutTrajectoryFilter',
120  useSameTrajFilter = False,
121  minNrOfHitsForRebuild = 4,
122  alwaysUseInvalidHits = False,
123  maxCand = 2,
124  estimator = cms.string('tobTecStepChi2Est'),
125  #startSeedHitsInRebuild = True
126  maxDPhiForLooperReconstruction = cms.double(2.0),
127  maxPtForLooperReconstruction = cms.double(0.7)
128  )
129 
130 # MAKING OF TRACK CANDIDATES
132 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
133  src = cms.InputTag('tobTecStepSeeds'),
134  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
135  numHitsForSeedCleaner = cms.int32(50),
136  onlyPixelHitsForSeedCleaner = cms.bool(True),
137  TrajectoryBuilder = 'tobTecStepTrajectoryBuilder',
138  doSeedingRegionRebuilding = True,
139  useHitsSplitting = True,
140  cleanTrajectoryAfterInOut = True
141 )
142 
143 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
144 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
145  ComponentName = cms.string('tobTecStepTrajectoryCleanerBySharedHits'),
146  fractionShared = cms.double(0.08),
147  allowSharedFirstHit = cms.bool(True)
148  )
149 tobTecStepTrackCandidates.TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits'
150 
151 # TRACK FITTING AND SMOOTHING OPTIONS
153 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
154  ComponentName = 'tobTecStepFitterSmoother',
155  EstimateCut = 30,
156  MinNumberOfHits = 8,
157  Fitter = cms.string('tobTecStepRKFitter'),
158  Smoother = cms.string('tobTecStepRKSmoother')
159  )
160 
161 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
162  ComponentName = 'tobTecStepFitterSmootherForLoopers',
163  Fitter = cms.string('tobTecStepRKFitterForLoopers'),
164  Smoother = cms.string('tobTecStepRKSmootherForLoopers')
165 )
166 
167 # Also necessary to specify minimum number of hits after final track fit
168 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
169  ComponentName = cms.string('tobTecStepRKFitter'),
170  minHits = 8
171 )
172 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
173  ComponentName = cms.string('tobTecStepRKFitterForLoopers'),
174  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
175 )
176 
177 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
178  ComponentName = cms.string('tobTecStepRKSmoother'),
179  errorRescaling = 10.0,
180  minHits = 8
181 )
182 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
183  ComponentName = cms.string('tobTecStepRKSmootherForLoopers'),
184  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
185 )
186 
188 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
189  ComponentName = cms.string('tobTecFlexibleKFFittingSmoother'),
190  standardFitter = cms.string('tobTecStepFitterSmoother'),
191  looperFitter = cms.string('tobTecStepFitterSmootherForLoopers'),
192 )
193 
194 # TRACK FITTING
196 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
197  src = 'tobTecStepTrackCandidates',
198  AlgorithmName = cms.string('iter7'),
199  #Fitter = 'tobTecStepFitterSmoother',
200  Fitter = cms.string('tobTecFlexibleKFFittingSmoother'),
201  TTRHBuilder=cms.string('WithTrackAngle')
202  )
203 
204 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
205 tobTecStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
206  src='tobTecStepTracks',
207  trackSelectors= cms.VPSet(
208  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
209  name = 'tobTecStepLoose',
210  chi2n_par = 0.25,
211  res_par = ( 0.003, 0.001 ),
212  minNumberLayers = 5,
213  maxNumberLostLayers = 0,
214  minNumber3DLayers = 2,
215  d0_par1 = ( 1.3, 4.0 ),
216  dz_par1 = ( 1.2, 4.0 ),
217  d0_par2 = ( 1.3, 4.0 ),
218  dz_par2 = ( 1.2, 4.0 )
219  ),
220  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
221  name = 'tobTecStepTight',
222  preFilterName = 'tobTecStepLoose',
223  chi2n_par = 0.2,
224  res_par = ( 0.003, 0.001 ),
225  minNumberLayers = 5,
226  maxNumberLostLayers = 0,
227  minNumber3DLayers = 2,
228  max_minMissHitOutOrIn = 1,
229  d0_par1 = ( 1.1, 4.0 ),
230  dz_par1 = ( 1.0, 4.0 ),
231  d0_par2 = ( 1.1, 4.0 ),
232  dz_par2 = ( 1.0, 4.0 )
233  ),
234  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
235  name = 'tobTecStep',
236  preFilterName = 'tobTecStepTight',
237  chi2n_par = 0.15,
238  res_par = ( 0.003, 0.001 ),
239  minNumberLayers = 6,
240  maxNumberLostLayers = 0,
241  minNumber3DLayers = 2,
242  max_minMissHitOutOrIn = 0,
243  d0_par1 = ( 0.9, 4.0 ),
244  dz_par1 = ( 0.8, 4.0 ),
245  d0_par2 = ( 0.9, 4.0 ),
246  dz_par2 = ( 0.8, 4.0 )
247  ),
248  ) #end of vpset
249  ) #end of clone
250 
251 
252 TobTecStep = cms.Sequence(tobTecStepClusters*
253  tobTecStepSeedClusters*
254  tobTecStepSeedLayers*
255  tobTecStepSeeds*
256  tobTecStepTrackCandidates*
257  tobTecStepTracks*
258  tobTecStepSelector)