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