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  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
69  )
70 mixedTripletStepSeedsA.ClusterCheckPSet.doClusterCheck = cms.bool(False)
71 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0)
72 
73 # SEEDING LAYERS
74 mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer",
75  layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4','BPix1+BPix2+BPix4', 'BPix1+BPix3+BPix4'),
76  BPix = cms.PSet(
77  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
78  HitProducer = cms.string('siPixelRecHits'),
79  skipClusters = cms.InputTag('mixedTripletStepClusters')
80  )
81 )
82 
83 # SEEDS
85 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
86 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
88 mixedTripletStepSeedsB = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
89 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'mixedTripletStepSeedLayersB'
90 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
91 mixedTripletStepSeedsB.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
92 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 0.5
93 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
94 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 1.0
95 
96 mixedTripletStepSeedsB.SeedComparitorPSet = cms.PSet(
97  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
98  FilterAtHelixStage = cms.bool(False),
99  FilterPixelHits = cms.bool(True),
100  FilterStripHits = cms.bool(True),
101  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
102  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
103  )
104 mixedTripletStepSeedsB.ClusterCheckPSet.doClusterCheck = cms.bool(False)
105 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0)
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  clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
149  maxCand = 2,
150  estimator = cms.string('mixedTripletStepChi2Est'),
151  maxDPhiForLooperReconstruction = cms.double(2.0),
152  maxPtForLooperReconstruction = cms.double(0.7)
153  )
154 
155 # MAKING OF TRACK CANDIDATES
157 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
158  src = cms.InputTag('mixedTripletStepSeeds'),
159  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
160  numHitsForSeedCleaner = cms.int32(50),
161  #onlyPixelHitsForSeedCleaner = cms.bool(True),
162  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryBuilder')),
163  doSeedingRegionRebuilding = True,
164  useHitsSplitting = True
165 )
166 
167 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
168 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
169  ComponentName = cms.string('mixedTripletStepTrajectoryCleanerBySharedHits'),
170  fractionShared = cms.double(0.095),
171  allowSharedFirstHit = cms.bool(True)
172  )
173 mixedTripletStepTrackCandidates.TrajectoryCleaner = 'mixedTripletStepTrajectoryCleanerBySharedHits'
174 
175 # TRACK FITTING
177 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
178  AlgorithmName = cms.string('iter5'),
179  src = 'mixedTripletStepTrackCandidates',
180  Fitter = cms.string('FlexibleKFFittingSmoother'),
181  TTRHBuilder=cms.string('WithTrackAngle')
182 )
183 
184 # TRACK SELECTION AND QUALITY FLAG SETTING.
185 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
186 mixedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
187  src='mixedTripletStepTracks',
188  trackSelectors= cms.VPSet(
189  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
190  name = 'mixedTripletStepVtxLoose',
191  chi2n_par = 0.9,
192  res_par = ( 0.003, 0.001 ),
193  minNumberLayers = 3,
194  maxNumberLostLayers = 1,
195  minNumber3DLayers = 2,
196  d0_par1 = ( 1.2, 3.0 ),
197  dz_par1 = ( 1.2, 3.0 ),
198  d0_par2 = ( 1.3, 3.0 ),
199  dz_par2 = ( 1.3, 3.0 )
200  ),
201  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
202  name = 'mixedTripletStepTrkLoose',
203  chi2n_par = 0.5,
204  res_par = ( 0.003, 0.001 ),
205  minNumberLayers = 4,
206  maxNumberLostLayers = 1,
207  minNumber3DLayers = 3,
208  d0_par1 = ( 1.1, 4.0 ),
209  dz_par1 = ( 1.1, 4.0 ),
210  d0_par2 = ( 1.1, 4.0 ),
211  dz_par2 = ( 1.1, 4.0 )
212  ),
213  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
214  name = 'mixedTripletStepVtxTight',
215  preFilterName = 'mixedTripletStepVtxLoose',
216  chi2n_par = 0.6,
217  res_par = ( 0.003, 0.001 ),
218  minNumberLayers = 3,
219  maxNumberLostLayers = 1,
220  minNumber3DLayers = 3,
221  d0_par1 = ( 1.1, 3.0 ),
222  dz_par1 = ( 1.1, 3.0 ),
223  d0_par2 = ( 1.2, 3.0 ),
224  dz_par2 = ( 1.2, 3.0 )
225  ),
226  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
227  name = 'mixedTripletStepTrkTight',
228  preFilterName = 'mixedTripletStepTrkLoose',
229  chi2n_par = 0.35,
230  res_par = ( 0.003, 0.001 ),
231  minNumberLayers = 5,
232  maxNumberLostLayers = 1,
233  minNumber3DLayers = 4,
234  d0_par1 = ( 0.9, 4.0 ),
235  dz_par1 = ( 0.9, 4.0 ),
236  d0_par2 = ( 0.9, 4.0 ),
237  dz_par2 = ( 0.9, 4.0 )
238  ),
239  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
240  name = 'mixedTripletStepVtx',
241  preFilterName = 'mixedTripletStepVtxTight',
242  chi2n_par = 0.4,
243  res_par = ( 0.003, 0.001 ),
244  minNumberLayers = 3,
245  maxNumberLostLayers = 1,
246  minNumber3DLayers = 3,
247  max_minMissHitOutOrIn = 1,
248  d0_par1 = ( 0.9, 3.0 ),
249  dz_par1 = ( 0.9, 3.0 ),
250  d0_par2 = ( 1.0, 3.0 ),
251  dz_par2 = ( 1.0, 3.0 )
252  ),
253  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
254  name = 'mixedTripletStepTrk',
255  preFilterName = 'mixedTripletStepTrkTight',
256  chi2n_par = 0.2,
257  res_par = ( 0.003, 0.001 ),
258  minNumberLayers = 5,
259  maxNumberLostLayers = 0,
260  minNumber3DLayers = 4,
261  max_minMissHitOutOrIn = 1,
262  d0_par1 = ( 0.7, 4.0 ),
263  dz_par1 = ( 0.7, 4.0 ),
264  d0_par2 = ( 0.7, 4.0 ),
265  dz_par2 = ( 0.7, 4.0 )
266  )
267  ) #end of vpset
268  ) #end of clone
269 
270 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
271 mixedTripletStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
272  TrackProducers = cms.VInputTag(cms.InputTag('mixedTripletStepTracks'),
273  cms.InputTag('mixedTripletStepTracks')),
274  hasSelector=cms.vint32(1,1),
275  shareFrac=cms.double(0.095),
276  indivShareFrac=cms.vdouble(0.095,0.095),
277  selectedTrackQuals = cms.VInputTag(cms.InputTag("mixedTripletStepSelector","mixedTripletStepVtx"),
278  cms.InputTag("mixedTripletStepSelector","mixedTripletStepTrk")),
279  setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
280  writeOnlyTrkQuals=cms.bool(True)
281 )
282 
283 MixedTripletStep = cms.Sequence(mixedTripletStepClusters*
284  mixedTripletStepSeedLayersA*
285  mixedTripletStepSeedsA*
286  mixedTripletStepSeedLayersB*
287  mixedTripletStepSeedsB*
288  mixedTripletStepSeeds*
289  mixedTripletStepTrackCandidates*
290  mixedTripletStepTracks*
291  mixedTripletStepSelector*
292  mixedTripletStep)