CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SecStep_cff.py
Go to the documentation of this file.
2 
3 ###############################################
4 # Low Pt tracking using pixel-triplet seeding #
5 ###############################################
6 
7 # REMOVE HITS ASSIGNED TO GOOD TRACKS FROM PREVIOUS ITERATIONS
8 
9 firstfilter = cms.EDProducer("QualityFilter",
10  TrackQuality = cms.string('highPurity'),
11  recTracks = cms.InputTag("preMergingFirstStepTracksWithQuality")
12 )
13 
14 secClusters = cms.EDProducer("TrackClusterRemover",
15  oldClusterRemovalInfo = cms.InputTag("newClusters"),
16  trajectories = cms.InputTag("firstfilter"),
17  pixelClusters = cms.InputTag("newClusters"),
18  stripClusters = cms.InputTag("newClusters"),
19  Common = cms.PSet(
20  maxChi2 = cms.double(30.0)
21  )
22 
23 # For debug purposes, you can run this iteration not eliminating any hits from previous ones by
24 # instead using
25 # trajectories = cms.InputTag("zeroStepFilter"),
26 # pixelClusters = cms.InputTag("siPixelClusters"),
27 # stripClusters = cms.InputTag("siStripClusters"),
28 # Common = cms.PSet(
29 # maxChi2 = cms.double(0.0)
30 # )
31 
32 )
33 
34 # TRACKER HITS
36 secPixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.siPixelRecHits.clone(
37  src = 'secClusters'
38  )
40 secStripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
41  ClusterProducer = 'secClusters'
42  )
43 
44 # SEEDING LAYERS
46 seclayertriplets = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone(
47  ComponentName = 'SecLayerTriplets'
48  )
49 seclayertriplets.BPix.HitProducer = 'secPixelRecHits'
50 seclayertriplets.FPix.HitProducer = 'secPixelRecHits'
51 
52 
53 # SEEDS
55 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
56 secTriplets = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
57  RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
58  ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'),
59  RegionPSet = RegionPsetFomBeamSpotBlock.RegionPSet.clone(
60  ptMin = 0.075,
61  nSigmaZ = 3.3
62  )
63  )
64  )
65 secTriplets.OrderedHitsFactoryPSet.SeedingLayers = 'SecLayerTriplets'
66 secTriplets.ClusterCheckPSet.PixelClusterCollectionLabel = 'secClusters'
67 secTriplets.ClusterCheckPSet.ClusterCollectionLabel = 'secClusters'
68 
69 
71 secTriplets.SeedComparitorPSet.ComponentName = 'LowPtClusterShapeSeedComparitor'
72 
73 # Use modified pixel-triplet code that works best for large impact parameters
74 #secTriplets.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
75 #from RecoPixelVertexing.PixelTriplets.PixelTripletLargeTipGenerator_cfi import *
76 #secTriplets.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
77 
78 # TRACKER DATA CONTROL
80 secMeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
81  ComponentName = 'secMeasurementTracker',
82  pixelClusterProducer = 'secClusters',
83  stripClusterProducer = 'secClusters'
84  )
85 
86 # QUALITY CUTS DURING TRACK BUILDING
87 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
88 secCkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
89  ComponentName = 'secCkfTrajectoryFilter',
90  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
91  maxLostHits = 1,
92  minimumNumberOfHits = 3,
93  minPt = 0.075
94  )
95  )
96 
97 # TRACK BUILDING
99 secCkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
100  ComponentName = 'secCkfTrajectoryBuilder',
101  MeasurementTrackerName = 'secMeasurementTracker',
102  trajectoryFilterName = 'secCkfTrajectoryFilter'
103  )
104 
105 # MAKING OF TRACK CANDIDATES
107 secTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
108  src = cms.InputTag('secTriplets'),
109  TrajectoryBuilder = 'secCkfTrajectoryBuilder',
110  doSeedingRegionRebuilding = True,
111  useHitsSplitting = True
112  )
113 
114 # TRACK FITTING
116 secWithMaterialTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
117  AlgorithmName = cms.string('iter2'),
118  src = 'secTrackCandidates',
119  clusterRemovalInfo = 'secClusters'
120  )
121 
122 # TRACK SELECTION AND QUALITY FLAG SETTING.
123 import RecoTracker.FinalTrackSelectors.selectLoose_cfi
124 import RecoTracker.FinalTrackSelectors.selectTight_cfi
125 import RecoTracker.FinalTrackSelectors.selectHighPurity_cfi
126 import RecoTracker.FinalTrackSelectors.simpleTrackListMerger_cfi
127 
128 secStepVtxLoose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
129  src = 'secWithMaterialTracks',
130  keepAllTracks = False,
131  copyExtras = False,
132  copyTrajectories = True,
133  chi2n_par = 1.6,
134  res_par = ( 0.003, 0.001 ),
135  minNumberLayers = 3,
136  d0_par1 = ( 1.2, 3.0 ),
137  dz_par1 = ( 1.2, 3.0 ),
138  d0_par2 = ( 1.3, 3.0 ),
139  dz_par2 = ( 1.3, 3.0 )
140  )
141 
142 secStepTrkLoose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
143  src = 'secWithMaterialTracks',
144  keepAllTracks = False,
145  copyExtras = False,
146  copyTrajectories = True,
147  chi2n_par = 0.7,
148  res_par = ( 0.003, 0.001 ),
149  minNumberLayers = 3,
150  d0_par1 = ( 1.6, 4.0 ),
151  dz_par1 = ( 1.6, 4.0 ),
152  d0_par2 = ( 1.6, 4.0 ),
153  dz_par2 = ( 1.6, 4.0 )
154  )
155 
156 
157 secStepVtxTight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
158  src = 'secStepVtxLoose',
159  keepAllTracks = True,
160  copyExtras = False,
161  copyTrajectories = True,
162  chi2n_par = 0.7,
163  res_par = ( 0.003, 0.001 ),
164  minNumberLayers = 3,
165  maxNumberLostLayers = 1,
166  minNumber3DLayers = 3,
167  d0_par1 = ( 0.95, 3.0 ),
168  dz_par1 = ( 0.9, 3.0 ),
169  d0_par2 = ( 1.0, 3.0 ),
170  dz_par2 = ( 1.0, 3.0 )
171  )
172 
173 secStepTrkTight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
174  src = 'secStepTrkLoose',
175  keepAllTracks = True,
176  copyExtras = False,
177  copyTrajectories = True,
178  chi2n_par = 0.5,
179  res_par = ( 0.003, 0.001 ),
180  minNumberLayers = 5,
181  minNumber3DLayers = 3,
182  maxNumberLostLayers = 1,
183  d0_par1 = ( 1.1, 4.0 ),
184  dz_par1 = ( 1.1, 4.0 ),
185  d0_par2 = ( 1.1, 4.0 ),
186  dz_par2 = ( 1.1, 4.0 )
187  )
188 
189 
190 secStepVtx = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
191  src = 'secStepVtxTight',
192  keepAllTracks = True,
193  copyExtras = False,
194  copyTrajectories = True,
195  chi2n_par = 0.7,
196  res_par = ( 0.003, 0.001 ),
197  minNumberLayers = 3,
198  minNumber3DLayers = 3,
199  maxNumberLostLayers = 1,
200  d0_par1 = ( 0.85, 3.0 ),
201  dz_par1 = ( 0.8, 3.0 ),
202  d0_par2 = ( 0.9, 3.0 ),
203  dz_par2 = ( 0.9, 3.0 )
204 )
205 
206 secStepTrk = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
207  src = 'secStepTrkTight',
208  keepAllTracks = True,
209  copyExtras = False,
210  copyTrajectories = True,
211  chi2n_par = 0.4,
212  res_par = ( 0.003, 0.001 ),
213  minNumberLayers = 5,
214  minNumber3DLayers = 3,
215  maxNumberLostLayers = 1,
216  d0_par1 = ( 1.0, 4.0 ),
217  dz_par1 = ( 1.0, 4.0 ),
218  d0_par2 = ( 1.0, 4.0 ),
219  dz_par2 = ( 1.0, 4.0 )
220  )
221 
222 secStep = RecoTracker.FinalTrackSelectors.simpleTrackListMerger_cfi.simpleTrackListMerger.clone(
223  TrackProducer1 = 'secStepVtx',
224  TrackProducer2 = 'secStepTrk',
225  promoteTrackQuality = True
226  )
227 
228 secondStep = cms.Sequence(firstfilter*
229  secClusters*
230  secPixelRecHits*secStripRecHits*
231  secTriplets*
232  secTrackCandidates*
233  secWithMaterialTracks*
234  secStepVtxLoose*secStepTrkLoose*
235  secStepVtxTight*secStepTrkTight*
236  secStepVtx*secStepTrk*secStep)