CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LargeD0_PixelTibTidTecStep_cff.py
Go to the documentation of this file.
2 
3 #
4 # Very large impact parameter tracking: Iteration 3 using Outer pixel + inner TIB/TID/TEC ring seeding
5 #
6 
7 #HIT REMOVAL
8 trkfilter3 = cms.EDProducer("QualityFilter",
9  TrackQuality = cms.string('highPurity'),
10 # Reject hits found in standard iterations
11  recTracks = cms.InputTag("tobtecStep")
12 # Reject hits found in all previous iterations
13 # recTracks = cms.InputTag("largeD0step2")
14 )
15 
16 largeD0step3Clusters = cms.EDProducer("TrackClusterRemover",
17  trajectories = cms.InputTag("trkfilter3"),
18 
19 # To run this step eliminating hits from standard iterations.
20  oldClusterRemovalInfo = cms.InputTag("fifthClusters"),
21  pixelClusters = cms.InputTag("fifthClusters"),
22  stripClusters = cms.InputTag("fifthClusters"),
23 
24 # To run this step, eliminating hits from all previous iterations ...
25 # oldClusterRemovalInfo = cms.InputTag("largeD0step2Clusters"),
26 # pixelClusters = cms.InputTag("largeD0step2Clusters"),
27 # stripClusters = cms.InputTag("largeD0step2Clusters"),
28 
29 # To run it, not eliminating any hits.
30 # trajectories = cms.InputTag("zeroStepFilter"),
31 # pixelClusters = cms.InputTag("siPixelClusters"),
32 # stripClusters = cms.InputTag("siStripClusters"),
33 
34  Common = cms.PSet(
35  maxChi2 = cms.double(30.0)
36 # To run it not eliminating any hits, you also need ...
37 # maxChi2 = cms.double(0.0)
38  )
39 )
40 
41 # Propagator taking into account momentum uncertainty in multiple
42 # scattering calculation.
43 #from TrackingTools.MaterialEffects.Propagators_PtMin09_cff import *
45 MaterialPropagatorPtMin06 = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
46  ComponentName = 'PropagatorWithMaterialPtMin06',
47  ptMin = 0.6,
48 )
50 OppositeMaterialPropagatorPtMin06 = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
51  ComponentName = 'PropagatorWithMaterialOppositePtMin06',
52  ptMin = 0.6,
53 )
54 #TRACKER HITS
57 largeD0step3PixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.siPixelRecHits.clone(
58  src = 'largeD0step3Clusters',
59  )
60 largeD0step3StripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
61  ClusterProducer = 'largeD0step3Clusters',
62  )
63 #SEEDING LAYERS
64 import RecoTracker.TkSeedingLayers.PixelAndStripLayerPairs_cfi
65 largeD0step3LayerPairs = RecoTracker.TkSeedingLayers.PixelAndStripLayerPairs_cfi.PixelAndStripLayerPairs.clone()
66 largeD0step3LayerPairs.BPix.HitProducer = 'largeD0step3PixelRecHits'
67 largeD0step3LayerPairs.FPix.HitProducer = 'largeD0step3PixelRecHits'
68 largeD0step3LayerPairs.TIB.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit'
69 largeD0step3LayerPairs.TID.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit'
70 largeD0step3LayerPairs.TEC.matchedRecHits = 'largeD0step3StripRecHits:matchedRecHit'
71 
72 #SEEDS
74 largeD0step3Seeds = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
75 largeD0step3Seeds.OrderedHitsFactoryPSet.SeedingLayers = 'largeD0step3LayerPairs'
76 largeD0step3Seeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6
77 largeD0step3Seeds.RegionFactoryPSet.RegionPSet.originRadius = 3.5
78 largeD0step3Seeds.RegionFactoryPSet.RegionPSet.originHalfLength = 12.5
79 import RecoTracker.TkSeedGenerator.SeedFromConsecutiveHitsStraightLineCreator_cfi
80 largeD0step3Seeds.SeedCreatorPSet = RecoTracker.TkSeedGenerator.SeedFromConsecutiveHitsStraightLineCreator_cfi.SeedFromConsecutiveHitsStraightLineCreator.clone(
81  propagator = cms.string('PropagatorWithMaterialPtMin06')
82 )
83 
84 
85 #TRAJECTORY MEASUREMENT
87 largeD0step3MeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
88  ComponentName = 'largeD0step3MeasurementTracker',
89  pixelClusterProducer = 'largeD0step3Clusters',
90  stripClusterProducer = 'largeD0step3Clusters',
91 )
92 #TRAJECTORY FILTERS (for inwards and outwards track building steps)
93 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
94 
95 largeD0step3CkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
96  ComponentName = 'largeD0step3CkfTrajectoryFilter'
97  )
98 largeD0step3CkfTrajectoryFilter.filterPset.maxLostHits = 0
99 #lar largeD0step3CkfTrajectoryFilter.filterPset.maxConsecLostHits = 2
100 largeD0step3CkfTrajectoryFilter.filterPset.minimumNumberOfHits = 7
101 largeD0step3CkfTrajectoryFilter.filterPset.minPt = 0.6
102 largeD0step3CkfTrajectoryFilter.filterPset.minHitsMinPt = 3
103 
104 largeD0step3CkfInOutTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
105  ComponentName = 'largeD0step3CkfInOutTrajectoryFilter'
106  )
107 largeD0step3CkfInOutTrajectoryFilter.filterPset.maxLostHits = 0
108 #lar largeD0step3CkfInOutTrajectoryFilter.filterPset.maxConsecLostHits = 2
109 largeD0step3CkfInOutTrajectoryFilter.filterPset.minimumNumberOfHits = 7
110 largeD0step3CkfInOutTrajectoryFilter.filterPset.minPt = 0.6
111 largeD0step3CkfInOutTrajectoryFilter.filterPset.minHitsMinPt = 3
112 
113 #TRAJECTORY BUILDER
115 largeD0step3CkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
116  ComponentName = 'largeD0step3CkfTrajectoryBuilder',
117  MeasurementTrackerName = 'largeD0step3MeasurementTracker',
118  trajectoryFilterName = 'largeD0step3CkfTrajectoryFilter',
119  inOutTrajectoryFilterName = 'largeD0step3CkfInOutTrajectoryFilter',
120  useSameTrajFilter = False,
121  minNrOfHitsForRebuild = 7,
122  #lar maxCand = 5,
123  #lar lostHitPenalty = 100.,
124  #lar alwaysUseInvalidHits = False,
125  propagatorAlong = cms.string('PropagatorWithMaterialPtMin06'),
126  propagatorOpposite = cms.string('PropagatorWithMaterialOppositePtMin06'),
127 )
128 #TRACK CANDIDATES
130 largeD0step3TrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
131  src = 'largeD0step3Seeds',
132  TrajectoryBuilder = 'largeD0step3CkfTrajectoryBuilder',
133  doSeedingRegionRebuilding = True,
134  useHitsSplitting = True,
135  cleanTrajectoryAfterInOut = True,
136 )
137 #
138 # TRACK FITTING AND SMOOTHING
139 #
140 
142 largeD0step3FittingSmootherWithOutlierRejection = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKFittingSmoother.clone(
143  ComponentName = 'largeD0step3FittingSmootherWithOutlierRejection',
144  EstimateCut = 20,
145  MinNumberOfHits = 7,
146  Fitter = cms.string('largeD0step3RKFitter'),
147  Smoother = cms.string('largeD0step3RKSmoother'),
148 )
149 # Also necessary to specify minimum number of hits after final track fit
150 largeD0step3RKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
151  ComponentName = cms.string('largeD0step3RKFitter'),
152  minHits = 7,
153 )
154 largeD0step3RKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
155  ComponentName = cms.string('largeD0step3RKSmoother'),
156  minHits = 7,
157 )
158 #TRACKS
160 largeD0step3WithMaterialTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
161  src = 'largeD0step3TrackCandidates',
162  clusterRemovalInfo = 'largeD0step3Clusters',
163  AlgorithmName = cms.string('iter3LargeD0'),
164  Fitter = 'largeD0step3FittingSmootherWithOutlierRejection',
165 )
166 # TRACK QUALITY DEFINITION
167 import RecoTracker.FinalTrackSelectors.selectLoose_cfi
168 import RecoTracker.FinalTrackSelectors.selectTight_cfi
169 import RecoTracker.FinalTrackSelectors.selectHighPurity_cfi
170 
171 largeD0step3Loose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
172  src = 'largeD0step3WithMaterialTracks',
173  keepAllTracks = False,
174  copyExtras = False,
175  copyTrajectories = True,
176  applyAdaptedPVCuts = False,
177  chi2n_par = 99.,
178  minNumberLayers = 5,
179  minNumber3DLayers = 0,
180 )
181 largeD0step3Tight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
182  src = 'largeD0step3Loose',
183  keepAllTracks = True,
184  copyExtras = False,
185  copyTrajectories = True,
186  applyAdaptedPVCuts = False,
187  chi2n_par = 99.,
188  minNumberLayers = 10,
189  minNumber3DLayers = 3,
190 )
191 largeD0step3Trk = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
192  src = 'largeD0step3Tight',
193  keepAllTracks = True,
194  copyExtras = False,
195  copyTrajectories = True,
196  applyAdaptedPVCuts = False,
197  chi2n_par = 99.,
198  minNumberLayers = 10,
199  minNumber3DLayers = 3,
200 )
201 largeD0step3 = cms.Sequence(trkfilter3*
202  largeD0step3Clusters*
203  largeD0step3PixelRecHits*largeD0step3StripRecHits*
204  largeD0step3LayerPairs*
205  largeD0step3Seeds*
206  largeD0step3TrackCandidates*
207  largeD0step3WithMaterialTracks*
208  largeD0step3Loose*
209  largeD0step3Tight*
210  largeD0step3Trk)
211 
212 
213 
214 
215 
216 
217 
218 
219