CMS 3D CMS Logo

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