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  ClusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCache") # not really needed here since FilterPixelHits=False
69  )
70 
71 pixelLessStepSeedLayersB = cms.EDProducer("SeedingLayersEDProducer",
72  layerList = cms.vstring('TIB1+TIB2', 'TIB2+TIB3', 'TID3_pos+TEC1_pos','TID3_neg+TEC1_neg'),
73  TIB1 = cms.PSet(
74  TTRHBuilder = cms.string('WithTrackAngle'),
75  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
76  skipClusters = cms.InputTag('pixelLessStepClusters')
77  ),
78  TIB2 = cms.PSet(
79  TTRHBuilder = cms.string('WithTrackAngle'),
80  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
81  skipClusters = cms.InputTag('pixelLessStepClusters')
82  ),
83  TIB3 = cms.PSet(
84  TTRHBuilder = cms.string('WithTrackAngle'),
85  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
86  skipClusters = cms.InputTag('pixelLessStepClusters')
87  ),
88  TID3 = cms.PSet(
89  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
90  skipClusters = cms.InputTag('pixelLessStepClusters'),
91  useRingSlector = cms.bool(True),
92  TTRHBuilder = cms.string('WithTrackAngle'),
93  minRing = cms.int32(1),
94  maxRing = cms.int32(2)
95  ),
96  TEC1 = cms.PSet(
97  rphiRecHits = cms.InputTag("siStripMatchedRecHits","rphiRecHit"),
98  skipClusters = cms.InputTag('pixelLessStepClusters'),
99  useRingSlector = cms.bool(True),
100  TTRHBuilder = cms.string('WithTrackAngle'),
101  minRing = cms.int32(3),
102  maxRing = cms.int32(3)
103  )
104 )
105 
106 # SEEDS
108 pixelLessStepSeedsB = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
109 pixelLessStepSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'pixelLessStepSeedLayersB'
110 pixelLessStepSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 0.8
111 pixelLessStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 20.0
112 pixelLessStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 3.0
113 pixelLessStepSeedsB.SeedCreatorPSet.OriginTransverseErrorMultiplier = 3.0
114 
115 pixelLessStepSeedsB.SeedComparitorPSet = cms.PSet(
116  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
117  FilterAtHelixStage = cms.bool(True),
118  FilterPixelHits = cms.bool(False),
119  FilterStripHits = cms.bool(True),
120  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
121  )
122 
124 pixelLessStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
125 pixelLessStepSeeds.seedCollections = cms.VInputTag(
126  cms.InputTag('pixelLessStepSeedsA'),
127  cms.InputTag('pixelLessStepSeedsB'),
128  )
129 
130 
131 # QUALITY CUTS DURING TRACK BUILDING
133 pixelLessStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
134  maxLostHits = 0,
135  minimumNumberOfHits = 4,
136  minPt = 0.05
137  )
138 
140 pixelLessStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
141  ComponentName = cms.string('pixelLessStepChi2Est'),
142  nSigma = cms.double(3.0),
143  MaxChi2 = cms.double(9.0)
144 )
145 
146 # TRACK BUILDING
148 pixelLessStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
149  MeasurementTrackerName = '',
150  clustersToSkip = cms.InputTag('pixelLessStepClusters'),
151  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('pixelLessStepTrajectoryFilter')),
152  minNrOfHitsForRebuild = 4,
153  maxCand = 2,
154  alwaysUseInvalidHits = False,
155  estimator = cms.string('pixelLessStepChi2Est'),
156  maxDPhiForLooperReconstruction = cms.double(2.0),
157  maxPtForLooperReconstruction = cms.double(0.7)
158  )
159 
160 # MAKING OF TRACK CANDIDATES
162 pixelLessStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
163  src = cms.InputTag('pixelLessStepSeeds'),
164  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
165  numHitsForSeedCleaner = cms.int32(50),
166  #onlyPixelHitsForSeedCleaner = cms.bool(True),
167  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('pixelLessStepTrajectoryBuilder'))
168 )
169 
170 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
171 pixelLessStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
172  ComponentName = cms.string('pixelLessStepTrajectoryCleanerBySharedHits'),
173  fractionShared = cms.double(0.11),
174  allowSharedFirstHit = cms.bool(True)
175  )
176 pixelLessStepTrackCandidates.TrajectoryCleaner = 'pixelLessStepTrajectoryCleanerBySharedHits'
177 
178 
179 # TRACK FITTING
181 pixelLessStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
182  src = 'pixelLessStepTrackCandidates',
183  AlgorithmName = cms.string('iter5'),
184  Fitter = cms.string('FlexibleKFFittingSmoother')
185  )
186 
187 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
188 pixelLessStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
189  src='pixelLessStepTracks',
190  trackSelectors= cms.VPSet(
191  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
192  name = 'pixelLessStepLoose',
193  chi2n_par = 0.4,
194  res_par = ( 0.003, 0.001 ),
195  minNumberLayers = 4,
196  maxNumberLostLayers = 1,
197  minNumber3DLayers = 2,
198  d0_par1 = ( 1.2, 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 = 'pixelLessStepTight',
205  preFilterName = 'pixelLessStepLoose',
206  chi2n_par = 0.3,
207  res_par = ( 0.003, 0.001 ),
208  minNumberLayers = 4,
209  maxNumberLostLayers = 0,
210  minNumber3DLayers = 2,
211  d0_par1 = ( 0.9, 4.0 ),
212  dz_par1 = ( 0.8, 4.0 ),
213  d0_par2 = ( 0.8, 4.0 ),
214  dz_par2 = ( 0.8, 4.0 )
215  ),
216  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
217  name = 'pixelLessStep',
218  preFilterName = 'pixelLessStepTight',
219  chi2n_par = 0.25,
220  res_par = ( 0.003, 0.001 ),
221  minNumberLayers = 4,
222  maxNumberLostLayers = 0,
223  minNumber3DLayers = 3,
224  max_minMissHitOutOrIn = 2,
225  d0_par1 = ( 0.7, 4.0 ),
226  dz_par1 = ( 0.7, 4.0 ),
227  d0_par2 = ( 0.7, 4.0 ),
228  dz_par2 = ( 0.7, 4.0 )
229  ),
230  ) #end of vpset
231  ) #end of clone
232 
233 
234 PixelLessStep = cms.Sequence(pixelLessStepClusters*
235  pixelLessStepSeedLayersA*
236  pixelLessStepSeedsA*
237  pixelLessStepSeedLayersB*
238  pixelLessStepSeedsB*
239  pixelLessStepSeeds*
240  pixelLessStepTrackCandidates*
241  pixelLessStepTracks*
242  pixelLessStepSelector)