CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ConversionStep_cff.py
Go to the documentation of this file.
2 
5 
6 convClusters = cms.EDProducer("TrackClusterRemover",
7  clusterLessSolution = cms.bool(True),
8  oldClusterRemovalInfo = cms.InputTag("tobTecStepClusters"),
9  trajectories = cms.InputTag("tobTecStepTracks"),
10  overrideTrkQuals = cms.InputTag('tobTecStepSelector','tobTecStep'),
11  TrackQuality = cms.string('highPurity'),
12  pixelClusters = cms.InputTag("siPixelClusters"),
13  stripClusters = cms.InputTag("siStripClusters"),
14  Common = cms.PSet(maxChi2 = cms.double(30.0))
15  )
16 
17 convLayerPairs = cms.EDProducer("SeedingLayersEDProducer",
18  layerList = cms.vstring('BPix1+BPix2',
19 
20  'BPix2+BPix3',
21  'BPix2+FPix1_pos',
22  'BPix2+FPix1_neg',
23  'BPix2+FPix2_pos',
24  'BPix2+FPix2_neg',
25 
26  'FPix1_pos+FPix2_pos',
27  'FPix1_neg+FPix2_neg',
28 
29  'BPix3+TIB1',
30  'BPix3+TIB2',
31 
32  'TIB1+TID1_pos',
33  'TIB1+TID1_neg',
34  'TIB1+TID2_pos',
35  'TIB1+TID2_neg',
36  'TIB1+TIB2',
37  'TIB1+TIB3',
38 
39  'TIB2+TID1_pos',
40  'TIB2+TID1_neg',
41  'TIB2+TID2_pos',
42  'TIB2+TID2_neg',
43  'TIB2+TIB3',
44  'TIB2+TIB4',
45 
46  'TIB3+TIB4',
47  'TIB3+TOB1',
48  'TIB3+TID1_pos',
49  'TIB3+TID1_neg',
50 
51  'TIB4+TOB1',
52  'TIB4+TOB2',
53 
54  'TOB1+TOB2',
55  'TOB1+TOB3',
56  'TOB1+TEC1_pos',
57  'TOB1+TEC1_neg',
58 
59  'TOB2+TOB3',
60  'TOB2+TOB4',
61  'TOB2+TEC1_pos',
62  'TOB2+TEC1_neg',
63 
64  #NB: re-introduce these combinations when large displaced
65  # tracks, reconstructed only in TOB will be available
66  # For instance think at the OutIn Ecal Seeded tracks
67  #'TOB3+TOB4',
68  #'TOB3+TOB5',
69  #'TOB3+TEC1_pos',
70  #'TOB3+TEC1_neg',
71  #
72  #'TOB4+TOB5',
73  #'TOB4+TOB6',
74  #
75  #'TOB5+TOB6',
76 
77  'TID1_pos+TID2_pos',
78  'TID2_pos+TID3_pos',
79  'TID3_pos+TEC1_pos',
80 
81  'TID1_neg+TID2_neg',
82  'TID2_neg+TID3_neg',
83  'TID3_neg+TEC1_neg',
84 
85  'TEC1_pos+TEC2_pos',
86  'TEC2_pos+TEC3_pos',
87  'TEC3_pos+TEC4_pos',
88  'TEC4_pos+TEC5_pos',
89  'TEC5_pos+TEC6_pos',
90  'TEC6_pos+TEC7_pos',
91  'TEC7_pos+TEC8_pos',
92 
93  'TEC1_neg+TEC2_neg',
94  'TEC2_neg+TEC3_neg',
95  'TEC3_neg+TEC4_neg',
96  'TEC4_neg+TEC5_neg',
97  'TEC5_neg+TEC6_neg',
98  'TEC6_neg+TEC7_neg',
99  'TEC7_neg+TEC8_neg'
100  #other combinations could be added
101  ),
102 
103  BPix = cms.PSet(
104  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
105  HitProducer = cms.string('siPixelRecHits'),
106  skipClusters = cms.InputTag('convClusters'),
107  ),
108  FPix = cms.PSet(
109  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
110  HitProducer = cms.string('siPixelRecHits'),
111  skipClusters = cms.InputTag('convClusters'),
112  ),
113  TIB1 = cms.PSet(
114  TTRHBuilder = cms.string('WithTrackAngle'),
115  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
116  skipClusters = cms.InputTag('convClusters'),
117  ),
118  TIB2 = cms.PSet(
119  TTRHBuilder = cms.string('WithTrackAngle'),
120  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
121  skipClusters = cms.InputTag('convClusters'),
122  ),
123  TIB3 = cms.PSet(
124  TTRHBuilder = cms.string('WithTrackAngle'),
125  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
126  skipClusters = cms.InputTag('convClusters'),
127  ),
128  TIB4 = cms.PSet(
129  TTRHBuilder = cms.string('WithTrackAngle'),
130  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
131  skipClusters = cms.InputTag('convClusters'),
132  ),
133  TID1 = cms.PSet(
134  useSimpleRphiHitsCleaner = cms.bool(False),
135  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
136  useRingSlector = cms.bool(True),
137  TTRHBuilder = cms.string('WithTrackAngle'),
138  maxRing = cms.int32(2),
139  minRing = cms.int32(1),
140  skipClusters = cms.InputTag('convClusters'),
141  ),
142  TID2 = cms.PSet(
143  useSimpleRphiHitsCleaner = cms.bool(False),
144  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
145  useRingSlector = cms.bool(True),
146  TTRHBuilder = cms.string('WithTrackAngle'),
147  maxRing = cms.int32(2),
148  minRing = cms.int32(1),
149  skipClusters = cms.InputTag('convClusters'),
150  ),
151  TID3 = cms.PSet(
152  useSimpleRphiHitsCleaner = cms.bool(False),
153  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
154  useRingSlector = cms.bool(True),
155  TTRHBuilder = cms.string('WithTrackAngle'),
156  maxRing = cms.int32(2),
157  minRing = cms.int32(1),
158  skipClusters = cms.InputTag('convClusters'),
159  ),
160  TEC = cms.PSet(
161  useSimpleRphiHitsCleaner = cms.bool(False),
162  minRing = cms.int32(1),
163  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
164  useRingSlector = cms.bool(True),
165  TTRHBuilder = cms.string('WithTrackAngle'),
166  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHitUnmatched"),
167  maxRing = cms.int32(7),
168  stereoRecHits = cms.InputTag("siStripMatchedRecHits","stereoRecHitUnmatched"),
169  skipClusters = cms.InputTag('convClusters'),
170  ),
171  TOB1 = cms.PSet(
172  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
173  TTRHBuilder = cms.string('WithTrackAngle'),
174  skipClusters = cms.InputTag('convClusters'),
175  ),
176  TOB2 = cms.PSet(
177  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
178  TTRHBuilder = cms.string('WithTrackAngle'),
179  skipClusters = cms.InputTag('convClusters'),
180  ),
181  TOB3 = cms.PSet(
182  TTRHBuilder = cms.string('WithTrackAngle'),
183  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
184  skipClusters = cms.InputTag('convClusters'),
185  ),
186  TOB4 = cms.PSet(
187  TTRHBuilder = cms.string('WithTrackAngle'),
188  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
189  skipClusters = cms.InputTag('convClusters'),
190  ),
191  TOB5 = cms.PSet(
192  TTRHBuilder = cms.string('WithTrackAngle'),
193  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
194  skipClusters = cms.InputTag('convClusters'),
195  ),
196  TOB6 = cms.PSet(
197  TTRHBuilder = cms.string('WithTrackAngle'),
198  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
199  skipClusters = cms.InputTag('convClusters'),
200  )
201  )
202 
203 
204 photonConvTrajSeedFromSingleLeg.TrackRefitter = cms.InputTag('generalTracks')
205 photonConvTrajSeedFromSingleLeg.primaryVerticesTag = cms.InputTag('pixelVertices')
206 #photonConvTrajSeedFromQuadruplets.TrackRefitter = cms.InputTag('generalTracks')
207 #photonConvTrajSeedFromQuadruplets.primaryVerticesTag = cms.InputTag('pixelVertices')
208 
209 
210 # TRACKER DATA CONTROL
211 
212 # QUALITY CUTS DURING TRACK BUILDING
213 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
214 convCkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
215  ComponentName = 'convCkfTrajectoryFilter',
216  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
217  maxLostHits = 1,
218  minimumNumberOfHits = 3,
219  minPt = 0.1
220  )
221  )
222 
223 # TRACK BUILDING
225 convCkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
226  ComponentName = 'convCkfTrajectoryBuilder',
227  trajectoryFilterName = 'convCkfTrajectoryFilter',
228  minNrOfHitsForRebuild = 3,
229  maxCand = 2
230  )
231 
232 # MAKING OF TRACK CANDIDATES
234 convTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
235  src = cms.InputTag('photonConvTrajSeedFromSingleLeg:convSeedCandidates'),
236  clustersToSkip = cms.InputTag('convClusters'),
237  TrajectoryBuilder = 'convCkfTrajectoryBuilder'
238 )
239 
241 convStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
242  ComponentName = 'convStepFitterSmoother',
243  EstimateCut = 30,
244  Smoother = cms.string('convStepRKSmoother')
245  )
246 
247 convStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
248  ComponentName = cms.string('convStepRKSmoother'),
249  errorRescaling = 10.0
250  )
251 
252 
253 # TRACK FITTING
255 convStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
256  src = 'convTrackCandidates',
257  AlgorithmName = cms.string('iter8'),
258  Fitter = 'convStepFitterSmoother',
259  )
260 
261 
262 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
263 convStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
264  src='convStepTracks',
265  trackSelectors= cms.VPSet(
266  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
267  name = 'convStepLoose',
268  applyAdaptedPVCuts = False,
269  chi2n_par = 3.0,
270  res_par = ( 0.003, 0.001 ),
271  minNumberLayers = 3,
272  maxNumberLostLayers = 1,
273  minNumber3DLayers = 1,
274  d0_par1 = ( 5., 8.0 ),
275  dz_par1 = ( 5., 8.0 ),
276  d0_par2 = ( 5., 8.0 ),
277  dz_par2 = ( 5., 8.0 )
278  ),
279  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
280  name = 'convStepTight',
281  preFilterName = 'convStepLoose',
282  chi2n_par = 2.5,
283  res_par = ( 0.003, 0.001 ),
284  minNumberLayers = 3,
285  maxNumberLostLayers = 1,
286  minNumber3DLayers = 1,
287  d0_par1 = ( 5., 8.0 ),
288  dz_par1 = ( 5., 8.0 ),
289  d0_par2 = ( 5., 8.0 ),
290  dz_par2 = ( 5., 8.0 )
291  ),
292  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
293  name = 'convStep',
294  preFilterName = 'convStepTight',
295  chi2n_par = 2.0,
296  res_par = ( 0.003, 0.001 ),
297  minNumberLayers = 3,
298  maxNumberLostLayers = 1,
299  minNumber3DLayers = 1,
300  d0_par1 = ( 5., 8.0 ),
301  dz_par1 = ( 5., 8.0 ),
302  d0_par2 = ( 5., 8.0 ),
303  dz_par2 = ( 5., 8.0 )
304  ),
305  ) #end of vpset
306  ) #end of clone
307 
308 ConvStep = cms.Sequence( convClusters
309  + convLayerPairs
310  + photonConvTrajSeedFromSingleLeg
311  + convTrackCandidates
312  + convStepTracks
313  + convStepSelector
314  #+ Conv2Step #full quad-seeding sequence
315  )
316 
317 
318 ### Quad-seeding sequence disabled (#+ Conv2Step)
319 # if enabled, the quad-seeded tracks have to be merged with the single-leg seeded tracks
320 # in RecoTracker.FinalTrackSelectors.MergeTrackCollections_cff change:
321 ###
322 #conversionStepTracks = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
323 # TrackProducers = cms.VInputTag(cms.InputTag('convStepTracks')),
324 # hasSelector=cms.vint32(1),
325 # selectedTrackQuals = cms.VInputTag(cms.InputTag("convStepSelector","convStep")
326 # ),
327 # setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(1), pQual=cms.bool(True) )
328 # ),
329 # copyExtras = True,
330 # makeReKeyedSeeds = cms.untracked.bool(False)
331 # )
332 ###
333 # TO this:
334 ###
335 #conversionStepTracks = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
336 # TrackProducers = cms.VInputTag(
337 # cms.InputTag('convStepTracks'),
338 # cms.InputTag('conv2StepTracks')
339 # ),
340 # hasSelector=cms.vint32(1,1),
341 # selectedTrackQuals = cms.VInputTag(
342 # cms.InputTag("convStepSelector","convStep"),
343 # cms.InputTag("conv2StepSelector","conv2Step")
344 # ),
345 # setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )
346 # ),
347 # copyExtras = True,
348 # makeReKeyedSeeds = cms.untracked.bool(False)
349 # )
350 ###