CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Phase1PU140_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("pixelPairStepClusters"),
9  trajectories = cms.InputTag("pixelPairStepTracks"),
10  overrideTrkQuals = cms.InputTag('pixelPairStepSelector','pixelPairStep'),
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  clustersToSkip = cms.InputTag('convClusters'),
237  maxCand = 2
238  )
239 
240 # MAKING OF TRACK CANDIDATES
242 convTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
243  src = cms.InputTag('photonConvTrajSeedFromSingleLeg:convSeedCandidates'),
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  TTRHBuilder=cms.string('WithTrackAngle')
267  )
268 
269 
270 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
271 convStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
272  src='convStepTracks',
273  trackSelectors= cms.VPSet(
274  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
275  name = 'convStepLoose',
276  applyAdaptedPVCuts = False,
277  chi2n_par = 3.0,
278  res_par = ( 0.003, 0.001 ),
279  minNumberLayers = 3,
280  maxNumberLostLayers = 1,
281  minNumber3DLayers = 1,
282  d0_par1 = ( 5., 8.0 ),
283  dz_par1 = ( 5., 8.0 ),
284  d0_par2 = ( 5., 8.0 ),
285  dz_par2 = ( 5., 8.0 )
286  ),
287  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
288  name = 'convStepTight',
289  preFilterName = 'convStepLoose',
290  chi2n_par = 2.5,
291  res_par = ( 0.003, 0.001 ),
292  minNumberLayers = 3,
293  maxNumberLostLayers = 1,
294  minNumber3DLayers = 1,
295  d0_par1 = ( 5., 8.0 ),
296  dz_par1 = ( 5., 8.0 ),
297  d0_par2 = ( 5., 8.0 ),
298  dz_par2 = ( 5., 8.0 )
299  ),
300  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
301  name = 'convStep',
302  preFilterName = 'convStepTight',
303  chi2n_par = 2.0,
304  res_par = ( 0.003, 0.001 ),
305  minNumberLayers = 3,
306  maxNumberLostLayers = 1,
307  minNumber3DLayers = 1,
308  d0_par1 = ( 5., 8.0 ),
309  dz_par1 = ( 5., 8.0 ),
310  d0_par2 = ( 5., 8.0 ),
311  dz_par2 = ( 5., 8.0 )
312  ),
313  ) #end of vpset
314  ) #end of clone
315 
316 ConvStep = cms.Sequence( convClusters
317  + photonConvTrajSeedFromSingleLeg
318  + convTrackCandidates
319  + convStepTracks
320  + convStepSelector
321  #+ Conv2Step #full quad-seeding sequence
322  )
323 
324 
325 ### Quad-seeding sequence disabled (#+ Conv2Step)
326 # if enabled, the quad-seeded tracks have to be merged with the single-leg seeded tracks
327 # in RecoTracker.FinalTrackSelectors.MergeTrackCollections_cff change:
328 ###
329 #conversionStepTracks = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
330 # TrackProducers = cms.VInputTag(cms.InputTag('convStepTracks')),
331 # hasSelector=cms.vint32(1),
332 # selectedTrackQuals = cms.VInputTag(cms.InputTag("convStepSelector","convStep")
333 # ),
334 # setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(1), pQual=cms.bool(True) )
335 # ),
336 # copyExtras = True,
337 # makeReKeyedSeeds = cms.untracked.bool(False)
338 # )
339 ###
340 # TO this:
341 ###
342 #conversionStepTracks = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
343 # TrackProducers = cms.VInputTag(
344 # cms.InputTag('convStepTracks'),
345 # cms.InputTag('conv2StepTracks')
346 # ),
347 # hasSelector=cms.vint32(1,1),
348 # selectedTrackQuals = cms.VInputTag(
349 # cms.InputTag("convStepSelector","convStep"),
350 # cms.InputTag("conv2StepSelector","conv2Step")
351 # ),
352 # setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )
353 # ),
354 # copyExtras = True,
355 # makeReKeyedSeeds = cms.untracked.bool(False)
356 # )
357 ###