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 
7 convClusters = trackClusterRemover.clone(
8  maxChi2 = cms.double(30.0),
9  trajectories = cms.InputTag("tobTecStepTracks"),
10  pixelClusters = cms.InputTag("siPixelClusters"),
11  stripClusters = cms.InputTag("siStripClusters"),
12  oldClusterRemovalInfo = cms.InputTag("tobTecStepClusters"),
13  overrideTrkQuals = cms.InputTag('tobTecStepSelector','tobTecStep'),
14  TrackQuality = cms.string('highPurity'),
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('WithTrackAngle'),
105  HitProducer = cms.string('siPixelRecHits'),
106  skipClusters = cms.InputTag('convClusters'),
107  ),
108  FPix = cms.PSet(
109  TTRHBuilder = cms.string('WithTrackAngle'),
110  HitProducer = cms.string('siPixelRecHits'),
111  skipClusters = cms.InputTag('convClusters'),
112  ),
113  TIB1 = cms.PSet(
114  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
115  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
116  skipClusters = cms.InputTag('convClusters'),
117  ),
118  TIB2 = cms.PSet(
119  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
120  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
121  skipClusters = cms.InputTag('convClusters'),
122  ),
123  TIB3 = cms.PSet(
124  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
125  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
126  skipClusters = cms.InputTag('convClusters'),
127  ),
128  TIB4 = cms.PSet(
129  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
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'), minGoodCharge = cms.double(2069.),
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'), minGoodCharge = cms.double(2069.),
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'), minGoodCharge = cms.double(2069.),
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'), minGoodCharge = cms.double(2069.),
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'), minGoodCharge = cms.double(2069.),
174  skipClusters = cms.InputTag('convClusters'),
175  ),
176  TOB2 = cms.PSet(
177  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
178  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
179  skipClusters = cms.InputTag('convClusters'),
180  ),
181  TOB3 = cms.PSet(
182  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
183  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
184  skipClusters = cms.InputTag('convClusters'),
185  ),
186  TOB4 = cms.PSet(
187  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
188  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
189  skipClusters = cms.InputTag('convClusters'),
190  ),
191  TOB5 = cms.PSet(
192  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
193  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
194  skipClusters = cms.InputTag('convClusters'),
195  ),
196  TOB6 = cms.PSet(
197  TTRHBuilder = cms.string('WithTrackAngle'), minGoodCharge = cms.double(2069.),
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('firstStepPrimaryVertices')
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
214 convCkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
215  maxLostHits = 1,
216  minimumNumberOfHits = 3,
217  minPt = 0.1
218  )
219 
220 
221 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimatorESProducer_cfi
222 convStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimatorESProducer_cfi.Chi2ChargeMeasurementEstimator.clone(
223  ComponentName = cms.string('convStepChi2Est'),
224  nSigma = cms.double(3.0),
225  MaxChi2 = cms.double(30.0),
226  minGoodStripCharge = cms.double(-2069.)
227 )
228 
229 
230 # TRACK BUILDING
232 convCkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
233  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('convCkfTrajectoryFilter')),
234  minNrOfHitsForRebuild = 3,
235  maxCand = 1,
236  estimator = cms.string('convStepChi2Est')
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  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('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('conversionStep'),
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 ), # not sure these values are sane....
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  + convLayerPairs
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 ###