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 ###############################################################
7 mixedTripletStepClusters = trackClusterRemover.clone(
8  maxChi2 = cms.double(9.0),
9  trajectories = cms.InputTag("detachedQuadStepTracks"),
10  pixelClusters = cms.InputTag("siPixelClusters"),
11  stripClusters = cms.InputTag("siStripClusters"),
12  oldClusterRemovalInfo = cms.InputTag("detachedQuadStepClusters"),
13  overrideTrkQuals = cms.InputTag('detachedQuadStep'),
14  TrackQuality = cms.string('highPurity'),
15  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
16 )
17 
18 # SEEDING LAYERS
19 mixedTripletStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer",
20  layerList = cms.vstring('BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
21  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
22  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
23  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
24  'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg',
25  'FPix2_pos+FPix3_pos+TEC1_pos', 'FPix2_neg+FPix3_neg+TEC1_neg'),
26  BPix = cms.PSet(
27  TTRHBuilder = cms.string('WithTrackAngle'),
28  HitProducer = cms.string('siPixelRecHits'),
29  skipClusters = cms.InputTag('mixedTripletStepClusters')
30  ),
31  FPix = cms.PSet(
32  TTRHBuilder = cms.string('WithTrackAngle'),
33  HitProducer = cms.string('siPixelRecHits'),
34  skipClusters = cms.InputTag('mixedTripletStepClusters')
35  ),
36  TEC = cms.PSet(
37  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
38  useRingSlector = cms.bool(True),
39  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
40  minRing = cms.int32(1),
41  maxRing = cms.int32(2),
42  skipClusters = cms.InputTag('mixedTripletStepClusters')
43  )
44 )
45 
46 # SEEDS
48 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
49 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
51 mixedTripletStepSeedsA = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
52 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.SeedingLayers = 'mixedTripletStepSeedLayersA'
53 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
54 mixedTripletStepSeedsA.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
55 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.ptMin = 0.7
56 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
57 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.originRadius = 1.5
58 
59 mixedTripletStepSeedsA.SeedComparitorPSet = cms.PSet(
60  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
61  FilterAtHelixStage = cms.bool(False),
62  FilterPixelHits = cms.bool(True),
63  FilterStripHits = cms.bool(True),
64  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
65  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
66  )
67 mixedTripletStepSeedsA.ClusterCheckPSet.doClusterCheck = cms.bool(False)
68 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0)
69 mixedTripletStepSeedsA.SeedCreatorPSet.magneticField = ''
70 mixedTripletStepSeedsA.SeedCreatorPSet.propagator = 'PropagatorWithMaterial'
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('WithTrackAngle'),
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  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
102  )
103 mixedTripletStepSeedsB.ClusterCheckPSet.doClusterCheck = cms.bool(False)
104 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0)
105 mixedTripletStepSeedsB.SeedCreatorPSet.magneticField = ''
106 mixedTripletStepSeedsB.SeedCreatorPSet.propagator = 'PropagatorWithMaterial'
107 
109 mixedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
110 mixedTripletStepSeeds.seedCollections = cms.VInputTag(
111  cms.InputTag('mixedTripletStepSeedsA'),
112  cms.InputTag('mixedTripletStepSeedsB'),
113  )
114 
115 # QUALITY CUTS DURING TRACK BUILDING
117 mixedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
118  maxLostHits = 0,
119  minimumNumberOfHits = 3,
120  minPt = 0.1
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.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
145  MeasurementTrackerName = '',
146  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryFilter')),
147  propagatorAlong = cms.string('mixedTripletStepPropagator'),
148  propagatorOpposite = cms.string('mixedTripletStepPropagatorOpposite'),
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  clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
160  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
161  numHitsForSeedCleaner = cms.int32(50),
162  #onlyPixelHitsForSeedCleaner = cms.bool(True),
163  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryBuilder')),
164  doSeedingRegionRebuilding = True,
165  useHitsSplitting = True
166 )
167 
168 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
169 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
170  ComponentName = cms.string('mixedTripletStepTrajectoryCleanerBySharedHits'),
171  fractionShared = cms.double(0.095),
172  allowSharedFirstHit = cms.bool(True)
173  )
174 mixedTripletStepTrackCandidates.TrajectoryCleaner = 'mixedTripletStepTrajectoryCleanerBySharedHits'
175 
176 # TRACK FITTING
178 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
179  AlgorithmName = cms.string('mixedTripletStep'),
180  src = 'mixedTripletStepTrackCandidates',
181  Fitter = cms.string('FlexibleKFFittingSmoother'),
182  TTRHBuilder=cms.string('WithTrackAngle')
183 )
184 
185 # TRACK SELECTION AND QUALITY FLAG SETTING.
186 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
187 mixedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
188  src='mixedTripletStepTracks',
189  trackSelectors= cms.VPSet(
190  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
191  name = 'mixedTripletStepVtxLoose',
192  chi2n_par = 0.9,
193  res_par = ( 0.003, 0.001 ),
194  minNumberLayers = 3,
195  maxNumberLostLayers = 1,
196  minNumber3DLayers = 2,
197  d0_par1 = ( 1.2, 3.0 ),
198  dz_par1 = ( 1.2, 3.0 ),
199  d0_par2 = ( 1.3, 3.0 ),
200  dz_par2 = ( 1.3, 3.0 )
201  ),
202  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
203  name = 'mixedTripletStepTrkLoose',
204  chi2n_par = 0.5,
205  res_par = ( 0.003, 0.001 ),
206  minNumberLayers = 4,
207  maxNumberLostLayers = 1,
208  minNumber3DLayers = 3,
209  d0_par1 = ( 1.1, 4.0 ),
210  dz_par1 = ( 1.1, 4.0 ),
211  d0_par2 = ( 1.1, 4.0 ),
212  dz_par2 = ( 1.1, 4.0 )
213  ),
214  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
215  name = 'mixedTripletStepVtxTight',
216  preFilterName = 'mixedTripletStepVtxLoose',
217  chi2n_par = 0.6,
218  res_par = ( 0.003, 0.001 ),
219  minNumberLayers = 3,
220  maxNumberLostLayers = 1,
221  minNumber3DLayers = 3,
222  d0_par1 = ( 1.1, 3.0 ),
223  dz_par1 = ( 1.1, 3.0 ),
224  d0_par2 = ( 1.2, 3.0 ),
225  dz_par2 = ( 1.2, 3.0 )
226  ),
227  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
228  name = 'mixedTripletStepTrkTight',
229  preFilterName = 'mixedTripletStepTrkLoose',
230  chi2n_par = 0.35,
231  res_par = ( 0.003, 0.001 ),
232  minNumberLayers = 5,
233  maxNumberLostLayers = 1,
234  minNumber3DLayers = 4,
235  d0_par1 = ( 0.9, 4.0 ),
236  dz_par1 = ( 0.9, 4.0 ),
237  d0_par2 = ( 0.9, 4.0 ),
238  dz_par2 = ( 0.9, 4.0 )
239  ),
240  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
241  name = 'mixedTripletStepVtx',
242  preFilterName = 'mixedTripletStepVtxTight',
243  chi2n_par = 0.4,
244  res_par = ( 0.003, 0.001 ),
245  minNumberLayers = 3,
246  maxNumberLostLayers = 1,
247  minNumber3DLayers = 3,
248  max_minMissHitOutOrIn = 1,
249  d0_par1 = ( 0.9, 3.0 ),
250  dz_par1 = ( 0.9, 3.0 ),
251  d0_par2 = ( 1.0, 3.0 ),
252  dz_par2 = ( 1.0, 3.0 )
253  ),
254  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
255  name = 'mixedTripletStepTrk',
256  preFilterName = 'mixedTripletStepTrkTight',
257  chi2n_par = 0.2,
258  res_par = ( 0.003, 0.001 ),
259  minNumberLayers = 5,
260  maxNumberLostLayers = 0,
261  minNumber3DLayers = 4,
262  max_minMissHitOutOrIn = 1,
263  d0_par1 = ( 0.7, 4.0 ),
264  dz_par1 = ( 0.7, 4.0 ),
265  d0_par2 = ( 0.7, 4.0 ),
266  dz_par2 = ( 0.7, 4.0 )
267  )
268  ) #end of vpset
269  ) #end of clone
270 
272 mixedTripletStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
273  TrackProducers = cms.VInputTag(cms.InputTag('mixedTripletStepTracks'),
274  cms.InputTag('mixedTripletStepTracks')),
275  hasSelector=cms.vint32(1,1),
276  shareFrac=cms.double(0.095),
277  indivShareFrac=cms.vdouble(0.095,0.095),
278  selectedTrackQuals = cms.VInputTag(cms.InputTag("mixedTripletStepSelector","mixedTripletStepVtx"),
279  cms.InputTag("mixedTripletStepSelector","mixedTripletStepTrk")),
280  setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
281  writeOnlyTrkQuals=cms.bool(True)
282 )
283 
284 MixedTripletStep = cms.Sequence(mixedTripletStepClusters*
285  mixedTripletStepSeedLayersA*
286  mixedTripletStepSeedsA*
287  mixedTripletStepSeedLayersB*
288  mixedTripletStepSeedsB*
289  mixedTripletStepSeeds*
290  mixedTripletStepTrackCandidates*
291  mixedTripletStepTracks*
292  mixedTripletStepSelector*
293  mixedTripletStep)