CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RunI_MixedTripletStep_cff.py
Go to the documentation of this file.
2 
3 ###############################################################
4 # Large impact parameter Tracking using mixed-triplet seeding #
5 ###############################################################
6 
7 mixedTripletStepClusters = cms.EDProducer("TrackClusterRemover",
8  clusterLessSolution = cms.bool(True),
9  oldClusterRemovalInfo = cms.InputTag("detachedTripletStepClusters"),
10  trajectories = cms.InputTag("detachedTripletStepTracks"),
11  overrideTrkQuals = cms.InputTag('detachedTripletStep'),
12  TrackQuality = cms.string('highPurity'),
13  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
14  pixelClusters = cms.InputTag("siPixelClusters"),
15  stripClusters = cms.InputTag("siStripClusters"),
16  Common = cms.PSet(
17  maxChi2 = cms.double(9.0)
18  )
19 )
20 
21 # SEEDING LAYERS
22 mixedTripletStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer",
23  layerList = cms.vstring('BPix1+BPix2+BPix3',
24  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
25  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
26  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
27  'FPix1_pos+FPix2_pos+TEC1_pos', 'FPix1_neg+FPix2_neg+TEC1_neg',
28  'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'),
29  BPix = cms.PSet(
30  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
31  HitProducer = cms.string('siPixelRecHits'),
32  skipClusters = cms.InputTag('mixedTripletStepClusters')
33  ),
34  FPix = cms.PSet(
35  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
36  HitProducer = cms.string('siPixelRecHits'),
37  skipClusters = cms.InputTag('mixedTripletStepClusters')
38  ),
39  TEC = cms.PSet(
40  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
41  useRingSlector = cms.bool(True),
42  TTRHBuilder = cms.string('WithTrackAngle'),
43  minRing = cms.int32(1),
44  maxRing = cms.int32(1),
45  skipClusters = cms.InputTag('mixedTripletStepClusters')
46  )
47 )
48 
49 # SEEDS
51 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
52 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
54 mixedTripletStepSeedsA = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
55 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.SeedingLayers = 'mixedTripletStepSeedLayersA'
56 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
57 mixedTripletStepSeedsA.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
58 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.ptMin = 0.4
59 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
60 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.originRadius = 1.5
61 
62 mixedTripletStepSeedsA.SeedComparitorPSet = cms.PSet(
63  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
64  FilterAtHelixStage = cms.bool(False),
65  FilterPixelHits = cms.bool(True),
66  FilterStripHits = cms.bool(True),
67  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
68  )
69 
70 # SEEDING LAYERS
71 mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer",
72  layerList = cms.vstring('BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'),
73  BPix = cms.PSet(
74  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
75  HitProducer = cms.string('siPixelRecHits'),
76  skipClusters = cms.InputTag('mixedTripletStepClusters')
77  ),
78  TIB = cms.PSet(
79  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
80  TTRHBuilder = cms.string('WithTrackAngle'),
81  skipClusters = cms.InputTag('mixedTripletStepClusters')
82  )
83 )
84 
85 # SEEDS
87 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
88 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
90 mixedTripletStepSeedsB = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
91 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'mixedTripletStepSeedLayersB'
92 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
93 mixedTripletStepSeedsB.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
94 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 0.6
95 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 10.0
96 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 1.5
97 
98 mixedTripletStepSeedsB.SeedComparitorPSet = cms.PSet(
99  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
100  FilterAtHelixStage = cms.bool(False),
101  FilterPixelHits = cms.bool(True),
102  FilterStripHits = cms.bool(True),
103  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
104  )
105 
107 mixedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
108 mixedTripletStepSeeds.seedCollections = cms.VInputTag(
109  cms.InputTag('mixedTripletStepSeedsA'),
110  cms.InputTag('mixedTripletStepSeedsB'),
111  )
112 
113 # QUALITY CUTS DURING TRACK BUILDING
114 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
115 mixedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
116  ComponentName = 'mixedTripletStepTrajectoryFilter',
117  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
118  maxLostHits = 0,
119  minimumNumberOfHits = 3,
120  minPt = 0.1
121  )
122  )
123 
124 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
126 mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
127  ComponentName = 'mixedTripletStepPropagator',
128  ptMin = 0.1
129  )
131 mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
132  ComponentName = 'mixedTripletStepPropagatorOpposite',
133  ptMin = 0.1
134  )
135 
137 mixedTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
138  ComponentName = cms.string('mixedTripletStepChi2Est'),
139  nSigma = cms.double(3.0),
140  MaxChi2 = cms.double(16.0)
141 )
142 
143 # TRACK BUILDING
145 mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
146  ComponentName = 'mixedTripletStepTrajectoryBuilder',
147  MeasurementTrackerName = '',
148  trajectoryFilterName = 'mixedTripletStepTrajectoryFilter',
149  propagatorAlong = cms.string('mixedTripletStepPropagator'),
150  propagatorOpposite = cms.string('mixedTripletStepPropagatorOpposite'),
151  maxCand = 2,
152  estimator = cms.string('mixedTripletStepChi2Est'),
153  maxDPhiForLooperReconstruction = cms.double(2.0),
154  maxPtForLooperReconstruction = cms.double(0.7)
155  )
156 
157 # MAKING OF TRACK CANDIDATES
159 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
160  src = cms.InputTag('mixedTripletStepSeeds'),
161  clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
162  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
163  numHitsForSeedCleaner = cms.int32(50),
164  #onlyPixelHitsForSeedCleaner = cms.bool(True),
165 
166  TrajectoryBuilder = 'mixedTripletStepTrajectoryBuilder',
167  doSeedingRegionRebuilding = True,
168  useHitsSplitting = True
169 )
170 
171 
172 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
173 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
174  ComponentName = cms.string('mixedTripletStepTrajectoryCleanerBySharedHits'),
175  fractionShared = cms.double(0.11),
176  allowSharedFirstHit = cms.bool(True)
177  )
178 mixedTripletStepTrackCandidates.TrajectoryCleaner = 'mixedTripletStepTrajectoryCleanerBySharedHits'
179 
180 
181 # TRACK FITTING
183 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
184  AlgorithmName = cms.string('iter4'),
185  src = 'mixedTripletStepTrackCandidates',
186  Fitter = cms.string('FlexibleKFFittingSmoother')
187 )
188 
189 # TRACK SELECTION AND QUALITY FLAG SETTING.
190 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
191 mixedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
192  src='mixedTripletStepTracks',
193  useAnyMVA = cms.bool(True),
194  GBRForestLabel = cms.string('MVASelectorIter4'),
195  trackSelectors= cms.VPSet(
196  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
197  name = 'mixedTripletStepVtxLoose',
198  chi2n_par = 1.0,
199  res_par = ( 0.003, 0.001 ),
200  minNumberLayers = 3,
201  maxNumberLostLayers = 1,
202  minNumber3DLayers = 2,
203  d0_par1 = ( 1.2, 3.0 ),
204  dz_par1 = ( 1.2, 3.0 ),
205  d0_par2 = ( 1.3, 3.0 ),
206  dz_par2 = ( 1.3, 3.0 )
207  ),
208  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
209  name = 'mixedTripletStepTrkLoose',
210  chi2n_par = 0.6,
211  res_par = ( 0.003, 0.001 ),
212  minNumberLayers = 4,
213  maxNumberLostLayers = 1,
214  minNumber3DLayers = 3,
215  d0_par1 = ( 1.1, 4.0 ),
216  dz_par1 = ( 1.1, 4.0 ),
217  d0_par2 = ( 1.1, 4.0 ),
218  dz_par2 = ( 1.1, 4.0 )
219  ),
220  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
221  name = 'mixedTripletStepVtxTight',
222  preFilterName = 'mixedTripletStepVtxLoose',
223  chi2n_par = 0.6,
224  res_par = ( 0.003, 0.001 ),
225  minNumberLayers = 3,
226  maxNumberLostLayers = 1,
227  minNumber3DLayers = 3,
228  d0_par1 = ( 1.1, 3.0 ),
229  dz_par1 = ( 1.1, 3.0 ),
230  d0_par2 = ( 1.2, 3.0 ),
231  dz_par2 = ( 1.2, 3.0 )
232  ),
233  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
234  name = 'mixedTripletStepTrkTight',
235  preFilterName = 'mixedTripletStepTrkLoose',
236  chi2n_par = 0.4,
237  res_par = ( 0.003, 0.001 ),
238  minNumberLayers = 5,
239  maxNumberLostLayers = 1,
240  minNumber3DLayers = 4,
241  d0_par1 = ( 1.0, 4.0 ),
242  dz_par1 = ( 1.0, 4.0 ),
243  d0_par2 = ( 1.0, 4.0 ),
244  dz_par2 = ( 1.0, 4.0 )
245  ),
246  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
247  name = 'mixedTripletStepVtx',
248  preFilterName = 'mixedTripletStepVtxTight',
249  chi2n_par = 0.4,
250  res_par = ( 0.003, 0.001 ),
251  minNumberLayers = 3,
252  maxNumberLostLayers = 1,
253  minNumber3DLayers = 3,
254  max_minMissHitOutOrIn = 1,
255  max_lostHitFraction = 1.0,
256  d0_par1 = ( 1.0, 3.0 ),
257  dz_par1 = ( 1.0, 3.0 ),
258  d0_par2 = ( 1.1, 3.0 ),
259  dz_par2 = ( 1.1, 3.0 )
260  ),
261  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
262  name = 'mixedTripletStepTrk',
263  preFilterName = 'mixedTripletStepTrkTight',
264  chi2n_par = 0.25,
265  res_par = ( 0.003, 0.001 ),
266  minNumberLayers = 5,
267  maxNumberLostLayers = 0,
268  minNumber3DLayers = 4,
269  max_minMissHitOutOrIn = 1,
270  max_lostHitFraction = 1.0,
271  d0_par1 = ( 0.8, 4.0 ),
272  dz_par1 = ( 0.8, 4.0 ),
273  d0_par2 = ( 0.8, 4.0 ),
274  dz_par2 = ( 0.8, 4.0 )
275  )
276  ) #end of vpset
277  ) #end of clone
278 
279 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
280 mixedTripletStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
281  TrackProducers = cms.VInputTag(cms.InputTag('mixedTripletStepTracks'),
282  cms.InputTag('mixedTripletStepTracks')),
283  hasSelector=cms.vint32(1,1),
284  shareFrac=cms.double(0.11),
285  indivShareFrac=cms.vdouble(0.11,0.11),
286  selectedTrackQuals = cms.VInputTag(cms.InputTag("mixedTripletStepSelector","mixedTripletStepVtx"),
287  cms.InputTag("mixedTripletStepSelector","mixedTripletStepTrk")),
288  setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
289  writeOnlyTrkQuals=cms.bool(True)
290 )
291 
292 
293 MixedTripletStep = cms.Sequence(mixedTripletStepClusters*
294  mixedTripletStepSeedLayersA*
295  mixedTripletStepSeedsA*
296  mixedTripletStepSeedLayersB*
297  mixedTripletStepSeedsB*
298  mixedTripletStepSeeds*
299  mixedTripletStepTrackCandidates*
300  mixedTripletStepTracks*
301  mixedTripletStepSelector*
302  mixedTripletStep)
303