CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TobTecStep_cff.py
Go to the documentation of this file.
2 
3 #######################################################################
4 # Very large impact parameter tracking using TOB + TEC ring 5 seeding #
5 #######################################################################
6 
7 tobTecStepClusters = cms.EDProducer("TrackClusterRemover",
8  clusterLessSolution = cms.bool(True),
9  oldClusterRemovalInfo = cms.InputTag("pixelLessStepClusters"),
10  trajectories = cms.InputTag("pixelLessStepTracks"),
11  overrideTrkQuals = cms.InputTag('pixelLessStep'),
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 tobTecStepSeedClusters = tobTecStepClusters.clone(
22  doStripChargeCheck = cms.bool(True),
23  stripRecHits = cms.string('siStripMatchedRecHits'),
24  Common = cms.PSet(
25  maxChi2 = cms.double(9.0),
26  minGoodStripCharge = cms.double(70.0)
27  )
28 )
29 
30 
31 # SEEDING LAYERS
32 tobTecStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
33  layerList = cms.vstring('TOB1+TOB2',
34  'TOB1+TEC1_pos', 'TOB1+TEC1_neg',
35  'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos',
36  'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos',
37  'TEC5_pos+TEC6_pos', 'TEC6_pos+TEC7_pos',
38  'TEC1_neg+TEC2_neg', 'TEC2_neg+TEC3_neg',
39  'TEC3_neg+TEC4_neg', 'TEC4_neg+TEC5_neg',
40  'TEC5_neg+TEC6_neg', 'TEC6_neg+TEC7_neg'),
41 
42  TOB = cms.PSet(
43  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
44  skipClusters = cms.InputTag('tobTecStepSeedClusters'),
45  TTRHBuilder = cms.string('WithTrackAngle')
46  ),
47 
48  TEC = cms.PSet(
49  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
50  skipClusters = cms.InputTag('tobTecStepSeedClusters'),
51  # untracked bool useSimpleRphiHitsCleaner = false
52  useRingSlector = cms.bool(True),
53  TTRHBuilder = cms.string('WithTrackAngle'),
54  minRing = cms.int32(5),
55  maxRing = cms.int32(5)
56  )
57 )
58 # SEEDS
60 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
61 tobTecStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'tobTecStepSeedLayers'
62 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6
63 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 30.0
64 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 6.0
65 tobTecStepSeeds.SeedCreatorPSet.OriginTransverseErrorMultiplier = 2.0
66 
67 
68 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
69 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
70 
71 tobTecStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
72  ComponentName = 'tobTecStepTrajectoryFilter',
73  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
74  maxLostHits = 0,
75  minimumNumberOfHits = 6,
76  minPt = 0.1,
77  minHitsMinPt = 3
78  )
79  )
80 
81 tobTecStepInOutTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
82  ComponentName = 'tobTecStepInOutTrajectoryFilter',
83  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
84  maxLostHits = 0,
85  minimumNumberOfHits = 4,
86  minPt = 0.1,
87  minHitsMinPt = 3
88  )
89  )
90 
92 tobTecStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
93  ComponentName = cms.string('tobTecStepChi2Est'),
94  nSigma = cms.double(3.0),
95  MaxChi2 = cms.double(16.0)
96 )
97 
98 # TRACK BUILDING
100 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
101  ComponentName = 'tobTecStepTrajectoryBuilder',
102  MeasurementTrackerName = '',
103  trajectoryFilterName = 'tobTecStepTrajectoryFilter',
104  inOutTrajectoryFilterName = 'tobTecStepInOutTrajectoryFilter',
105  useSameTrajFilter = False,
106  minNrOfHitsForRebuild = 4,
107  alwaysUseInvalidHits = False,
108  maxCand = 2,
109  estimator = cms.string('tobTecStepChi2Est'),
110  #startSeedHitsInRebuild = True
111  maxDPhiForLooperReconstruction = cms.double(2.0),
112  maxPtForLooperReconstruction = cms.double(0.7)
113  )
114 
115 # MAKING OF TRACK CANDIDATES
117 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
118  src = cms.InputTag('tobTecStepSeeds'),
119  clustersToSkip = cms.InputTag('tobTecStepClusters'),
120  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
121  numHitsForSeedCleaner = cms.int32(50),
122  onlyPixelHitsForSeedCleaner = cms.bool(True),
123 
124  TrajectoryBuilder = 'tobTecStepTrajectoryBuilder',
125  doSeedingRegionRebuilding = True,
126  useHitsSplitting = True,
127  cleanTrajectoryAfterInOut = True
128 )
129 
130 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
131 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
132  ComponentName = cms.string('tobTecStepTrajectoryCleanerBySharedHits'),
133  fractionShared = cms.double(0.09),
134  allowSharedFirstHit = cms.bool(True)
135  )
136 tobTecStepTrackCandidates.TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits'
137 
138 # TRACK FITTING AND SMOOTHING OPTIONS
140 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
141  ComponentName = 'tobTecStepFitterSmoother',
142  EstimateCut = 30,
143  MinNumberOfHits = 8,
144  Fitter = cms.string('tobTecStepRKFitter'),
145  Smoother = cms.string('tobTecStepRKSmoother')
146  )
147 
148 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
149  ComponentName = 'tobTecStepFitterSmootherForLoopers',
150  Fitter = cms.string('tobTecStepRKFitterForLoopers'),
151  Smoother = cms.string('tobTecStepRKSmootherForLoopers')
152 )
153 
154 # Also necessary to specify minimum number of hits after final track fit
155 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
156  ComponentName = cms.string('tobTecStepRKFitter'),
157  minHits = 8
158 )
159 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
160  ComponentName = cms.string('tobTecStepRKFitterForLoopers'),
161  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
162 )
163 
164 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
165  ComponentName = cms.string('tobTecStepRKSmoother'),
166  errorRescaling = 10.0,
167  minHits = 8
168 )
169 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
170  ComponentName = cms.string('tobTecStepRKSmootherForLoopers'),
171  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
172 )
173 
175 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
176  ComponentName = cms.string('tobTecFlexibleKFFittingSmoother'),
177  standardFitter = cms.string('tobTecStepFitterSmoother'),
178  looperFitter = cms.string('tobTecStepFitterSmootherForLoopers'),
179 )
180 
181 
182 
183 
184 # TRACK FITTING
186 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
187  src = 'tobTecStepTrackCandidates',
188  AlgorithmName = cms.string('iter6'),
189  #Fitter = 'tobTecStepFitterSmoother',
190  Fitter = 'tobTecFlexibleKFFittingSmoother',
191  )
192 
193 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
194 tobTecStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
195  src='tobTecStepTracks',
196  useAnyMVA = cms.bool(True),
197  GBRForestLabel = cms.string('MVASelectorIter6'),
198  trackSelectors= cms.VPSet(
199  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
200  name = 'tobTecStepLoose',
201  chi2n_par = 0.4,
202  res_par = ( 0.003, 0.001 ),
203  minNumberLayers = 5,
204  maxNumberLostLayers = 1,
205  minNumber3DLayers = 2,
206  d0_par1 = ( 2.0, 4.0 ),
207  dz_par1 = ( 1.8, 4.0 ),
208  d0_par2 = ( 2.0, 4.0 ),
209  dz_par2 = ( 1.8, 4.0 )
210  ),
211  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
212  name = 'tobTecStepTight',
213  preFilterName = 'tobTecStepLoose',
214  chi2n_par = 0.3,
215  res_par = ( 0.003, 0.001 ),
216  minNumberLayers = 5,
217  maxNumberLostLayers = 0,
218  minNumber3DLayers = 2,
219  d0_par1 = ( 1.5, 4.0 ),
220  dz_par1 = ( 1.4, 4.0 ),
221  d0_par2 = ( 1.5, 4.0 ),
222  dz_par2 = ( 1.4, 4.0 )
223  ),
224  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
225  name = 'tobTecStep',
226  preFilterName = 'tobTecStepTight',
227  chi2n_par = 0.2,
228  res_par = ( 0.003, 0.001 ),
229  minNumberLayers = 5,
230  maxNumberLostLayers = 0,
231  minNumber3DLayers = 2,
232  max_minMissHitOutOrIn = 1,
233  max_lostHitFraction = 1.0,
234  d0_par1 = ( 1.2, 4.0 ),
235  dz_par1 = ( 1.1, 4.0 ),
236  d0_par2 = ( 1.2, 4.0 ),
237  dz_par2 = ( 1.1, 4.0 )
238  ),
239  ) #end of vpset
240  ) #end of clone
241 
242 
243 TobTecStep = cms.Sequence(tobTecStepClusters*
244  tobTecStepSeedClusters*
245  tobTecStepSeedLayers*
246  tobTecStepSeeds*
247  tobTecStepTrackCandidates*
248  tobTecStepTracks*
249  tobTecStepSelector)
250