CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LowPU_PixelLessStep_cff.py
Go to the documentation of this file.
2 
3 ##########################################################################
4 # Large impact parameter tracking using TIB/TID/TEC stereo layer seeding #
5 ##########################################################################
6 
7 
8 pixelLessStepClusters = cms.EDProducer("TrackClusterRemover",
9  clusterLessSolution = cms.bool(True),
10  oldClusterRemovalInfo = cms.InputTag("mixedTripletStepClusters"),
11  trajectories = cms.InputTag("mixedTripletStepTracks"),
12  overrideTrkQuals = cms.InputTag('mixedTripletStep'),
13  TrackQuality = cms.string('highPurity'),
14  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
15  pixelClusters = cms.InputTag("siPixelClusters"),
16  stripClusters = cms.InputTag("siStripClusters"),
17  Common = cms.PSet(
18  maxChi2 = cms.double(9.0)
19  )
20 )
21 
22 # SEEDING LAYERS
23 pixelLessStepSeedLayersA = cms.EDProducer("SeedingLayersEDProducer",
24  layerList = cms.vstring('TIB1+TID1_pos','TIB1+TID1_neg',
25  'TID3_pos+TEC1_pos','TID3_neg+TEC1_neg',
26  'TID1_pos+TID2_pos','TID2_pos+TID3_pos',
27  'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos','TEC4_pos+TEC5_pos',
28  'TID1_neg+TID2_neg','TID2_neg+TID3_neg',
29  'TEC1_neg+TEC2_neg','TEC2_neg+TEC3_neg','TEC3_neg+TEC4_neg','TEC3_neg+TEC5_neg','TEC4_neg+TEC5_neg'),
30  TIB = cms.PSet(
31  TTRHBuilder = cms.string('WithTrackAngle'),
32  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
33  skipClusters = cms.InputTag('pixelLessStepClusters')
34  ),
35  TID = cms.PSet(
36  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
37  skipClusters = cms.InputTag('pixelLessStepClusters'),
38  useRingSlector = cms.bool(True),
39  TTRHBuilder = cms.string('WithTrackAngle'),
40  minRing = cms.int32(1),
41  maxRing = cms.int32(2)
42  ),
43  TEC = cms.PSet(
44  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
45  skipClusters = cms.InputTag('pixelLessStepClusters'),
46  useRingSlector = cms.bool(True),
47  TTRHBuilder = cms.string('WithTrackAngle'),
48  minRing = cms.int32(1),
49  maxRing = cms.int32(2)
50  )
51 )
52 
53 # SEEDS
55 pixelLessStepSeedsA = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
56 pixelLessStepSeedsA.OrderedHitsFactoryPSet.SeedingLayers = 'pixelLessStepSeedLayersA'
57 pixelLessStepSeedsA.RegionFactoryPSet.RegionPSet.ptMin = 0.2
58 pixelLessStepSeedsA.RegionFactoryPSet.RegionPSet.originHalfLength = 20.0
59 pixelLessStepSeedsA.RegionFactoryPSet.RegionPSet.originRadius = 6.0
60 pixelLessStepSeedsA.SeedCreatorPSet.OriginTransverseErrorMultiplier = 2.0
61 
62 pixelLessStepSeedsA.SeedComparitorPSet = cms.PSet(
63  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
64  FilterAtHelixStage = cms.bool(True),
65  FilterPixelHits = cms.bool(False),
66  FilterStripHits = cms.bool(True),
67  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
68  )
69 
70 pixelLessStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer",
71  layerList = cms.vstring('TIB1+TIB2', 'TIB2+TIB3', 'TID3_pos+TEC1_pos','TID3_neg+TEC1_neg'),
72  TIB1 = cms.PSet(
73  TTRHBuilder = cms.string('WithTrackAngle'),
74  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
75  skipClusters = cms.InputTag('pixelLessStepClusters')
76  ),
77  TIB2 = cms.PSet(
78  TTRHBuilder = cms.string('WithTrackAngle'),
79  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
80  skipClusters = cms.InputTag('pixelLessStepClusters')
81  ),
82  TIB3 = cms.PSet(
83  TTRHBuilder = cms.string('WithTrackAngle'),
84  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
85  skipClusters = cms.InputTag('pixelLessStepClusters')
86  ),
87  TID3 = cms.PSet(
88  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
89  skipClusters = cms.InputTag('pixelLessStepClusters'),
90  useRingSlector = cms.bool(True),
91  TTRHBuilder = cms.string('WithTrackAngle'),
92  minRing = cms.int32(1),
93  maxRing = cms.int32(2)
94  ),
95  TEC1 = cms.PSet(
96  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
97  skipClusters = cms.InputTag('pixelLessStepClusters'),
98  useRingSlector = cms.bool(True),
99  TTRHBuilder = cms.string('WithTrackAngle'),
100  minRing = cms.int32(3),
101  maxRing = cms.int32(3)
102  )
103 )
104 
105 # SEEDS
107 pixelLessStepSeedsB = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
108 pixelLessStepSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'pixelLessStepSeedLayersB'
109 pixelLessStepSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 0.8
110 pixelLessStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 20.0
111 pixelLessStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 3.0
112 pixelLessStepSeedsB.SeedCreatorPSet.OriginTransverseErrorMultiplier = 3.0
113 
114 pixelLessStepSeedsB.SeedComparitorPSet = cms.PSet(
115  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
116  FilterAtHelixStage = cms.bool(True),
117  FilterPixelHits = cms.bool(False),
118  FilterStripHits = cms.bool(True),
119  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
120  )
121 
123 pixelLessStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
124 pixelLessStepSeeds.seedCollections = cms.VInputTag(
125  cms.InputTag('pixelLessStepSeedsA'),
126  cms.InputTag('pixelLessStepSeedsB'),
127  )
128 
129 
130 # QUALITY CUTS DURING TRACK BUILDING
131 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
132 pixelLessStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
133  ComponentName = 'pixelLessStepTrajectoryFilter',
134  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
135  maxLostHits = 0,
136  minimumNumberOfHits = 4,
137  minPt = 0.05
138  )
139  )
140 
142 pixelLessStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
143  ComponentName = cms.string('pixelLessStepChi2Est'),
144  nSigma = cms.double(3.0),
145  MaxChi2 = cms.double(9.0)
146 )
147 
148 # TRACK BUILDING
150 pixelLessStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
151  ComponentName = 'pixelLessStepTrajectoryBuilder',
152  MeasurementTrackerName = '',
153  clustersToSkip = cms.InputTag('pixelLessStepClusters'),
154  trajectoryFilterName = 'pixelLessStepTrajectoryFilter',
155  minNrOfHitsForRebuild = 4,
156  maxCand = 2,
157  alwaysUseInvalidHits = False,
158  estimator = cms.string('pixelLessStepChi2Est'),
159  maxDPhiForLooperReconstruction = cms.double(2.0),
160  maxPtForLooperReconstruction = cms.double(0.7)
161  )
162 
163 # MAKING OF TRACK CANDIDATES
165 pixelLessStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
166  src = cms.InputTag('pixelLessStepSeeds'),
167  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
168  numHitsForSeedCleaner = cms.int32(50),
169  #onlyPixelHitsForSeedCleaner = cms.bool(True),
170  TrajectoryBuilder = 'pixelLessStepTrajectoryBuilder'
171 )
172 
173 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
174 pixelLessStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
175  ComponentName = cms.string('pixelLessStepTrajectoryCleanerBySharedHits'),
176  fractionShared = cms.double(0.11),
177  allowSharedFirstHit = cms.bool(True)
178  )
179 pixelLessStepTrackCandidates.TrajectoryCleaner = 'pixelLessStepTrajectoryCleanerBySharedHits'
180 
181 
182 # TRACK FITTING
184 pixelLessStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
185  src = 'pixelLessStepTrackCandidates',
186  AlgorithmName = cms.string('iter5'),
187  Fitter = cms.string('FlexibleKFFittingSmoother')
188  )
189 
190 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
191 pixelLessStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
192  src='pixelLessStepTracks',
193  trackSelectors= cms.VPSet(
194  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
195  name = 'pixelLessStepLoose',
196  chi2n_par = 0.4,
197  res_par = ( 0.003, 0.001 ),
198  minNumberLayers = 4,
199  maxNumberLostLayers = 1,
200  minNumber3DLayers = 2,
201  d0_par1 = ( 1.2, 4.0 ),
202  dz_par1 = ( 1.1, 4.0 ),
203  d0_par2 = ( 1.1, 4.0 ),
204  dz_par2 = ( 1.1, 4.0 )
205  ),
206  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
207  name = 'pixelLessStepTight',
208  preFilterName = 'pixelLessStepLoose',
209  chi2n_par = 0.3,
210  res_par = ( 0.003, 0.001 ),
211  minNumberLayers = 4,
212  maxNumberLostLayers = 0,
213  minNumber3DLayers = 2,
214  d0_par1 = ( 0.9, 4.0 ),
215  dz_par1 = ( 0.8, 4.0 ),
216  d0_par2 = ( 0.8, 4.0 ),
217  dz_par2 = ( 0.8, 4.0 )
218  ),
219  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
220  name = 'pixelLessStep',
221  preFilterName = 'pixelLessStepTight',
222  chi2n_par = 0.25,
223  res_par = ( 0.003, 0.001 ),
224  minNumberLayers = 4,
225  maxNumberLostLayers = 0,
226  minNumber3DLayers = 3,
227  max_minMissHitOutOrIn = 2,
228  d0_par1 = ( 0.7, 4.0 ),
229  dz_par1 = ( 0.7, 4.0 ),
230  d0_par2 = ( 0.7, 4.0 ),
231  dz_par2 = ( 0.7, 4.0 )
232  ),
233  ) #end of vpset
234  ) #end of clone
235 
236 
237 PixelLessStep = cms.Sequence(pixelLessStepClusters*
238  pixelLessStepSeedLayersA*
239  pixelLessStepSeedsA*
240  pixelLessStepSeedLayersB*
241  pixelLessStepSeedsB*
242  pixelLessStepSeeds*
243  pixelLessStepTrackCandidates*
244  pixelLessStepTracks*
245  pixelLessStepSelector)