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