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  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
69  )
70 
71 # SEEDING LAYERS
72 mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer",
73  layerList = cms.vstring('BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'),
74  BPix = cms.PSet(
75  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
76  HitProducer = cms.string('siPixelRecHits'),
77  skipClusters = cms.InputTag('mixedTripletStepClusters')
78  ),
79  TIB = cms.PSet(
80  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
81  TTRHBuilder = cms.string('WithTrackAngle'),
82  skipClusters = cms.InputTag('mixedTripletStepClusters')
83  )
84 )
85 
86 # SEEDS
88 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
89 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
91 mixedTripletStepSeedsB = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
92 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'mixedTripletStepSeedLayersB'
93 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
94 mixedTripletStepSeedsB.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
95 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 0.6
96 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 10.0
97 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 1.5
98 
99 mixedTripletStepSeedsB.SeedComparitorPSet = cms.PSet(
100  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
101  FilterAtHelixStage = cms.bool(False),
102  FilterPixelHits = cms.bool(True),
103  FilterStripHits = cms.bool(True),
104  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
105  )
106 
108 mixedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
109 mixedTripletStepSeeds.seedCollections = cms.VInputTag(
110  cms.InputTag('mixedTripletStepSeedsA'),
111  cms.InputTag('mixedTripletStepSeedsB'),
112  )
113 
114 # QUALITY CUTS DURING TRACK BUILDING
116 mixedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
117  maxLostHits = 0,
118  minimumNumberOfHits = 3,
119  minPt = 0.1
120  )
121 
122 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
124 mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
125  ComponentName = 'mixedTripletStepPropagator',
126  ptMin = 0.1
127  )
129 mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
130  ComponentName = 'mixedTripletStepPropagatorOpposite',
131  ptMin = 0.1
132  )
133 
135 mixedTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
136  ComponentName = cms.string('mixedTripletStepChi2Est'),
137  nSigma = cms.double(3.0),
138  MaxChi2 = cms.double(16.0)
139 )
140 
141 # TRACK BUILDING
143 mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
144  MeasurementTrackerName = '',
145  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryFilter')),
146  propagatorAlong = cms.string('mixedTripletStepPropagator'),
147  propagatorOpposite = cms.string('mixedTripletStepPropagatorOpposite'),
148  maxCand = 2,
149  estimator = cms.string('mixedTripletStepChi2Est'),
150  maxDPhiForLooperReconstruction = cms.double(2.0),
151  maxPtForLooperReconstruction = cms.double(0.7)
152  )
153 
154 # MAKING OF TRACK CANDIDATES
156 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
157  src = cms.InputTag('mixedTripletStepSeeds'),
158  clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
159  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
160  numHitsForSeedCleaner = cms.int32(50),
161  #onlyPixelHitsForSeedCleaner = cms.bool(True),
162 
163  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryBuilder')),
164  doSeedingRegionRebuilding = True,
165  useHitsSplitting = True
166 )
167 
168 
169 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
170 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
171  ComponentName = cms.string('mixedTripletStepTrajectoryCleanerBySharedHits'),
172  fractionShared = cms.double(0.11),
173  allowSharedFirstHit = cms.bool(True)
174  )
175 mixedTripletStepTrackCandidates.TrajectoryCleaner = 'mixedTripletStepTrajectoryCleanerBySharedHits'
176 
177 
178 # TRACK FITTING
180 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
181  AlgorithmName = cms.string('iter4'),
182  src = 'mixedTripletStepTrackCandidates',
183  Fitter = cms.string('FlexibleKFFittingSmoother')
184 )
185 
186 # TRACK SELECTION AND QUALITY FLAG SETTING.
187 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
188 mixedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
189  src='mixedTripletStepTracks',
190  useAnyMVA = cms.bool(True),
191  GBRForestLabel = cms.string('MVASelectorIter4'),
192  trackSelectors= cms.VPSet(
193  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
194  name = 'mixedTripletStepVtxLoose',
195  chi2n_par = 1.0,
196  res_par = ( 0.003, 0.001 ),
197  minNumberLayers = 3,
198  maxNumberLostLayers = 1,
199  minNumber3DLayers = 2,
200  d0_par1 = ( 1.2, 3.0 ),
201  dz_par1 = ( 1.2, 3.0 ),
202  d0_par2 = ( 1.3, 3.0 ),
203  dz_par2 = ( 1.3, 3.0 )
204  ),
205  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
206  name = 'mixedTripletStepTrkLoose',
207  chi2n_par = 0.6,
208  res_par = ( 0.003, 0.001 ),
209  minNumberLayers = 4,
210  maxNumberLostLayers = 1,
211  minNumber3DLayers = 3,
212  d0_par1 = ( 1.1, 4.0 ),
213  dz_par1 = ( 1.1, 4.0 ),
214  d0_par2 = ( 1.1, 4.0 ),
215  dz_par2 = ( 1.1, 4.0 )
216  ),
217  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
218  name = 'mixedTripletStepVtxTight',
219  preFilterName = 'mixedTripletStepVtxLoose',
220  chi2n_par = 0.6,
221  res_par = ( 0.003, 0.001 ),
222  minNumberLayers = 3,
223  maxNumberLostLayers = 1,
224  minNumber3DLayers = 3,
225  d0_par1 = ( 1.1, 3.0 ),
226  dz_par1 = ( 1.1, 3.0 ),
227  d0_par2 = ( 1.2, 3.0 ),
228  dz_par2 = ( 1.2, 3.0 )
229  ),
230  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
231  name = 'mixedTripletStepTrkTight',
232  preFilterName = 'mixedTripletStepTrkLoose',
233  chi2n_par = 0.4,
234  res_par = ( 0.003, 0.001 ),
235  minNumberLayers = 5,
236  maxNumberLostLayers = 1,
237  minNumber3DLayers = 4,
238  d0_par1 = ( 1.0, 4.0 ),
239  dz_par1 = ( 1.0, 4.0 ),
240  d0_par2 = ( 1.0, 4.0 ),
241  dz_par2 = ( 1.0, 4.0 )
242  ),
243  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
244  name = 'mixedTripletStepVtx',
245  preFilterName = 'mixedTripletStepVtxTight',
246  chi2n_par = 0.4,
247  res_par = ( 0.003, 0.001 ),
248  minNumberLayers = 3,
249  maxNumberLostLayers = 1,
250  minNumber3DLayers = 3,
251  max_minMissHitOutOrIn = 1,
252  max_lostHitFraction = 1.0,
253  d0_par1 = ( 1.0, 3.0 ),
254  dz_par1 = ( 1.0, 3.0 ),
255  d0_par2 = ( 1.1, 3.0 ),
256  dz_par2 = ( 1.1, 3.0 )
257  ),
258  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
259  name = 'mixedTripletStepTrk',
260  preFilterName = 'mixedTripletStepTrkTight',
261  chi2n_par = 0.25,
262  res_par = ( 0.003, 0.001 ),
263  minNumberLayers = 5,
264  maxNumberLostLayers = 0,
265  minNumber3DLayers = 4,
266  max_minMissHitOutOrIn = 1,
267  max_lostHitFraction = 1.0,
268  d0_par1 = ( 0.8, 4.0 ),
269  dz_par1 = ( 0.8, 4.0 ),
270  d0_par2 = ( 0.8, 4.0 ),
271  dz_par2 = ( 0.8, 4.0 )
272  )
273  ) #end of vpset
274  ) #end of clone
275 
276 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
277 mixedTripletStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
278  TrackProducers = cms.VInputTag(cms.InputTag('mixedTripletStepTracks'),
279  cms.InputTag('mixedTripletStepTracks')),
280  hasSelector=cms.vint32(1,1),
281  shareFrac=cms.double(0.11),
282  indivShareFrac=cms.vdouble(0.11,0.11),
283  selectedTrackQuals = cms.VInputTag(cms.InputTag("mixedTripletStepSelector","mixedTripletStepVtx"),
284  cms.InputTag("mixedTripletStepSelector","mixedTripletStepTrk")),
285  setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
286  writeOnlyTrkQuals=cms.bool(True)
287 )
288 
289 
290 MixedTripletStep = cms.Sequence(mixedTripletStepClusters*
291  mixedTripletStepSeedLayersA*
292  mixedTripletStepSeedsA*
293  mixedTripletStepSeedLayersB*
294  mixedTripletStepSeedsB*
295  mixedTripletStepSeeds*
296  mixedTripletStepTrackCandidates*
297  mixedTripletStepTracks*
298  mixedTripletStepSelector*
299  mixedTripletStep)
300