CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RunI_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  'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'),
26  BPix = cms.PSet(
27  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
28  HitProducer = cms.string('siPixelRecHits'),
29  skipClusters = cms.InputTag('mixedTripletStepClusters')
30  ),
31  FPix = cms.PSet(
32  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
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(1),
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.4
56 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.originHalfLength = 10.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 
68 # SEEDING LAYERS
69 mixedTripletStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer",
70  layerList = cms.vstring('BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'),
71  BPix = cms.PSet(
72  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
73  HitProducer = cms.string('siPixelRecHits'),
74  skipClusters = cms.InputTag('mixedTripletStepClusters')
75  ),
76  TIB = cms.PSet(
77  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
78  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
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.6
93 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 10.0
94 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 1.5
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 
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
114 mixedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
115  maxLostHits = 0,
116  minimumNumberOfHits = 3,
117  minPt = 0.1
118  )
119 
120 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
122 mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
123  ComponentName = 'mixedTripletStepPropagator',
124  ptMin = 0.1
125  )
127 mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
128  ComponentName = 'mixedTripletStepPropagatorOpposite',
129  ptMin = 0.1
130  )
131 
133 mixedTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
134  ComponentName = cms.string('mixedTripletStepChi2Est'),
135  nSigma = cms.double(3.0),
136  MaxChi2 = cms.double(16.0)
137 )
138 
139 # TRACK BUILDING
141 mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
142  MeasurementTrackerName = '',
143  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryFilter')),
144  propagatorAlong = cms.string('mixedTripletStepPropagator'),
145  propagatorOpposite = cms.string('mixedTripletStepPropagatorOpposite'),
146  maxCand = 2,
147  estimator = cms.string('mixedTripletStepChi2Est'),
148  maxDPhiForLooperReconstruction = cms.double(2.0),
149  maxPtForLooperReconstruction = cms.double(0.7)
150  )
151 
152 # MAKING OF TRACK CANDIDATES
154 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
155  src = cms.InputTag('mixedTripletStepSeeds'),
156  clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
157  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
158  numHitsForSeedCleaner = cms.int32(50),
159  #onlyPixelHitsForSeedCleaner = cms.bool(True),
160 
161  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryBuilder')),
162  doSeedingRegionRebuilding = True,
163  useHitsSplitting = True
164 )
165 
166 
167 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
168 mixedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
169  ComponentName = cms.string('mixedTripletStepTrajectoryCleanerBySharedHits'),
170  fractionShared = cms.double(0.19),
171  allowSharedFirstHit = cms.bool(True)
172  )
173 mixedTripletStepTrackCandidates.TrajectoryCleaner = 'mixedTripletStepTrajectoryCleanerBySharedHits'
174 
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 )
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  useAnyMVA = cms.bool(False),
189  GBRForestLabel = cms.string('MVASelectorIter4'),
190  trackSelectors= cms.VPSet(
191  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
192  name = 'mixedTripletStepVtxLoose',
193  chi2n_par = 1.2,
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.6,
206  res_par = ( 0.003, 0.001 ),
207  minNumberLayers = 4,
208  maxNumberLostLayers = 1,
209  minNumber3DLayers = 3,
210  d0_par1 = ( 1.2, 4.0 ),
211  dz_par1 = ( 1.2, 4.0 ),
212  d0_par2 = ( 1.2, 4.0 ),
213  dz_par2 = ( 1.2, 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.4,
232  res_par = ( 0.003, 0.001 ),
233  minNumberLayers = 5,
234  maxNumberLostLayers = 1,
235  minNumber3DLayers = 4,
236  d0_par1 = ( 1.1, 4.0 ),
237  dz_par1 = ( 1.1, 4.0 ),
238  d0_par2 = ( 1.1, 4.0 ),
239  dz_par2 = ( 1.1, 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  d0_par1 = ( 1.1, 3.0 ),
250  dz_par1 = ( 1.1, 3.0 ),
251  d0_par2 = ( 1.2, 3.0 ),
252  dz_par2 = ( 1.2, 3.0 )
253  ),
254  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
255  name = 'mixedTripletStepTrk',
256  preFilterName = 'mixedTripletStepTrkTight',
257  chi2n_par = 0.3,
258  res_par = ( 0.003, 0.001 ),
259  minNumberLayers = 5,
260  maxNumberLostLayers = 0,
261  minNumber3DLayers = 4,
262  d0_par1 = ( 0.9, 4.0 ),
263  dz_par1 = ( 0.9, 4.0 ),
264  d0_par2 = ( 0.9, 4.0 ),
265  dz_par2 = ( 0.9, 4.0 )
266  )
267  ),
268  vertices = cms.InputTag("pixelVertices") #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  selectedTrackQuals = cms.VInputTag(cms.InputTag("mixedTripletStepSelector","mixedTripletStepVtx"),
277  cms.InputTag("mixedTripletStepSelector","mixedTripletStepTrk")),
278  setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
279  writeOnlyTrkQuals=cms.bool(True)
280 )
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)
293