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