CMS 3D CMS Logo

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