CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Phase1PU70_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("detachedQuadStepClusters"),
10  trajectories = cms.InputTag("detachedQuadStepTracks"),
11  overrideTrkQuals = cms.InputTag('detachedQuadStep'),
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+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
24  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
25  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
26  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
27  'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg',
28  'FPix2_pos+FPix3_pos+TEC1_pos', 'FPix2_neg+FPix3_neg+TEC1_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(2),
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.7
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 mixedTripletStepSeedsA.ClusterCheckPSet.doClusterCheck = cms.bool(False)
70 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0)
71 
72 # SEEDING LAYERS
73 mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer",
74  layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4','BPix1+BPix2+BPix4', 'BPix1+BPix3+BPix4'),
75  BPix = cms.PSet(
76  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
77  HitProducer = cms.string('siPixelRecHits'),
78  skipClusters = cms.InputTag('mixedTripletStepClusters')
79  )
80 )
81 
82 # SEEDS
84 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
85 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
87 mixedTripletStepSeedsB = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
88 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'mixedTripletStepSeedLayersB'
89 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
90 mixedTripletStepSeedsB.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
91 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 0.5
92 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
93 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 1.0
94 
95 mixedTripletStepSeedsB.SeedComparitorPSet = cms.PSet(
96  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
97  FilterAtHelixStage = cms.bool(False),
98  FilterPixelHits = cms.bool(True),
99  FilterStripHits = cms.bool(True),
100  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
101  )
102 mixedTripletStepSeedsB.ClusterCheckPSet.doClusterCheck = cms.bool(False)
103 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0)
104 
106 mixedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
107 mixedTripletStepSeeds.seedCollections = cms.VInputTag(
108  cms.InputTag('mixedTripletStepSeedsA'),
109  cms.InputTag('mixedTripletStepSeedsB'),
110  )
111 
112 # QUALITY CUTS DURING TRACK BUILDING
113 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
114 mixedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
115  ComponentName = 'mixedTripletStepTrajectoryFilter',
116  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
117  maxLostHits = 0,
118  minimumNumberOfHits = 3,
119  minPt = 0.1
120  )
121  )
122 
123 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
125 mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
126  ComponentName = 'mixedTripletStepPropagator',
127  ptMin = 0.1
128  )
130 mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
131  ComponentName = 'mixedTripletStepPropagatorOpposite',
132  ptMin = 0.1
133  )
134 
136 mixedTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
137  ComponentName = cms.string('mixedTripletStepChi2Est'),
138  nSigma = cms.double(3.0),
139  MaxChi2 = cms.double(16.0)
140 )
141 
142 # TRACK BUILDING
144 mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
145  ComponentName = 'mixedTripletStepTrajectoryBuilder',
146  MeasurementTrackerName = '',
147  trajectoryFilterName = 'mixedTripletStepTrajectoryFilter',
148  propagatorAlong = cms.string('mixedTripletStepPropagator'),
149  propagatorOpposite = cms.string('mixedTripletStepPropagatorOpposite'),
150  clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
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  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
162  numHitsForSeedCleaner = cms.int32(50),
163  #onlyPixelHitsForSeedCleaner = cms.bool(True),
164  TrajectoryBuilder = 'mixedTripletStepTrajectoryBuilder',
165  doSeedingRegionRebuilding = True,
166  useHitsSplitting = True
167 )
168 
169 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
170 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
171  ComponentName = cms.string('mixedTripletStepTrajectoryCleanerBySharedHits'),
172  fractionShared = cms.double(0.095),
173  allowSharedFirstHit = cms.bool(True)
174  )
175 mixedTripletStepTrackCandidates.TrajectoryCleaner = 'mixedTripletStepTrajectoryCleanerBySharedHits'
176 
177 # TRACK FITTING
179 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
180  AlgorithmName = cms.string('iter5'),
181  src = 'mixedTripletStepTrackCandidates',
182  Fitter = cms.string('FlexibleKFFittingSmoother'),
183  TTRHBuilder=cms.string('WithTrackAngle')
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  trackSelectors= cms.VPSet(
191  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
192  name = 'mixedTripletStepVtxLoose',
193  chi2n_par = 0.9,
194  res_par = ( 0.003, 0.001 ),
195  minNumberLayers = 3,
196  maxNumberLostLayers = 1,
197  minNumber3DLayers = 2,
198  d0_par1 = ( 1.2, 3.0 ),
199  dz_par1 = ( 1.2, 3.0 ),
200  d0_par2 = ( 1.3, 3.0 ),
201  dz_par2 = ( 1.3, 3.0 )
202  ),
203  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
204  name = 'mixedTripletStepTrkLoose',
205  chi2n_par = 0.5,
206  res_par = ( 0.003, 0.001 ),
207  minNumberLayers = 4,
208  maxNumberLostLayers = 1,
209  minNumber3DLayers = 3,
210  d0_par1 = ( 1.1, 4.0 ),
211  dz_par1 = ( 1.1, 4.0 ),
212  d0_par2 = ( 1.1, 4.0 ),
213  dz_par2 = ( 1.1, 4.0 )
214  ),
215  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
216  name = 'mixedTripletStepVtxTight',
217  preFilterName = 'mixedTripletStepVtxLoose',
218  chi2n_par = 0.6,
219  res_par = ( 0.003, 0.001 ),
220  minNumberLayers = 3,
221  maxNumberLostLayers = 1,
222  minNumber3DLayers = 3,
223  d0_par1 = ( 1.1, 3.0 ),
224  dz_par1 = ( 1.1, 3.0 ),
225  d0_par2 = ( 1.2, 3.0 ),
226  dz_par2 = ( 1.2, 3.0 )
227  ),
228  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
229  name = 'mixedTripletStepTrkTight',
230  preFilterName = 'mixedTripletStepTrkLoose',
231  chi2n_par = 0.35,
232  res_par = ( 0.003, 0.001 ),
233  minNumberLayers = 5,
234  maxNumberLostLayers = 1,
235  minNumber3DLayers = 4,
236  d0_par1 = ( 0.9, 4.0 ),
237  dz_par1 = ( 0.9, 4.0 ),
238  d0_par2 = ( 0.9, 4.0 ),
239  dz_par2 = ( 0.9, 4.0 )
240  ),
241  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
242  name = 'mixedTripletStepVtx',
243  preFilterName = 'mixedTripletStepVtxTight',
244  chi2n_par = 0.4,
245  res_par = ( 0.003, 0.001 ),
246  minNumberLayers = 3,
247  maxNumberLostLayers = 1,
248  minNumber3DLayers = 3,
249  max_minMissHitOutOrIn = 1,
250  d0_par1 = ( 0.9, 3.0 ),
251  dz_par1 = ( 0.9, 3.0 ),
252  d0_par2 = ( 1.0, 3.0 ),
253  dz_par2 = ( 1.0, 3.0 )
254  ),
255  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
256  name = 'mixedTripletStepTrk',
257  preFilterName = 'mixedTripletStepTrkTight',
258  chi2n_par = 0.2,
259  res_par = ( 0.003, 0.001 ),
260  minNumberLayers = 5,
261  maxNumberLostLayers = 0,
262  minNumber3DLayers = 4,
263  max_minMissHitOutOrIn = 1,
264  d0_par1 = ( 0.7, 4.0 ),
265  dz_par1 = ( 0.7, 4.0 ),
266  d0_par2 = ( 0.7, 4.0 ),
267  dz_par2 = ( 0.7, 4.0 )
268  )
269  ) #end of vpset
270  ) #end of clone
271 
272 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
273 mixedTripletStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
274  TrackProducers = cms.VInputTag(cms.InputTag('mixedTripletStepTracks'),
275  cms.InputTag('mixedTripletStepTracks')),
276  hasSelector=cms.vint32(1,1),
277  shareFrac=cms.double(0.095),
278  indivShareFrac=cms.vdouble(0.095,0.095),
279  selectedTrackQuals = cms.VInputTag(cms.InputTag("mixedTripletStepSelector","mixedTripletStepVtx"),
280  cms.InputTag("mixedTripletStepSelector","mixedTripletStepTrk")),
281  setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
282  writeOnlyTrkQuals=cms.bool(True)
283 )
284 
285 MixedTripletStep = cms.Sequence(mixedTripletStepClusters*
286  mixedTripletStepSeedLayersA*
287  mixedTripletStepSeedsA*
288  mixedTripletStepSeedLayersB*
289  mixedTripletStepSeedsB*
290  mixedTripletStepSeeds*
291  mixedTripletStepTrackCandidates*
292  mixedTripletStepTracks*
293  mixedTripletStepSelector*
294  mixedTripletStep)